diff --git a/google-api-grpc/grpc-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/DataCatalogGrpc.java b/google-api-grpc/grpc-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/DataCatalogGrpc.java
index e43af4ee18aa..03a2eaf472e4 100644
--- a/google-api-grpc/grpc-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/DataCatalogGrpc.java
+++ b/google-api-grpc/grpc-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/DataCatalogGrpc.java
@@ -83,6 +83,225 @@ private DataCatalogGrpc() {}
     return getSearchCatalogMethod;
   }
 
+  @io.grpc.ExperimentalApi("https://github.com/grpc/grpc-java/issues/1901")
+  @java.lang.Deprecated // Use {@link #getCreateEntryGroupMethod()} instead.
+  public static final io.grpc.MethodDescriptor<
+          com.google.cloud.datacatalog.CreateEntryGroupRequest,
+          com.google.cloud.datacatalog.EntryGroup>
+      METHOD_CREATE_ENTRY_GROUP = getCreateEntryGroupMethodHelper();
+
+  private static volatile io.grpc.MethodDescriptor<
+          com.google.cloud.datacatalog.CreateEntryGroupRequest,
+          com.google.cloud.datacatalog.EntryGroup>
+      getCreateEntryGroupMethod;
+
+  @io.grpc.ExperimentalApi("https://github.com/grpc/grpc-java/issues/1901")
+  public static io.grpc.MethodDescriptor<
+          com.google.cloud.datacatalog.CreateEntryGroupRequest,
+          com.google.cloud.datacatalog.EntryGroup>
+      getCreateEntryGroupMethod() {
+    return getCreateEntryGroupMethodHelper();
+  }
+
+  private static io.grpc.MethodDescriptor<
+          com.google.cloud.datacatalog.CreateEntryGroupRequest,
+          com.google.cloud.datacatalog.EntryGroup>
+      getCreateEntryGroupMethodHelper() {
+    io.grpc.MethodDescriptor<
+            com.google.cloud.datacatalog.CreateEntryGroupRequest,
+            com.google.cloud.datacatalog.EntryGroup>
+        getCreateEntryGroupMethod;
+    if ((getCreateEntryGroupMethod = DataCatalogGrpc.getCreateEntryGroupMethod) == null) {
+      synchronized (DataCatalogGrpc.class) {
+        if ((getCreateEntryGroupMethod = DataCatalogGrpc.getCreateEntryGroupMethod) == null) {
+          DataCatalogGrpc.getCreateEntryGroupMethod =
+              getCreateEntryGroupMethod =
+                  io.grpc.MethodDescriptor
+                      .<com.google.cloud.datacatalog.CreateEntryGroupRequest,
+                          com.google.cloud.datacatalog.EntryGroup>
+                          newBuilder()
+                      .setType(io.grpc.MethodDescriptor.MethodType.UNARY)
+                      .setFullMethodName(
+                          generateFullMethodName(
+                              "google.cloud.datacatalog.v1beta1.DataCatalog", "CreateEntryGroup"))
+                      .setSampledToLocalTracing(true)
+                      .setRequestMarshaller(
+                          io.grpc.protobuf.ProtoUtils.marshaller(
+                              com.google.cloud.datacatalog.CreateEntryGroupRequest
+                                  .getDefaultInstance()))
+                      .setResponseMarshaller(
+                          io.grpc.protobuf.ProtoUtils.marshaller(
+                              com.google.cloud.datacatalog.EntryGroup.getDefaultInstance()))
+                      .setSchemaDescriptor(
+                          new DataCatalogMethodDescriptorSupplier("CreateEntryGroup"))
+                      .build();
+        }
+      }
+    }
+    return getCreateEntryGroupMethod;
+  }
+
+  @io.grpc.ExperimentalApi("https://github.com/grpc/grpc-java/issues/1901")
+  @java.lang.Deprecated // Use {@link #getGetEntryGroupMethod()} instead.
+  public static final io.grpc.MethodDescriptor<
+          com.google.cloud.datacatalog.GetEntryGroupRequest,
+          com.google.cloud.datacatalog.EntryGroup>
+      METHOD_GET_ENTRY_GROUP = getGetEntryGroupMethodHelper();
+
+  private static volatile io.grpc.MethodDescriptor<
+          com.google.cloud.datacatalog.GetEntryGroupRequest,
+          com.google.cloud.datacatalog.EntryGroup>
+      getGetEntryGroupMethod;
+
+  @io.grpc.ExperimentalApi("https://github.com/grpc/grpc-java/issues/1901")
+  public static io.grpc.MethodDescriptor<
+          com.google.cloud.datacatalog.GetEntryGroupRequest,
+          com.google.cloud.datacatalog.EntryGroup>
+      getGetEntryGroupMethod() {
+    return getGetEntryGroupMethodHelper();
+  }
+
+  private static io.grpc.MethodDescriptor<
+          com.google.cloud.datacatalog.GetEntryGroupRequest,
+          com.google.cloud.datacatalog.EntryGroup>
+      getGetEntryGroupMethodHelper() {
+    io.grpc.MethodDescriptor<
+            com.google.cloud.datacatalog.GetEntryGroupRequest,
+            com.google.cloud.datacatalog.EntryGroup>
+        getGetEntryGroupMethod;
+    if ((getGetEntryGroupMethod = DataCatalogGrpc.getGetEntryGroupMethod) == null) {
+      synchronized (DataCatalogGrpc.class) {
+        if ((getGetEntryGroupMethod = DataCatalogGrpc.getGetEntryGroupMethod) == null) {
+          DataCatalogGrpc.getGetEntryGroupMethod =
+              getGetEntryGroupMethod =
+                  io.grpc.MethodDescriptor
+                      .<com.google.cloud.datacatalog.GetEntryGroupRequest,
+                          com.google.cloud.datacatalog.EntryGroup>
+                          newBuilder()
+                      .setType(io.grpc.MethodDescriptor.MethodType.UNARY)
+                      .setFullMethodName(
+                          generateFullMethodName(
+                              "google.cloud.datacatalog.v1beta1.DataCatalog", "GetEntryGroup"))
+                      .setSampledToLocalTracing(true)
+                      .setRequestMarshaller(
+                          io.grpc.protobuf.ProtoUtils.marshaller(
+                              com.google.cloud.datacatalog.GetEntryGroupRequest
+                                  .getDefaultInstance()))
+                      .setResponseMarshaller(
+                          io.grpc.protobuf.ProtoUtils.marshaller(
+                              com.google.cloud.datacatalog.EntryGroup.getDefaultInstance()))
+                      .setSchemaDescriptor(new DataCatalogMethodDescriptorSupplier("GetEntryGroup"))
+                      .build();
+        }
+      }
+    }
+    return getGetEntryGroupMethod;
+  }
+
+  @io.grpc.ExperimentalApi("https://github.com/grpc/grpc-java/issues/1901")
+  @java.lang.Deprecated // Use {@link #getDeleteEntryGroupMethod()} instead.
+  public static final io.grpc.MethodDescriptor<
+          com.google.cloud.datacatalog.DeleteEntryGroupRequest, com.google.protobuf.Empty>
+      METHOD_DELETE_ENTRY_GROUP = getDeleteEntryGroupMethodHelper();
+
+  private static volatile io.grpc.MethodDescriptor<
+          com.google.cloud.datacatalog.DeleteEntryGroupRequest, com.google.protobuf.Empty>
+      getDeleteEntryGroupMethod;
+
+  @io.grpc.ExperimentalApi("https://github.com/grpc/grpc-java/issues/1901")
+  public static io.grpc.MethodDescriptor<
+          com.google.cloud.datacatalog.DeleteEntryGroupRequest, com.google.protobuf.Empty>
+      getDeleteEntryGroupMethod() {
+    return getDeleteEntryGroupMethodHelper();
+  }
+
+  private static io.grpc.MethodDescriptor<
+          com.google.cloud.datacatalog.DeleteEntryGroupRequest, com.google.protobuf.Empty>
+      getDeleteEntryGroupMethodHelper() {
+    io.grpc.MethodDescriptor<
+            com.google.cloud.datacatalog.DeleteEntryGroupRequest, com.google.protobuf.Empty>
+        getDeleteEntryGroupMethod;
+    if ((getDeleteEntryGroupMethod = DataCatalogGrpc.getDeleteEntryGroupMethod) == null) {
+      synchronized (DataCatalogGrpc.class) {
+        if ((getDeleteEntryGroupMethod = DataCatalogGrpc.getDeleteEntryGroupMethod) == null) {
+          DataCatalogGrpc.getDeleteEntryGroupMethod =
+              getDeleteEntryGroupMethod =
+                  io.grpc.MethodDescriptor
+                      .<com.google.cloud.datacatalog.DeleteEntryGroupRequest,
+                          com.google.protobuf.Empty>
+                          newBuilder()
+                      .setType(io.grpc.MethodDescriptor.MethodType.UNARY)
+                      .setFullMethodName(
+                          generateFullMethodName(
+                              "google.cloud.datacatalog.v1beta1.DataCatalog", "DeleteEntryGroup"))
+                      .setSampledToLocalTracing(true)
+                      .setRequestMarshaller(
+                          io.grpc.protobuf.ProtoUtils.marshaller(
+                              com.google.cloud.datacatalog.DeleteEntryGroupRequest
+                                  .getDefaultInstance()))
+                      .setResponseMarshaller(
+                          io.grpc.protobuf.ProtoUtils.marshaller(
+                              com.google.protobuf.Empty.getDefaultInstance()))
+                      .setSchemaDescriptor(
+                          new DataCatalogMethodDescriptorSupplier("DeleteEntryGroup"))
+                      .build();
+        }
+      }
+    }
+    return getDeleteEntryGroupMethod;
+  }
+
+  @io.grpc.ExperimentalApi("https://github.com/grpc/grpc-java/issues/1901")
+  @java.lang.Deprecated // Use {@link #getCreateEntryMethod()} instead.
+  public static final io.grpc.MethodDescriptor<
+          com.google.cloud.datacatalog.CreateEntryRequest, com.google.cloud.datacatalog.Entry>
+      METHOD_CREATE_ENTRY = getCreateEntryMethodHelper();
+
+  private static volatile io.grpc.MethodDescriptor<
+          com.google.cloud.datacatalog.CreateEntryRequest, com.google.cloud.datacatalog.Entry>
+      getCreateEntryMethod;
+
+  @io.grpc.ExperimentalApi("https://github.com/grpc/grpc-java/issues/1901")
+  public static io.grpc.MethodDescriptor<
+          com.google.cloud.datacatalog.CreateEntryRequest, com.google.cloud.datacatalog.Entry>
+      getCreateEntryMethod() {
+    return getCreateEntryMethodHelper();
+  }
+
+  private static io.grpc.MethodDescriptor<
+          com.google.cloud.datacatalog.CreateEntryRequest, com.google.cloud.datacatalog.Entry>
+      getCreateEntryMethodHelper() {
+    io.grpc.MethodDescriptor<
+            com.google.cloud.datacatalog.CreateEntryRequest, com.google.cloud.datacatalog.Entry>
+        getCreateEntryMethod;
+    if ((getCreateEntryMethod = DataCatalogGrpc.getCreateEntryMethod) == null) {
+      synchronized (DataCatalogGrpc.class) {
+        if ((getCreateEntryMethod = DataCatalogGrpc.getCreateEntryMethod) == null) {
+          DataCatalogGrpc.getCreateEntryMethod =
+              getCreateEntryMethod =
+                  io.grpc.MethodDescriptor
+                      .<com.google.cloud.datacatalog.CreateEntryRequest,
+                          com.google.cloud.datacatalog.Entry>
+                          newBuilder()
+                      .setType(io.grpc.MethodDescriptor.MethodType.UNARY)
+                      .setFullMethodName(
+                          generateFullMethodName(
+                              "google.cloud.datacatalog.v1beta1.DataCatalog", "CreateEntry"))
+                      .setSampledToLocalTracing(true)
+                      .setRequestMarshaller(
+                          io.grpc.protobuf.ProtoUtils.marshaller(
+                              com.google.cloud.datacatalog.CreateEntryRequest.getDefaultInstance()))
+                      .setResponseMarshaller(
+                          io.grpc.protobuf.ProtoUtils.marshaller(
+                              com.google.cloud.datacatalog.Entry.getDefaultInstance()))
+                      .setSchemaDescriptor(new DataCatalogMethodDescriptorSupplier("CreateEntry"))
+                      .build();
+        }
+      }
+    }
+    return getCreateEntryMethod;
+  }
+
   @io.grpc.ExperimentalApi("https://github.com/grpc/grpc-java/issues/1901")
   @java.lang.Deprecated // Use {@link #getUpdateEntryMethod()} instead.
   public static final io.grpc.MethodDescriptor<
@@ -134,6 +353,56 @@ private DataCatalogGrpc() {}
     return getUpdateEntryMethod;
   }
 
+  @io.grpc.ExperimentalApi("https://github.com/grpc/grpc-java/issues/1901")
+  @java.lang.Deprecated // Use {@link #getDeleteEntryMethod()} instead.
+  public static final io.grpc.MethodDescriptor<
+          com.google.cloud.datacatalog.DeleteEntryRequest, com.google.protobuf.Empty>
+      METHOD_DELETE_ENTRY = getDeleteEntryMethodHelper();
+
+  private static volatile io.grpc.MethodDescriptor<
+          com.google.cloud.datacatalog.DeleteEntryRequest, com.google.protobuf.Empty>
+      getDeleteEntryMethod;
+
+  @io.grpc.ExperimentalApi("https://github.com/grpc/grpc-java/issues/1901")
+  public static io.grpc.MethodDescriptor<
+          com.google.cloud.datacatalog.DeleteEntryRequest, com.google.protobuf.Empty>
+      getDeleteEntryMethod() {
+    return getDeleteEntryMethodHelper();
+  }
+
+  private static io.grpc.MethodDescriptor<
+          com.google.cloud.datacatalog.DeleteEntryRequest, com.google.protobuf.Empty>
+      getDeleteEntryMethodHelper() {
+    io.grpc.MethodDescriptor<
+            com.google.cloud.datacatalog.DeleteEntryRequest, com.google.protobuf.Empty>
+        getDeleteEntryMethod;
+    if ((getDeleteEntryMethod = DataCatalogGrpc.getDeleteEntryMethod) == null) {
+      synchronized (DataCatalogGrpc.class) {
+        if ((getDeleteEntryMethod = DataCatalogGrpc.getDeleteEntryMethod) == null) {
+          DataCatalogGrpc.getDeleteEntryMethod =
+              getDeleteEntryMethod =
+                  io.grpc.MethodDescriptor
+                      .<com.google.cloud.datacatalog.DeleteEntryRequest, com.google.protobuf.Empty>
+                          newBuilder()
+                      .setType(io.grpc.MethodDescriptor.MethodType.UNARY)
+                      .setFullMethodName(
+                          generateFullMethodName(
+                              "google.cloud.datacatalog.v1beta1.DataCatalog", "DeleteEntry"))
+                      .setSampledToLocalTracing(true)
+                      .setRequestMarshaller(
+                          io.grpc.protobuf.ProtoUtils.marshaller(
+                              com.google.cloud.datacatalog.DeleteEntryRequest.getDefaultInstance()))
+                      .setResponseMarshaller(
+                          io.grpc.protobuf.ProtoUtils.marshaller(
+                              com.google.protobuf.Empty.getDefaultInstance()))
+                      .setSchemaDescriptor(new DataCatalogMethodDescriptorSupplier("DeleteEntry"))
+                      .build();
+        }
+      }
+    }
+    return getDeleteEntryMethod;
+  }
+
   @io.grpc.ExperimentalApi("https://github.com/grpc/grpc-java/issues/1901")
   @java.lang.Deprecated // Use {@link #getGetEntryMethod()} instead.
   public static final io.grpc.MethodDescriptor<
@@ -1095,7 +1364,7 @@ public abstract static class DataCatalogImplBase implements io.grpc.BindableServ
      * This is a custom method
      * (https://cloud.google.com/apis/design/custom_methods) and does not return
      * the complete resource, only the resource identifier and high level
-     * fields. Clients can subsequentally call Get methods.
+     * fields. Clients can subsequentally call `Get` methods.
      * Note that searches do not have full recall. There may be results that match
      * your query but are not returned, even in subsequent pages of results. These
      * missing results may vary across repeated calls to search. Do not rely on
@@ -1111,11 +1380,79 @@ public void searchCatalog(
       asyncUnimplementedUnaryCall(getSearchCatalogMethodHelper(), responseObserver);
     }
 
+    /**
+     *
+     *
+     * <pre>
+     * Alpha feature.
+     * Creates an EntryGroup.
+     * The user should enable the Data Catalog API in the project identified by
+     * the `parent` parameter (see [Data Catalog Resource Project]
+     * (/data-catalog/docs/concepts/resource-project) for more information).
+     * </pre>
+     */
+    public void createEntryGroup(
+        com.google.cloud.datacatalog.CreateEntryGroupRequest request,
+        io.grpc.stub.StreamObserver<com.google.cloud.datacatalog.EntryGroup> responseObserver) {
+      asyncUnimplementedUnaryCall(getCreateEntryGroupMethodHelper(), responseObserver);
+    }
+
+    /**
+     *
+     *
+     * <pre>
+     * Alpha feature.
+     * Gets an EntryGroup.
+     * </pre>
+     */
+    public void getEntryGroup(
+        com.google.cloud.datacatalog.GetEntryGroupRequest request,
+        io.grpc.stub.StreamObserver<com.google.cloud.datacatalog.EntryGroup> responseObserver) {
+      asyncUnimplementedUnaryCall(getGetEntryGroupMethodHelper(), responseObserver);
+    }
+
+    /**
+     *
+     *
+     * <pre>
+     * Alpha feature.
+     * Deletes an EntryGroup. Only entry groups that do not contain entries can be
+     * deleted. The user should enable the Data Catalog API in the project
+     * identified by the `name` parameter (see [Data Catalog Resource Project]
+     * (/data-catalog/docs/concepts/resource-project) for more information).
+     * </pre>
+     */
+    public void deleteEntryGroup(
+        com.google.cloud.datacatalog.DeleteEntryGroupRequest request,
+        io.grpc.stub.StreamObserver<com.google.protobuf.Empty> responseObserver) {
+      asyncUnimplementedUnaryCall(getDeleteEntryGroupMethodHelper(), responseObserver);
+    }
+
+    /**
+     *
+     *
+     * <pre>
+     * Alpha feature.
+     * Creates an entry. Currently only entries of 'FILESET' type can be created.
+     * The user should enable the Data Catalog API in the project identified by
+     * the `parent` parameter (see [Data Catalog Resource Project]
+     * (/data-catalog/docs/concepts/resource-project) for more information).
+     * </pre>
+     */
+    public void createEntry(
+        com.google.cloud.datacatalog.CreateEntryRequest request,
+        io.grpc.stub.StreamObserver<com.google.cloud.datacatalog.Entry> responseObserver) {
+      asyncUnimplementedUnaryCall(getCreateEntryMethodHelper(), responseObserver);
+    }
+
     /**
      *
      *
      * <pre>
      * Updates an existing entry.
+     * The user should enable the Data Catalog API in the project identified by
+     * the `entry.name` parameter (see [Data Catalog Resource Project]
+     * (/data-catalog/docs/concepts/resource-project) for more information).
      * </pre>
      */
     public void updateEntry(
@@ -1124,6 +1461,25 @@ public void updateEntry(
       asyncUnimplementedUnaryCall(getUpdateEntryMethodHelper(), responseObserver);
     }
 
+    /**
+     *
+     *
+     * <pre>
+     * Alpha feature.
+     * Deletes an existing entry. Only entries created through
+     * [CreateEntry][google.cloud.datacatalog.v1beta1.DataCatalog.CreateEntry]
+     * method can be deleted.
+     * The user should enable the Data Catalog API in the project identified by
+     * the `name` parameter (see [Data Catalog Resource Project]
+     * (/data-catalog/docs/concepts/resource-project) for more information).
+     * </pre>
+     */
+    public void deleteEntry(
+        com.google.cloud.datacatalog.DeleteEntryRequest request,
+        io.grpc.stub.StreamObserver<com.google.protobuf.Empty> responseObserver) {
+      asyncUnimplementedUnaryCall(getDeleteEntryMethodHelper(), responseObserver);
+    }
+
     /**
      *
      *
@@ -1156,7 +1512,10 @@ public void lookupEntry(
      *
      *
      * <pre>
-     * Creates a tag template.
+     * Creates a tag template. The user should enable the Data Catalog API in
+     * the project identified by the `parent` parameter (see [Data Catalog
+     * Resource Project](/data-catalog/docs/concepts/resource-project) for more
+     * information).
      * </pre>
      */
     public void createTagTemplate(
@@ -1185,6 +1544,9 @@ public void getTagTemplate(
      * Updates a tag template. This method cannot be used to update the fields of
      * a template. The tag template fields are represented as separate resources
      * and should be updated using their own create/update/delete methods.
+     * The user should enable the Data Catalog API in the project identified by
+     * the `tag_template.name` parameter (see [Data Catalog Resource Project]
+     * (/data-catalog/docs/concepts/resource-project) for more information).
      * </pre>
      */
     public void updateTagTemplate(
@@ -1198,6 +1560,9 @@ public void updateTagTemplate(
      *
      * <pre>
      * Deletes a tag template and all tags using the template.
+     * The user should enable the Data Catalog API in the project identified by
+     * the `name` parameter (see [Data Catalog Resource Project]
+     * (/data-catalog/docs/concepts/resource-project) for more information).
      * </pre>
      */
     public void deleteTagTemplate(
@@ -1210,7 +1575,11 @@ public void deleteTagTemplate(
      *
      *
      * <pre>
-     * Creates a field in a tag template.
+     * Creates a field in a tag template. The user should enable the Data Catalog
+     * API in the project identified by the `parent` parameter (see
+     * [Data Catalog Resource
+     * Project](/data-catalog/docs/concepts/resource-project) for more
+     * information).
      * </pre>
      */
     public void createTagTemplateField(
@@ -1225,7 +1594,9 @@ public void createTagTemplateField(
      *
      * <pre>
      * Updates a field in a tag template. This method cannot be used to update the
-     * field type.
+     * field type. The user should enable the Data Catalog API in the project
+     * identified by the `name` parameter (see [Data Catalog Resource Project]
+     * (/data-catalog/docs/concepts/resource-project) for more information).
      * </pre>
      */
     public void updateTagTemplateField(
@@ -1239,7 +1610,10 @@ public void updateTagTemplateField(
      *
      *
      * <pre>
-     * Renames a field in a tag template.
+     * Renames a field in a tag template. The user should enable the Data Catalog
+     * API in the project identified by the `name` parameter (see [Data Catalog
+     * Resource Project](/data-catalog/docs/concepts/resource-project) for more
+     * information).
      * </pre>
      */
     public void renameTagTemplateField(
@@ -1254,6 +1628,9 @@ public void renameTagTemplateField(
      *
      * <pre>
      * Deletes a field in a tag template and all uses of that field.
+     * The user should enable the Data Catalog API in the project identified by
+     * the `name` parameter (see [Data Catalog Resource Project]
+     * (/data-catalog/docs/concepts/resource-project) for more information).
      * </pre>
      */
     public void deleteTagTemplateField(
@@ -1267,6 +1644,12 @@ public void deleteTagTemplateField(
      *
      * <pre>
      * Creates a tag on an [Entry][google.cloud.datacatalog.v1beta1.Entry].
+     * Note: The project identified by the `parent` parameter for the
+     * [tag](/data-catalog/docs/reference/rest/v1beta1/projects.locations.entryGroups.entries.tags/create#path-parameters)
+     * and the
+     * [tag
+     * template](/data-catalog/docs/reference/rest/v1beta1/projects.locations.tagTemplates/create#path-parameters)
+     * used to create the tag must be from the same organization.
      * </pre>
      */
     public void createTag(
@@ -1323,11 +1706,16 @@ public void listTags(
      * policy.
      * Supported resources are:
      *   - Tag templates.
+     *   - Entries.
+     *   - Entry groups.
      * Note, this method cannot be used to manage policies for BigQuery, Cloud
      * Pub/Sub and any external Google Cloud Platform resources synced to Cloud
      * Data Catalog.
      * Callers must have following Google IAM permission
-     * `datacatalog.tagTemplates.setIamPolicy` to set policies on tag templates.
+     *   - `datacatalog.tagTemplates.setIamPolicy` to set policies on tag
+     *     templates.
+     *   - `datacatalog.entries.setIamPolicy` to set policies on entries.
+     *   - `datacatalog.entryGroups.setIamPolicy` to set policies on entry groups.
      * </pre>
      */
     public void setIamPolicy(
@@ -1345,11 +1733,16 @@ public void setIamPolicy(
      * if the resource exists but does not have a policy set on it.
      * Supported resources are:
      *   - Tag templates.
+     *   - Entries.
+     *   - Entry groups.
      * Note, this method cannot be used to manage policies for BigQuery, Cloud
      * Pub/Sub and any external Google Cloud Platform resources synced to Cloud
      * Data Catalog.
      * Callers must have following Google IAM permission
-     * `datacatalog.tagTemplates.getIamPolicy` to get policies on tag templates.
+     *   - `datacatalog.tagTemplates.getIamPolicy` to get policies on tag
+     *     templates.
+     *   - `datacatalog.entries.getIamPolicy` to get policies on entries.
+     *   - `datacatalog.entryGroups.getIamPolicy` to get policies on entry groups.
      * </pre>
      */
     public void getIamPolicy(
@@ -1365,8 +1758,10 @@ public void getIamPolicy(
      * Returns the caller's permissions on a resource.
      * If the resource does not exist, an empty set of permissions is returned
      * (We don't return a `NOT_FOUND` error).
-     * Supported resource are:
-     *   - tag templates.
+     * Supported resources are:
+     *   - Tag templates.
+     *   - Entries.
+     *   - Entry groups.
      * Note, this method cannot be used to manage policies for BigQuery, Cloud
      * Pub/Sub and any external Google Cloud Platform resources synced to Cloud
      * Data Catalog.
@@ -1391,12 +1786,42 @@ public final io.grpc.ServerServiceDefinition bindService() {
                       com.google.cloud.datacatalog.SearchCatalogRequest,
                       com.google.cloud.datacatalog.SearchCatalogResponse>(
                       this, METHODID_SEARCH_CATALOG)))
+          .addMethod(
+              getCreateEntryGroupMethodHelper(),
+              asyncUnaryCall(
+                  new MethodHandlers<
+                      com.google.cloud.datacatalog.CreateEntryGroupRequest,
+                      com.google.cloud.datacatalog.EntryGroup>(this, METHODID_CREATE_ENTRY_GROUP)))
+          .addMethod(
+              getGetEntryGroupMethodHelper(),
+              asyncUnaryCall(
+                  new MethodHandlers<
+                      com.google.cloud.datacatalog.GetEntryGroupRequest,
+                      com.google.cloud.datacatalog.EntryGroup>(this, METHODID_GET_ENTRY_GROUP)))
+          .addMethod(
+              getDeleteEntryGroupMethodHelper(),
+              asyncUnaryCall(
+                  new MethodHandlers<
+                      com.google.cloud.datacatalog.DeleteEntryGroupRequest,
+                      com.google.protobuf.Empty>(this, METHODID_DELETE_ENTRY_GROUP)))
+          .addMethod(
+              getCreateEntryMethodHelper(),
+              asyncUnaryCall(
+                  new MethodHandlers<
+                      com.google.cloud.datacatalog.CreateEntryRequest,
+                      com.google.cloud.datacatalog.Entry>(this, METHODID_CREATE_ENTRY)))
           .addMethod(
               getUpdateEntryMethodHelper(),
               asyncUnaryCall(
                   new MethodHandlers<
                       com.google.cloud.datacatalog.UpdateEntryRequest,
                       com.google.cloud.datacatalog.Entry>(this, METHODID_UPDATE_ENTRY)))
+          .addMethod(
+              getDeleteEntryMethodHelper(),
+              asyncUnaryCall(
+                  new MethodHandlers<
+                      com.google.cloud.datacatalog.DeleteEntryRequest, com.google.protobuf.Empty>(
+                      this, METHODID_DELETE_ENTRY)))
           .addMethod(
               getGetEntryMethodHelper(),
               asyncUnaryCall(
@@ -1540,7 +1965,7 @@ protected DataCatalogStub build(io.grpc.Channel channel, io.grpc.CallOptions cal
      * This is a custom method
      * (https://cloud.google.com/apis/design/custom_methods) and does not return
      * the complete resource, only the resource identifier and high level
-     * fields. Clients can subsequentally call Get methods.
+     * fields. Clients can subsequentally call `Get` methods.
      * Note that searches do not have full recall. There may be results that match
      * your query but are not returned, even in subsequent pages of results. These
      * missing results may vary across repeated calls to search. Do not rely on
@@ -1559,11 +1984,91 @@ public void searchCatalog(
           responseObserver);
     }
 
+    /**
+     *
+     *
+     * <pre>
+     * Alpha feature.
+     * Creates an EntryGroup.
+     * The user should enable the Data Catalog API in the project identified by
+     * the `parent` parameter (see [Data Catalog Resource Project]
+     * (/data-catalog/docs/concepts/resource-project) for more information).
+     * </pre>
+     */
+    public void createEntryGroup(
+        com.google.cloud.datacatalog.CreateEntryGroupRequest request,
+        io.grpc.stub.StreamObserver<com.google.cloud.datacatalog.EntryGroup> responseObserver) {
+      asyncUnaryCall(
+          getChannel().newCall(getCreateEntryGroupMethodHelper(), getCallOptions()),
+          request,
+          responseObserver);
+    }
+
+    /**
+     *
+     *
+     * <pre>
+     * Alpha feature.
+     * Gets an EntryGroup.
+     * </pre>
+     */
+    public void getEntryGroup(
+        com.google.cloud.datacatalog.GetEntryGroupRequest request,
+        io.grpc.stub.StreamObserver<com.google.cloud.datacatalog.EntryGroup> responseObserver) {
+      asyncUnaryCall(
+          getChannel().newCall(getGetEntryGroupMethodHelper(), getCallOptions()),
+          request,
+          responseObserver);
+    }
+
+    /**
+     *
+     *
+     * <pre>
+     * Alpha feature.
+     * Deletes an EntryGroup. Only entry groups that do not contain entries can be
+     * deleted. The user should enable the Data Catalog API in the project
+     * identified by the `name` parameter (see [Data Catalog Resource Project]
+     * (/data-catalog/docs/concepts/resource-project) for more information).
+     * </pre>
+     */
+    public void deleteEntryGroup(
+        com.google.cloud.datacatalog.DeleteEntryGroupRequest request,
+        io.grpc.stub.StreamObserver<com.google.protobuf.Empty> responseObserver) {
+      asyncUnaryCall(
+          getChannel().newCall(getDeleteEntryGroupMethodHelper(), getCallOptions()),
+          request,
+          responseObserver);
+    }
+
+    /**
+     *
+     *
+     * <pre>
+     * Alpha feature.
+     * Creates an entry. Currently only entries of 'FILESET' type can be created.
+     * The user should enable the Data Catalog API in the project identified by
+     * the `parent` parameter (see [Data Catalog Resource Project]
+     * (/data-catalog/docs/concepts/resource-project) for more information).
+     * </pre>
+     */
+    public void createEntry(
+        com.google.cloud.datacatalog.CreateEntryRequest request,
+        io.grpc.stub.StreamObserver<com.google.cloud.datacatalog.Entry> responseObserver) {
+      asyncUnaryCall(
+          getChannel().newCall(getCreateEntryMethodHelper(), getCallOptions()),
+          request,
+          responseObserver);
+    }
+
     /**
      *
      *
      * <pre>
      * Updates an existing entry.
+     * The user should enable the Data Catalog API in the project identified by
+     * the `entry.name` parameter (see [Data Catalog Resource Project]
+     * (/data-catalog/docs/concepts/resource-project) for more information).
      * </pre>
      */
     public void updateEntry(
@@ -1575,6 +2080,28 @@ public void updateEntry(
           responseObserver);
     }
 
+    /**
+     *
+     *
+     * <pre>
+     * Alpha feature.
+     * Deletes an existing entry. Only entries created through
+     * [CreateEntry][google.cloud.datacatalog.v1beta1.DataCatalog.CreateEntry]
+     * method can be deleted.
+     * The user should enable the Data Catalog API in the project identified by
+     * the `name` parameter (see [Data Catalog Resource Project]
+     * (/data-catalog/docs/concepts/resource-project) for more information).
+     * </pre>
+     */
+    public void deleteEntry(
+        com.google.cloud.datacatalog.DeleteEntryRequest request,
+        io.grpc.stub.StreamObserver<com.google.protobuf.Empty> responseObserver) {
+      asyncUnaryCall(
+          getChannel().newCall(getDeleteEntryMethodHelper(), getCallOptions()),
+          request,
+          responseObserver);
+    }
+
     /**
      *
      *
@@ -1613,7 +2140,10 @@ public void lookupEntry(
      *
      *
      * <pre>
-     * Creates a tag template.
+     * Creates a tag template. The user should enable the Data Catalog API in
+     * the project identified by the `parent` parameter (see [Data Catalog
+     * Resource Project](/data-catalog/docs/concepts/resource-project) for more
+     * information).
      * </pre>
      */
     public void createTagTemplate(
@@ -1648,6 +2178,9 @@ public void getTagTemplate(
      * Updates a tag template. This method cannot be used to update the fields of
      * a template. The tag template fields are represented as separate resources
      * and should be updated using their own create/update/delete methods.
+     * The user should enable the Data Catalog API in the project identified by
+     * the `tag_template.name` parameter (see [Data Catalog Resource Project]
+     * (/data-catalog/docs/concepts/resource-project) for more information).
      * </pre>
      */
     public void updateTagTemplate(
@@ -1664,6 +2197,9 @@ public void updateTagTemplate(
      *
      * <pre>
      * Deletes a tag template and all tags using the template.
+     * The user should enable the Data Catalog API in the project identified by
+     * the `name` parameter (see [Data Catalog Resource Project]
+     * (/data-catalog/docs/concepts/resource-project) for more information).
      * </pre>
      */
     public void deleteTagTemplate(
@@ -1679,7 +2215,11 @@ public void deleteTagTemplate(
      *
      *
      * <pre>
-     * Creates a field in a tag template.
+     * Creates a field in a tag template. The user should enable the Data Catalog
+     * API in the project identified by the `parent` parameter (see
+     * [Data Catalog Resource
+     * Project](/data-catalog/docs/concepts/resource-project) for more
+     * information).
      * </pre>
      */
     public void createTagTemplateField(
@@ -1697,7 +2237,9 @@ public void createTagTemplateField(
      *
      * <pre>
      * Updates a field in a tag template. This method cannot be used to update the
-     * field type.
+     * field type. The user should enable the Data Catalog API in the project
+     * identified by the `name` parameter (see [Data Catalog Resource Project]
+     * (/data-catalog/docs/concepts/resource-project) for more information).
      * </pre>
      */
     public void updateTagTemplateField(
@@ -1714,7 +2256,10 @@ public void updateTagTemplateField(
      *
      *
      * <pre>
-     * Renames a field in a tag template.
+     * Renames a field in a tag template. The user should enable the Data Catalog
+     * API in the project identified by the `name` parameter (see [Data Catalog
+     * Resource Project](/data-catalog/docs/concepts/resource-project) for more
+     * information).
      * </pre>
      */
     public void renameTagTemplateField(
@@ -1732,6 +2277,9 @@ public void renameTagTemplateField(
      *
      * <pre>
      * Deletes a field in a tag template and all uses of that field.
+     * The user should enable the Data Catalog API in the project identified by
+     * the `name` parameter (see [Data Catalog Resource Project]
+     * (/data-catalog/docs/concepts/resource-project) for more information).
      * </pre>
      */
     public void deleteTagTemplateField(
@@ -1748,6 +2296,12 @@ public void deleteTagTemplateField(
      *
      * <pre>
      * Creates a tag on an [Entry][google.cloud.datacatalog.v1beta1.Entry].
+     * Note: The project identified by the `parent` parameter for the
+     * [tag](/data-catalog/docs/reference/rest/v1beta1/projects.locations.entryGroups.entries.tags/create#path-parameters)
+     * and the
+     * [tag
+     * template](/data-catalog/docs/reference/rest/v1beta1/projects.locations.tagTemplates/create#path-parameters)
+     * used to create the tag must be from the same organization.
      * </pre>
      */
     public void createTag(
@@ -1816,11 +2370,16 @@ public void listTags(
      * policy.
      * Supported resources are:
      *   - Tag templates.
+     *   - Entries.
+     *   - Entry groups.
      * Note, this method cannot be used to manage policies for BigQuery, Cloud
      * Pub/Sub and any external Google Cloud Platform resources synced to Cloud
      * Data Catalog.
      * Callers must have following Google IAM permission
-     * `datacatalog.tagTemplates.setIamPolicy` to set policies on tag templates.
+     *   - `datacatalog.tagTemplates.setIamPolicy` to set policies on tag
+     *     templates.
+     *   - `datacatalog.entries.setIamPolicy` to set policies on entries.
+     *   - `datacatalog.entryGroups.setIamPolicy` to set policies on entry groups.
      * </pre>
      */
     public void setIamPolicy(
@@ -1841,11 +2400,16 @@ public void setIamPolicy(
      * if the resource exists but does not have a policy set on it.
      * Supported resources are:
      *   - Tag templates.
+     *   - Entries.
+     *   - Entry groups.
      * Note, this method cannot be used to manage policies for BigQuery, Cloud
      * Pub/Sub and any external Google Cloud Platform resources synced to Cloud
      * Data Catalog.
      * Callers must have following Google IAM permission
-     * `datacatalog.tagTemplates.getIamPolicy` to get policies on tag templates.
+     *   - `datacatalog.tagTemplates.getIamPolicy` to get policies on tag
+     *     templates.
+     *   - `datacatalog.entries.getIamPolicy` to get policies on entries.
+     *   - `datacatalog.entryGroups.getIamPolicy` to get policies on entry groups.
      * </pre>
      */
     public void getIamPolicy(
@@ -1864,8 +2428,10 @@ public void getIamPolicy(
      * Returns the caller's permissions on a resource.
      * If the resource does not exist, an empty set of permissions is returned
      * (We don't return a `NOT_FOUND` error).
-     * Supported resource are:
-     *   - tag templates.
+     * Supported resources are:
+     *   - Tag templates.
+     *   - Entries.
+     *   - Entry groups.
      * Note, this method cannot be used to manage policies for BigQuery, Cloud
      * Pub/Sub and any external Google Cloud Platform resources synced to Cloud
      * Data Catalog.
@@ -1917,7 +2483,7 @@ protected DataCatalogBlockingStub build(
      * This is a custom method
      * (https://cloud.google.com/apis/design/custom_methods) and does not return
      * the complete resource, only the resource identifier and high level
-     * fields. Clients can subsequentally call Get methods.
+     * fields. Clients can subsequentally call `Get` methods.
      * Note that searches do not have full recall. There may be results that match
      * your query but are not returned, even in subsequent pages of results. These
      * missing results may vary across repeated calls to search. Do not rely on
@@ -1932,11 +2498,79 @@ public com.google.cloud.datacatalog.SearchCatalogResponse searchCatalog(
           getChannel(), getSearchCatalogMethodHelper(), getCallOptions(), request);
     }
 
+    /**
+     *
+     *
+     * <pre>
+     * Alpha feature.
+     * Creates an EntryGroup.
+     * The user should enable the Data Catalog API in the project identified by
+     * the `parent` parameter (see [Data Catalog Resource Project]
+     * (/data-catalog/docs/concepts/resource-project) for more information).
+     * </pre>
+     */
+    public com.google.cloud.datacatalog.EntryGroup createEntryGroup(
+        com.google.cloud.datacatalog.CreateEntryGroupRequest request) {
+      return blockingUnaryCall(
+          getChannel(), getCreateEntryGroupMethodHelper(), getCallOptions(), request);
+    }
+
+    /**
+     *
+     *
+     * <pre>
+     * Alpha feature.
+     * Gets an EntryGroup.
+     * </pre>
+     */
+    public com.google.cloud.datacatalog.EntryGroup getEntryGroup(
+        com.google.cloud.datacatalog.GetEntryGroupRequest request) {
+      return blockingUnaryCall(
+          getChannel(), getGetEntryGroupMethodHelper(), getCallOptions(), request);
+    }
+
+    /**
+     *
+     *
+     * <pre>
+     * Alpha feature.
+     * Deletes an EntryGroup. Only entry groups that do not contain entries can be
+     * deleted. The user should enable the Data Catalog API in the project
+     * identified by the `name` parameter (see [Data Catalog Resource Project]
+     * (/data-catalog/docs/concepts/resource-project) for more information).
+     * </pre>
+     */
+    public com.google.protobuf.Empty deleteEntryGroup(
+        com.google.cloud.datacatalog.DeleteEntryGroupRequest request) {
+      return blockingUnaryCall(
+          getChannel(), getDeleteEntryGroupMethodHelper(), getCallOptions(), request);
+    }
+
+    /**
+     *
+     *
+     * <pre>
+     * Alpha feature.
+     * Creates an entry. Currently only entries of 'FILESET' type can be created.
+     * The user should enable the Data Catalog API in the project identified by
+     * the `parent` parameter (see [Data Catalog Resource Project]
+     * (/data-catalog/docs/concepts/resource-project) for more information).
+     * </pre>
+     */
+    public com.google.cloud.datacatalog.Entry createEntry(
+        com.google.cloud.datacatalog.CreateEntryRequest request) {
+      return blockingUnaryCall(
+          getChannel(), getCreateEntryMethodHelper(), getCallOptions(), request);
+    }
+
     /**
      *
      *
      * <pre>
      * Updates an existing entry.
+     * The user should enable the Data Catalog API in the project identified by
+     * the `entry.name` parameter (see [Data Catalog Resource Project]
+     * (/data-catalog/docs/concepts/resource-project) for more information).
      * </pre>
      */
     public com.google.cloud.datacatalog.Entry updateEntry(
@@ -1945,6 +2579,25 @@ public com.google.cloud.datacatalog.Entry updateEntry(
           getChannel(), getUpdateEntryMethodHelper(), getCallOptions(), request);
     }
 
+    /**
+     *
+     *
+     * <pre>
+     * Alpha feature.
+     * Deletes an existing entry. Only entries created through
+     * [CreateEntry][google.cloud.datacatalog.v1beta1.DataCatalog.CreateEntry]
+     * method can be deleted.
+     * The user should enable the Data Catalog API in the project identified by
+     * the `name` parameter (see [Data Catalog Resource Project]
+     * (/data-catalog/docs/concepts/resource-project) for more information).
+     * </pre>
+     */
+    public com.google.protobuf.Empty deleteEntry(
+        com.google.cloud.datacatalog.DeleteEntryRequest request) {
+      return blockingUnaryCall(
+          getChannel(), getDeleteEntryMethodHelper(), getCallOptions(), request);
+    }
+
     /**
      *
      *
@@ -1976,7 +2629,10 @@ public com.google.cloud.datacatalog.Entry lookupEntry(
      *
      *
      * <pre>
-     * Creates a tag template.
+     * Creates a tag template. The user should enable the Data Catalog API in
+     * the project identified by the `parent` parameter (see [Data Catalog
+     * Resource Project](/data-catalog/docs/concepts/resource-project) for more
+     * information).
      * </pre>
      */
     public com.google.cloud.datacatalog.TagTemplate createTagTemplate(
@@ -2005,6 +2661,9 @@ public com.google.cloud.datacatalog.TagTemplate getTagTemplate(
      * Updates a tag template. This method cannot be used to update the fields of
      * a template. The tag template fields are represented as separate resources
      * and should be updated using their own create/update/delete methods.
+     * The user should enable the Data Catalog API in the project identified by
+     * the `tag_template.name` parameter (see [Data Catalog Resource Project]
+     * (/data-catalog/docs/concepts/resource-project) for more information).
      * </pre>
      */
     public com.google.cloud.datacatalog.TagTemplate updateTagTemplate(
@@ -2018,6 +2677,9 @@ public com.google.cloud.datacatalog.TagTemplate updateTagTemplate(
      *
      * <pre>
      * Deletes a tag template and all tags using the template.
+     * The user should enable the Data Catalog API in the project identified by
+     * the `name` parameter (see [Data Catalog Resource Project]
+     * (/data-catalog/docs/concepts/resource-project) for more information).
      * </pre>
      */
     public com.google.protobuf.Empty deleteTagTemplate(
@@ -2030,7 +2692,11 @@ public com.google.protobuf.Empty deleteTagTemplate(
      *
      *
      * <pre>
-     * Creates a field in a tag template.
+     * Creates a field in a tag template. The user should enable the Data Catalog
+     * API in the project identified by the `parent` parameter (see
+     * [Data Catalog Resource
+     * Project](/data-catalog/docs/concepts/resource-project) for more
+     * information).
      * </pre>
      */
     public com.google.cloud.datacatalog.TagTemplateField createTagTemplateField(
@@ -2044,7 +2710,9 @@ public com.google.cloud.datacatalog.TagTemplateField createTagTemplateField(
      *
      * <pre>
      * Updates a field in a tag template. This method cannot be used to update the
-     * field type.
+     * field type. The user should enable the Data Catalog API in the project
+     * identified by the `name` parameter (see [Data Catalog Resource Project]
+     * (/data-catalog/docs/concepts/resource-project) for more information).
      * </pre>
      */
     public com.google.cloud.datacatalog.TagTemplateField updateTagTemplateField(
@@ -2057,7 +2725,10 @@ public com.google.cloud.datacatalog.TagTemplateField updateTagTemplateField(
      *
      *
      * <pre>
-     * Renames a field in a tag template.
+     * Renames a field in a tag template. The user should enable the Data Catalog
+     * API in the project identified by the `name` parameter (see [Data Catalog
+     * Resource Project](/data-catalog/docs/concepts/resource-project) for more
+     * information).
      * </pre>
      */
     public com.google.cloud.datacatalog.TagTemplateField renameTagTemplateField(
@@ -2071,6 +2742,9 @@ public com.google.cloud.datacatalog.TagTemplateField renameTagTemplateField(
      *
      * <pre>
      * Deletes a field in a tag template and all uses of that field.
+     * The user should enable the Data Catalog API in the project identified by
+     * the `name` parameter (see [Data Catalog Resource Project]
+     * (/data-catalog/docs/concepts/resource-project) for more information).
      * </pre>
      */
     public com.google.protobuf.Empty deleteTagTemplateField(
@@ -2084,6 +2758,12 @@ public com.google.protobuf.Empty deleteTagTemplateField(
      *
      * <pre>
      * Creates a tag on an [Entry][google.cloud.datacatalog.v1beta1.Entry].
+     * Note: The project identified by the `parent` parameter for the
+     * [tag](/data-catalog/docs/reference/rest/v1beta1/projects.locations.entryGroups.entries.tags/create#path-parameters)
+     * and the
+     * [tag
+     * template](/data-catalog/docs/reference/rest/v1beta1/projects.locations.tagTemplates/create#path-parameters)
+     * used to create the tag must be from the same organization.
      * </pre>
      */
     public com.google.cloud.datacatalog.Tag createTag(
@@ -2135,11 +2815,16 @@ public com.google.cloud.datacatalog.ListTagsResponse listTags(
      * policy.
      * Supported resources are:
      *   - Tag templates.
+     *   - Entries.
+     *   - Entry groups.
      * Note, this method cannot be used to manage policies for BigQuery, Cloud
      * Pub/Sub and any external Google Cloud Platform resources synced to Cloud
      * Data Catalog.
      * Callers must have following Google IAM permission
-     * `datacatalog.tagTemplates.setIamPolicy` to set policies on tag templates.
+     *   - `datacatalog.tagTemplates.setIamPolicy` to set policies on tag
+     *     templates.
+     *   - `datacatalog.entries.setIamPolicy` to set policies on entries.
+     *   - `datacatalog.entryGroups.setIamPolicy` to set policies on entry groups.
      * </pre>
      */
     public com.google.iam.v1.Policy setIamPolicy(com.google.iam.v1.SetIamPolicyRequest request) {
@@ -2156,11 +2841,16 @@ public com.google.iam.v1.Policy setIamPolicy(com.google.iam.v1.SetIamPolicyReque
      * if the resource exists but does not have a policy set on it.
      * Supported resources are:
      *   - Tag templates.
+     *   - Entries.
+     *   - Entry groups.
      * Note, this method cannot be used to manage policies for BigQuery, Cloud
      * Pub/Sub and any external Google Cloud Platform resources synced to Cloud
      * Data Catalog.
      * Callers must have following Google IAM permission
-     * `datacatalog.tagTemplates.getIamPolicy` to get policies on tag templates.
+     *   - `datacatalog.tagTemplates.getIamPolicy` to get policies on tag
+     *     templates.
+     *   - `datacatalog.entries.getIamPolicy` to get policies on entries.
+     *   - `datacatalog.entryGroups.getIamPolicy` to get policies on entry groups.
      * </pre>
      */
     public com.google.iam.v1.Policy getIamPolicy(com.google.iam.v1.GetIamPolicyRequest request) {
@@ -2175,8 +2865,10 @@ public com.google.iam.v1.Policy getIamPolicy(com.google.iam.v1.GetIamPolicyReque
      * Returns the caller's permissions on a resource.
      * If the resource does not exist, an empty set of permissions is returned
      * (We don't return a `NOT_FOUND` error).
-     * Supported resource are:
-     *   - tag templates.
+     * Supported resources are:
+     *   - Tag templates.
+     *   - Entries.
+     *   - Entry groups.
      * Note, this method cannot be used to manage policies for BigQuery, Cloud
      * Pub/Sub and any external Google Cloud Platform resources synced to Cloud
      * Data Catalog.
@@ -2224,7 +2916,7 @@ protected DataCatalogFutureStub build(
      * This is a custom method
      * (https://cloud.google.com/apis/design/custom_methods) and does not return
      * the complete resource, only the resource identifier and high level
-     * fields. Clients can subsequentally call Get methods.
+     * fields. Clients can subsequentally call `Get` methods.
      * Note that searches do not have full recall. There may be results that match
      * your query but are not returned, even in subsequent pages of results. These
      * missing results may vary across repeated calls to search. Do not rely on
@@ -2240,11 +2932,81 @@ protected DataCatalogFutureStub build(
           getChannel().newCall(getSearchCatalogMethodHelper(), getCallOptions()), request);
     }
 
+    /**
+     *
+     *
+     * <pre>
+     * Alpha feature.
+     * Creates an EntryGroup.
+     * The user should enable the Data Catalog API in the project identified by
+     * the `parent` parameter (see [Data Catalog Resource Project]
+     * (/data-catalog/docs/concepts/resource-project) for more information).
+     * </pre>
+     */
+    public com.google.common.util.concurrent.ListenableFuture<
+            com.google.cloud.datacatalog.EntryGroup>
+        createEntryGroup(com.google.cloud.datacatalog.CreateEntryGroupRequest request) {
+      return futureUnaryCall(
+          getChannel().newCall(getCreateEntryGroupMethodHelper(), getCallOptions()), request);
+    }
+
+    /**
+     *
+     *
+     * <pre>
+     * Alpha feature.
+     * Gets an EntryGroup.
+     * </pre>
+     */
+    public com.google.common.util.concurrent.ListenableFuture<
+            com.google.cloud.datacatalog.EntryGroup>
+        getEntryGroup(com.google.cloud.datacatalog.GetEntryGroupRequest request) {
+      return futureUnaryCall(
+          getChannel().newCall(getGetEntryGroupMethodHelper(), getCallOptions()), request);
+    }
+
+    /**
+     *
+     *
+     * <pre>
+     * Alpha feature.
+     * Deletes an EntryGroup. Only entry groups that do not contain entries can be
+     * deleted. The user should enable the Data Catalog API in the project
+     * identified by the `name` parameter (see [Data Catalog Resource Project]
+     * (/data-catalog/docs/concepts/resource-project) for more information).
+     * </pre>
+     */
+    public com.google.common.util.concurrent.ListenableFuture<com.google.protobuf.Empty>
+        deleteEntryGroup(com.google.cloud.datacatalog.DeleteEntryGroupRequest request) {
+      return futureUnaryCall(
+          getChannel().newCall(getDeleteEntryGroupMethodHelper(), getCallOptions()), request);
+    }
+
+    /**
+     *
+     *
+     * <pre>
+     * Alpha feature.
+     * Creates an entry. Currently only entries of 'FILESET' type can be created.
+     * The user should enable the Data Catalog API in the project identified by
+     * the `parent` parameter (see [Data Catalog Resource Project]
+     * (/data-catalog/docs/concepts/resource-project) for more information).
+     * </pre>
+     */
+    public com.google.common.util.concurrent.ListenableFuture<com.google.cloud.datacatalog.Entry>
+        createEntry(com.google.cloud.datacatalog.CreateEntryRequest request) {
+      return futureUnaryCall(
+          getChannel().newCall(getCreateEntryMethodHelper(), getCallOptions()), request);
+    }
+
     /**
      *
      *
      * <pre>
      * Updates an existing entry.
+     * The user should enable the Data Catalog API in the project identified by
+     * the `entry.name` parameter (see [Data Catalog Resource Project]
+     * (/data-catalog/docs/concepts/resource-project) for more information).
      * </pre>
      */
     public com.google.common.util.concurrent.ListenableFuture<com.google.cloud.datacatalog.Entry>
@@ -2253,6 +3015,25 @@ protected DataCatalogFutureStub build(
           getChannel().newCall(getUpdateEntryMethodHelper(), getCallOptions()), request);
     }
 
+    /**
+     *
+     *
+     * <pre>
+     * Alpha feature.
+     * Deletes an existing entry. Only entries created through
+     * [CreateEntry][google.cloud.datacatalog.v1beta1.DataCatalog.CreateEntry]
+     * method can be deleted.
+     * The user should enable the Data Catalog API in the project identified by
+     * the `name` parameter (see [Data Catalog Resource Project]
+     * (/data-catalog/docs/concepts/resource-project) for more information).
+     * </pre>
+     */
+    public com.google.common.util.concurrent.ListenableFuture<com.google.protobuf.Empty>
+        deleteEntry(com.google.cloud.datacatalog.DeleteEntryRequest request) {
+      return futureUnaryCall(
+          getChannel().newCall(getDeleteEntryMethodHelper(), getCallOptions()), request);
+    }
+
     /**
      *
      *
@@ -2285,7 +3066,10 @@ protected DataCatalogFutureStub build(
      *
      *
      * <pre>
-     * Creates a tag template.
+     * Creates a tag template. The user should enable the Data Catalog API in
+     * the project identified by the `parent` parameter (see [Data Catalog
+     * Resource Project](/data-catalog/docs/concepts/resource-project) for more
+     * information).
      * </pre>
      */
     public com.google.common.util.concurrent.ListenableFuture<
@@ -2316,6 +3100,9 @@ protected DataCatalogFutureStub build(
      * Updates a tag template. This method cannot be used to update the fields of
      * a template. The tag template fields are represented as separate resources
      * and should be updated using their own create/update/delete methods.
+     * The user should enable the Data Catalog API in the project identified by
+     * the `tag_template.name` parameter (see [Data Catalog Resource Project]
+     * (/data-catalog/docs/concepts/resource-project) for more information).
      * </pre>
      */
     public com.google.common.util.concurrent.ListenableFuture<
@@ -2330,6 +3117,9 @@ protected DataCatalogFutureStub build(
      *
      * <pre>
      * Deletes a tag template and all tags using the template.
+     * The user should enable the Data Catalog API in the project identified by
+     * the `name` parameter (see [Data Catalog Resource Project]
+     * (/data-catalog/docs/concepts/resource-project) for more information).
      * </pre>
      */
     public com.google.common.util.concurrent.ListenableFuture<com.google.protobuf.Empty>
@@ -2342,7 +3132,11 @@ protected DataCatalogFutureStub build(
      *
      *
      * <pre>
-     * Creates a field in a tag template.
+     * Creates a field in a tag template. The user should enable the Data Catalog
+     * API in the project identified by the `parent` parameter (see
+     * [Data Catalog Resource
+     * Project](/data-catalog/docs/concepts/resource-project) for more
+     * information).
      * </pre>
      */
     public com.google.common.util.concurrent.ListenableFuture<
@@ -2357,7 +3151,9 @@ protected DataCatalogFutureStub build(
      *
      * <pre>
      * Updates a field in a tag template. This method cannot be used to update the
-     * field type.
+     * field type. The user should enable the Data Catalog API in the project
+     * identified by the `name` parameter (see [Data Catalog Resource Project]
+     * (/data-catalog/docs/concepts/resource-project) for more information).
      * </pre>
      */
     public com.google.common.util.concurrent.ListenableFuture<
@@ -2371,7 +3167,10 @@ protected DataCatalogFutureStub build(
      *
      *
      * <pre>
-     * Renames a field in a tag template.
+     * Renames a field in a tag template. The user should enable the Data Catalog
+     * API in the project identified by the `name` parameter (see [Data Catalog
+     * Resource Project](/data-catalog/docs/concepts/resource-project) for more
+     * information).
      * </pre>
      */
     public com.google.common.util.concurrent.ListenableFuture<
@@ -2386,6 +3185,9 @@ protected DataCatalogFutureStub build(
      *
      * <pre>
      * Deletes a field in a tag template and all uses of that field.
+     * The user should enable the Data Catalog API in the project identified by
+     * the `name` parameter (see [Data Catalog Resource Project]
+     * (/data-catalog/docs/concepts/resource-project) for more information).
      * </pre>
      */
     public com.google.common.util.concurrent.ListenableFuture<com.google.protobuf.Empty>
@@ -2399,6 +3201,12 @@ protected DataCatalogFutureStub build(
      *
      * <pre>
      * Creates a tag on an [Entry][google.cloud.datacatalog.v1beta1.Entry].
+     * Note: The project identified by the `parent` parameter for the
+     * [tag](/data-catalog/docs/reference/rest/v1beta1/projects.locations.entryGroups.entries.tags/create#path-parameters)
+     * and the
+     * [tag
+     * template](/data-catalog/docs/reference/rest/v1beta1/projects.locations.tagTemplates/create#path-parameters)
+     * used to create the tag must be from the same organization.
      * </pre>
      */
     public com.google.common.util.concurrent.ListenableFuture<com.google.cloud.datacatalog.Tag>
@@ -2455,11 +3263,16 @@ public com.google.common.util.concurrent.ListenableFuture<com.google.protobuf.Em
      * policy.
      * Supported resources are:
      *   - Tag templates.
+     *   - Entries.
+     *   - Entry groups.
      * Note, this method cannot be used to manage policies for BigQuery, Cloud
      * Pub/Sub and any external Google Cloud Platform resources synced to Cloud
      * Data Catalog.
      * Callers must have following Google IAM permission
-     * `datacatalog.tagTemplates.setIamPolicy` to set policies on tag templates.
+     *   - `datacatalog.tagTemplates.setIamPolicy` to set policies on tag
+     *     templates.
+     *   - `datacatalog.entries.setIamPolicy` to set policies on entries.
+     *   - `datacatalog.entryGroups.setIamPolicy` to set policies on entry groups.
      * </pre>
      */
     public com.google.common.util.concurrent.ListenableFuture<com.google.iam.v1.Policy>
@@ -2477,11 +3290,16 @@ public com.google.common.util.concurrent.ListenableFuture<com.google.protobuf.Em
      * if the resource exists but does not have a policy set on it.
      * Supported resources are:
      *   - Tag templates.
+     *   - Entries.
+     *   - Entry groups.
      * Note, this method cannot be used to manage policies for BigQuery, Cloud
      * Pub/Sub and any external Google Cloud Platform resources synced to Cloud
      * Data Catalog.
      * Callers must have following Google IAM permission
-     * `datacatalog.tagTemplates.getIamPolicy` to get policies on tag templates.
+     *   - `datacatalog.tagTemplates.getIamPolicy` to get policies on tag
+     *     templates.
+     *   - `datacatalog.entries.getIamPolicy` to get policies on entries.
+     *   - `datacatalog.entryGroups.getIamPolicy` to get policies on entry groups.
      * </pre>
      */
     public com.google.common.util.concurrent.ListenableFuture<com.google.iam.v1.Policy>
@@ -2497,8 +3315,10 @@ public com.google.common.util.concurrent.ListenableFuture<com.google.protobuf.Em
      * Returns the caller's permissions on a resource.
      * If the resource does not exist, an empty set of permissions is returned
      * (We don't return a `NOT_FOUND` error).
-     * Supported resource are:
-     *   - tag templates.
+     * Supported resources are:
+     *   - Tag templates.
+     *   - Entries.
+     *   - Entry groups.
      * Note, this method cannot be used to manage policies for BigQuery, Cloud
      * Pub/Sub and any external Google Cloud Platform resources synced to Cloud
      * Data Catalog.
@@ -2515,24 +3335,29 @@ public com.google.common.util.concurrent.ListenableFuture<com.google.protobuf.Em
   }
 
   private static final int METHODID_SEARCH_CATALOG = 0;
-  private static final int METHODID_UPDATE_ENTRY = 1;
-  private static final int METHODID_GET_ENTRY = 2;
-  private static final int METHODID_LOOKUP_ENTRY = 3;
-  private static final int METHODID_CREATE_TAG_TEMPLATE = 4;
-  private static final int METHODID_GET_TAG_TEMPLATE = 5;
-  private static final int METHODID_UPDATE_TAG_TEMPLATE = 6;
-  private static final int METHODID_DELETE_TAG_TEMPLATE = 7;
-  private static final int METHODID_CREATE_TAG_TEMPLATE_FIELD = 8;
-  private static final int METHODID_UPDATE_TAG_TEMPLATE_FIELD = 9;
-  private static final int METHODID_RENAME_TAG_TEMPLATE_FIELD = 10;
-  private static final int METHODID_DELETE_TAG_TEMPLATE_FIELD = 11;
-  private static final int METHODID_CREATE_TAG = 12;
-  private static final int METHODID_UPDATE_TAG = 13;
-  private static final int METHODID_DELETE_TAG = 14;
-  private static final int METHODID_LIST_TAGS = 15;
-  private static final int METHODID_SET_IAM_POLICY = 16;
-  private static final int METHODID_GET_IAM_POLICY = 17;
-  private static final int METHODID_TEST_IAM_PERMISSIONS = 18;
+  private static final int METHODID_CREATE_ENTRY_GROUP = 1;
+  private static final int METHODID_GET_ENTRY_GROUP = 2;
+  private static final int METHODID_DELETE_ENTRY_GROUP = 3;
+  private static final int METHODID_CREATE_ENTRY = 4;
+  private static final int METHODID_UPDATE_ENTRY = 5;
+  private static final int METHODID_DELETE_ENTRY = 6;
+  private static final int METHODID_GET_ENTRY = 7;
+  private static final int METHODID_LOOKUP_ENTRY = 8;
+  private static final int METHODID_CREATE_TAG_TEMPLATE = 9;
+  private static final int METHODID_GET_TAG_TEMPLATE = 10;
+  private static final int METHODID_UPDATE_TAG_TEMPLATE = 11;
+  private static final int METHODID_DELETE_TAG_TEMPLATE = 12;
+  private static final int METHODID_CREATE_TAG_TEMPLATE_FIELD = 13;
+  private static final int METHODID_UPDATE_TAG_TEMPLATE_FIELD = 14;
+  private static final int METHODID_RENAME_TAG_TEMPLATE_FIELD = 15;
+  private static final int METHODID_DELETE_TAG_TEMPLATE_FIELD = 16;
+  private static final int METHODID_CREATE_TAG = 17;
+  private static final int METHODID_UPDATE_TAG = 18;
+  private static final int METHODID_DELETE_TAG = 19;
+  private static final int METHODID_LIST_TAGS = 20;
+  private static final int METHODID_SET_IAM_POLICY = 21;
+  private static final int METHODID_GET_IAM_POLICY = 22;
+  private static final int METHODID_TEST_IAM_PERMISSIONS = 23;
 
   private static final class MethodHandlers<Req, Resp>
       implements io.grpc.stub.ServerCalls.UnaryMethod<Req, Resp>,
@@ -2557,11 +3382,38 @@ public void invoke(Req request, io.grpc.stub.StreamObserver<Resp> responseObserv
               (io.grpc.stub.StreamObserver<com.google.cloud.datacatalog.SearchCatalogResponse>)
                   responseObserver);
           break;
+        case METHODID_CREATE_ENTRY_GROUP:
+          serviceImpl.createEntryGroup(
+              (com.google.cloud.datacatalog.CreateEntryGroupRequest) request,
+              (io.grpc.stub.StreamObserver<com.google.cloud.datacatalog.EntryGroup>)
+                  responseObserver);
+          break;
+        case METHODID_GET_ENTRY_GROUP:
+          serviceImpl.getEntryGroup(
+              (com.google.cloud.datacatalog.GetEntryGroupRequest) request,
+              (io.grpc.stub.StreamObserver<com.google.cloud.datacatalog.EntryGroup>)
+                  responseObserver);
+          break;
+        case METHODID_DELETE_ENTRY_GROUP:
+          serviceImpl.deleteEntryGroup(
+              (com.google.cloud.datacatalog.DeleteEntryGroupRequest) request,
+              (io.grpc.stub.StreamObserver<com.google.protobuf.Empty>) responseObserver);
+          break;
+        case METHODID_CREATE_ENTRY:
+          serviceImpl.createEntry(
+              (com.google.cloud.datacatalog.CreateEntryRequest) request,
+              (io.grpc.stub.StreamObserver<com.google.cloud.datacatalog.Entry>) responseObserver);
+          break;
         case METHODID_UPDATE_ENTRY:
           serviceImpl.updateEntry(
               (com.google.cloud.datacatalog.UpdateEntryRequest) request,
               (io.grpc.stub.StreamObserver<com.google.cloud.datacatalog.Entry>) responseObserver);
           break;
+        case METHODID_DELETE_ENTRY:
+          serviceImpl.deleteEntry(
+              (com.google.cloud.datacatalog.DeleteEntryRequest) request,
+              (io.grpc.stub.StreamObserver<com.google.protobuf.Empty>) responseObserver);
+          break;
         case METHODID_GET_ENTRY:
           serviceImpl.getEntry(
               (com.google.cloud.datacatalog.GetEntryRequest) request,
@@ -2720,7 +3572,12 @@ public static io.grpc.ServiceDescriptor getServiceDescriptor() {
                   io.grpc.ServiceDescriptor.newBuilder(SERVICE_NAME)
                       .setSchemaDescriptor(new DataCatalogFileDescriptorSupplier())
                       .addMethod(getSearchCatalogMethodHelper())
+                      .addMethod(getCreateEntryGroupMethodHelper())
+                      .addMethod(getGetEntryGroupMethodHelper())
+                      .addMethod(getDeleteEntryGroupMethodHelper())
+                      .addMethod(getCreateEntryMethodHelper())
                       .addMethod(getUpdateEntryMethodHelper())
+                      .addMethod(getDeleteEntryMethodHelper())
                       .addMethod(getGetEntryMethodHelper())
                       .addMethod(getLookupEntryMethodHelper())
                       .addMethod(getCreateTagTemplateMethodHelper())
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/BigQueryDateShardedSpec.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/BigQueryDateShardedSpec.java
index 679d3ff47df9..9bc3c4a41cc5 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/BigQueryDateShardedSpec.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/BigQueryDateShardedSpec.java
@@ -7,7 +7,7 @@
  *
  *
  * <pre>
- * Spec for a group of BigQuery tables with name pattern [prefix]YYYYMMDD.
+ * Spec for a group of BigQuery tables with name pattern `[prefix]YYYYMMDD`.
  * Context:
  * https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding
  * </pre>
@@ -113,12 +113,13 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    *
    * <pre>
    * Output only. The Data Catalog resource name of the dataset entry the
-   * current table belongs to, e.g.
-   * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}
-   * /entries/{entry_id}
+   * current table belongs to, for example,
+   * `projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}`.
    * </pre>
    *
-   * <code>string dataset = 1;</code>
+   * <code>
+   * string dataset = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   public java.lang.String getDataset() {
     java.lang.Object ref = dataset_;
@@ -136,12 +137,13 @@ public java.lang.String getDataset() {
    *
    * <pre>
    * Output only. The Data Catalog resource name of the dataset entry the
-   * current table belongs to, e.g.
-   * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}
-   * /entries/{entry_id}
+   * current table belongs to, for example,
+   * `projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}`.
    * </pre>
    *
-   * <code>string dataset = 1;</code>
+   * <code>
+   * string dataset = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   public com.google.protobuf.ByteString getDatasetBytes() {
     java.lang.Object ref = dataset_;
@@ -162,8 +164,8 @@ public com.google.protobuf.ByteString getDatasetBytes() {
    *
    * <pre>
    * Output only. The table name prefix of the shards. The name of any given
-   * shard is [table_prefix]YYYYMMDD, e.g. for shard MyTable20180101, the
-   * table_prefix is "MyTable"
+   * shard is `[table_prefix]YYYYMMDD`, for example, for shard
+   * `MyTable20180101`, the `table_prefix` is `MyTable`.
    * </pre>
    *
    * <code>string table_prefix = 2;</code>
@@ -184,8 +186,8 @@ public java.lang.String getTablePrefix() {
    *
    * <pre>
    * Output only. The table name prefix of the shards. The name of any given
-   * shard is [table_prefix]YYYYMMDD, e.g. for shard MyTable20180101, the
-   * table_prefix is "MyTable"
+   * shard is `[table_prefix]YYYYMMDD`, for example, for shard
+   * `MyTable20180101`, the `table_prefix` is `MyTable`.
    * </pre>
    *
    * <code>string table_prefix = 2;</code>
@@ -398,7 +400,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * Spec for a group of BigQuery tables with name pattern [prefix]YYYYMMDD.
+   * Spec for a group of BigQuery tables with name pattern `[prefix]YYYYMMDD`.
    * Context:
    * https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding
    * </pre>
@@ -574,12 +576,13 @@ public Builder mergeFrom(
      *
      * <pre>
      * Output only. The Data Catalog resource name of the dataset entry the
-     * current table belongs to, e.g.
-     * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}
-     * /entries/{entry_id}
+     * current table belongs to, for example,
+     * `projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}`.
      * </pre>
      *
-     * <code>string dataset = 1;</code>
+     * <code>
+     * string dataset = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public java.lang.String getDataset() {
       java.lang.Object ref = dataset_;
@@ -597,12 +600,13 @@ public java.lang.String getDataset() {
      *
      * <pre>
      * Output only. The Data Catalog resource name of the dataset entry the
-     * current table belongs to, e.g.
-     * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}
-     * /entries/{entry_id}
+     * current table belongs to, for example,
+     * `projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}`.
      * </pre>
      *
-     * <code>string dataset = 1;</code>
+     * <code>
+     * string dataset = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public com.google.protobuf.ByteString getDatasetBytes() {
       java.lang.Object ref = dataset_;
@@ -620,12 +624,13 @@ public com.google.protobuf.ByteString getDatasetBytes() {
      *
      * <pre>
      * Output only. The Data Catalog resource name of the dataset entry the
-     * current table belongs to, e.g.
-     * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}
-     * /entries/{entry_id}
+     * current table belongs to, for example,
+     * `projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}`.
      * </pre>
      *
-     * <code>string dataset = 1;</code>
+     * <code>
+     * string dataset = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public Builder setDataset(java.lang.String value) {
       if (value == null) {
@@ -641,12 +646,13 @@ public Builder setDataset(java.lang.String value) {
      *
      * <pre>
      * Output only. The Data Catalog resource name of the dataset entry the
-     * current table belongs to, e.g.
-     * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}
-     * /entries/{entry_id}
+     * current table belongs to, for example,
+     * `projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}`.
      * </pre>
      *
-     * <code>string dataset = 1;</code>
+     * <code>
+     * string dataset = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public Builder clearDataset() {
 
@@ -659,12 +665,13 @@ public Builder clearDataset() {
      *
      * <pre>
      * Output only. The Data Catalog resource name of the dataset entry the
-     * current table belongs to, e.g.
-     * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}
-     * /entries/{entry_id}
+     * current table belongs to, for example,
+     * `projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}`.
      * </pre>
      *
-     * <code>string dataset = 1;</code>
+     * <code>
+     * string dataset = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public Builder setDatasetBytes(com.google.protobuf.ByteString value) {
       if (value == null) {
@@ -683,8 +690,8 @@ public Builder setDatasetBytes(com.google.protobuf.ByteString value) {
      *
      * <pre>
      * Output only. The table name prefix of the shards. The name of any given
-     * shard is [table_prefix]YYYYMMDD, e.g. for shard MyTable20180101, the
-     * table_prefix is "MyTable"
+     * shard is `[table_prefix]YYYYMMDD`, for example, for shard
+     * `MyTable20180101`, the `table_prefix` is `MyTable`.
      * </pre>
      *
      * <code>string table_prefix = 2;</code>
@@ -705,8 +712,8 @@ public java.lang.String getTablePrefix() {
      *
      * <pre>
      * Output only. The table name prefix of the shards. The name of any given
-     * shard is [table_prefix]YYYYMMDD, e.g. for shard MyTable20180101, the
-     * table_prefix is "MyTable"
+     * shard is `[table_prefix]YYYYMMDD`, for example, for shard
+     * `MyTable20180101`, the `table_prefix` is `MyTable`.
      * </pre>
      *
      * <code>string table_prefix = 2;</code>
@@ -727,8 +734,8 @@ public com.google.protobuf.ByteString getTablePrefixBytes() {
      *
      * <pre>
      * Output only. The table name prefix of the shards. The name of any given
-     * shard is [table_prefix]YYYYMMDD, e.g. for shard MyTable20180101, the
-     * table_prefix is "MyTable"
+     * shard is `[table_prefix]YYYYMMDD`, for example, for shard
+     * `MyTable20180101`, the `table_prefix` is `MyTable`.
      * </pre>
      *
      * <code>string table_prefix = 2;</code>
@@ -747,8 +754,8 @@ public Builder setTablePrefix(java.lang.String value) {
      *
      * <pre>
      * Output only. The table name prefix of the shards. The name of any given
-     * shard is [table_prefix]YYYYMMDD, e.g. for shard MyTable20180101, the
-     * table_prefix is "MyTable"
+     * shard is `[table_prefix]YYYYMMDD`, for example, for shard
+     * `MyTable20180101`, the `table_prefix` is `MyTable`.
      * </pre>
      *
      * <code>string table_prefix = 2;</code>
@@ -764,8 +771,8 @@ public Builder clearTablePrefix() {
      *
      * <pre>
      * Output only. The table name prefix of the shards. The name of any given
-     * shard is [table_prefix]YYYYMMDD, e.g. for shard MyTable20180101, the
-     * table_prefix is "MyTable"
+     * shard is `[table_prefix]YYYYMMDD`, for example, for shard
+     * `MyTable20180101`, the `table_prefix` is `MyTable`.
      * </pre>
      *
      * <code>string table_prefix = 2;</code>
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/BigQueryDateShardedSpecOrBuilder.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/BigQueryDateShardedSpecOrBuilder.java
index 334db00609ca..bacb062500be 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/BigQueryDateShardedSpecOrBuilder.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/BigQueryDateShardedSpecOrBuilder.java
@@ -13,12 +13,13 @@ public interface BigQueryDateShardedSpecOrBuilder
    *
    * <pre>
    * Output only. The Data Catalog resource name of the dataset entry the
-   * current table belongs to, e.g.
-   * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}
-   * /entries/{entry_id}
+   * current table belongs to, for example,
+   * `projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}`.
    * </pre>
    *
-   * <code>string dataset = 1;</code>
+   * <code>
+   * string dataset = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   java.lang.String getDataset();
   /**
@@ -26,12 +27,13 @@ public interface BigQueryDateShardedSpecOrBuilder
    *
    * <pre>
    * Output only. The Data Catalog resource name of the dataset entry the
-   * current table belongs to, e.g.
-   * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}
-   * /entries/{entry_id}
+   * current table belongs to, for example,
+   * `projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}`.
    * </pre>
    *
-   * <code>string dataset = 1;</code>
+   * <code>
+   * string dataset = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   com.google.protobuf.ByteString getDatasetBytes();
 
@@ -40,8 +42,8 @@ public interface BigQueryDateShardedSpecOrBuilder
    *
    * <pre>
    * Output only. The table name prefix of the shards. The name of any given
-   * shard is [table_prefix]YYYYMMDD, e.g. for shard MyTable20180101, the
-   * table_prefix is "MyTable"
+   * shard is `[table_prefix]YYYYMMDD`, for example, for shard
+   * `MyTable20180101`, the `table_prefix` is `MyTable`.
    * </pre>
    *
    * <code>string table_prefix = 2;</code>
@@ -52,8 +54,8 @@ public interface BigQueryDateShardedSpecOrBuilder
    *
    * <pre>
    * Output only. The table name prefix of the shards. The name of any given
-   * shard is [table_prefix]YYYYMMDD, e.g. for shard MyTable20180101, the
-   * table_prefix is "MyTable"
+   * shard is `[table_prefix]YYYYMMDD`, for example, for shard
+   * `MyTable20180101`, the `table_prefix` is `MyTable`.
    * </pre>
    *
    * <code>string table_prefix = 2;</code>
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/BigQueryTableSpec.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/BigQueryTableSpec.java
index 87f87e4eebf5..43e53643f954 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/BigQueryTableSpec.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/BigQueryTableSpec.java
@@ -172,7 +172,9 @@ public TypeSpecCase getTypeSpecCase() {
    * Output only. The table source type.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.TableSourceType table_source_type = 1;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.TableSourceType table_source_type = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+   * </code>
    */
   public int getTableSourceTypeValue() {
     return tableSourceType_;
@@ -184,7 +186,9 @@ public int getTableSourceTypeValue() {
    * Output only. The table source type.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.TableSourceType table_source_type = 1;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.TableSourceType table_source_type = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+   * </code>
    */
   public com.google.cloud.datacatalog.TableSourceType getTableSourceType() {
     @SuppressWarnings("deprecation")
@@ -199,7 +203,7 @@ public com.google.cloud.datacatalog.TableSourceType getTableSourceType() {
    *
    * <pre>
    * Table view specification. This field should only be populated if
-   * table_source_type is BIGQUERY_VIEW.
+   * `table_source_type` is `BIGQUERY_VIEW`.
    * </pre>
    *
    * <code>.google.cloud.datacatalog.v1beta1.ViewSpec view_spec = 2;</code>
@@ -212,7 +216,7 @@ public boolean hasViewSpec() {
    *
    * <pre>
    * Table view specification. This field should only be populated if
-   * table_source_type is BIGQUERY_VIEW.
+   * `table_source_type` is `BIGQUERY_VIEW`.
    * </pre>
    *
    * <code>.google.cloud.datacatalog.v1beta1.ViewSpec view_spec = 2;</code>
@@ -228,7 +232,7 @@ public com.google.cloud.datacatalog.ViewSpec getViewSpec() {
    *
    * <pre>
    * Table view specification. This field should only be populated if
-   * table_source_type is BIGQUERY_VIEW.
+   * `table_source_type` is `BIGQUERY_VIEW`.
    * </pre>
    *
    * <code>.google.cloud.datacatalog.v1beta1.ViewSpec view_spec = 2;</code>
@@ -246,7 +250,7 @@ public com.google.cloud.datacatalog.ViewSpecOrBuilder getViewSpecOrBuilder() {
    *
    * <pre>
    * Spec of a BigQuery table. This field should only be populated if
-   * table_source_type is BIGQUERY_TABLE.
+   * `table_source_type` is `BIGQUERY_TABLE`.
    * </pre>
    *
    * <code>.google.cloud.datacatalog.v1beta1.TableSpec table_spec = 3;</code>
@@ -259,7 +263,7 @@ public boolean hasTableSpec() {
    *
    * <pre>
    * Spec of a BigQuery table. This field should only be populated if
-   * table_source_type is BIGQUERY_TABLE.
+   * `table_source_type` is `BIGQUERY_TABLE`.
    * </pre>
    *
    * <code>.google.cloud.datacatalog.v1beta1.TableSpec table_spec = 3;</code>
@@ -275,7 +279,7 @@ public com.google.cloud.datacatalog.TableSpec getTableSpec() {
    *
    * <pre>
    * Spec of a BigQuery table. This field should only be populated if
-   * table_source_type is BIGQUERY_TABLE.
+   * `table_source_type` is `BIGQUERY_TABLE`.
    * </pre>
    *
    * <code>.google.cloud.datacatalog.v1beta1.TableSpec table_spec = 3;</code>
@@ -698,7 +702,9 @@ public Builder clearTypeSpec() {
      * Output only. The table source type.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.TableSourceType table_source_type = 1;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.TableSourceType table_source_type = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
      */
     public int getTableSourceTypeValue() {
       return tableSourceType_;
@@ -710,7 +716,9 @@ public int getTableSourceTypeValue() {
      * Output only. The table source type.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.TableSourceType table_source_type = 1;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.TableSourceType table_source_type = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
      */
     public Builder setTableSourceTypeValue(int value) {
       tableSourceType_ = value;
@@ -724,7 +732,9 @@ public Builder setTableSourceTypeValue(int value) {
      * Output only. The table source type.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.TableSourceType table_source_type = 1;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.TableSourceType table_source_type = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
      */
     public com.google.cloud.datacatalog.TableSourceType getTableSourceType() {
       @SuppressWarnings("deprecation")
@@ -739,7 +749,9 @@ public com.google.cloud.datacatalog.TableSourceType getTableSourceType() {
      * Output only. The table source type.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.TableSourceType table_source_type = 1;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.TableSourceType table_source_type = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
      */
     public Builder setTableSourceType(com.google.cloud.datacatalog.TableSourceType value) {
       if (value == null) {
@@ -757,7 +769,9 @@ public Builder setTableSourceType(com.google.cloud.datacatalog.TableSourceType v
      * Output only. The table source type.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.TableSourceType table_source_type = 1;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.TableSourceType table_source_type = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
      */
     public Builder clearTableSourceType() {
 
@@ -776,7 +790,7 @@ public Builder clearTableSourceType() {
      *
      * <pre>
      * Table view specification. This field should only be populated if
-     * table_source_type is BIGQUERY_VIEW.
+     * `table_source_type` is `BIGQUERY_VIEW`.
      * </pre>
      *
      * <code>.google.cloud.datacatalog.v1beta1.ViewSpec view_spec = 2;</code>
@@ -789,7 +803,7 @@ public boolean hasViewSpec() {
      *
      * <pre>
      * Table view specification. This field should only be populated if
-     * table_source_type is BIGQUERY_VIEW.
+     * `table_source_type` is `BIGQUERY_VIEW`.
      * </pre>
      *
      * <code>.google.cloud.datacatalog.v1beta1.ViewSpec view_spec = 2;</code>
@@ -812,7 +826,7 @@ public com.google.cloud.datacatalog.ViewSpec getViewSpec() {
      *
      * <pre>
      * Table view specification. This field should only be populated if
-     * table_source_type is BIGQUERY_VIEW.
+     * `table_source_type` is `BIGQUERY_VIEW`.
      * </pre>
      *
      * <code>.google.cloud.datacatalog.v1beta1.ViewSpec view_spec = 2;</code>
@@ -835,7 +849,7 @@ public Builder setViewSpec(com.google.cloud.datacatalog.ViewSpec value) {
      *
      * <pre>
      * Table view specification. This field should only be populated if
-     * table_source_type is BIGQUERY_VIEW.
+     * `table_source_type` is `BIGQUERY_VIEW`.
      * </pre>
      *
      * <code>.google.cloud.datacatalog.v1beta1.ViewSpec view_spec = 2;</code>
@@ -855,7 +869,7 @@ public Builder setViewSpec(com.google.cloud.datacatalog.ViewSpec.Builder builder
      *
      * <pre>
      * Table view specification. This field should only be populated if
-     * table_source_type is BIGQUERY_VIEW.
+     * `table_source_type` is `BIGQUERY_VIEW`.
      * </pre>
      *
      * <code>.google.cloud.datacatalog.v1beta1.ViewSpec view_spec = 2;</code>
@@ -887,7 +901,7 @@ public Builder mergeViewSpec(com.google.cloud.datacatalog.ViewSpec value) {
      *
      * <pre>
      * Table view specification. This field should only be populated if
-     * table_source_type is BIGQUERY_VIEW.
+     * `table_source_type` is `BIGQUERY_VIEW`.
      * </pre>
      *
      * <code>.google.cloud.datacatalog.v1beta1.ViewSpec view_spec = 2;</code>
@@ -913,7 +927,7 @@ public Builder clearViewSpec() {
      *
      * <pre>
      * Table view specification. This field should only be populated if
-     * table_source_type is BIGQUERY_VIEW.
+     * `table_source_type` is `BIGQUERY_VIEW`.
      * </pre>
      *
      * <code>.google.cloud.datacatalog.v1beta1.ViewSpec view_spec = 2;</code>
@@ -926,7 +940,7 @@ public com.google.cloud.datacatalog.ViewSpec.Builder getViewSpecBuilder() {
      *
      * <pre>
      * Table view specification. This field should only be populated if
-     * table_source_type is BIGQUERY_VIEW.
+     * `table_source_type` is `BIGQUERY_VIEW`.
      * </pre>
      *
      * <code>.google.cloud.datacatalog.v1beta1.ViewSpec view_spec = 2;</code>
@@ -946,7 +960,7 @@ public com.google.cloud.datacatalog.ViewSpecOrBuilder getViewSpecOrBuilder() {
      *
      * <pre>
      * Table view specification. This field should only be populated if
-     * table_source_type is BIGQUERY_VIEW.
+     * `table_source_type` is `BIGQUERY_VIEW`.
      * </pre>
      *
      * <code>.google.cloud.datacatalog.v1beta1.ViewSpec view_spec = 2;</code>
@@ -986,7 +1000,7 @@ public com.google.cloud.datacatalog.ViewSpecOrBuilder getViewSpecOrBuilder() {
      *
      * <pre>
      * Spec of a BigQuery table. This field should only be populated if
-     * table_source_type is BIGQUERY_TABLE.
+     * `table_source_type` is `BIGQUERY_TABLE`.
      * </pre>
      *
      * <code>.google.cloud.datacatalog.v1beta1.TableSpec table_spec = 3;</code>
@@ -999,7 +1013,7 @@ public boolean hasTableSpec() {
      *
      * <pre>
      * Spec of a BigQuery table. This field should only be populated if
-     * table_source_type is BIGQUERY_TABLE.
+     * `table_source_type` is `BIGQUERY_TABLE`.
      * </pre>
      *
      * <code>.google.cloud.datacatalog.v1beta1.TableSpec table_spec = 3;</code>
@@ -1022,7 +1036,7 @@ public com.google.cloud.datacatalog.TableSpec getTableSpec() {
      *
      * <pre>
      * Spec of a BigQuery table. This field should only be populated if
-     * table_source_type is BIGQUERY_TABLE.
+     * `table_source_type` is `BIGQUERY_TABLE`.
      * </pre>
      *
      * <code>.google.cloud.datacatalog.v1beta1.TableSpec table_spec = 3;</code>
@@ -1045,7 +1059,7 @@ public Builder setTableSpec(com.google.cloud.datacatalog.TableSpec value) {
      *
      * <pre>
      * Spec of a BigQuery table. This field should only be populated if
-     * table_source_type is BIGQUERY_TABLE.
+     * `table_source_type` is `BIGQUERY_TABLE`.
      * </pre>
      *
      * <code>.google.cloud.datacatalog.v1beta1.TableSpec table_spec = 3;</code>
@@ -1065,7 +1079,7 @@ public Builder setTableSpec(com.google.cloud.datacatalog.TableSpec.Builder build
      *
      * <pre>
      * Spec of a BigQuery table. This field should only be populated if
-     * table_source_type is BIGQUERY_TABLE.
+     * `table_source_type` is `BIGQUERY_TABLE`.
      * </pre>
      *
      * <code>.google.cloud.datacatalog.v1beta1.TableSpec table_spec = 3;</code>
@@ -1097,7 +1111,7 @@ public Builder mergeTableSpec(com.google.cloud.datacatalog.TableSpec value) {
      *
      * <pre>
      * Spec of a BigQuery table. This field should only be populated if
-     * table_source_type is BIGQUERY_TABLE.
+     * `table_source_type` is `BIGQUERY_TABLE`.
      * </pre>
      *
      * <code>.google.cloud.datacatalog.v1beta1.TableSpec table_spec = 3;</code>
@@ -1123,7 +1137,7 @@ public Builder clearTableSpec() {
      *
      * <pre>
      * Spec of a BigQuery table. This field should only be populated if
-     * table_source_type is BIGQUERY_TABLE.
+     * `table_source_type` is `BIGQUERY_TABLE`.
      * </pre>
      *
      * <code>.google.cloud.datacatalog.v1beta1.TableSpec table_spec = 3;</code>
@@ -1136,7 +1150,7 @@ public com.google.cloud.datacatalog.TableSpec.Builder getTableSpecBuilder() {
      *
      * <pre>
      * Spec of a BigQuery table. This field should only be populated if
-     * table_source_type is BIGQUERY_TABLE.
+     * `table_source_type` is `BIGQUERY_TABLE`.
      * </pre>
      *
      * <code>.google.cloud.datacatalog.v1beta1.TableSpec table_spec = 3;</code>
@@ -1156,7 +1170,7 @@ public com.google.cloud.datacatalog.TableSpecOrBuilder getTableSpecOrBuilder() {
      *
      * <pre>
      * Spec of a BigQuery table. This field should only be populated if
-     * table_source_type is BIGQUERY_TABLE.
+     * `table_source_type` is `BIGQUERY_TABLE`.
      * </pre>
      *
      * <code>.google.cloud.datacatalog.v1beta1.TableSpec table_spec = 3;</code>
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/BigQueryTableSpecOrBuilder.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/BigQueryTableSpecOrBuilder.java
index b98a67d85293..016bdc141831 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/BigQueryTableSpecOrBuilder.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/BigQueryTableSpecOrBuilder.java
@@ -15,7 +15,9 @@ public interface BigQueryTableSpecOrBuilder
    * Output only. The table source type.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.TableSourceType table_source_type = 1;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.TableSourceType table_source_type = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+   * </code>
    */
   int getTableSourceTypeValue();
   /**
@@ -25,7 +27,9 @@ public interface BigQueryTableSpecOrBuilder
    * Output only. The table source type.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.TableSourceType table_source_type = 1;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.TableSourceType table_source_type = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+   * </code>
    */
   com.google.cloud.datacatalog.TableSourceType getTableSourceType();
 
@@ -34,7 +38,7 @@ public interface BigQueryTableSpecOrBuilder
    *
    * <pre>
    * Table view specification. This field should only be populated if
-   * table_source_type is BIGQUERY_VIEW.
+   * `table_source_type` is `BIGQUERY_VIEW`.
    * </pre>
    *
    * <code>.google.cloud.datacatalog.v1beta1.ViewSpec view_spec = 2;</code>
@@ -45,7 +49,7 @@ public interface BigQueryTableSpecOrBuilder
    *
    * <pre>
    * Table view specification. This field should only be populated if
-   * table_source_type is BIGQUERY_VIEW.
+   * `table_source_type` is `BIGQUERY_VIEW`.
    * </pre>
    *
    * <code>.google.cloud.datacatalog.v1beta1.ViewSpec view_spec = 2;</code>
@@ -56,7 +60,7 @@ public interface BigQueryTableSpecOrBuilder
    *
    * <pre>
    * Table view specification. This field should only be populated if
-   * table_source_type is BIGQUERY_VIEW.
+   * `table_source_type` is `BIGQUERY_VIEW`.
    * </pre>
    *
    * <code>.google.cloud.datacatalog.v1beta1.ViewSpec view_spec = 2;</code>
@@ -68,7 +72,7 @@ public interface BigQueryTableSpecOrBuilder
    *
    * <pre>
    * Spec of a BigQuery table. This field should only be populated if
-   * table_source_type is BIGQUERY_TABLE.
+   * `table_source_type` is `BIGQUERY_TABLE`.
    * </pre>
    *
    * <code>.google.cloud.datacatalog.v1beta1.TableSpec table_spec = 3;</code>
@@ -79,7 +83,7 @@ public interface BigQueryTableSpecOrBuilder
    *
    * <pre>
    * Spec of a BigQuery table. This field should only be populated if
-   * table_source_type is BIGQUERY_TABLE.
+   * `table_source_type` is `BIGQUERY_TABLE`.
    * </pre>
    *
    * <code>.google.cloud.datacatalog.v1beta1.TableSpec table_spec = 3;</code>
@@ -90,7 +94,7 @@ public interface BigQueryTableSpecOrBuilder
    *
    * <pre>
    * Spec of a BigQuery table. This field should only be populated if
-   * table_source_type is BIGQUERY_TABLE.
+   * `table_source_type` is `BIGQUERY_TABLE`.
    * </pre>
    *
    * <code>.google.cloud.datacatalog.v1beta1.TableSpec table_spec = 3;</code>
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/ColumnSchema.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/ColumnSchema.java
index 6189026f74a9..7b5282b3949e 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/ColumnSchema.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/ColumnSchema.java
@@ -141,7 +141,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    * Required. Name of the column.
    * </pre>
    *
-   * <code>string column = 6;</code>
+   * <code>string column = 6 [(.google.api.field_behavior) = REQUIRED];</code>
    */
   public java.lang.String getColumn() {
     java.lang.Object ref = column_;
@@ -161,7 +161,7 @@ public java.lang.String getColumn() {
    * Required. Name of the column.
    * </pre>
    *
-   * <code>string column = 6;</code>
+   * <code>string column = 6 [(.google.api.field_behavior) = REQUIRED];</code>
    */
   public com.google.protobuf.ByteString getColumnBytes() {
     java.lang.Object ref = column_;
@@ -184,7 +184,7 @@ public com.google.protobuf.ByteString getColumnBytes() {
    * Required. Type of the column.
    * </pre>
    *
-   * <code>string type = 1;</code>
+   * <code>string type = 1 [(.google.api.field_behavior) = REQUIRED];</code>
    */
   public java.lang.String getType() {
     java.lang.Object ref = type_;
@@ -204,7 +204,7 @@ public java.lang.String getType() {
    * Required. Type of the column.
    * </pre>
    *
-   * <code>string type = 1;</code>
+   * <code>string type = 1 [(.google.api.field_behavior) = REQUIRED];</code>
    */
   public com.google.protobuf.ByteString getTypeBytes() {
     java.lang.Object ref = type_;
@@ -268,8 +268,8 @@ public com.google.protobuf.ByteString getDescriptionBytes() {
    *
    * <pre>
    * Optional. A column's mode indicates whether the values in this column are
-   * required, nullable, etc. Only 'NULLABLE', 'REQUIRED' and 'REPEATED' are
-   * supported. Default mode is 'NULLABLE'.
+   * required, nullable, etc. Only `NULLABLE`, `REQUIRED` and `REPEATED` are
+   * supported. Default mode is `NULLABLE`.
    * </pre>
    *
    * <code>string mode = 3;</code>
@@ -290,8 +290,8 @@ public java.lang.String getMode() {
    *
    * <pre>
    * Optional. A column's mode indicates whether the values in this column are
-   * required, nullable, etc. Only 'NULLABLE', 'REQUIRED' and 'REPEATED' are
-   * supported. Default mode is 'NULLABLE'.
+   * required, nullable, etc. Only `NULLABLE`, `REQUIRED` and `REPEATED` are
+   * supported. Default mode is `NULLABLE`.
    * </pre>
    *
    * <code>string mode = 3;</code>
@@ -810,7 +810,7 @@ public Builder mergeFrom(
      * Required. Name of the column.
      * </pre>
      *
-     * <code>string column = 6;</code>
+     * <code>string column = 6 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public java.lang.String getColumn() {
       java.lang.Object ref = column_;
@@ -830,7 +830,7 @@ public java.lang.String getColumn() {
      * Required. Name of the column.
      * </pre>
      *
-     * <code>string column = 6;</code>
+     * <code>string column = 6 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public com.google.protobuf.ByteString getColumnBytes() {
       java.lang.Object ref = column_;
@@ -850,7 +850,7 @@ public com.google.protobuf.ByteString getColumnBytes() {
      * Required. Name of the column.
      * </pre>
      *
-     * <code>string column = 6;</code>
+     * <code>string column = 6 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public Builder setColumn(java.lang.String value) {
       if (value == null) {
@@ -868,7 +868,7 @@ public Builder setColumn(java.lang.String value) {
      * Required. Name of the column.
      * </pre>
      *
-     * <code>string column = 6;</code>
+     * <code>string column = 6 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public Builder clearColumn() {
 
@@ -883,7 +883,7 @@ public Builder clearColumn() {
      * Required. Name of the column.
      * </pre>
      *
-     * <code>string column = 6;</code>
+     * <code>string column = 6 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public Builder setColumnBytes(com.google.protobuf.ByteString value) {
       if (value == null) {
@@ -904,7 +904,7 @@ public Builder setColumnBytes(com.google.protobuf.ByteString value) {
      * Required. Type of the column.
      * </pre>
      *
-     * <code>string type = 1;</code>
+     * <code>string type = 1 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public java.lang.String getType() {
       java.lang.Object ref = type_;
@@ -924,7 +924,7 @@ public java.lang.String getType() {
      * Required. Type of the column.
      * </pre>
      *
-     * <code>string type = 1;</code>
+     * <code>string type = 1 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public com.google.protobuf.ByteString getTypeBytes() {
       java.lang.Object ref = type_;
@@ -944,7 +944,7 @@ public com.google.protobuf.ByteString getTypeBytes() {
      * Required. Type of the column.
      * </pre>
      *
-     * <code>string type = 1;</code>
+     * <code>string type = 1 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public Builder setType(java.lang.String value) {
       if (value == null) {
@@ -962,7 +962,7 @@ public Builder setType(java.lang.String value) {
      * Required. Type of the column.
      * </pre>
      *
-     * <code>string type = 1;</code>
+     * <code>string type = 1 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public Builder clearType() {
 
@@ -977,7 +977,7 @@ public Builder clearType() {
      * Required. Type of the column.
      * </pre>
      *
-     * <code>string type = 1;</code>
+     * <code>string type = 1 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public Builder setTypeBytes(com.google.protobuf.ByteString value) {
       if (value == null) {
@@ -1090,8 +1090,8 @@ public Builder setDescriptionBytes(com.google.protobuf.ByteString value) {
      *
      * <pre>
      * Optional. A column's mode indicates whether the values in this column are
-     * required, nullable, etc. Only 'NULLABLE', 'REQUIRED' and 'REPEATED' are
-     * supported. Default mode is 'NULLABLE'.
+     * required, nullable, etc. Only `NULLABLE`, `REQUIRED` and `REPEATED` are
+     * supported. Default mode is `NULLABLE`.
      * </pre>
      *
      * <code>string mode = 3;</code>
@@ -1112,8 +1112,8 @@ public java.lang.String getMode() {
      *
      * <pre>
      * Optional. A column's mode indicates whether the values in this column are
-     * required, nullable, etc. Only 'NULLABLE', 'REQUIRED' and 'REPEATED' are
-     * supported. Default mode is 'NULLABLE'.
+     * required, nullable, etc. Only `NULLABLE`, `REQUIRED` and `REPEATED` are
+     * supported. Default mode is `NULLABLE`.
      * </pre>
      *
      * <code>string mode = 3;</code>
@@ -1134,8 +1134,8 @@ public com.google.protobuf.ByteString getModeBytes() {
      *
      * <pre>
      * Optional. A column's mode indicates whether the values in this column are
-     * required, nullable, etc. Only 'NULLABLE', 'REQUIRED' and 'REPEATED' are
-     * supported. Default mode is 'NULLABLE'.
+     * required, nullable, etc. Only `NULLABLE`, `REQUIRED` and `REPEATED` are
+     * supported. Default mode is `NULLABLE`.
      * </pre>
      *
      * <code>string mode = 3;</code>
@@ -1154,8 +1154,8 @@ public Builder setMode(java.lang.String value) {
      *
      * <pre>
      * Optional. A column's mode indicates whether the values in this column are
-     * required, nullable, etc. Only 'NULLABLE', 'REQUIRED' and 'REPEATED' are
-     * supported. Default mode is 'NULLABLE'.
+     * required, nullable, etc. Only `NULLABLE`, `REQUIRED` and `REPEATED` are
+     * supported. Default mode is `NULLABLE`.
      * </pre>
      *
      * <code>string mode = 3;</code>
@@ -1171,8 +1171,8 @@ public Builder clearMode() {
      *
      * <pre>
      * Optional. A column's mode indicates whether the values in this column are
-     * required, nullable, etc. Only 'NULLABLE', 'REQUIRED' and 'REPEATED' are
-     * supported. Default mode is 'NULLABLE'.
+     * required, nullable, etc. Only `NULLABLE`, `REQUIRED` and `REPEATED` are
+     * supported. Default mode is `NULLABLE`.
      * </pre>
      *
      * <code>string mode = 3;</code>
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/ColumnSchemaOrBuilder.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/ColumnSchemaOrBuilder.java
index 2111d0601e85..b6143eef2ef5 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/ColumnSchemaOrBuilder.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/ColumnSchemaOrBuilder.java
@@ -15,7 +15,7 @@ public interface ColumnSchemaOrBuilder
    * Required. Name of the column.
    * </pre>
    *
-   * <code>string column = 6;</code>
+   * <code>string column = 6 [(.google.api.field_behavior) = REQUIRED];</code>
    */
   java.lang.String getColumn();
   /**
@@ -25,7 +25,7 @@ public interface ColumnSchemaOrBuilder
    * Required. Name of the column.
    * </pre>
    *
-   * <code>string column = 6;</code>
+   * <code>string column = 6 [(.google.api.field_behavior) = REQUIRED];</code>
    */
   com.google.protobuf.ByteString getColumnBytes();
 
@@ -36,7 +36,7 @@ public interface ColumnSchemaOrBuilder
    * Required. Type of the column.
    * </pre>
    *
-   * <code>string type = 1;</code>
+   * <code>string type = 1 [(.google.api.field_behavior) = REQUIRED];</code>
    */
   java.lang.String getType();
   /**
@@ -46,7 +46,7 @@ public interface ColumnSchemaOrBuilder
    * Required. Type of the column.
    * </pre>
    *
-   * <code>string type = 1;</code>
+   * <code>string type = 1 [(.google.api.field_behavior) = REQUIRED];</code>
    */
   com.google.protobuf.ByteString getTypeBytes();
 
@@ -76,8 +76,8 @@ public interface ColumnSchemaOrBuilder
    *
    * <pre>
    * Optional. A column's mode indicates whether the values in this column are
-   * required, nullable, etc. Only 'NULLABLE', 'REQUIRED' and 'REPEATED' are
-   * supported. Default mode is 'NULLABLE'.
+   * required, nullable, etc. Only `NULLABLE`, `REQUIRED` and `REPEATED` are
+   * supported. Default mode is `NULLABLE`.
    * </pre>
    *
    * <code>string mode = 3;</code>
@@ -88,8 +88,8 @@ public interface ColumnSchemaOrBuilder
    *
    * <pre>
    * Optional. A column's mode indicates whether the values in this column are
-   * required, nullable, etc. Only 'NULLABLE', 'REQUIRED' and 'REPEATED' are
-   * supported. Default mode is 'NULLABLE'.
+   * required, nullable, etc. Only `NULLABLE`, `REQUIRED` and `REPEATED` are
+   * supported. Default mode is `NULLABLE`.
    * </pre>
    *
    * <code>string mode = 3;</code>
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/CreateEntryGroupRequest.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/CreateEntryGroupRequest.java
new file mode 100644
index 000000000000..2d76e34c307d
--- /dev/null
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/CreateEntryGroupRequest.java
@@ -0,0 +1,1062 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: google/cloud/datacatalog/v1beta1/datacatalog.proto
+
+package com.google.cloud.datacatalog;
+
+/**
+ *
+ *
+ * <pre>
+ * Request message for
+ * [CreateEntryGroup][google.cloud.datacatalog.v1beta1.DataCatalog.CreateEntryGroup].
+ * </pre>
+ *
+ * Protobuf type {@code google.cloud.datacatalog.v1beta1.CreateEntryGroupRequest}
+ */
+public final class CreateEntryGroupRequest extends com.google.protobuf.GeneratedMessageV3
+    implements
+    // @@protoc_insertion_point(message_implements:google.cloud.datacatalog.v1beta1.CreateEntryGroupRequest)
+    CreateEntryGroupRequestOrBuilder {
+  private static final long serialVersionUID = 0L;
+  // Use CreateEntryGroupRequest.newBuilder() to construct.
+  private CreateEntryGroupRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+    super(builder);
+  }
+
+  private CreateEntryGroupRequest() {
+    parent_ = "";
+    entryGroupId_ = "";
+  }
+
+  @java.lang.Override
+  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
+    return this.unknownFields;
+  }
+
+  private CreateEntryGroupRequest(
+      com.google.protobuf.CodedInputStream input,
+      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
+    int mutable_bitField0_ = 0;
+    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+        com.google.protobuf.UnknownFieldSet.newBuilder();
+    try {
+      boolean done = false;
+      while (!done) {
+        int tag = input.readTag();
+        switch (tag) {
+          case 0:
+            done = true;
+            break;
+          case 10:
+            {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              parent_ = s;
+              break;
+            }
+          case 18:
+            {
+              com.google.cloud.datacatalog.EntryGroup.Builder subBuilder = null;
+              if (entryGroup_ != null) {
+                subBuilder = entryGroup_.toBuilder();
+              }
+              entryGroup_ =
+                  input.readMessage(
+                      com.google.cloud.datacatalog.EntryGroup.parser(), extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(entryGroup_);
+                entryGroup_ = subBuilder.buildPartial();
+              }
+
+              break;
+            }
+          case 26:
+            {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              entryGroupId_ = 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.datacatalog.Datacatalog
+        .internal_static_google_cloud_datacatalog_v1beta1_CreateEntryGroupRequest_descriptor;
+  }
+
+  @java.lang.Override
+  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internalGetFieldAccessorTable() {
+    return com.google.cloud.datacatalog.Datacatalog
+        .internal_static_google_cloud_datacatalog_v1beta1_CreateEntryGroupRequest_fieldAccessorTable
+        .ensureFieldAccessorsInitialized(
+            com.google.cloud.datacatalog.CreateEntryGroupRequest.class,
+            com.google.cloud.datacatalog.CreateEntryGroupRequest.Builder.class);
+  }
+
+  public static final int PARENT_FIELD_NUMBER = 1;
+  private volatile java.lang.Object parent_;
+  /**
+   *
+   *
+   * <pre>
+   * Required. The name of the project this entry group is in. Example:
+   * * projects/{project_id}/locations/{location}
+   * Note that this EntryGroup and its child resources may not actually be
+   * stored in the location in this name.
+   * </pre>
+   *
+   * <code>
+   * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
+   */
+  public java.lang.String getParent() {
+    java.lang.Object ref = parent_;
+    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();
+      parent_ = s;
+      return s;
+    }
+  }
+  /**
+   *
+   *
+   * <pre>
+   * Required. The name of the project this entry group is in. Example:
+   * * projects/{project_id}/locations/{location}
+   * Note that this EntryGroup and its child resources may not actually be
+   * stored in the location in this name.
+   * </pre>
+   *
+   * <code>
+   * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
+   */
+  public com.google.protobuf.ByteString getParentBytes() {
+    java.lang.Object ref = parent_;
+    if (ref instanceof java.lang.String) {
+      com.google.protobuf.ByteString b =
+          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+      parent_ = b;
+      return b;
+    } else {
+      return (com.google.protobuf.ByteString) ref;
+    }
+  }
+
+  public static final int ENTRY_GROUP_ID_FIELD_NUMBER = 3;
+  private volatile java.lang.Object entryGroupId_;
+  /**
+   *
+   *
+   * <pre>
+   * Required. The id of the entry group to create.
+   * </pre>
+   *
+   * <code>string entry_group_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
+   */
+  public java.lang.String getEntryGroupId() {
+    java.lang.Object ref = entryGroupId_;
+    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();
+      entryGroupId_ = s;
+      return s;
+    }
+  }
+  /**
+   *
+   *
+   * <pre>
+   * Required. The id of the entry group to create.
+   * </pre>
+   *
+   * <code>string entry_group_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
+   */
+  public com.google.protobuf.ByteString getEntryGroupIdBytes() {
+    java.lang.Object ref = entryGroupId_;
+    if (ref instanceof java.lang.String) {
+      com.google.protobuf.ByteString b =
+          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+      entryGroupId_ = b;
+      return b;
+    } else {
+      return (com.google.protobuf.ByteString) ref;
+    }
+  }
+
+  public static final int ENTRY_GROUP_FIELD_NUMBER = 2;
+  private com.google.cloud.datacatalog.EntryGroup entryGroup_;
+  /**
+   *
+   *
+   * <pre>
+   * Optional. The entry group to create. Defaults to an empty entry group.
+   * </pre>
+   *
+   * <code>.google.cloud.datacatalog.v1beta1.EntryGroup entry_group = 2;</code>
+   */
+  public boolean hasEntryGroup() {
+    return entryGroup_ != null;
+  }
+  /**
+   *
+   *
+   * <pre>
+   * Optional. The entry group to create. Defaults to an empty entry group.
+   * </pre>
+   *
+   * <code>.google.cloud.datacatalog.v1beta1.EntryGroup entry_group = 2;</code>
+   */
+  public com.google.cloud.datacatalog.EntryGroup getEntryGroup() {
+    return entryGroup_ == null
+        ? com.google.cloud.datacatalog.EntryGroup.getDefaultInstance()
+        : entryGroup_;
+  }
+  /**
+   *
+   *
+   * <pre>
+   * Optional. The entry group to create. Defaults to an empty entry group.
+   * </pre>
+   *
+   * <code>.google.cloud.datacatalog.v1beta1.EntryGroup entry_group = 2;</code>
+   */
+  public com.google.cloud.datacatalog.EntryGroupOrBuilder getEntryGroupOrBuilder() {
+    return getEntryGroup();
+  }
+
+  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 (!getParentBytes().isEmpty()) {
+      com.google.protobuf.GeneratedMessageV3.writeString(output, 1, parent_);
+    }
+    if (entryGroup_ != null) {
+      output.writeMessage(2, getEntryGroup());
+    }
+    if (!getEntryGroupIdBytes().isEmpty()) {
+      com.google.protobuf.GeneratedMessageV3.writeString(output, 3, entryGroupId_);
+    }
+    unknownFields.writeTo(output);
+  }
+
+  @java.lang.Override
+  public int getSerializedSize() {
+    int size = memoizedSize;
+    if (size != -1) return size;
+
+    size = 0;
+    if (!getParentBytes().isEmpty()) {
+      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, parent_);
+    }
+    if (entryGroup_ != null) {
+      size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getEntryGroup());
+    }
+    if (!getEntryGroupIdBytes().isEmpty()) {
+      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, entryGroupId_);
+    }
+    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.datacatalog.CreateEntryGroupRequest)) {
+      return super.equals(obj);
+    }
+    com.google.cloud.datacatalog.CreateEntryGroupRequest other =
+        (com.google.cloud.datacatalog.CreateEntryGroupRequest) obj;
+
+    if (!getParent().equals(other.getParent())) return false;
+    if (!getEntryGroupId().equals(other.getEntryGroupId())) return false;
+    if (hasEntryGroup() != other.hasEntryGroup()) return false;
+    if (hasEntryGroup()) {
+      if (!getEntryGroup().equals(other.getEntryGroup())) 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) + PARENT_FIELD_NUMBER;
+    hash = (53 * hash) + getParent().hashCode();
+    hash = (37 * hash) + ENTRY_GROUP_ID_FIELD_NUMBER;
+    hash = (53 * hash) + getEntryGroupId().hashCode();
+    if (hasEntryGroup()) {
+      hash = (37 * hash) + ENTRY_GROUP_FIELD_NUMBER;
+      hash = (53 * hash) + getEntryGroup().hashCode();
+    }
+    hash = (29 * hash) + unknownFields.hashCode();
+    memoizedHashCode = hash;
+    return hash;
+  }
+
+  public static com.google.cloud.datacatalog.CreateEntryGroupRequest parseFrom(
+      java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data);
+  }
+
+  public static com.google.cloud.datacatalog.CreateEntryGroupRequest 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.datacatalog.CreateEntryGroupRequest parseFrom(
+      com.google.protobuf.ByteString data)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data);
+  }
+
+  public static com.google.cloud.datacatalog.CreateEntryGroupRequest 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.datacatalog.CreateEntryGroupRequest parseFrom(byte[] data)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data);
+  }
+
+  public static com.google.cloud.datacatalog.CreateEntryGroupRequest parseFrom(
+      byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data, extensionRegistry);
+  }
+
+  public static com.google.cloud.datacatalog.CreateEntryGroupRequest parseFrom(
+      java.io.InputStream input) throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+  }
+
+  public static com.google.cloud.datacatalog.CreateEntryGroupRequest 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.datacatalog.CreateEntryGroupRequest parseDelimitedFrom(
+      java.io.InputStream input) throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
+  }
+
+  public static com.google.cloud.datacatalog.CreateEntryGroupRequest 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.datacatalog.CreateEntryGroupRequest parseFrom(
+      com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+  }
+
+  public static com.google.cloud.datacatalog.CreateEntryGroupRequest 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.datacatalog.CreateEntryGroupRequest 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>
+   * Request message for
+   * [CreateEntryGroup][google.cloud.datacatalog.v1beta1.DataCatalog.CreateEntryGroup].
+   * </pre>
+   *
+   * Protobuf type {@code google.cloud.datacatalog.v1beta1.CreateEntryGroupRequest}
+   */
+  public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
+      implements
+      // @@protoc_insertion_point(builder_implements:google.cloud.datacatalog.v1beta1.CreateEntryGroupRequest)
+      com.google.cloud.datacatalog.CreateEntryGroupRequestOrBuilder {
+    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+      return com.google.cloud.datacatalog.Datacatalog
+          .internal_static_google_cloud_datacatalog_v1beta1_CreateEntryGroupRequest_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return com.google.cloud.datacatalog.Datacatalog
+          .internal_static_google_cloud_datacatalog_v1beta1_CreateEntryGroupRequest_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              com.google.cloud.datacatalog.CreateEntryGroupRequest.class,
+              com.google.cloud.datacatalog.CreateEntryGroupRequest.Builder.class);
+    }
+
+    // Construct using com.google.cloud.datacatalog.CreateEntryGroupRequest.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();
+      parent_ = "";
+
+      entryGroupId_ = "";
+
+      if (entryGroupBuilder_ == null) {
+        entryGroup_ = null;
+      } else {
+        entryGroup_ = null;
+        entryGroupBuilder_ = null;
+      }
+      return this;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
+      return com.google.cloud.datacatalog.Datacatalog
+          .internal_static_google_cloud_datacatalog_v1beta1_CreateEntryGroupRequest_descriptor;
+    }
+
+    @java.lang.Override
+    public com.google.cloud.datacatalog.CreateEntryGroupRequest getDefaultInstanceForType() {
+      return com.google.cloud.datacatalog.CreateEntryGroupRequest.getDefaultInstance();
+    }
+
+    @java.lang.Override
+    public com.google.cloud.datacatalog.CreateEntryGroupRequest build() {
+      com.google.cloud.datacatalog.CreateEntryGroupRequest result = buildPartial();
+      if (!result.isInitialized()) {
+        throw newUninitializedMessageException(result);
+      }
+      return result;
+    }
+
+    @java.lang.Override
+    public com.google.cloud.datacatalog.CreateEntryGroupRequest buildPartial() {
+      com.google.cloud.datacatalog.CreateEntryGroupRequest result =
+          new com.google.cloud.datacatalog.CreateEntryGroupRequest(this);
+      result.parent_ = parent_;
+      result.entryGroupId_ = entryGroupId_;
+      if (entryGroupBuilder_ == null) {
+        result.entryGroup_ = entryGroup_;
+      } else {
+        result.entryGroup_ = entryGroupBuilder_.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.datacatalog.CreateEntryGroupRequest) {
+        return mergeFrom((com.google.cloud.datacatalog.CreateEntryGroupRequest) other);
+      } else {
+        super.mergeFrom(other);
+        return this;
+      }
+    }
+
+    public Builder mergeFrom(com.google.cloud.datacatalog.CreateEntryGroupRequest other) {
+      if (other == com.google.cloud.datacatalog.CreateEntryGroupRequest.getDefaultInstance())
+        return this;
+      if (!other.getParent().isEmpty()) {
+        parent_ = other.parent_;
+        onChanged();
+      }
+      if (!other.getEntryGroupId().isEmpty()) {
+        entryGroupId_ = other.entryGroupId_;
+        onChanged();
+      }
+      if (other.hasEntryGroup()) {
+        mergeEntryGroup(other.getEntryGroup());
+      }
+      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.datacatalog.CreateEntryGroupRequest parsedMessage = null;
+      try {
+        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        parsedMessage =
+            (com.google.cloud.datacatalog.CreateEntryGroupRequest) e.getUnfinishedMessage();
+        throw e.unwrapIOException();
+      } finally {
+        if (parsedMessage != null) {
+          mergeFrom(parsedMessage);
+        }
+      }
+      return this;
+    }
+
+    private java.lang.Object parent_ = "";
+    /**
+     *
+     *
+     * <pre>
+     * Required. The name of the project this entry group is in. Example:
+     * * projects/{project_id}/locations/{location}
+     * Note that this EntryGroup and its child resources may not actually be
+     * stored in the location in this name.
+     * </pre>
+     *
+     * <code>
+     * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
+     */
+    public java.lang.String getParent() {
+      java.lang.Object ref = parent_;
+      if (!(ref instanceof java.lang.String)) {
+        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        parent_ = s;
+        return s;
+      } else {
+        return (java.lang.String) ref;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. The name of the project this entry group is in. Example:
+     * * projects/{project_id}/locations/{location}
+     * Note that this EntryGroup and its child resources may not actually be
+     * stored in the location in this name.
+     * </pre>
+     *
+     * <code>
+     * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
+     */
+    public com.google.protobuf.ByteString getParentBytes() {
+      java.lang.Object ref = parent_;
+      if (ref instanceof String) {
+        com.google.protobuf.ByteString b =
+            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+        parent_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. The name of the project this entry group is in. Example:
+     * * projects/{project_id}/locations/{location}
+     * Note that this EntryGroup and its child resources may not actually be
+     * stored in the location in this name.
+     * </pre>
+     *
+     * <code>
+     * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
+     */
+    public Builder setParent(java.lang.String value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+
+      parent_ = value;
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. The name of the project this entry group is in. Example:
+     * * projects/{project_id}/locations/{location}
+     * Note that this EntryGroup and its child resources may not actually be
+     * stored in the location in this name.
+     * </pre>
+     *
+     * <code>
+     * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
+     */
+    public Builder clearParent() {
+
+      parent_ = getDefaultInstance().getParent();
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. The name of the project this entry group is in. Example:
+     * * projects/{project_id}/locations/{location}
+     * Note that this EntryGroup and its child resources may not actually be
+     * stored in the location in this name.
+     * </pre>
+     *
+     * <code>
+     * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
+     */
+    public Builder setParentBytes(com.google.protobuf.ByteString value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+      checkByteStringIsUtf8(value);
+
+      parent_ = value;
+      onChanged();
+      return this;
+    }
+
+    private java.lang.Object entryGroupId_ = "";
+    /**
+     *
+     *
+     * <pre>
+     * Required. The id of the entry group to create.
+     * </pre>
+     *
+     * <code>string entry_group_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
+     */
+    public java.lang.String getEntryGroupId() {
+      java.lang.Object ref = entryGroupId_;
+      if (!(ref instanceof java.lang.String)) {
+        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        entryGroupId_ = s;
+        return s;
+      } else {
+        return (java.lang.String) ref;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. The id of the entry group to create.
+     * </pre>
+     *
+     * <code>string entry_group_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
+     */
+    public com.google.protobuf.ByteString getEntryGroupIdBytes() {
+      java.lang.Object ref = entryGroupId_;
+      if (ref instanceof String) {
+        com.google.protobuf.ByteString b =
+            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+        entryGroupId_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. The id of the entry group to create.
+     * </pre>
+     *
+     * <code>string entry_group_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
+     */
+    public Builder setEntryGroupId(java.lang.String value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+
+      entryGroupId_ = value;
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. The id of the entry group to create.
+     * </pre>
+     *
+     * <code>string entry_group_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
+     */
+    public Builder clearEntryGroupId() {
+
+      entryGroupId_ = getDefaultInstance().getEntryGroupId();
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. The id of the entry group to create.
+     * </pre>
+     *
+     * <code>string entry_group_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
+     */
+    public Builder setEntryGroupIdBytes(com.google.protobuf.ByteString value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+      checkByteStringIsUtf8(value);
+
+      entryGroupId_ = value;
+      onChanged();
+      return this;
+    }
+
+    private com.google.cloud.datacatalog.EntryGroup entryGroup_;
+    private com.google.protobuf.SingleFieldBuilderV3<
+            com.google.cloud.datacatalog.EntryGroup,
+            com.google.cloud.datacatalog.EntryGroup.Builder,
+            com.google.cloud.datacatalog.EntryGroupOrBuilder>
+        entryGroupBuilder_;
+    /**
+     *
+     *
+     * <pre>
+     * Optional. The entry group to create. Defaults to an empty entry group.
+     * </pre>
+     *
+     * <code>.google.cloud.datacatalog.v1beta1.EntryGroup entry_group = 2;</code>
+     */
+    public boolean hasEntryGroup() {
+      return entryGroupBuilder_ != null || entryGroup_ != null;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Optional. The entry group to create. Defaults to an empty entry group.
+     * </pre>
+     *
+     * <code>.google.cloud.datacatalog.v1beta1.EntryGroup entry_group = 2;</code>
+     */
+    public com.google.cloud.datacatalog.EntryGroup getEntryGroup() {
+      if (entryGroupBuilder_ == null) {
+        return entryGroup_ == null
+            ? com.google.cloud.datacatalog.EntryGroup.getDefaultInstance()
+            : entryGroup_;
+      } else {
+        return entryGroupBuilder_.getMessage();
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Optional. The entry group to create. Defaults to an empty entry group.
+     * </pre>
+     *
+     * <code>.google.cloud.datacatalog.v1beta1.EntryGroup entry_group = 2;</code>
+     */
+    public Builder setEntryGroup(com.google.cloud.datacatalog.EntryGroup value) {
+      if (entryGroupBuilder_ == null) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        entryGroup_ = value;
+        onChanged();
+      } else {
+        entryGroupBuilder_.setMessage(value);
+      }
+
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Optional. The entry group to create. Defaults to an empty entry group.
+     * </pre>
+     *
+     * <code>.google.cloud.datacatalog.v1beta1.EntryGroup entry_group = 2;</code>
+     */
+    public Builder setEntryGroup(com.google.cloud.datacatalog.EntryGroup.Builder builderForValue) {
+      if (entryGroupBuilder_ == null) {
+        entryGroup_ = builderForValue.build();
+        onChanged();
+      } else {
+        entryGroupBuilder_.setMessage(builderForValue.build());
+      }
+
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Optional. The entry group to create. Defaults to an empty entry group.
+     * </pre>
+     *
+     * <code>.google.cloud.datacatalog.v1beta1.EntryGroup entry_group = 2;</code>
+     */
+    public Builder mergeEntryGroup(com.google.cloud.datacatalog.EntryGroup value) {
+      if (entryGroupBuilder_ == null) {
+        if (entryGroup_ != null) {
+          entryGroup_ =
+              com.google.cloud.datacatalog.EntryGroup.newBuilder(entryGroup_)
+                  .mergeFrom(value)
+                  .buildPartial();
+        } else {
+          entryGroup_ = value;
+        }
+        onChanged();
+      } else {
+        entryGroupBuilder_.mergeFrom(value);
+      }
+
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Optional. The entry group to create. Defaults to an empty entry group.
+     * </pre>
+     *
+     * <code>.google.cloud.datacatalog.v1beta1.EntryGroup entry_group = 2;</code>
+     */
+    public Builder clearEntryGroup() {
+      if (entryGroupBuilder_ == null) {
+        entryGroup_ = null;
+        onChanged();
+      } else {
+        entryGroup_ = null;
+        entryGroupBuilder_ = null;
+      }
+
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Optional. The entry group to create. Defaults to an empty entry group.
+     * </pre>
+     *
+     * <code>.google.cloud.datacatalog.v1beta1.EntryGroup entry_group = 2;</code>
+     */
+    public com.google.cloud.datacatalog.EntryGroup.Builder getEntryGroupBuilder() {
+
+      onChanged();
+      return getEntryGroupFieldBuilder().getBuilder();
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Optional. The entry group to create. Defaults to an empty entry group.
+     * </pre>
+     *
+     * <code>.google.cloud.datacatalog.v1beta1.EntryGroup entry_group = 2;</code>
+     */
+    public com.google.cloud.datacatalog.EntryGroupOrBuilder getEntryGroupOrBuilder() {
+      if (entryGroupBuilder_ != null) {
+        return entryGroupBuilder_.getMessageOrBuilder();
+      } else {
+        return entryGroup_ == null
+            ? com.google.cloud.datacatalog.EntryGroup.getDefaultInstance()
+            : entryGroup_;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Optional. The entry group to create. Defaults to an empty entry group.
+     * </pre>
+     *
+     * <code>.google.cloud.datacatalog.v1beta1.EntryGroup entry_group = 2;</code>
+     */
+    private com.google.protobuf.SingleFieldBuilderV3<
+            com.google.cloud.datacatalog.EntryGroup,
+            com.google.cloud.datacatalog.EntryGroup.Builder,
+            com.google.cloud.datacatalog.EntryGroupOrBuilder>
+        getEntryGroupFieldBuilder() {
+      if (entryGroupBuilder_ == null) {
+        entryGroupBuilder_ =
+            new com.google.protobuf.SingleFieldBuilderV3<
+                com.google.cloud.datacatalog.EntryGroup,
+                com.google.cloud.datacatalog.EntryGroup.Builder,
+                com.google.cloud.datacatalog.EntryGroupOrBuilder>(
+                getEntryGroup(), getParentForChildren(), isClean());
+        entryGroup_ = null;
+      }
+      return entryGroupBuilder_;
+    }
+
+    @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.datacatalog.v1beta1.CreateEntryGroupRequest)
+  }
+
+  // @@protoc_insertion_point(class_scope:google.cloud.datacatalog.v1beta1.CreateEntryGroupRequest)
+  private static final com.google.cloud.datacatalog.CreateEntryGroupRequest DEFAULT_INSTANCE;
+
+  static {
+    DEFAULT_INSTANCE = new com.google.cloud.datacatalog.CreateEntryGroupRequest();
+  }
+
+  public static com.google.cloud.datacatalog.CreateEntryGroupRequest getDefaultInstance() {
+    return DEFAULT_INSTANCE;
+  }
+
+  private static final com.google.protobuf.Parser<CreateEntryGroupRequest> PARSER =
+      new com.google.protobuf.AbstractParser<CreateEntryGroupRequest>() {
+        @java.lang.Override
+        public CreateEntryGroupRequest parsePartialFrom(
+            com.google.protobuf.CodedInputStream input,
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+            throws com.google.protobuf.InvalidProtocolBufferException {
+          return new CreateEntryGroupRequest(input, extensionRegistry);
+        }
+      };
+
+  public static com.google.protobuf.Parser<CreateEntryGroupRequest> parser() {
+    return PARSER;
+  }
+
+  @java.lang.Override
+  public com.google.protobuf.Parser<CreateEntryGroupRequest> getParserForType() {
+    return PARSER;
+  }
+
+  @java.lang.Override
+  public com.google.cloud.datacatalog.CreateEntryGroupRequest getDefaultInstanceForType() {
+    return DEFAULT_INSTANCE;
+  }
+}
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/CreateEntryGroupRequestOrBuilder.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/CreateEntryGroupRequestOrBuilder.java
new file mode 100644
index 000000000000..fe9e364852c2
--- /dev/null
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/CreateEntryGroupRequestOrBuilder.java
@@ -0,0 +1,93 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: google/cloud/datacatalog/v1beta1/datacatalog.proto
+
+package com.google.cloud.datacatalog;
+
+public interface CreateEntryGroupRequestOrBuilder
+    extends
+    // @@protoc_insertion_point(interface_extends:google.cloud.datacatalog.v1beta1.CreateEntryGroupRequest)
+    com.google.protobuf.MessageOrBuilder {
+
+  /**
+   *
+   *
+   * <pre>
+   * Required. The name of the project this entry group is in. Example:
+   * * projects/{project_id}/locations/{location}
+   * Note that this EntryGroup and its child resources may not actually be
+   * stored in the location in this name.
+   * </pre>
+   *
+   * <code>
+   * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
+   */
+  java.lang.String getParent();
+  /**
+   *
+   *
+   * <pre>
+   * Required. The name of the project this entry group is in. Example:
+   * * projects/{project_id}/locations/{location}
+   * Note that this EntryGroup and its child resources may not actually be
+   * stored in the location in this name.
+   * </pre>
+   *
+   * <code>
+   * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
+   */
+  com.google.protobuf.ByteString getParentBytes();
+
+  /**
+   *
+   *
+   * <pre>
+   * Required. The id of the entry group to create.
+   * </pre>
+   *
+   * <code>string entry_group_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
+   */
+  java.lang.String getEntryGroupId();
+  /**
+   *
+   *
+   * <pre>
+   * Required. The id of the entry group to create.
+   * </pre>
+   *
+   * <code>string entry_group_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
+   */
+  com.google.protobuf.ByteString getEntryGroupIdBytes();
+
+  /**
+   *
+   *
+   * <pre>
+   * Optional. The entry group to create. Defaults to an empty entry group.
+   * </pre>
+   *
+   * <code>.google.cloud.datacatalog.v1beta1.EntryGroup entry_group = 2;</code>
+   */
+  boolean hasEntryGroup();
+  /**
+   *
+   *
+   * <pre>
+   * Optional. The entry group to create. Defaults to an empty entry group.
+   * </pre>
+   *
+   * <code>.google.cloud.datacatalog.v1beta1.EntryGroup entry_group = 2;</code>
+   */
+  com.google.cloud.datacatalog.EntryGroup getEntryGroup();
+  /**
+   *
+   *
+   * <pre>
+   * Optional. The entry group to create. Defaults to an empty entry group.
+   * </pre>
+   *
+   * <code>.google.cloud.datacatalog.v1beta1.EntryGroup entry_group = 2;</code>
+   */
+  com.google.cloud.datacatalog.EntryGroupOrBuilder getEntryGroupOrBuilder();
+}
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/CreateEntryRequest.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/CreateEntryRequest.java
new file mode 100644
index 000000000000..e5d125f5183c
--- /dev/null
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/CreateEntryRequest.java
@@ -0,0 +1,1076 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: google/cloud/datacatalog/v1beta1/datacatalog.proto
+
+package com.google.cloud.datacatalog;
+
+/**
+ *
+ *
+ * <pre>
+ * Request message for
+ * [CreateEntry][google.cloud.datacatalog.v1beta1.DataCatalog.CreateEntry].
+ * </pre>
+ *
+ * Protobuf type {@code google.cloud.datacatalog.v1beta1.CreateEntryRequest}
+ */
+public final class CreateEntryRequest extends com.google.protobuf.GeneratedMessageV3
+    implements
+    // @@protoc_insertion_point(message_implements:google.cloud.datacatalog.v1beta1.CreateEntryRequest)
+    CreateEntryRequestOrBuilder {
+  private static final long serialVersionUID = 0L;
+  // Use CreateEntryRequest.newBuilder() to construct.
+  private CreateEntryRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+    super(builder);
+  }
+
+  private CreateEntryRequest() {
+    parent_ = "";
+    entryId_ = "";
+  }
+
+  @java.lang.Override
+  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
+    return this.unknownFields;
+  }
+
+  private CreateEntryRequest(
+      com.google.protobuf.CodedInputStream input,
+      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
+    int mutable_bitField0_ = 0;
+    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+        com.google.protobuf.UnknownFieldSet.newBuilder();
+    try {
+      boolean done = false;
+      while (!done) {
+        int tag = input.readTag();
+        switch (tag) {
+          case 0:
+            done = true;
+            break;
+          case 10:
+            {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              parent_ = s;
+              break;
+            }
+          case 18:
+            {
+              com.google.cloud.datacatalog.Entry.Builder subBuilder = null;
+              if (entry_ != null) {
+                subBuilder = entry_.toBuilder();
+              }
+              entry_ =
+                  input.readMessage(com.google.cloud.datacatalog.Entry.parser(), extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(entry_);
+                entry_ = subBuilder.buildPartial();
+              }
+
+              break;
+            }
+          case 26:
+            {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              entryId_ = 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.datacatalog.Datacatalog
+        .internal_static_google_cloud_datacatalog_v1beta1_CreateEntryRequest_descriptor;
+  }
+
+  @java.lang.Override
+  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internalGetFieldAccessorTable() {
+    return com.google.cloud.datacatalog.Datacatalog
+        .internal_static_google_cloud_datacatalog_v1beta1_CreateEntryRequest_fieldAccessorTable
+        .ensureFieldAccessorsInitialized(
+            com.google.cloud.datacatalog.CreateEntryRequest.class,
+            com.google.cloud.datacatalog.CreateEntryRequest.Builder.class);
+  }
+
+  public static final int PARENT_FIELD_NUMBER = 1;
+  private volatile java.lang.Object parent_;
+  /**
+   *
+   *
+   * <pre>
+   * Required. The name of the entry group this entry is in. Example:
+   * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}
+   * Note that this Entry and its child resources may not actually be stored in
+   * the location in this name.
+   * </pre>
+   *
+   * <code>
+   * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
+   */
+  public java.lang.String getParent() {
+    java.lang.Object ref = parent_;
+    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();
+      parent_ = s;
+      return s;
+    }
+  }
+  /**
+   *
+   *
+   * <pre>
+   * Required. The name of the entry group this entry is in. Example:
+   * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}
+   * Note that this Entry and its child resources may not actually be stored in
+   * the location in this name.
+   * </pre>
+   *
+   * <code>
+   * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
+   */
+  public com.google.protobuf.ByteString getParentBytes() {
+    java.lang.Object ref = parent_;
+    if (ref instanceof java.lang.String) {
+      com.google.protobuf.ByteString b =
+          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+      parent_ = b;
+      return b;
+    } else {
+      return (com.google.protobuf.ByteString) ref;
+    }
+  }
+
+  public static final int ENTRY_ID_FIELD_NUMBER = 3;
+  private volatile java.lang.Object entryId_;
+  /**
+   *
+   *
+   * <pre>
+   * Required. The id of the entry to create.
+   * </pre>
+   *
+   * <code>string entry_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
+   */
+  public java.lang.String getEntryId() {
+    java.lang.Object ref = entryId_;
+    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();
+      entryId_ = s;
+      return s;
+    }
+  }
+  /**
+   *
+   *
+   * <pre>
+   * Required. The id of the entry to create.
+   * </pre>
+   *
+   * <code>string entry_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
+   */
+  public com.google.protobuf.ByteString getEntryIdBytes() {
+    java.lang.Object ref = entryId_;
+    if (ref instanceof java.lang.String) {
+      com.google.protobuf.ByteString b =
+          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+      entryId_ = b;
+      return b;
+    } else {
+      return (com.google.protobuf.ByteString) ref;
+    }
+  }
+
+  public static final int ENTRY_FIELD_NUMBER = 2;
+  private com.google.cloud.datacatalog.Entry entry_;
+  /**
+   *
+   *
+   * <pre>
+   * Required. The entry to create.
+   * </pre>
+   *
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.Entry entry = 2 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
+   */
+  public boolean hasEntry() {
+    return entry_ != null;
+  }
+  /**
+   *
+   *
+   * <pre>
+   * Required. The entry to create.
+   * </pre>
+   *
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.Entry entry = 2 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
+   */
+  public com.google.cloud.datacatalog.Entry getEntry() {
+    return entry_ == null ? com.google.cloud.datacatalog.Entry.getDefaultInstance() : entry_;
+  }
+  /**
+   *
+   *
+   * <pre>
+   * Required. The entry to create.
+   * </pre>
+   *
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.Entry entry = 2 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
+   */
+  public com.google.cloud.datacatalog.EntryOrBuilder getEntryOrBuilder() {
+    return getEntry();
+  }
+
+  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 (!getParentBytes().isEmpty()) {
+      com.google.protobuf.GeneratedMessageV3.writeString(output, 1, parent_);
+    }
+    if (entry_ != null) {
+      output.writeMessage(2, getEntry());
+    }
+    if (!getEntryIdBytes().isEmpty()) {
+      com.google.protobuf.GeneratedMessageV3.writeString(output, 3, entryId_);
+    }
+    unknownFields.writeTo(output);
+  }
+
+  @java.lang.Override
+  public int getSerializedSize() {
+    int size = memoizedSize;
+    if (size != -1) return size;
+
+    size = 0;
+    if (!getParentBytes().isEmpty()) {
+      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, parent_);
+    }
+    if (entry_ != null) {
+      size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getEntry());
+    }
+    if (!getEntryIdBytes().isEmpty()) {
+      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, entryId_);
+    }
+    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.datacatalog.CreateEntryRequest)) {
+      return super.equals(obj);
+    }
+    com.google.cloud.datacatalog.CreateEntryRequest other =
+        (com.google.cloud.datacatalog.CreateEntryRequest) obj;
+
+    if (!getParent().equals(other.getParent())) return false;
+    if (!getEntryId().equals(other.getEntryId())) return false;
+    if (hasEntry() != other.hasEntry()) return false;
+    if (hasEntry()) {
+      if (!getEntry().equals(other.getEntry())) 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) + PARENT_FIELD_NUMBER;
+    hash = (53 * hash) + getParent().hashCode();
+    hash = (37 * hash) + ENTRY_ID_FIELD_NUMBER;
+    hash = (53 * hash) + getEntryId().hashCode();
+    if (hasEntry()) {
+      hash = (37 * hash) + ENTRY_FIELD_NUMBER;
+      hash = (53 * hash) + getEntry().hashCode();
+    }
+    hash = (29 * hash) + unknownFields.hashCode();
+    memoizedHashCode = hash;
+    return hash;
+  }
+
+  public static com.google.cloud.datacatalog.CreateEntryRequest parseFrom(java.nio.ByteBuffer data)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data);
+  }
+
+  public static com.google.cloud.datacatalog.CreateEntryRequest 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.datacatalog.CreateEntryRequest parseFrom(
+      com.google.protobuf.ByteString data)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data);
+  }
+
+  public static com.google.cloud.datacatalog.CreateEntryRequest 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.datacatalog.CreateEntryRequest parseFrom(byte[] data)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data);
+  }
+
+  public static com.google.cloud.datacatalog.CreateEntryRequest parseFrom(
+      byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data, extensionRegistry);
+  }
+
+  public static com.google.cloud.datacatalog.CreateEntryRequest parseFrom(java.io.InputStream input)
+      throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+  }
+
+  public static com.google.cloud.datacatalog.CreateEntryRequest 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.datacatalog.CreateEntryRequest parseDelimitedFrom(
+      java.io.InputStream input) throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
+  }
+
+  public static com.google.cloud.datacatalog.CreateEntryRequest 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.datacatalog.CreateEntryRequest parseFrom(
+      com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+  }
+
+  public static com.google.cloud.datacatalog.CreateEntryRequest 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.datacatalog.CreateEntryRequest 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>
+   * Request message for
+   * [CreateEntry][google.cloud.datacatalog.v1beta1.DataCatalog.CreateEntry].
+   * </pre>
+   *
+   * Protobuf type {@code google.cloud.datacatalog.v1beta1.CreateEntryRequest}
+   */
+  public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
+      implements
+      // @@protoc_insertion_point(builder_implements:google.cloud.datacatalog.v1beta1.CreateEntryRequest)
+      com.google.cloud.datacatalog.CreateEntryRequestOrBuilder {
+    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+      return com.google.cloud.datacatalog.Datacatalog
+          .internal_static_google_cloud_datacatalog_v1beta1_CreateEntryRequest_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return com.google.cloud.datacatalog.Datacatalog
+          .internal_static_google_cloud_datacatalog_v1beta1_CreateEntryRequest_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              com.google.cloud.datacatalog.CreateEntryRequest.class,
+              com.google.cloud.datacatalog.CreateEntryRequest.Builder.class);
+    }
+
+    // Construct using com.google.cloud.datacatalog.CreateEntryRequest.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();
+      parent_ = "";
+
+      entryId_ = "";
+
+      if (entryBuilder_ == null) {
+        entry_ = null;
+      } else {
+        entry_ = null;
+        entryBuilder_ = null;
+      }
+      return this;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
+      return com.google.cloud.datacatalog.Datacatalog
+          .internal_static_google_cloud_datacatalog_v1beta1_CreateEntryRequest_descriptor;
+    }
+
+    @java.lang.Override
+    public com.google.cloud.datacatalog.CreateEntryRequest getDefaultInstanceForType() {
+      return com.google.cloud.datacatalog.CreateEntryRequest.getDefaultInstance();
+    }
+
+    @java.lang.Override
+    public com.google.cloud.datacatalog.CreateEntryRequest build() {
+      com.google.cloud.datacatalog.CreateEntryRequest result = buildPartial();
+      if (!result.isInitialized()) {
+        throw newUninitializedMessageException(result);
+      }
+      return result;
+    }
+
+    @java.lang.Override
+    public com.google.cloud.datacatalog.CreateEntryRequest buildPartial() {
+      com.google.cloud.datacatalog.CreateEntryRequest result =
+          new com.google.cloud.datacatalog.CreateEntryRequest(this);
+      result.parent_ = parent_;
+      result.entryId_ = entryId_;
+      if (entryBuilder_ == null) {
+        result.entry_ = entry_;
+      } else {
+        result.entry_ = entryBuilder_.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.datacatalog.CreateEntryRequest) {
+        return mergeFrom((com.google.cloud.datacatalog.CreateEntryRequest) other);
+      } else {
+        super.mergeFrom(other);
+        return this;
+      }
+    }
+
+    public Builder mergeFrom(com.google.cloud.datacatalog.CreateEntryRequest other) {
+      if (other == com.google.cloud.datacatalog.CreateEntryRequest.getDefaultInstance())
+        return this;
+      if (!other.getParent().isEmpty()) {
+        parent_ = other.parent_;
+        onChanged();
+      }
+      if (!other.getEntryId().isEmpty()) {
+        entryId_ = other.entryId_;
+        onChanged();
+      }
+      if (other.hasEntry()) {
+        mergeEntry(other.getEntry());
+      }
+      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.datacatalog.CreateEntryRequest parsedMessage = null;
+      try {
+        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        parsedMessage = (com.google.cloud.datacatalog.CreateEntryRequest) e.getUnfinishedMessage();
+        throw e.unwrapIOException();
+      } finally {
+        if (parsedMessage != null) {
+          mergeFrom(parsedMessage);
+        }
+      }
+      return this;
+    }
+
+    private java.lang.Object parent_ = "";
+    /**
+     *
+     *
+     * <pre>
+     * Required. The name of the entry group this entry is in. Example:
+     * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}
+     * Note that this Entry and its child resources may not actually be stored in
+     * the location in this name.
+     * </pre>
+     *
+     * <code>
+     * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
+     */
+    public java.lang.String getParent() {
+      java.lang.Object ref = parent_;
+      if (!(ref instanceof java.lang.String)) {
+        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        parent_ = s;
+        return s;
+      } else {
+        return (java.lang.String) ref;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. The name of the entry group this entry is in. Example:
+     * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}
+     * Note that this Entry and its child resources may not actually be stored in
+     * the location in this name.
+     * </pre>
+     *
+     * <code>
+     * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
+     */
+    public com.google.protobuf.ByteString getParentBytes() {
+      java.lang.Object ref = parent_;
+      if (ref instanceof String) {
+        com.google.protobuf.ByteString b =
+            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+        parent_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. The name of the entry group this entry is in. Example:
+     * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}
+     * Note that this Entry and its child resources may not actually be stored in
+     * the location in this name.
+     * </pre>
+     *
+     * <code>
+     * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
+     */
+    public Builder setParent(java.lang.String value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+
+      parent_ = value;
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. The name of the entry group this entry is in. Example:
+     * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}
+     * Note that this Entry and its child resources may not actually be stored in
+     * the location in this name.
+     * </pre>
+     *
+     * <code>
+     * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
+     */
+    public Builder clearParent() {
+
+      parent_ = getDefaultInstance().getParent();
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. The name of the entry group this entry is in. Example:
+     * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}
+     * Note that this Entry and its child resources may not actually be stored in
+     * the location in this name.
+     * </pre>
+     *
+     * <code>
+     * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
+     */
+    public Builder setParentBytes(com.google.protobuf.ByteString value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+      checkByteStringIsUtf8(value);
+
+      parent_ = value;
+      onChanged();
+      return this;
+    }
+
+    private java.lang.Object entryId_ = "";
+    /**
+     *
+     *
+     * <pre>
+     * Required. The id of the entry to create.
+     * </pre>
+     *
+     * <code>string entry_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
+     */
+    public java.lang.String getEntryId() {
+      java.lang.Object ref = entryId_;
+      if (!(ref instanceof java.lang.String)) {
+        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        entryId_ = s;
+        return s;
+      } else {
+        return (java.lang.String) ref;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. The id of the entry to create.
+     * </pre>
+     *
+     * <code>string entry_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
+     */
+    public com.google.protobuf.ByteString getEntryIdBytes() {
+      java.lang.Object ref = entryId_;
+      if (ref instanceof String) {
+        com.google.protobuf.ByteString b =
+            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+        entryId_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. The id of the entry to create.
+     * </pre>
+     *
+     * <code>string entry_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
+     */
+    public Builder setEntryId(java.lang.String value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+
+      entryId_ = value;
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. The id of the entry to create.
+     * </pre>
+     *
+     * <code>string entry_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
+     */
+    public Builder clearEntryId() {
+
+      entryId_ = getDefaultInstance().getEntryId();
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. The id of the entry to create.
+     * </pre>
+     *
+     * <code>string entry_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
+     */
+    public Builder setEntryIdBytes(com.google.protobuf.ByteString value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+      checkByteStringIsUtf8(value);
+
+      entryId_ = value;
+      onChanged();
+      return this;
+    }
+
+    private com.google.cloud.datacatalog.Entry entry_;
+    private com.google.protobuf.SingleFieldBuilderV3<
+            com.google.cloud.datacatalog.Entry,
+            com.google.cloud.datacatalog.Entry.Builder,
+            com.google.cloud.datacatalog.EntryOrBuilder>
+        entryBuilder_;
+    /**
+     *
+     *
+     * <pre>
+     * Required. The entry to create.
+     * </pre>
+     *
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.Entry entry = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
+     */
+    public boolean hasEntry() {
+      return entryBuilder_ != null || entry_ != null;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. The entry to create.
+     * </pre>
+     *
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.Entry entry = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
+     */
+    public com.google.cloud.datacatalog.Entry getEntry() {
+      if (entryBuilder_ == null) {
+        return entry_ == null ? com.google.cloud.datacatalog.Entry.getDefaultInstance() : entry_;
+      } else {
+        return entryBuilder_.getMessage();
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. The entry to create.
+     * </pre>
+     *
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.Entry entry = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
+     */
+    public Builder setEntry(com.google.cloud.datacatalog.Entry value) {
+      if (entryBuilder_ == null) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        entry_ = value;
+        onChanged();
+      } else {
+        entryBuilder_.setMessage(value);
+      }
+
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. The entry to create.
+     * </pre>
+     *
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.Entry entry = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
+     */
+    public Builder setEntry(com.google.cloud.datacatalog.Entry.Builder builderForValue) {
+      if (entryBuilder_ == null) {
+        entry_ = builderForValue.build();
+        onChanged();
+      } else {
+        entryBuilder_.setMessage(builderForValue.build());
+      }
+
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. The entry to create.
+     * </pre>
+     *
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.Entry entry = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
+     */
+    public Builder mergeEntry(com.google.cloud.datacatalog.Entry value) {
+      if (entryBuilder_ == null) {
+        if (entry_ != null) {
+          entry_ =
+              com.google.cloud.datacatalog.Entry.newBuilder(entry_).mergeFrom(value).buildPartial();
+        } else {
+          entry_ = value;
+        }
+        onChanged();
+      } else {
+        entryBuilder_.mergeFrom(value);
+      }
+
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. The entry to create.
+     * </pre>
+     *
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.Entry entry = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
+     */
+    public Builder clearEntry() {
+      if (entryBuilder_ == null) {
+        entry_ = null;
+        onChanged();
+      } else {
+        entry_ = null;
+        entryBuilder_ = null;
+      }
+
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. The entry to create.
+     * </pre>
+     *
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.Entry entry = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
+     */
+    public com.google.cloud.datacatalog.Entry.Builder getEntryBuilder() {
+
+      onChanged();
+      return getEntryFieldBuilder().getBuilder();
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. The entry to create.
+     * </pre>
+     *
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.Entry entry = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
+     */
+    public com.google.cloud.datacatalog.EntryOrBuilder getEntryOrBuilder() {
+      if (entryBuilder_ != null) {
+        return entryBuilder_.getMessageOrBuilder();
+      } else {
+        return entry_ == null ? com.google.cloud.datacatalog.Entry.getDefaultInstance() : entry_;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. The entry to create.
+     * </pre>
+     *
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.Entry entry = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
+     */
+    private com.google.protobuf.SingleFieldBuilderV3<
+            com.google.cloud.datacatalog.Entry,
+            com.google.cloud.datacatalog.Entry.Builder,
+            com.google.cloud.datacatalog.EntryOrBuilder>
+        getEntryFieldBuilder() {
+      if (entryBuilder_ == null) {
+        entryBuilder_ =
+            new com.google.protobuf.SingleFieldBuilderV3<
+                com.google.cloud.datacatalog.Entry,
+                com.google.cloud.datacatalog.Entry.Builder,
+                com.google.cloud.datacatalog.EntryOrBuilder>(
+                getEntry(), getParentForChildren(), isClean());
+        entry_ = null;
+      }
+      return entryBuilder_;
+    }
+
+    @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.datacatalog.v1beta1.CreateEntryRequest)
+  }
+
+  // @@protoc_insertion_point(class_scope:google.cloud.datacatalog.v1beta1.CreateEntryRequest)
+  private static final com.google.cloud.datacatalog.CreateEntryRequest DEFAULT_INSTANCE;
+
+  static {
+    DEFAULT_INSTANCE = new com.google.cloud.datacatalog.CreateEntryRequest();
+  }
+
+  public static com.google.cloud.datacatalog.CreateEntryRequest getDefaultInstance() {
+    return DEFAULT_INSTANCE;
+  }
+
+  private static final com.google.protobuf.Parser<CreateEntryRequest> PARSER =
+      new com.google.protobuf.AbstractParser<CreateEntryRequest>() {
+        @java.lang.Override
+        public CreateEntryRequest parsePartialFrom(
+            com.google.protobuf.CodedInputStream input,
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+            throws com.google.protobuf.InvalidProtocolBufferException {
+          return new CreateEntryRequest(input, extensionRegistry);
+        }
+      };
+
+  public static com.google.protobuf.Parser<CreateEntryRequest> parser() {
+    return PARSER;
+  }
+
+  @java.lang.Override
+  public com.google.protobuf.Parser<CreateEntryRequest> getParserForType() {
+    return PARSER;
+  }
+
+  @java.lang.Override
+  public com.google.cloud.datacatalog.CreateEntryRequest getDefaultInstanceForType() {
+    return DEFAULT_INSTANCE;
+  }
+}
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/CreateEntryRequestOrBuilder.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/CreateEntryRequestOrBuilder.java
new file mode 100644
index 000000000000..5f66bf8c4535
--- /dev/null
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/CreateEntryRequestOrBuilder.java
@@ -0,0 +1,99 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: google/cloud/datacatalog/v1beta1/datacatalog.proto
+
+package com.google.cloud.datacatalog;
+
+public interface CreateEntryRequestOrBuilder
+    extends
+    // @@protoc_insertion_point(interface_extends:google.cloud.datacatalog.v1beta1.CreateEntryRequest)
+    com.google.protobuf.MessageOrBuilder {
+
+  /**
+   *
+   *
+   * <pre>
+   * Required. The name of the entry group this entry is in. Example:
+   * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}
+   * Note that this Entry and its child resources may not actually be stored in
+   * the location in this name.
+   * </pre>
+   *
+   * <code>
+   * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
+   */
+  java.lang.String getParent();
+  /**
+   *
+   *
+   * <pre>
+   * Required. The name of the entry group this entry is in. Example:
+   * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}
+   * Note that this Entry and its child resources may not actually be stored in
+   * the location in this name.
+   * </pre>
+   *
+   * <code>
+   * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
+   */
+  com.google.protobuf.ByteString getParentBytes();
+
+  /**
+   *
+   *
+   * <pre>
+   * Required. The id of the entry to create.
+   * </pre>
+   *
+   * <code>string entry_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
+   */
+  java.lang.String getEntryId();
+  /**
+   *
+   *
+   * <pre>
+   * Required. The id of the entry to create.
+   * </pre>
+   *
+   * <code>string entry_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
+   */
+  com.google.protobuf.ByteString getEntryIdBytes();
+
+  /**
+   *
+   *
+   * <pre>
+   * Required. The entry to create.
+   * </pre>
+   *
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.Entry entry = 2 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
+   */
+  boolean hasEntry();
+  /**
+   *
+   *
+   * <pre>
+   * Required. The entry to create.
+   * </pre>
+   *
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.Entry entry = 2 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
+   */
+  com.google.cloud.datacatalog.Entry getEntry();
+  /**
+   *
+   *
+   * <pre>
+   * Required. The entry to create.
+   * </pre>
+   *
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.Entry entry = 2 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
+   */
+  com.google.cloud.datacatalog.EntryOrBuilder getEntryOrBuilder();
+}
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/CreateTagRequest.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/CreateTagRequest.java
index 09a2a6773992..770444649e8b 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/CreateTagRequest.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/CreateTagRequest.java
@@ -113,15 +113,16 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    *
    *
    * <pre>
-   * Required.
-   * The name of the resource to attach this tag to. Tags can be attached to
-   * Entries. (example:
-   * "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}").
+   * Required. The name of the resource to attach this tag to. Tags can be attached to
+   * Entries. Example:
+   * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
    * Note that this Tag and its child resources may not actually be stored in
    * the location in this name.
    * </pre>
    *
-   * <code>string parent = 1;</code>
+   * <code>
+   * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   public java.lang.String getParent() {
     java.lang.Object ref = parent_;
@@ -138,15 +139,16 @@ public java.lang.String getParent() {
    *
    *
    * <pre>
-   * Required.
-   * The name of the resource to attach this tag to. Tags can be attached to
-   * Entries. (example:
-   * "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}").
+   * Required. The name of the resource to attach this tag to. Tags can be attached to
+   * Entries. Example:
+   * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
    * Note that this Tag and its child resources may not actually be stored in
    * the location in this name.
    * </pre>
    *
-   * <code>string parent = 1;</code>
+   * <code>
+   * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   public com.google.protobuf.ByteString getParentBytes() {
     java.lang.Object ref = parent_;
@@ -169,7 +171,8 @@ public com.google.protobuf.ByteString getParentBytes() {
    * Required. The tag to create.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.Tag tag = 2;</code>
+   * <code>.google.cloud.datacatalog.v1beta1.Tag tag = 2 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   public boolean hasTag() {
     return tag_ != null;
@@ -181,7 +184,8 @@ public boolean hasTag() {
    * Required. The tag to create.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.Tag tag = 2;</code>
+   * <code>.google.cloud.datacatalog.v1beta1.Tag tag = 2 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   public com.google.cloud.datacatalog.Tag getTag() {
     return tag_ == null ? com.google.cloud.datacatalog.Tag.getDefaultInstance() : tag_;
@@ -193,7 +197,8 @@ public com.google.cloud.datacatalog.Tag getTag() {
    * Required. The tag to create.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.Tag tag = 2;</code>
+   * <code>.google.cloud.datacatalog.v1beta1.Tag tag = 2 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   public com.google.cloud.datacatalog.TagOrBuilder getTagOrBuilder() {
     return getTag();
@@ -549,15 +554,16 @@ public Builder mergeFrom(
      *
      *
      * <pre>
-     * Required.
-     * The name of the resource to attach this tag to. Tags can be attached to
-     * Entries. (example:
-     * "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}").
+     * Required. The name of the resource to attach this tag to. Tags can be attached to
+     * Entries. Example:
+     * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
      * Note that this Tag and its child resources may not actually be stored in
      * the location in this name.
      * </pre>
      *
-     * <code>string parent = 1;</code>
+     * <code>
+     * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public java.lang.String getParent() {
       java.lang.Object ref = parent_;
@@ -574,15 +580,16 @@ public java.lang.String getParent() {
      *
      *
      * <pre>
-     * Required.
-     * The name of the resource to attach this tag to. Tags can be attached to
-     * Entries. (example:
-     * "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}").
+     * Required. The name of the resource to attach this tag to. Tags can be attached to
+     * Entries. Example:
+     * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
      * Note that this Tag and its child resources may not actually be stored in
      * the location in this name.
      * </pre>
      *
-     * <code>string parent = 1;</code>
+     * <code>
+     * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public com.google.protobuf.ByteString getParentBytes() {
       java.lang.Object ref = parent_;
@@ -599,15 +606,16 @@ public com.google.protobuf.ByteString getParentBytes() {
      *
      *
      * <pre>
-     * Required.
-     * The name of the resource to attach this tag to. Tags can be attached to
-     * Entries. (example:
-     * "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}").
+     * Required. The name of the resource to attach this tag to. Tags can be attached to
+     * Entries. Example:
+     * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
      * Note that this Tag and its child resources may not actually be stored in
      * the location in this name.
      * </pre>
      *
-     * <code>string parent = 1;</code>
+     * <code>
+     * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public Builder setParent(java.lang.String value) {
       if (value == null) {
@@ -622,15 +630,16 @@ public Builder setParent(java.lang.String value) {
      *
      *
      * <pre>
-     * Required.
-     * The name of the resource to attach this tag to. Tags can be attached to
-     * Entries. (example:
-     * "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}").
+     * Required. The name of the resource to attach this tag to. Tags can be attached to
+     * Entries. Example:
+     * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
      * Note that this Tag and its child resources may not actually be stored in
      * the location in this name.
      * </pre>
      *
-     * <code>string parent = 1;</code>
+     * <code>
+     * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public Builder clearParent() {
 
@@ -642,15 +651,16 @@ public Builder clearParent() {
      *
      *
      * <pre>
-     * Required.
-     * The name of the resource to attach this tag to. Tags can be attached to
-     * Entries. (example:
-     * "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}").
+     * Required. The name of the resource to attach this tag to. Tags can be attached to
+     * Entries. Example:
+     * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
      * Note that this Tag and its child resources may not actually be stored in
      * the location in this name.
      * </pre>
      *
-     * <code>string parent = 1;</code>
+     * <code>
+     * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public Builder setParentBytes(com.google.protobuf.ByteString value) {
       if (value == null) {
@@ -676,7 +686,9 @@ public Builder setParentBytes(com.google.protobuf.ByteString value) {
      * Required. The tag to create.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.Tag tag = 2;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.Tag tag = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public boolean hasTag() {
       return tagBuilder_ != null || tag_ != null;
@@ -688,7 +700,9 @@ public boolean hasTag() {
      * Required. The tag to create.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.Tag tag = 2;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.Tag tag = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public com.google.cloud.datacatalog.Tag getTag() {
       if (tagBuilder_ == null) {
@@ -704,7 +718,9 @@ public com.google.cloud.datacatalog.Tag getTag() {
      * Required. The tag to create.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.Tag tag = 2;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.Tag tag = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder setTag(com.google.cloud.datacatalog.Tag value) {
       if (tagBuilder_ == null) {
@@ -726,7 +742,9 @@ public Builder setTag(com.google.cloud.datacatalog.Tag value) {
      * Required. The tag to create.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.Tag tag = 2;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.Tag tag = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder setTag(com.google.cloud.datacatalog.Tag.Builder builderForValue) {
       if (tagBuilder_ == null) {
@@ -745,7 +763,9 @@ public Builder setTag(com.google.cloud.datacatalog.Tag.Builder builderForValue)
      * Required. The tag to create.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.Tag tag = 2;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.Tag tag = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder mergeTag(com.google.cloud.datacatalog.Tag value) {
       if (tagBuilder_ == null) {
@@ -768,7 +788,9 @@ public Builder mergeTag(com.google.cloud.datacatalog.Tag value) {
      * Required. The tag to create.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.Tag tag = 2;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.Tag tag = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder clearTag() {
       if (tagBuilder_ == null) {
@@ -788,7 +810,9 @@ public Builder clearTag() {
      * Required. The tag to create.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.Tag tag = 2;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.Tag tag = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public com.google.cloud.datacatalog.Tag.Builder getTagBuilder() {
 
@@ -802,7 +826,9 @@ public com.google.cloud.datacatalog.Tag.Builder getTagBuilder() {
      * Required. The tag to create.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.Tag tag = 2;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.Tag tag = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public com.google.cloud.datacatalog.TagOrBuilder getTagOrBuilder() {
       if (tagBuilder_ != null) {
@@ -818,7 +844,9 @@ public com.google.cloud.datacatalog.TagOrBuilder getTagOrBuilder() {
      * Required. The tag to create.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.Tag tag = 2;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.Tag tag = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     private com.google.protobuf.SingleFieldBuilderV3<
             com.google.cloud.datacatalog.Tag,
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/CreateTagRequestOrBuilder.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/CreateTagRequestOrBuilder.java
index 7d869314ee10..d717d19a98de 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/CreateTagRequestOrBuilder.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/CreateTagRequestOrBuilder.java
@@ -12,30 +12,32 @@ public interface CreateTagRequestOrBuilder
    *
    *
    * <pre>
-   * Required.
-   * The name of the resource to attach this tag to. Tags can be attached to
-   * Entries. (example:
-   * "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}").
+   * Required. The name of the resource to attach this tag to. Tags can be attached to
+   * Entries. Example:
+   * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
    * Note that this Tag and its child resources may not actually be stored in
    * the location in this name.
    * </pre>
    *
-   * <code>string parent = 1;</code>
+   * <code>
+   * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   java.lang.String getParent();
   /**
    *
    *
    * <pre>
-   * Required.
-   * The name of the resource to attach this tag to. Tags can be attached to
-   * Entries. (example:
-   * "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}").
+   * Required. The name of the resource to attach this tag to. Tags can be attached to
+   * Entries. Example:
+   * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
    * Note that this Tag and its child resources may not actually be stored in
    * the location in this name.
    * </pre>
    *
-   * <code>string parent = 1;</code>
+   * <code>
+   * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   com.google.protobuf.ByteString getParentBytes();
 
@@ -46,7 +48,8 @@ public interface CreateTagRequestOrBuilder
    * Required. The tag to create.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.Tag tag = 2;</code>
+   * <code>.google.cloud.datacatalog.v1beta1.Tag tag = 2 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   boolean hasTag();
   /**
@@ -56,7 +59,8 @@ public interface CreateTagRequestOrBuilder
    * Required. The tag to create.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.Tag tag = 2;</code>
+   * <code>.google.cloud.datacatalog.v1beta1.Tag tag = 2 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   com.google.cloud.datacatalog.Tag getTag();
   /**
@@ -66,7 +70,8 @@ public interface CreateTagRequestOrBuilder
    * Required. The tag to create.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.Tag tag = 2;</code>
+   * <code>.google.cloud.datacatalog.v1beta1.Tag tag = 2 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   com.google.cloud.datacatalog.TagOrBuilder getTagOrBuilder();
 }
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/CreateTagTemplateFieldRequest.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/CreateTagTemplateFieldRequest.java
index 31c4e6f7c3a6..5efaf765fe20 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/CreateTagTemplateFieldRequest.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/CreateTagTemplateFieldRequest.java
@@ -123,12 +123,14 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    *
    * <pre>
    * Required. The name of the project this template is in. Example:
-   * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}".
+   * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
    * Note that this TagTemplateField may not actually be stored in the location
    * in this name.
    * </pre>
    *
-   * <code>string parent = 1;</code>
+   * <code>
+   * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   public java.lang.String getParent() {
     java.lang.Object ref = parent_;
@@ -146,12 +148,14 @@ public java.lang.String getParent() {
    *
    * <pre>
    * Required. The name of the project this template is in. Example:
-   * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}".
+   * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
    * Note that this TagTemplateField may not actually be stored in the location
    * in this name.
    * </pre>
    *
-   * <code>string parent = 1;</code>
+   * <code>
+   * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   public com.google.protobuf.ByteString getParentBytes() {
     java.lang.Object ref = parent_;
@@ -171,14 +175,14 @@ public com.google.protobuf.ByteString getParentBytes() {
    *
    *
    * <pre>
-   * Required. The id of the tag template field to create.
+   * Required. The ID of the tag template field to create.
    * Field ids can contain letters (both uppercase and lowercase), numbers
-   * (0-9), underscores (_) and dashes (-). Field ids must be at least 1
-   * character long and at most 128 characters long. Field ids must also be
-   * unique to their template.
+   * (0-9), underscores (_) and dashes (-). Field IDs must be at least 1
+   * character long and at most 128 characters long. Field IDs must also be
+   * unique within their template.
    * </pre>
    *
-   * <code>string tag_template_field_id = 2;</code>
+   * <code>string tag_template_field_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
    */
   public java.lang.String getTagTemplateFieldId() {
     java.lang.Object ref = tagTemplateFieldId_;
@@ -195,14 +199,14 @@ public java.lang.String getTagTemplateFieldId() {
    *
    *
    * <pre>
-   * Required. The id of the tag template field to create.
+   * Required. The ID of the tag template field to create.
    * Field ids can contain letters (both uppercase and lowercase), numbers
-   * (0-9), underscores (_) and dashes (-). Field ids must be at least 1
-   * character long and at most 128 characters long. Field ids must also be
-   * unique to their template.
+   * (0-9), underscores (_) and dashes (-). Field IDs must be at least 1
+   * character long and at most 128 characters long. Field IDs must also be
+   * unique within their template.
    * </pre>
    *
-   * <code>string tag_template_field_id = 2;</code>
+   * <code>string tag_template_field_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
    */
   public com.google.protobuf.ByteString getTagTemplateFieldIdBytes() {
     java.lang.Object ref = tagTemplateFieldId_;
@@ -225,7 +229,9 @@ public com.google.protobuf.ByteString getTagTemplateFieldIdBytes() {
    * Required. The tag template field to create.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 3;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 3 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   public boolean hasTagTemplateField() {
     return tagTemplateField_ != null;
@@ -237,7 +243,9 @@ public boolean hasTagTemplateField() {
    * Required. The tag template field to create.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 3;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 3 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   public com.google.cloud.datacatalog.TagTemplateField getTagTemplateField() {
     return tagTemplateField_ == null
@@ -251,7 +259,9 @@ public com.google.cloud.datacatalog.TagTemplateField getTagTemplateField() {
    * Required. The tag template field to create.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 3;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 3 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   public com.google.cloud.datacatalog.TagTemplateFieldOrBuilder getTagTemplateFieldOrBuilder() {
     return getTagTemplateField();
@@ -627,12 +637,14 @@ public Builder mergeFrom(
      *
      * <pre>
      * Required. The name of the project this template is in. Example:
-     * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}".
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
      * Note that this TagTemplateField may not actually be stored in the location
      * in this name.
      * </pre>
      *
-     * <code>string parent = 1;</code>
+     * <code>
+     * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public java.lang.String getParent() {
       java.lang.Object ref = parent_;
@@ -650,12 +662,14 @@ public java.lang.String getParent() {
      *
      * <pre>
      * Required. The name of the project this template is in. Example:
-     * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}".
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
      * Note that this TagTemplateField may not actually be stored in the location
      * in this name.
      * </pre>
      *
-     * <code>string parent = 1;</code>
+     * <code>
+     * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public com.google.protobuf.ByteString getParentBytes() {
       java.lang.Object ref = parent_;
@@ -673,12 +687,14 @@ public com.google.protobuf.ByteString getParentBytes() {
      *
      * <pre>
      * Required. The name of the project this template is in. Example:
-     * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}".
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
      * Note that this TagTemplateField may not actually be stored in the location
      * in this name.
      * </pre>
      *
-     * <code>string parent = 1;</code>
+     * <code>
+     * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public Builder setParent(java.lang.String value) {
       if (value == null) {
@@ -694,12 +710,14 @@ public Builder setParent(java.lang.String value) {
      *
      * <pre>
      * Required. The name of the project this template is in. Example:
-     * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}".
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
      * Note that this TagTemplateField may not actually be stored in the location
      * in this name.
      * </pre>
      *
-     * <code>string parent = 1;</code>
+     * <code>
+     * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public Builder clearParent() {
 
@@ -712,12 +730,14 @@ public Builder clearParent() {
      *
      * <pre>
      * Required. The name of the project this template is in. Example:
-     * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}".
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
      * Note that this TagTemplateField may not actually be stored in the location
      * in this name.
      * </pre>
      *
-     * <code>string parent = 1;</code>
+     * <code>
+     * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public Builder setParentBytes(com.google.protobuf.ByteString value) {
       if (value == null) {
@@ -735,14 +755,14 @@ public Builder setParentBytes(com.google.protobuf.ByteString value) {
      *
      *
      * <pre>
-     * Required. The id of the tag template field to create.
+     * Required. The ID of the tag template field to create.
      * Field ids can contain letters (both uppercase and lowercase), numbers
-     * (0-9), underscores (_) and dashes (-). Field ids must be at least 1
-     * character long and at most 128 characters long. Field ids must also be
-     * unique to their template.
+     * (0-9), underscores (_) and dashes (-). Field IDs must be at least 1
+     * character long and at most 128 characters long. Field IDs must also be
+     * unique within their template.
      * </pre>
      *
-     * <code>string tag_template_field_id = 2;</code>
+     * <code>string tag_template_field_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public java.lang.String getTagTemplateFieldId() {
       java.lang.Object ref = tagTemplateFieldId_;
@@ -759,14 +779,14 @@ public java.lang.String getTagTemplateFieldId() {
      *
      *
      * <pre>
-     * Required. The id of the tag template field to create.
+     * Required. The ID of the tag template field to create.
      * Field ids can contain letters (both uppercase and lowercase), numbers
-     * (0-9), underscores (_) and dashes (-). Field ids must be at least 1
-     * character long and at most 128 characters long. Field ids must also be
-     * unique to their template.
+     * (0-9), underscores (_) and dashes (-). Field IDs must be at least 1
+     * character long and at most 128 characters long. Field IDs must also be
+     * unique within their template.
      * </pre>
      *
-     * <code>string tag_template_field_id = 2;</code>
+     * <code>string tag_template_field_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public com.google.protobuf.ByteString getTagTemplateFieldIdBytes() {
       java.lang.Object ref = tagTemplateFieldId_;
@@ -783,14 +803,14 @@ public com.google.protobuf.ByteString getTagTemplateFieldIdBytes() {
      *
      *
      * <pre>
-     * Required. The id of the tag template field to create.
+     * Required. The ID of the tag template field to create.
      * Field ids can contain letters (both uppercase and lowercase), numbers
-     * (0-9), underscores (_) and dashes (-). Field ids must be at least 1
-     * character long and at most 128 characters long. Field ids must also be
-     * unique to their template.
+     * (0-9), underscores (_) and dashes (-). Field IDs must be at least 1
+     * character long and at most 128 characters long. Field IDs must also be
+     * unique within their template.
      * </pre>
      *
-     * <code>string tag_template_field_id = 2;</code>
+     * <code>string tag_template_field_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public Builder setTagTemplateFieldId(java.lang.String value) {
       if (value == null) {
@@ -805,14 +825,14 @@ public Builder setTagTemplateFieldId(java.lang.String value) {
      *
      *
      * <pre>
-     * Required. The id of the tag template field to create.
+     * Required. The ID of the tag template field to create.
      * Field ids can contain letters (both uppercase and lowercase), numbers
-     * (0-9), underscores (_) and dashes (-). Field ids must be at least 1
-     * character long and at most 128 characters long. Field ids must also be
-     * unique to their template.
+     * (0-9), underscores (_) and dashes (-). Field IDs must be at least 1
+     * character long and at most 128 characters long. Field IDs must also be
+     * unique within their template.
      * </pre>
      *
-     * <code>string tag_template_field_id = 2;</code>
+     * <code>string tag_template_field_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public Builder clearTagTemplateFieldId() {
 
@@ -824,14 +844,14 @@ public Builder clearTagTemplateFieldId() {
      *
      *
      * <pre>
-     * Required. The id of the tag template field to create.
+     * Required. The ID of the tag template field to create.
      * Field ids can contain letters (both uppercase and lowercase), numbers
-     * (0-9), underscores (_) and dashes (-). Field ids must be at least 1
-     * character long and at most 128 characters long. Field ids must also be
-     * unique to their template.
+     * (0-9), underscores (_) and dashes (-). Field IDs must be at least 1
+     * character long and at most 128 characters long. Field IDs must also be
+     * unique within their template.
      * </pre>
      *
-     * <code>string tag_template_field_id = 2;</code>
+     * <code>string tag_template_field_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public Builder setTagTemplateFieldIdBytes(com.google.protobuf.ByteString value) {
       if (value == null) {
@@ -857,7 +877,9 @@ public Builder setTagTemplateFieldIdBytes(com.google.protobuf.ByteString value)
      * Required. The tag template field to create.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 3;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 3 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public boolean hasTagTemplateField() {
       return tagTemplateFieldBuilder_ != null || tagTemplateField_ != null;
@@ -869,7 +891,9 @@ public boolean hasTagTemplateField() {
      * Required. The tag template field to create.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 3;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 3 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public com.google.cloud.datacatalog.TagTemplateField getTagTemplateField() {
       if (tagTemplateFieldBuilder_ == null) {
@@ -887,7 +911,9 @@ public com.google.cloud.datacatalog.TagTemplateField getTagTemplateField() {
      * Required. The tag template field to create.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 3;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 3 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder setTagTemplateField(com.google.cloud.datacatalog.TagTemplateField value) {
       if (tagTemplateFieldBuilder_ == null) {
@@ -909,7 +935,9 @@ public Builder setTagTemplateField(com.google.cloud.datacatalog.TagTemplateField
      * Required. The tag template field to create.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 3;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 3 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder setTagTemplateField(
         com.google.cloud.datacatalog.TagTemplateField.Builder builderForValue) {
@@ -929,7 +957,9 @@ public Builder setTagTemplateField(
      * Required. The tag template field to create.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 3;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 3 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder mergeTagTemplateField(com.google.cloud.datacatalog.TagTemplateField value) {
       if (tagTemplateFieldBuilder_ == null) {
@@ -955,7 +985,9 @@ public Builder mergeTagTemplateField(com.google.cloud.datacatalog.TagTemplateFie
      * Required. The tag template field to create.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 3;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 3 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder clearTagTemplateField() {
       if (tagTemplateFieldBuilder_ == null) {
@@ -975,7 +1007,9 @@ public Builder clearTagTemplateField() {
      * Required. The tag template field to create.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 3;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 3 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public com.google.cloud.datacatalog.TagTemplateField.Builder getTagTemplateFieldBuilder() {
 
@@ -989,7 +1023,9 @@ public com.google.cloud.datacatalog.TagTemplateField.Builder getTagTemplateField
      * Required. The tag template field to create.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 3;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 3 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public com.google.cloud.datacatalog.TagTemplateFieldOrBuilder getTagTemplateFieldOrBuilder() {
       if (tagTemplateFieldBuilder_ != null) {
@@ -1007,7 +1043,9 @@ public com.google.cloud.datacatalog.TagTemplateFieldOrBuilder getTagTemplateFiel
      * Required. The tag template field to create.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 3;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 3 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     private com.google.protobuf.SingleFieldBuilderV3<
             com.google.cloud.datacatalog.TagTemplateField,
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/CreateTagTemplateFieldRequestOrBuilder.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/CreateTagTemplateFieldRequestOrBuilder.java
index b633e1c8ff80..1cdecfc1fa99 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/CreateTagTemplateFieldRequestOrBuilder.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/CreateTagTemplateFieldRequestOrBuilder.java
@@ -13,12 +13,14 @@ public interface CreateTagTemplateFieldRequestOrBuilder
    *
    * <pre>
    * Required. The name of the project this template is in. Example:
-   * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}".
+   * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
    * Note that this TagTemplateField may not actually be stored in the location
    * in this name.
    * </pre>
    *
-   * <code>string parent = 1;</code>
+   * <code>
+   * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   java.lang.String getParent();
   /**
@@ -26,12 +28,14 @@ public interface CreateTagTemplateFieldRequestOrBuilder
    *
    * <pre>
    * Required. The name of the project this template is in. Example:
-   * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}".
+   * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
    * Note that this TagTemplateField may not actually be stored in the location
    * in this name.
    * </pre>
    *
-   * <code>string parent = 1;</code>
+   * <code>
+   * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   com.google.protobuf.ByteString getParentBytes();
 
@@ -39,28 +43,28 @@ public interface CreateTagTemplateFieldRequestOrBuilder
    *
    *
    * <pre>
-   * Required. The id of the tag template field to create.
+   * Required. The ID of the tag template field to create.
    * Field ids can contain letters (both uppercase and lowercase), numbers
-   * (0-9), underscores (_) and dashes (-). Field ids must be at least 1
-   * character long and at most 128 characters long. Field ids must also be
-   * unique to their template.
+   * (0-9), underscores (_) and dashes (-). Field IDs must be at least 1
+   * character long and at most 128 characters long. Field IDs must also be
+   * unique within their template.
    * </pre>
    *
-   * <code>string tag_template_field_id = 2;</code>
+   * <code>string tag_template_field_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
    */
   java.lang.String getTagTemplateFieldId();
   /**
    *
    *
    * <pre>
-   * Required. The id of the tag template field to create.
+   * Required. The ID of the tag template field to create.
    * Field ids can contain letters (both uppercase and lowercase), numbers
-   * (0-9), underscores (_) and dashes (-). Field ids must be at least 1
-   * character long and at most 128 characters long. Field ids must also be
-   * unique to their template.
+   * (0-9), underscores (_) and dashes (-). Field IDs must be at least 1
+   * character long and at most 128 characters long. Field IDs must also be
+   * unique within their template.
    * </pre>
    *
-   * <code>string tag_template_field_id = 2;</code>
+   * <code>string tag_template_field_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
    */
   com.google.protobuf.ByteString getTagTemplateFieldIdBytes();
 
@@ -71,7 +75,9 @@ public interface CreateTagTemplateFieldRequestOrBuilder
    * Required. The tag template field to create.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 3;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 3 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   boolean hasTagTemplateField();
   /**
@@ -81,7 +87,9 @@ public interface CreateTagTemplateFieldRequestOrBuilder
    * Required. The tag template field to create.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 3;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 3 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   com.google.cloud.datacatalog.TagTemplateField getTagTemplateField();
   /**
@@ -91,7 +99,9 @@ public interface CreateTagTemplateFieldRequestOrBuilder
    * Required. The tag template field to create.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 3;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 3 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   com.google.cloud.datacatalog.TagTemplateFieldOrBuilder getTagTemplateFieldOrBuilder();
 }
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/CreateTagTemplateRequest.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/CreateTagTemplateRequest.java
index ba19438cc476..167b4b6e4a29 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/CreateTagTemplateRequest.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/CreateTagTemplateRequest.java
@@ -123,12 +123,15 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    *
    * <pre>
    * Required. The name of the project and the location this template is in.
-   * Example: "projects/{project_id}/locations/{location}". Note that this
+   * Example:
+   * * projects/{project_id}/locations/{location}
    * TagTemplate and its child resources may not actually be stored in the
    * location in this name.
    * </pre>
    *
-   * <code>string parent = 1;</code>
+   * <code>
+   * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   public java.lang.String getParent() {
     java.lang.Object ref = parent_;
@@ -146,12 +149,15 @@ public java.lang.String getParent() {
    *
    * <pre>
    * Required. The name of the project and the location this template is in.
-   * Example: "projects/{project_id}/locations/{location}". Note that this
+   * Example:
+   * * projects/{project_id}/locations/{location}
    * TagTemplate and its child resources may not actually be stored in the
    * location in this name.
    * </pre>
    *
-   * <code>string parent = 1;</code>
+   * <code>
+   * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   public com.google.protobuf.ByteString getParentBytes() {
     java.lang.Object ref = parent_;
@@ -174,7 +180,7 @@ public com.google.protobuf.ByteString getParentBytes() {
    * Required. The id of the tag template to create.
    * </pre>
    *
-   * <code>string tag_template_id = 3;</code>
+   * <code>string tag_template_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
    */
   public java.lang.String getTagTemplateId() {
     java.lang.Object ref = tagTemplateId_;
@@ -194,7 +200,7 @@ public java.lang.String getTagTemplateId() {
    * Required. The id of the tag template to create.
    * </pre>
    *
-   * <code>string tag_template_id = 3;</code>
+   * <code>string tag_template_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
    */
   public com.google.protobuf.ByteString getTagTemplateIdBytes() {
     java.lang.Object ref = tagTemplateId_;
@@ -217,7 +223,9 @@ public com.google.protobuf.ByteString getTagTemplateIdBytes() {
    * Required. The tag template to create.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 2;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 2 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   public boolean hasTagTemplate() {
     return tagTemplate_ != null;
@@ -229,7 +237,9 @@ public boolean hasTagTemplate() {
    * Required. The tag template to create.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 2;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 2 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   public com.google.cloud.datacatalog.TagTemplate getTagTemplate() {
     return tagTemplate_ == null
@@ -243,7 +253,9 @@ public com.google.cloud.datacatalog.TagTemplate getTagTemplate() {
    * Required. The tag template to create.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 2;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 2 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   public com.google.cloud.datacatalog.TagTemplateOrBuilder getTagTemplateOrBuilder() {
     return getTagTemplate();
@@ -619,12 +631,15 @@ public Builder mergeFrom(
      *
      * <pre>
      * Required. The name of the project and the location this template is in.
-     * Example: "projects/{project_id}/locations/{location}". Note that this
+     * Example:
+     * * projects/{project_id}/locations/{location}
      * TagTemplate and its child resources may not actually be stored in the
      * location in this name.
      * </pre>
      *
-     * <code>string parent = 1;</code>
+     * <code>
+     * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public java.lang.String getParent() {
       java.lang.Object ref = parent_;
@@ -642,12 +657,15 @@ public java.lang.String getParent() {
      *
      * <pre>
      * Required. The name of the project and the location this template is in.
-     * Example: "projects/{project_id}/locations/{location}". Note that this
+     * Example:
+     * * projects/{project_id}/locations/{location}
      * TagTemplate and its child resources may not actually be stored in the
      * location in this name.
      * </pre>
      *
-     * <code>string parent = 1;</code>
+     * <code>
+     * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public com.google.protobuf.ByteString getParentBytes() {
       java.lang.Object ref = parent_;
@@ -665,12 +683,15 @@ public com.google.protobuf.ByteString getParentBytes() {
      *
      * <pre>
      * Required. The name of the project and the location this template is in.
-     * Example: "projects/{project_id}/locations/{location}". Note that this
+     * Example:
+     * * projects/{project_id}/locations/{location}
      * TagTemplate and its child resources may not actually be stored in the
      * location in this name.
      * </pre>
      *
-     * <code>string parent = 1;</code>
+     * <code>
+     * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public Builder setParent(java.lang.String value) {
       if (value == null) {
@@ -686,12 +707,15 @@ public Builder setParent(java.lang.String value) {
      *
      * <pre>
      * Required. The name of the project and the location this template is in.
-     * Example: "projects/{project_id}/locations/{location}". Note that this
+     * Example:
+     * * projects/{project_id}/locations/{location}
      * TagTemplate and its child resources may not actually be stored in the
      * location in this name.
      * </pre>
      *
-     * <code>string parent = 1;</code>
+     * <code>
+     * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public Builder clearParent() {
 
@@ -704,12 +728,15 @@ public Builder clearParent() {
      *
      * <pre>
      * Required. The name of the project and the location this template is in.
-     * Example: "projects/{project_id}/locations/{location}". Note that this
+     * Example:
+     * * projects/{project_id}/locations/{location}
      * TagTemplate and its child resources may not actually be stored in the
      * location in this name.
      * </pre>
      *
-     * <code>string parent = 1;</code>
+     * <code>
+     * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public Builder setParentBytes(com.google.protobuf.ByteString value) {
       if (value == null) {
@@ -730,7 +757,7 @@ public Builder setParentBytes(com.google.protobuf.ByteString value) {
      * Required. The id of the tag template to create.
      * </pre>
      *
-     * <code>string tag_template_id = 3;</code>
+     * <code>string tag_template_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public java.lang.String getTagTemplateId() {
       java.lang.Object ref = tagTemplateId_;
@@ -750,7 +777,7 @@ public java.lang.String getTagTemplateId() {
      * Required. The id of the tag template to create.
      * </pre>
      *
-     * <code>string tag_template_id = 3;</code>
+     * <code>string tag_template_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public com.google.protobuf.ByteString getTagTemplateIdBytes() {
       java.lang.Object ref = tagTemplateId_;
@@ -770,7 +797,7 @@ public com.google.protobuf.ByteString getTagTemplateIdBytes() {
      * Required. The id of the tag template to create.
      * </pre>
      *
-     * <code>string tag_template_id = 3;</code>
+     * <code>string tag_template_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public Builder setTagTemplateId(java.lang.String value) {
       if (value == null) {
@@ -788,7 +815,7 @@ public Builder setTagTemplateId(java.lang.String value) {
      * Required. The id of the tag template to create.
      * </pre>
      *
-     * <code>string tag_template_id = 3;</code>
+     * <code>string tag_template_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public Builder clearTagTemplateId() {
 
@@ -803,7 +830,7 @@ public Builder clearTagTemplateId() {
      * Required. The id of the tag template to create.
      * </pre>
      *
-     * <code>string tag_template_id = 3;</code>
+     * <code>string tag_template_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public Builder setTagTemplateIdBytes(com.google.protobuf.ByteString value) {
       if (value == null) {
@@ -829,7 +856,9 @@ public Builder setTagTemplateIdBytes(com.google.protobuf.ByteString value) {
      * Required. The tag template to create.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 2;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public boolean hasTagTemplate() {
       return tagTemplateBuilder_ != null || tagTemplate_ != null;
@@ -841,7 +870,9 @@ public boolean hasTagTemplate() {
      * Required. The tag template to create.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 2;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public com.google.cloud.datacatalog.TagTemplate getTagTemplate() {
       if (tagTemplateBuilder_ == null) {
@@ -859,7 +890,9 @@ public com.google.cloud.datacatalog.TagTemplate getTagTemplate() {
      * Required. The tag template to create.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 2;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder setTagTemplate(com.google.cloud.datacatalog.TagTemplate value) {
       if (tagTemplateBuilder_ == null) {
@@ -881,7 +914,9 @@ public Builder setTagTemplate(com.google.cloud.datacatalog.TagTemplate value) {
      * Required. The tag template to create.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 2;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder setTagTemplate(
         com.google.cloud.datacatalog.TagTemplate.Builder builderForValue) {
@@ -901,7 +936,9 @@ public Builder setTagTemplate(
      * Required. The tag template to create.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 2;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder mergeTagTemplate(com.google.cloud.datacatalog.TagTemplate value) {
       if (tagTemplateBuilder_ == null) {
@@ -927,7 +964,9 @@ public Builder mergeTagTemplate(com.google.cloud.datacatalog.TagTemplate value)
      * Required. The tag template to create.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 2;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder clearTagTemplate() {
       if (tagTemplateBuilder_ == null) {
@@ -947,7 +986,9 @@ public Builder clearTagTemplate() {
      * Required. The tag template to create.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 2;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public com.google.cloud.datacatalog.TagTemplate.Builder getTagTemplateBuilder() {
 
@@ -961,7 +1002,9 @@ public com.google.cloud.datacatalog.TagTemplate.Builder getTagTemplateBuilder()
      * Required. The tag template to create.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 2;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public com.google.cloud.datacatalog.TagTemplateOrBuilder getTagTemplateOrBuilder() {
       if (tagTemplateBuilder_ != null) {
@@ -979,7 +1022,9 @@ public com.google.cloud.datacatalog.TagTemplateOrBuilder getTagTemplateOrBuilder
      * Required. The tag template to create.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 2;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     private com.google.protobuf.SingleFieldBuilderV3<
             com.google.cloud.datacatalog.TagTemplate,
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/CreateTagTemplateRequestOrBuilder.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/CreateTagTemplateRequestOrBuilder.java
index fec44009d7ce..8c56b87769d1 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/CreateTagTemplateRequestOrBuilder.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/CreateTagTemplateRequestOrBuilder.java
@@ -13,12 +13,15 @@ public interface CreateTagTemplateRequestOrBuilder
    *
    * <pre>
    * Required. The name of the project and the location this template is in.
-   * Example: "projects/{project_id}/locations/{location}". Note that this
+   * Example:
+   * * projects/{project_id}/locations/{location}
    * TagTemplate and its child resources may not actually be stored in the
    * location in this name.
    * </pre>
    *
-   * <code>string parent = 1;</code>
+   * <code>
+   * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   java.lang.String getParent();
   /**
@@ -26,12 +29,15 @@ public interface CreateTagTemplateRequestOrBuilder
    *
    * <pre>
    * Required. The name of the project and the location this template is in.
-   * Example: "projects/{project_id}/locations/{location}". Note that this
+   * Example:
+   * * projects/{project_id}/locations/{location}
    * TagTemplate and its child resources may not actually be stored in the
    * location in this name.
    * </pre>
    *
-   * <code>string parent = 1;</code>
+   * <code>
+   * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   com.google.protobuf.ByteString getParentBytes();
 
@@ -42,7 +48,7 @@ public interface CreateTagTemplateRequestOrBuilder
    * Required. The id of the tag template to create.
    * </pre>
    *
-   * <code>string tag_template_id = 3;</code>
+   * <code>string tag_template_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
    */
   java.lang.String getTagTemplateId();
   /**
@@ -52,7 +58,7 @@ public interface CreateTagTemplateRequestOrBuilder
    * Required. The id of the tag template to create.
    * </pre>
    *
-   * <code>string tag_template_id = 3;</code>
+   * <code>string tag_template_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
    */
   com.google.protobuf.ByteString getTagTemplateIdBytes();
 
@@ -63,7 +69,9 @@ public interface CreateTagTemplateRequestOrBuilder
    * Required. The tag template to create.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 2;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 2 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   boolean hasTagTemplate();
   /**
@@ -73,7 +81,9 @@ public interface CreateTagTemplateRequestOrBuilder
    * Required. The tag template to create.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 2;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 2 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   com.google.cloud.datacatalog.TagTemplate getTagTemplate();
   /**
@@ -83,7 +93,9 @@ public interface CreateTagTemplateRequestOrBuilder
    * Required. The tag template to create.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 2;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 2 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   com.google.cloud.datacatalog.TagTemplateOrBuilder getTagTemplateOrBuilder();
 }
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/Datacatalog.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/Datacatalog.java
index e80b7ecb3431..5fa564800e01 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/Datacatalog.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/Datacatalog.java
@@ -24,10 +24,30 @@ public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry r
       internal_static_google_cloud_datacatalog_v1beta1_SearchCatalogResponse_descriptor;
   static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
       internal_static_google_cloud_datacatalog_v1beta1_SearchCatalogResponse_fieldAccessorTable;
+  static final com.google.protobuf.Descriptors.Descriptor
+      internal_static_google_cloud_datacatalog_v1beta1_CreateEntryGroupRequest_descriptor;
+  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_google_cloud_datacatalog_v1beta1_CreateEntryGroupRequest_fieldAccessorTable;
+  static final com.google.protobuf.Descriptors.Descriptor
+      internal_static_google_cloud_datacatalog_v1beta1_GetEntryGroupRequest_descriptor;
+  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_google_cloud_datacatalog_v1beta1_GetEntryGroupRequest_fieldAccessorTable;
+  static final com.google.protobuf.Descriptors.Descriptor
+      internal_static_google_cloud_datacatalog_v1beta1_DeleteEntryGroupRequest_descriptor;
+  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_google_cloud_datacatalog_v1beta1_DeleteEntryGroupRequest_fieldAccessorTable;
+  static final com.google.protobuf.Descriptors.Descriptor
+      internal_static_google_cloud_datacatalog_v1beta1_CreateEntryRequest_descriptor;
+  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_google_cloud_datacatalog_v1beta1_CreateEntryRequest_fieldAccessorTable;
   static final com.google.protobuf.Descriptors.Descriptor
       internal_static_google_cloud_datacatalog_v1beta1_UpdateEntryRequest_descriptor;
   static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
       internal_static_google_cloud_datacatalog_v1beta1_UpdateEntryRequest_fieldAccessorTable;
+  static final com.google.protobuf.Descriptors.Descriptor
+      internal_static_google_cloud_datacatalog_v1beta1_DeleteEntryRequest_descriptor;
+  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_google_cloud_datacatalog_v1beta1_DeleteEntryRequest_fieldAccessorTable;
   static final com.google.protobuf.Descriptors.Descriptor
       internal_static_google_cloud_datacatalog_v1beta1_GetEntryRequest_descriptor;
   static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
@@ -40,6 +60,10 @@ public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry r
       internal_static_google_cloud_datacatalog_v1beta1_Entry_descriptor;
   static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
       internal_static_google_cloud_datacatalog_v1beta1_Entry_fieldAccessorTable;
+  static final com.google.protobuf.Descriptors.Descriptor
+      internal_static_google_cloud_datacatalog_v1beta1_EntryGroup_descriptor;
+  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_google_cloud_datacatalog_v1beta1_EntryGroup_fieldAccessorTable;
   static final com.google.protobuf.Descriptors.Descriptor
       internal_static_google_cloud_datacatalog_v1beta1_CreateTagTemplateRequest_descriptor;
   static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
@@ -103,175 +127,270 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
     java.lang.String[] descriptorData = {
       "\n2google/cloud/datacatalog/v1beta1/datac"
           + "atalog.proto\022 google.cloud.datacatalog.v"
-          + "1beta1\032\034google/api/annotations.proto\032-go"
-          + "ogle/cloud/datacatalog/v1beta1/schema.pr"
-          + "oto\032-google/cloud/datacatalog/v1beta1/se"
-          + "arch.proto\0321google/cloud/datacatalog/v1b"
-          + "eta1/table_spec.proto\032+google/cloud/data"
-          + "catalog/v1beta1/tags.proto\0321google/cloud"
-          + "/datacatalog/v1beta1/timestamps.proto\032\036g"
-          + "oogle/iam/v1/iam_policy.proto\032\032google/ia"
-          + "m/v1/policy.proto\032\033google/protobuf/empty"
-          + ".proto\032 google/protobuf/field_mask.proto"
-          + "\032\027google/api/client.proto\"\217\002\n\024SearchCata"
-          + "logRequest\022K\n\005scope\030\006 \001(\0132<.google.cloud"
-          + ".datacatalog.v1beta1.SearchCatalogReques"
-          + "t.Scope\022\r\n\005query\030\001 \001(\t\022\021\n\tpage_size\030\002 \001("
-          + "\005\022\022\n\npage_token\030\003 \001(\t\022\020\n\010order_by\030\005 \001(\t\032"
-          + "b\n\005Scope\022\027\n\017include_org_ids\030\002 \003(\t\022\033\n\023inc"
-          + "lude_project_ids\030\003 \003(\t\022#\n\033include_gcp_pu"
-          + "blic_datasets\030\007 \001(\010\"x\n\025SearchCatalogResp"
-          + "onse\022F\n\007results\030\001 \003(\01325.google.cloud.dat"
-          + "acatalog.v1beta1.SearchCatalogResult\022\027\n\017"
-          + "next_page_token\030\003 \001(\t\"}\n\022UpdateEntryRequ"
-          + "est\0226\n\005entry\030\001 \001(\0132\'.google.cloud.dataca"
-          + "talog.v1beta1.Entry\022/\n\013update_mask\030\002 \001(\013"
-          + "2\032.google.protobuf.FieldMask\"\037\n\017GetEntry"
-          + "Request\022\014\n\004name\030\001 \001(\t\"V\n\022LookupEntryRequ"
-          + "est\022\031\n\017linked_resource\030\001 \001(\tH\000\022\026\n\014sql_re"
-          + "source\030\003 \001(\tH\000B\r\n\013target_name\"\346\003\n\005Entry\022"
-          + "\014\n\004name\030\001 \001(\t\022\027\n\017linked_resource\030\t \001(\t\0229"
-          + "\n\004type\030\002 \001(\0162+.google.cloud.datacatalog."
-          + "v1beta1.EntryType\022R\n\023bigquery_table_spec"
-          + "\030\014 \001(\01323.google.cloud.datacatalog.v1beta"
-          + "1.BigQueryTableSpecH\000\022_\n\032bigquery_date_s"
-          + "harded_spec\030\017 \001(\01329.google.cloud.datacat"
-          + "alog.v1beta1.BigQueryDateShardedSpecH\000\022\024"
-          + "\n\014display_name\030\003 \001(\t\022\023\n\013description\030\004 \001("
-          + "\t\0228\n\006schema\030\005 \001(\0132(.google.cloud.datacat"
-          + "alog.v1beta1.Schema\022T\n\030source_system_tim"
-          + "estamps\030\007 \001(\01322.google.cloud.datacatalog"
-          + ".v1beta1.SystemTimestampsB\013\n\ttype_spec\"\210"
-          + "\001\n\030CreateTagTemplateRequest\022\016\n\006parent\030\001 "
-          + "\001(\t\022\027\n\017tag_template_id\030\003 \001(\t\022C\n\014tag_temp"
-          + "late\030\002 \001(\0132-.google.cloud.datacatalog.v1"
-          + "beta1.TagTemplate\"%\n\025GetTagTemplateReque"
-          + "st\022\014\n\004name\030\001 \001(\t\"\220\001\n\030UpdateTagTemplateRe"
-          + "quest\022C\n\014tag_template\030\001 \001(\0132-.google.clo"
-          + "ud.datacatalog.v1beta1.TagTemplate\022/\n\013up"
-          + "date_mask\030\002 \001(\0132\032.google.protobuf.FieldM"
-          + "ask\"7\n\030DeleteTagTemplateRequest\022\014\n\004name\030"
-          + "\001 \001(\t\022\r\n\005force\030\002 \001(\010\"V\n\020CreateTagRequest"
-          + "\022\016\n\006parent\030\001 \001(\t\0222\n\003tag\030\002 \001(\0132%.google.c"
-          + "loud.datacatalog.v1beta1.Tag\"w\n\020UpdateTa"
-          + "gRequest\0222\n\003tag\030\001 \001(\0132%.google.cloud.dat"
-          + "acatalog.v1beta1.Tag\022/\n\013update_mask\030\002 \001("
-          + "\0132\032.google.protobuf.FieldMask\" \n\020DeleteT"
-          + "agRequest\022\014\n\004name\030\001 \001(\t\"\236\001\n\035CreateTagTem"
-          + "plateFieldRequest\022\016\n\006parent\030\001 \001(\t\022\035\n\025tag"
-          + "_template_field_id\030\002 \001(\t\022N\n\022tag_template"
-          + "_field\030\003 \001(\01322.google.cloud.datacatalog."
-          + "v1beta1.TagTemplateField\"\256\001\n\035UpdateTagTe"
-          + "mplateFieldRequest\022\014\n\004name\030\001 \001(\t\022N\n\022tag_"
-          + "template_field\030\002 \001(\01322.google.cloud.data"
-          + "catalog.v1beta1.TagTemplateField\022/\n\013upda"
-          + "te_mask\030\003 \001(\0132\032.google.protobuf.FieldMas"
-          + "k\"P\n\035RenameTagTemplateFieldRequest\022\014\n\004na"
-          + "me\030\001 \001(\t\022!\n\031new_tag_template_field_id\030\002 "
-          + "\001(\t\"<\n\035DeleteTagTemplateFieldRequest\022\014\n\004"
-          + "name\030\001 \001(\t\022\r\n\005force\030\002 \001(\010\"H\n\017ListTagsReq"
-          + "uest\022\016\n\006parent\030\001 \001(\t\022\021\n\tpage_size\030\002 \001(\005\022"
-          + "\022\n\npage_token\030\003 \001(\t\"`\n\020ListTagsResponse\022"
-          + "3\n\004tags\030\001 \003(\0132%.google.cloud.datacatalog"
-          + ".v1beta1.Tag\022\027\n\017next_page_token\030\002 \001(\t*C\n"
-          + "\tEntryType\022\032\n\026ENTRY_TYPE_UNSPECIFIED\020\000\022\t"
-          + "\n\005TABLE\020\002\022\017\n\013DATA_STREAM\020\0032\370\034\n\013DataCatal"
-          + "og\022\244\001\n\rSearchCatalog\0226.google.cloud.data"
-          + "catalog.v1beta1.SearchCatalogRequest\0327.g"
-          + "oogle.cloud.datacatalog.v1beta1.SearchCa"
-          + "talogResponse\"\"\202\323\344\223\002\034\"\027/v1beta1/catalog:"
-          + "search:\001*\022\301\001\n\013UpdateEntry\0224.google.cloud"
-          + ".datacatalog.v1beta1.UpdateEntryRequest\032"
-          + "\'.google.cloud.datacatalog.v1beta1.Entry"
-          + "\"S\202\323\344\223\002M2D/v1beta1/{entry.name=projects/"
-          + "*/locations/*/entryGroups/*/entries/*}:\005"
-          + "entry\022\256\001\n\010GetEntry\0221.google.cloud.dataca"
-          + "talog.v1beta1.GetEntryRequest\032\'.google.c"
-          + "loud.datacatalog.v1beta1.Entry\"F\202\323\344\223\002@\022>"
-          + "/v1beta1/{name=projects/*/locations/*/en"
-          + "tryGroups/*/entries/*}\022\215\001\n\013LookupEntry\0224"
-          + ".google.cloud.datacatalog.v1beta1.Lookup"
-          + "EntryRequest\032\'.google.cloud.datacatalog."
-          + "v1beta1.Entry\"\037\202\323\344\223\002\031\022\027/v1beta1/entries:"
-          + "lookup\022\313\001\n\021CreateTagTemplate\022:.google.cl"
-          + "oud.datacatalog.v1beta1.CreateTagTemplat"
-          + "eRequest\032-.google.cloud.datacatalog.v1be"
-          + "ta1.TagTemplate\"K\202\323\344\223\002E\"5/v1beta1/{paren"
-          + "t=projects/*/locations/*}/tagTemplates:\014"
-          + "tag_template\022\267\001\n\016GetTagTemplate\0227.google"
-          + ".cloud.datacatalog.v1beta1.GetTagTemplat"
-          + "eRequest\032-.google.cloud.datacatalog.v1be"
-          + "ta1.TagTemplate\"=\202\323\344\223\0027\0225/v1beta1/{name="
-          + "projects/*/locations/*/tagTemplates/*}\022\330"
-          + "\001\n\021UpdateTagTemplate\022:.google.cloud.data"
-          + "catalog.v1beta1.UpdateTagTemplateRequest"
-          + "\032-.google.cloud.datacatalog.v1beta1.TagT"
-          + "emplate\"X\202\323\344\223\002R2B/v1beta1/{tag_template."
-          + "name=projects/*/locations/*/tagTemplates"
-          + "/*}:\014tag_template\022\246\001\n\021DeleteTagTemplate\022"
-          + ":.google.cloud.datacatalog.v1beta1.Delet"
-          + "eTagTemplateRequest\032\026.google.protobuf.Em"
-          + "pty\"=\202\323\344\223\0027*5/v1beta1/{name=projects/*/l"
-          + "ocations/*/tagTemplates/*}\022\351\001\n\026CreateTag"
-          + "TemplateField\022?.google.cloud.datacatalog"
-          + ".v1beta1.CreateTagTemplateFieldRequest\0322"
-          + ".google.cloud.datacatalog.v1beta1.TagTem"
-          + "plateField\"Z\202\323\344\223\002T\">/v1beta1/{parent=pro"
-          + "jects/*/locations/*/tagTemplates/*}/fiel"
-          + "ds:\022tag_template_field\022\351\001\n\026UpdateTagTemp"
-          + "lateField\022?.google.cloud.datacatalog.v1b"
-          + "eta1.UpdateTagTemplateFieldRequest\0322.goo"
-          + "gle.cloud.datacatalog.v1beta1.TagTemplat"
-          + "eField\"Z\202\323\344\223\002T2>/v1beta1/{name=projects/"
-          + "*/locations/*/tagTemplates/*/fields/*}:\022"
-          + "tag_template_field\022\337\001\n\026RenameTagTemplate"
-          + "Field\022?.google.cloud.datacatalog.v1beta1"
-          + ".RenameTagTemplateFieldRequest\0322.google."
+          + "1beta1\032\034google/api/annotations.proto\032\027go"
+          + "ogle/api/client.proto\032\037google/api/field_"
+          + "behavior.proto\032\031google/api/resource.prot"
+          + "o\0327google/cloud/datacatalog/v1beta1/gcs_"
+          + "fileset_spec.proto\032-google/cloud/datacat"
+          + "alog/v1beta1/schema.proto\032-google/cloud/"
+          + "datacatalog/v1beta1/search.proto\0321google"
+          + "/cloud/datacatalog/v1beta1/table_spec.pr"
+          + "oto\032+google/cloud/datacatalog/v1beta1/ta"
+          + "gs.proto\0321google/cloud/datacatalog/v1bet"
+          + "a1/timestamps.proto\032\036google/iam/v1/iam_p"
+          + "olicy.proto\032\032google/iam/v1/policy.proto\032"
+          + "\033google/protobuf/empty.proto\032 google/pro"
+          + "tobuf/field_mask.proto\"\231\002\n\024SearchCatalog"
+          + "Request\022P\n\005scope\030\006 \001(\0132<.google.cloud.da"
+          + "tacatalog.v1beta1.SearchCatalogRequest.S"
+          + "copeB\003\340A\002\022\022\n\005query\030\001 \001(\tB\003\340A\002\022\021\n\tpage_si"
+          + "ze\030\002 \001(\005\022\022\n\npage_token\030\003 \001(\t\022\020\n\010order_by"
+          + "\030\005 \001(\t\032b\n\005Scope\022\027\n\017include_org_ids\030\002 \003(\t"
+          + "\022\033\n\023include_project_ids\030\003 \003(\t\022#\n\033include"
+          + "_gcp_public_datasets\030\007 \001(\010\"x\n\025SearchCata"
+          + "logResponse\022F\n\007results\030\001 \003(\01325.google.cl"
+          + "oud.datacatalog.v1beta1.SearchCatalogRes"
+          + "ult\022\027\n\017next_page_token\030\003 \001(\t\"\270\001\n\027CreateE"
+          + "ntryGroupRequest\022=\n\006parent\030\001 \001(\tB-\340A\002\372A\'"
+          + "\022%datacatalog.googleapis.com/EntryGroup\022"
+          + "\033\n\016entry_group_id\030\003 \001(\tB\003\340A\002\022A\n\013entry_gr"
+          + "oup\030\002 \001(\0132,.google.cloud.datacatalog.v1b"
+          + "eta1.EntryGroup\"\202\001\n\024GetEntryGroupRequest"
+          + "\022;\n\004name\030\001 \001(\tB-\340A\002\372A\'\n%datacatalog.goog"
+          + "leapis.com/EntryGroup\022-\n\tread_mask\030\002 \001(\013"
+          + "2\032.google.protobuf.FieldMask\"V\n\027DeleteEn"
+          + "tryGroupRequest\022;\n\004name\030\001 \001(\tB-\340A\002\372A\'\n%d"
+          + "atacatalog.googleapis.com/EntryGroup\"\247\001\n"
+          + "\022CreateEntryRequest\022=\n\006parent\030\001 \001(\tB-\340A\002"
+          + "\372A\'\n%datacatalog.googleapis.com/EntryGro"
+          + "up\022\025\n\010entry_id\030\003 \001(\tB\003\340A\002\022;\n\005entry\030\002 \001(\013"
+          + "2\'.google.cloud.datacatalog.v1beta1.Entr"
+          + "yB\003\340A\002\"\202\001\n\022UpdateEntryRequest\022;\n\005entry\030\001"
+          + " \001(\0132\'.google.cloud.datacatalog.v1beta1."
+          + "EntryB\003\340A\002\022/\n\013update_mask\030\002 \001(\0132\032.google"
+          + ".protobuf.FieldMask\"L\n\022DeleteEntryReques"
+          + "t\0226\n\004name\030\001 \001(\tB(\340A\002\372A\"\n datacatalog.goo"
+          + "gleapis.com/Entry\"I\n\017GetEntryRequest\0226\n\004"
+          + "name\030\001 \001(\tB(\340A\002\372A\"\n datacatalog.googleap"
+          + "is.com/Entry\"V\n\022LookupEntryRequest\022\031\n\017li"
+          + "nked_resource\030\001 \001(\tH\000\022\026\n\014sql_resource\030\003 "
+          + "\001(\tH\000B\r\n\013target_name\"\352\005\n\005Entry\0228\n\004name\030\001"
+          + " \001(\tB*\372A\'\n%datacatalog.googleapis.com/En"
+          + "tryGroup\022\027\n\017linked_resource\030\t \001(\t\022;\n\004typ"
+          + "e\030\002 \001(\0162+.google.cloud.datacatalog.v1bet"
+          + "a1.EntryTypeH\000\022L\n\020gcs_fileset_spec\030\006 \001(\013"
+          + "20.google.cloud.datacatalog.v1beta1.GcsF"
+          + "ilesetSpecH\001\022R\n\023bigquery_table_spec\030\014 \001("
+          + "\01323.google.cloud.datacatalog.v1beta1.Big"
+          + "QueryTableSpecH\001\022_\n\032bigquery_date_sharde"
+          + "d_spec\030\017 \001(\01329.google.cloud.datacatalog."
+          + "v1beta1.BigQueryDateShardedSpecH\001\022\024\n\014dis"
+          + "play_name\030\003 \001(\t\022\023\n\013description\030\004 \001(\t\0228\n\006"
+          + "schema\030\005 \001(\0132(.google.cloud.datacatalog."
+          + "v1beta1.Schema\022T\n\030source_system_timestam"
+          + "ps\030\007 \001(\01322.google.cloud.datacatalog.v1be"
+          + "ta1.SystemTimestamps:x\352Au\n datacatalog.g"
+          + "oogleapis.com/Entry\022Qprojects/{project}/"
+          + "locations/{location}/entryGroups/{entry_"
+          + "group}/entries/{entry}B\014\n\nentry_typeB\013\n\t"
+          + "type_spec\"\216\002\n\nEntryGroup\022\014\n\004name\030\001 \001(\t\022\024"
+          + "\n\014display_name\030\002 \001(\t\022\023\n\013description\030\003 \001("
+          + "\t\022X\n\027data_catalog_timestamps\030\004 \001(\01322.goo"
+          + "gle.cloud.datacatalog.v1beta1.SystemTime"
+          + "stampsB\003\340A\003:m\352Aj\n%datacatalog.googleapis"
+          + ".com/EntryGroup\022Aprojects/{project}/loca"
+          + "tions/{location}/entryGroups/{entry_grou"
+          + "p}\"\302\001\n\030CreateTagTemplateRequest\022>\n\006paren"
+          + "t\030\001 \001(\tB.\340A\002\372A(\022&datacatalog.googleapis."
+          + "com/TagTemplate\022\034\n\017tag_template_id\030\003 \001(\t"
+          + "B\003\340A\002\022H\n\014tag_template\030\002 \001(\0132-.google.clo"
+          + "ud.datacatalog.v1beta1.TagTemplateB\003\340A\002\""
+          + "U\n\025GetTagTemplateRequest\022<\n\004name\030\001 \001(\tB."
+          + "\340A\002\372A(\n&datacatalog.googleapis.com/TagTe"
+          + "mplate\"\225\001\n\030UpdateTagTemplateRequest\022H\n\014t"
+          + "ag_template\030\001 \001(\0132-.google.cloud.datacat"
+          + "alog.v1beta1.TagTemplateB\003\340A\002\022/\n\013update_"
+          + "mask\030\002 \001(\0132\032.google.protobuf.FieldMask\"l"
+          + "\n\030DeleteTagTemplateRequest\022<\n\004name\030\001 \001(\t"
+          + "B.\340A\002\372A(\n&datacatalog.googleapis.com/Tag"
+          + "Template\022\022\n\005force\030\002 \001(\010B\003\340A\002\"\203\001\n\020CreateT"
+          + "agRequest\0226\n\006parent\030\001 \001(\tB&\340A\002\372A \n\036datac"
+          + "atalog.googleapis.com/Tag\0227\n\003tag\030\002 \001(\0132%"
+          + ".google.cloud.datacatalog.v1beta1.TagB\003\340"
+          + "A\002\"|\n\020UpdateTagRequest\0227\n\003tag\030\001 \001(\0132%.go"
+          + "ogle.cloud.datacatalog.v1beta1.TagB\003\340A\002\022"
+          + "/\n\013update_mask\030\002 \001(\0132\032.google.protobuf.F"
+          + "ieldMask\"H\n\020DeleteTagRequest\0224\n\004name\030\001 \001"
+          + "(\tB&\340A\002\372A \022\036datacatalog.googleapis.com/T"
+          + "ag\"\330\001\n\035CreateTagTemplateFieldRequest\022>\n\006"
+          + "parent\030\001 \001(\tB.\340A\002\372A(\n&datacatalog.google"
+          + "apis.com/TagTemplate\022\"\n\025tag_template_fie"
+          + "ld_id\030\002 \001(\tB\003\340A\002\022S\n\022tag_template_field\030\003"
+          + " \001(\01322.google.cloud.datacatalog.v1beta1."
+          + "TagTemplateFieldB\003\340A\002\"\350\001\n\035UpdateTagTempl"
+          + "ateFieldRequest\022A\n\004name\030\001 \001(\tB3\340A\002\372A-\n+d"
+          + "atacatalog.googleapis.com/TagTemplateFie"
+          + "ld\022S\n\022tag_template_field\030\002 \001(\01322.google."
           + "cloud.datacatalog.v1beta1.TagTemplateFie"
-          + "ld\"P\202\323\344\223\002J\"E/v1beta1/{name=projects/*/lo"
-          + "cations/*/tagTemplates/*/fields/*}:renam"
-          + "e:\001*\022\271\001\n\026DeleteTagTemplateField\022?.google"
-          + ".cloud.datacatalog.v1beta1.DeleteTagTemp"
-          + "lateFieldRequest\032\026.google.protobuf.Empty"
-          + "\"F\202\323\344\223\002@*>/v1beta1/{name=projects/*/loca"
-          + "tions/*/tagTemplates/*/fields/*}\022\272\001\n\tCre"
-          + "ateTag\0222.google.cloud.datacatalog.v1beta"
-          + "1.CreateTagRequest\032%.google.cloud.dataca"
-          + "talog.v1beta1.Tag\"R\202\323\344\223\002L\"E/v1beta1/{par"
-          + "ent=projects/*/locations/*/entryGroups/*"
-          + "/entries/*}/tags:\003tag\022\276\001\n\tUpdateTag\0222.go"
-          + "ogle.cloud.datacatalog.v1beta1.UpdateTag"
+          + "ldB\003\340A\002\022/\n\013update_mask\030\003 \001(\0132\032.google.pr"
+          + "otobuf.FieldMask\"\212\001\n\035RenameTagTemplateFi"
+          + "eldRequest\022A\n\004name\030\001 \001(\tB3\340A\002\372A-\n+dataca"
+          + "talog.googleapis.com/TagTemplateField\022&\n"
+          + "\031new_tag_template_field_id\030\002 \001(\tB\003\340A\002\"v\n"
+          + "\035DeleteTagTemplateFieldRequest\022A\n\004name\030\001"
+          + " \001(\tB3\340A\002\372A-\n+datacatalog.googleapis.com"
+          + "/TagTemplateField\022\022\n\005force\030\002 \001(\010B\003\340A\002\"p\n"
+          + "\017ListTagsRequest\0226\n\006parent\030\001 \001(\tB&\340A\002\372A "
+          + "\022\036datacatalog.googleapis.com/Tag\022\021\n\tpage"
+          + "_size\030\002 \001(\005\022\022\n\npage_token\030\003 \001(\t\"`\n\020ListT"
+          + "agsResponse\0223\n\004tags\030\001 \003(\0132%.google.cloud"
+          + ".datacatalog.v1beta1.Tag\022\027\n\017next_page_to"
+          + "ken\030\002 \001(\t*P\n\tEntryType\022\032\n\026ENTRY_TYPE_UNS"
+          + "PECIFIED\020\000\022\t\n\005TABLE\020\002\022\017\n\013DATA_STREAM\020\003\022\013"
+          + "\n\007FILESET\020\0042\321+\n\013DataCatalog\022\273\001\n\rSearchCa"
+          + "talog\0226.google.cloud.datacatalog.v1beta1"
+          + ".SearchCatalogRequest\0327.google.cloud.dat"
+          + "acatalog.v1beta1.SearchCatalogResponse\"9"
+          + "\202\323\344\223\002\034\"\027/v1beta1/catalog:search:\001*\332A\024sco"
+          + "pe,query,order_by\022\352\001\n\020CreateEntryGroup\0229"
+          + ".google.cloud.datacatalog.v1beta1.Create"
+          + "EntryGroupRequest\032,.google.cloud.datacat"
+          + "alog.v1beta1.EntryGroup\"m\202\323\344\223\002C\"4/v1beta"
+          + "1/{parent=projects/*/locations/*}/entryG"
+          + "roups:\013entry_group\332A!parent,entry_group_"
+          + "id,entry_group\022\313\001\n\rGetEntryGroup\0226.googl"
+          + "e.cloud.datacatalog.v1beta1.GetEntryGrou"
+          + "pRequest\032,.google.cloud.datacatalog.v1be"
+          + "ta1.EntryGroup\"T\202\323\344\223\0026\0224/v1beta1/{name=p"
+          + "rojects/*/locations/*/entryGroups/*}\332A\004n"
+          + "ame\332A\016name,read_mask\022\252\001\n\020DeleteEntryGrou"
+          + "p\0229.google.cloud.datacatalog.v1beta1.Del"
+          + "eteEntryGroupRequest\032\026.google.protobuf.E"
+          + "mpty\"C\202\323\344\223\0026*4/v1beta1/{name=projects/*/"
+          + "locations/*/entryGroups/*}\332A\004name\022\323\001\n\013Cr"
+          + "eateEntry\0224.google.cloud.datacatalog.v1b"
+          + "eta1.CreateEntryRequest\032\'.google.cloud.d"
+          + "atacatalog.v1beta1.Entry\"e\202\323\344\223\002G\">/v1bet"
+          + "a1/{parent=projects/*/locations/*/entryG"
+          + "roups/*}/entries:\005entry\332A\025parent,entry_i"
+          + "d,entry\022\335\001\n\013UpdateEntry\0224.google.cloud.d"
+          + "atacatalog.v1beta1.UpdateEntryRequest\032\'."
+          + "google.cloud.datacatalog.v1beta1.Entry\"o"
+          + "\202\323\344\223\002M2D/v1beta1/{entry.name=projects/*/"
+          + "locations/*/entryGroups/*/entries/*}:\005en"
+          + "try\332A\005entry\332A\021entry,update_mask\022\252\001\n\013Dele"
+          + "teEntry\0224.google.cloud.datacatalog.v1bet"
+          + "a1.DeleteEntryRequest\032\026.google.protobuf."
+          + "Empty\"M\202\323\344\223\002@*>/v1beta1/{name=projects/*"
+          + "/locations/*/entryGroups/*/entries/*}\332A\004"
+          + "name\022\265\001\n\010GetEntry\0221.google.cloud.datacat"
+          + "alog.v1beta1.GetEntryRequest\032\'.google.cl"
+          + "oud.datacatalog.v1beta1.Entry\"M\202\323\344\223\002@\022>/"
+          + "v1beta1/{name=projects/*/locations/*/ent"
+          + "ryGroups/*/entries/*}\332A\004name\022\215\001\n\013LookupE"
+          + "ntry\0224.google.cloud.datacatalog.v1beta1."
+          + "LookupEntryRequest\032\'.google.cloud.dataca"
+          + "talog.v1beta1.Entry\"\037\202\323\344\223\002\031\022\027/v1beta1/en"
+          + "tries:lookup\022\361\001\n\021CreateTagTemplate\022:.goo"
+          + "gle.cloud.datacatalog.v1beta1.CreateTagT"
+          + "emplateRequest\032-.google.cloud.datacatalo"
+          + "g.v1beta1.TagTemplate\"q\202\323\344\223\002E\"5/v1beta1/"
+          + "{parent=projects/*/locations/*}/tagTempl"
+          + "ates:\014tag_template\332A#parent,tag_template"
+          + "_id,tag_template\022\276\001\n\016GetTagTemplate\0227.go"
+          + "ogle.cloud.datacatalog.v1beta1.GetTagTem"
+          + "plateRequest\032-.google.cloud.datacatalog."
+          + "v1beta1.TagTemplate\"D\202\323\344\223\0027\0225/v1beta1/{n"
+          + "ame=projects/*/locations/*/tagTemplates/"
+          + "*}\332A\004name\022\203\002\n\021UpdateTagTemplate\022:.google"
+          + ".cloud.datacatalog.v1beta1.UpdateTagTemp"
+          + "lateRequest\032-.google.cloud.datacatalog.v"
+          + "1beta1.TagTemplate\"\202\001\202\323\344\223\002R2B/v1beta1/{t"
+          + "ag_template.name=projects/*/locations/*/"
+          + "tagTemplates/*}:\014tag_template\332A\014tag_temp"
+          + "late\332A\030tag_template,update_mask\022\263\001\n\021Dele"
+          + "teTagTemplate\022:.google.cloud.datacatalog"
+          + ".v1beta1.DeleteTagTemplateRequest\032\026.goog"
+          + "le.protobuf.Empty\"J\202\323\344\223\0027*5/v1beta1/{nam"
+          + "e=projects/*/locations/*/tagTemplates/*}"
+          + "\332A\nname,force\022\234\002\n\026CreateTagTemplateField"
+          + "\022?.google.cloud.datacatalog.v1beta1.Crea"
+          + "teTagTemplateFieldRequest\0322.google.cloud"
+          + ".datacatalog.v1beta1.TagTemplateField\"\214\001"
+          + "\202\323\344\223\002T\">/v1beta1/{parent=projects/*/loca"
+          + "tions/*/tagTemplates/*}/fields:\022tag_temp"
+          + "late_field\332A/parent,tag_template_field_i"
+          + "d,tag_template_field\022\252\002\n\026UpdateTagTempla"
+          + "teField\022?.google.cloud.datacatalog.v1bet"
+          + "a1.UpdateTagTemplateFieldRequest\0322.googl"
+          + "e.cloud.datacatalog.v1beta1.TagTemplateF"
+          + "ield\"\232\001\202\323\344\223\002T2>/v1beta1/{name=projects/*"
+          + "/locations/*/tagTemplates/*/fields/*}:\022t"
+          + "ag_template_field\332A\027name,tag_template_fi"
+          + "eld\332A#name,tag_template_field,update_mas"
+          + "k\022\200\002\n\026RenameTagTemplateField\022?.google.cl"
+          + "oud.datacatalog.v1beta1.RenameTagTemplat"
+          + "eFieldRequest\0322.google.cloud.datacatalog"
+          + ".v1beta1.TagTemplateField\"q\202\323\344\223\002J\"E/v1be"
+          + "ta1/{name=projects/*/locations/*/tagTemp"
+          + "lates/*/fields/*}:rename:\001*\332A\036name,new_t"
+          + "ag_template_field_id\022\306\001\n\026DeleteTagTempla"
+          + "teField\022?.google.cloud.datacatalog.v1bet"
+          + "a1.DeleteTagTemplateFieldRequest\032\026.googl"
+          + "e.protobuf.Empty\"S\202\323\344\223\002@*>/v1beta1/{name"
+          + "=projects/*/locations/*/tagTemplates/*/f"
+          + "ields/*}\332A\nname,force\022\307\001\n\tCreateTag\0222.go"
+          + "ogle.cloud.datacatalog.v1beta1.CreateTag"
           + "Request\032%.google.cloud.datacatalog.v1bet"
-          + "a1.Tag\"V\202\323\344\223\002P2I/v1beta1/{tag.name=proje"
+          + "a1.Tag\"_\202\323\344\223\002L\"E/v1beta1/{parent=project"
+          + "s/*/locations/*/entryGroups/*/entries/*}"
+          + "/tags:\003tag\332A\nparent,tag\022\326\001\n\tUpdateTag\0222."
+          + "google.cloud.datacatalog.v1beta1.UpdateT"
+          + "agRequest\032%.google.cloud.datacatalog.v1b"
+          + "eta1.Tag\"n\202\323\344\223\002P2I/v1beta1/{tag.name=pro"
+          + "jects/*/locations/*/entryGroups/*/entrie"
+          + "s/*/tags/*}:\003tag\332A\003tag\332A\017tag,update_mask"
+          + "\022\255\001\n\tDeleteTag\0222.google.cloud.datacatalo"
+          + "g.v1beta1.DeleteTagRequest\032\026.google.prot"
+          + "obuf.Empty\"T\202\323\344\223\002G*E/v1beta1/{name=proje"
           + "cts/*/locations/*/entryGroups/*/entries/"
-          + "*/tags/*}:\003tag\022\246\001\n\tDeleteTag\0222.google.cl"
-          + "oud.datacatalog.v1beta1.DeleteTagRequest"
-          + "\032\026.google.protobuf.Empty\"M\202\323\344\223\002G*E/v1bet"
-          + "a1/{name=projects/*/locations/*/entryGro"
-          + "ups/*/entries/*/tags/*}\022\300\001\n\010ListTags\0221.g"
-          + "oogle.cloud.datacatalog.v1beta1.ListTags"
-          + "Request\0322.google.cloud.datacatalog.v1bet"
-          + "a1.ListTagsResponse\"M\202\323\344\223\002G\022E/v1beta1/{p"
-          + "arent=projects/*/locations/*/entryGroups"
-          + "/*/entries/*}/tags\022\234\001\n\014SetIamPolicy\022\".go"
-          + "ogle.iam.v1.SetIamPolicyRequest\032\025.google"
-          + ".iam.v1.Policy\"Q\202\323\344\223\002K\"F/v1beta1/{resour"
-          + "ce=projects/*/locations/*/tagTemplates/*"
-          + "}:setIamPolicy:\001*\022\234\001\n\014GetIamPolicy\022\".goo"
-          + "gle.iam.v1.GetIamPolicyRequest\032\025.google."
-          + "iam.v1.Policy\"Q\202\323\344\223\002K\"F/v1beta1/{resourc"
-          + "e=projects/*/locations/*/tagTemplates/*}"
-          + ":getIamPolicy:\001*\022\302\001\n\022TestIamPermissions\022"
-          + "(.google.iam.v1.TestIamPermissionsReques"
-          + "t\032).google.iam.v1.TestIamPermissionsResp"
-          + "onse\"W\202\323\344\223\002Q\"L/v1beta1/{resource=project"
-          + "s/*/locations/*/tagTemplates/*}:testIamP"
-          + "ermissions:\001*\032N\312A\032datacatalog.googleapis"
-          + ".com\322A.https://www.googleapis.com/auth/c"
-          + "loud-platformBp\n\034com.google.cloud.dataca"
-          + "talogP\001ZKgoogle.golang.org/genproto/goog"
-          + "leapis/cloud/datacatalog/v1beta1;datacat"
-          + "alog\370\001\001b\006proto3"
+          + "*/tags/*}\332A\004name\022\311\001\n\010ListTags\0221.google.c"
+          + "loud.datacatalog.v1beta1.ListTagsRequest"
+          + "\0322.google.cloud.datacatalog.v1beta1.List"
+          + "TagsResponse\"V\202\323\344\223\002G\022E/v1beta1/{parent=p"
+          + "rojects/*/locations/*/entryGroups/*/entr"
+          + "ies/*}/tags\332A\006parent\022\300\002\n\014SetIamPolicy\022\"."
+          + "google.iam.v1.SetIamPolicyRequest\032\025.goog"
+          + "le.iam.v1.Policy\"\364\001\202\323\344\223\002\355\001\"F/v1beta1/{re"
+          + "source=projects/*/locations/*/tagTemplat"
+          + "es/*}:setIamPolicy:\001*ZJ\"E/v1beta1/{resou"
+          + "rce=projects/*/locations/*/entryGroups/*"
+          + "}:setIamPolicy:\001*ZT\"O/v1beta1/{resource="
+          + "projects/*/locations/*/entryGroups/*/ent"
+          + "ries/*}:setIamPolicy:\001*\022\300\002\n\014GetIamPolicy"
+          + "\022\".google.iam.v1.GetIamPolicyRequest\032\025.g"
+          + "oogle.iam.v1.Policy\"\364\001\202\323\344\223\002\355\001\"F/v1beta1/"
+          + "{resource=projects/*/locations/*/tagTemp"
+          + "lates/*}:getIamPolicy:\001*ZJ\"E/v1beta1/{re"
+          + "source=projects/*/locations/*/entryGroup"
+          + "s/*}:getIamPolicy:\001*ZT\"O/v1beta1/{resour"
+          + "ce=projects/*/locations/*/entryGroups/*/"
+          + "entries/*}:getIamPolicy:\001*\022\362\002\n\022TestIamPe"
+          + "rmissions\022(.google.iam.v1.TestIamPermiss"
+          + "ionsRequest\032).google.iam.v1.TestIamPermi"
+          + "ssionsResponse\"\206\002\202\323\344\223\002\377\001\"L/v1beta1/{reso"
+          + "urce=projects/*/locations/*/tagTemplates"
+          + "/*}:testIamPermissions:\001*ZP\"K/v1beta1/{r"
+          + "esource=projects/*/locations/*/entryGrou"
+          + "ps/*}:testIamPermissions:\001*ZZ\"U/v1beta1/"
+          + "{resource=projects/*/locations/*/entryGr"
+          + "oups/*/entries/*}:testIamPermissions:\001*\032"
+          + "N\312A\032datacatalog.googleapis.com\322A.https:/"
+          + "/www.googleapis.com/auth/cloud-platformB"
+          + "p\n\034com.google.cloud.datacatalogP\001ZKgoogl"
+          + "e.golang.org/genproto/googleapis/cloud/d"
+          + "atacatalog/v1beta1;datacatalog\370\001\001b\006proto"
+          + "3"
     };
     com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
         new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
@@ -285,6 +404,10 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors(
         descriptorData,
         new com.google.protobuf.Descriptors.FileDescriptor[] {
           com.google.api.AnnotationsProto.getDescriptor(),
+          com.google.api.ClientProto.getDescriptor(),
+          com.google.api.FieldBehaviorProto.getDescriptor(),
+          com.google.api.ResourceProto.getDescriptor(),
+          com.google.cloud.datacatalog.GcsFilesetSpecOuterClass.getDescriptor(),
           com.google.cloud.datacatalog.SchemaOuterClass.getDescriptor(),
           com.google.cloud.datacatalog.Search.getDescriptor(),
           com.google.cloud.datacatalog.TableSpecOuterClass.getDescriptor(),
@@ -294,7 +417,6 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors(
           com.google.iam.v1.PolicyProto.getDescriptor(),
           com.google.protobuf.EmptyProto.getDescriptor(),
           com.google.protobuf.FieldMaskProto.getDescriptor(),
-          com.google.api.ClientProto.getDescriptor(),
         },
         assigner);
     internal_static_google_cloud_datacatalog_v1beta1_SearchCatalogRequest_descriptor =
@@ -323,16 +445,56 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors(
             new java.lang.String[] {
               "Results", "NextPageToken",
             });
-    internal_static_google_cloud_datacatalog_v1beta1_UpdateEntryRequest_descriptor =
+    internal_static_google_cloud_datacatalog_v1beta1_CreateEntryGroupRequest_descriptor =
         getDescriptor().getMessageTypes().get(2);
+    internal_static_google_cloud_datacatalog_v1beta1_CreateEntryGroupRequest_fieldAccessorTable =
+        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+            internal_static_google_cloud_datacatalog_v1beta1_CreateEntryGroupRequest_descriptor,
+            new java.lang.String[] {
+              "Parent", "EntryGroupId", "EntryGroup",
+            });
+    internal_static_google_cloud_datacatalog_v1beta1_GetEntryGroupRequest_descriptor =
+        getDescriptor().getMessageTypes().get(3);
+    internal_static_google_cloud_datacatalog_v1beta1_GetEntryGroupRequest_fieldAccessorTable =
+        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+            internal_static_google_cloud_datacatalog_v1beta1_GetEntryGroupRequest_descriptor,
+            new java.lang.String[] {
+              "Name", "ReadMask",
+            });
+    internal_static_google_cloud_datacatalog_v1beta1_DeleteEntryGroupRequest_descriptor =
+        getDescriptor().getMessageTypes().get(4);
+    internal_static_google_cloud_datacatalog_v1beta1_DeleteEntryGroupRequest_fieldAccessorTable =
+        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+            internal_static_google_cloud_datacatalog_v1beta1_DeleteEntryGroupRequest_descriptor,
+            new java.lang.String[] {
+              "Name",
+            });
+    internal_static_google_cloud_datacatalog_v1beta1_CreateEntryRequest_descriptor =
+        getDescriptor().getMessageTypes().get(5);
+    internal_static_google_cloud_datacatalog_v1beta1_CreateEntryRequest_fieldAccessorTable =
+        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+            internal_static_google_cloud_datacatalog_v1beta1_CreateEntryRequest_descriptor,
+            new java.lang.String[] {
+              "Parent", "EntryId", "Entry",
+            });
+    internal_static_google_cloud_datacatalog_v1beta1_UpdateEntryRequest_descriptor =
+        getDescriptor().getMessageTypes().get(6);
     internal_static_google_cloud_datacatalog_v1beta1_UpdateEntryRequest_fieldAccessorTable =
         new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
             internal_static_google_cloud_datacatalog_v1beta1_UpdateEntryRequest_descriptor,
             new java.lang.String[] {
               "Entry", "UpdateMask",
             });
+    internal_static_google_cloud_datacatalog_v1beta1_DeleteEntryRequest_descriptor =
+        getDescriptor().getMessageTypes().get(7);
+    internal_static_google_cloud_datacatalog_v1beta1_DeleteEntryRequest_fieldAccessorTable =
+        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+            internal_static_google_cloud_datacatalog_v1beta1_DeleteEntryRequest_descriptor,
+            new java.lang.String[] {
+              "Name",
+            });
     internal_static_google_cloud_datacatalog_v1beta1_GetEntryRequest_descriptor =
-        getDescriptor().getMessageTypes().get(3);
+        getDescriptor().getMessageTypes().get(8);
     internal_static_google_cloud_datacatalog_v1beta1_GetEntryRequest_fieldAccessorTable =
         new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
             internal_static_google_cloud_datacatalog_v1beta1_GetEntryRequest_descriptor,
@@ -340,7 +502,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors(
               "Name",
             });
     internal_static_google_cloud_datacatalog_v1beta1_LookupEntryRequest_descriptor =
-        getDescriptor().getMessageTypes().get(4);
+        getDescriptor().getMessageTypes().get(9);
     internal_static_google_cloud_datacatalog_v1beta1_LookupEntryRequest_fieldAccessorTable =
         new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
             internal_static_google_cloud_datacatalog_v1beta1_LookupEntryRequest_descriptor,
@@ -348,7 +510,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors(
               "LinkedResource", "SqlResource", "TargetName",
             });
     internal_static_google_cloud_datacatalog_v1beta1_Entry_descriptor =
-        getDescriptor().getMessageTypes().get(5);
+        getDescriptor().getMessageTypes().get(10);
     internal_static_google_cloud_datacatalog_v1beta1_Entry_fieldAccessorTable =
         new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
             internal_static_google_cloud_datacatalog_v1beta1_Entry_descriptor,
@@ -356,16 +518,26 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors(
               "Name",
               "LinkedResource",
               "Type",
+              "GcsFilesetSpec",
               "BigqueryTableSpec",
               "BigqueryDateShardedSpec",
               "DisplayName",
               "Description",
               "Schema",
               "SourceSystemTimestamps",
+              "EntryType",
               "TypeSpec",
             });
+    internal_static_google_cloud_datacatalog_v1beta1_EntryGroup_descriptor =
+        getDescriptor().getMessageTypes().get(11);
+    internal_static_google_cloud_datacatalog_v1beta1_EntryGroup_fieldAccessorTable =
+        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+            internal_static_google_cloud_datacatalog_v1beta1_EntryGroup_descriptor,
+            new java.lang.String[] {
+              "Name", "DisplayName", "Description", "DataCatalogTimestamps",
+            });
     internal_static_google_cloud_datacatalog_v1beta1_CreateTagTemplateRequest_descriptor =
-        getDescriptor().getMessageTypes().get(6);
+        getDescriptor().getMessageTypes().get(12);
     internal_static_google_cloud_datacatalog_v1beta1_CreateTagTemplateRequest_fieldAccessorTable =
         new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
             internal_static_google_cloud_datacatalog_v1beta1_CreateTagTemplateRequest_descriptor,
@@ -373,7 +545,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors(
               "Parent", "TagTemplateId", "TagTemplate",
             });
     internal_static_google_cloud_datacatalog_v1beta1_GetTagTemplateRequest_descriptor =
-        getDescriptor().getMessageTypes().get(7);
+        getDescriptor().getMessageTypes().get(13);
     internal_static_google_cloud_datacatalog_v1beta1_GetTagTemplateRequest_fieldAccessorTable =
         new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
             internal_static_google_cloud_datacatalog_v1beta1_GetTagTemplateRequest_descriptor,
@@ -381,7 +553,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors(
               "Name",
             });
     internal_static_google_cloud_datacatalog_v1beta1_UpdateTagTemplateRequest_descriptor =
-        getDescriptor().getMessageTypes().get(8);
+        getDescriptor().getMessageTypes().get(14);
     internal_static_google_cloud_datacatalog_v1beta1_UpdateTagTemplateRequest_fieldAccessorTable =
         new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
             internal_static_google_cloud_datacatalog_v1beta1_UpdateTagTemplateRequest_descriptor,
@@ -389,7 +561,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors(
               "TagTemplate", "UpdateMask",
             });
     internal_static_google_cloud_datacatalog_v1beta1_DeleteTagTemplateRequest_descriptor =
-        getDescriptor().getMessageTypes().get(9);
+        getDescriptor().getMessageTypes().get(15);
     internal_static_google_cloud_datacatalog_v1beta1_DeleteTagTemplateRequest_fieldAccessorTable =
         new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
             internal_static_google_cloud_datacatalog_v1beta1_DeleteTagTemplateRequest_descriptor,
@@ -397,7 +569,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors(
               "Name", "Force",
             });
     internal_static_google_cloud_datacatalog_v1beta1_CreateTagRequest_descriptor =
-        getDescriptor().getMessageTypes().get(10);
+        getDescriptor().getMessageTypes().get(16);
     internal_static_google_cloud_datacatalog_v1beta1_CreateTagRequest_fieldAccessorTable =
         new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
             internal_static_google_cloud_datacatalog_v1beta1_CreateTagRequest_descriptor,
@@ -405,7 +577,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors(
               "Parent", "Tag",
             });
     internal_static_google_cloud_datacatalog_v1beta1_UpdateTagRequest_descriptor =
-        getDescriptor().getMessageTypes().get(11);
+        getDescriptor().getMessageTypes().get(17);
     internal_static_google_cloud_datacatalog_v1beta1_UpdateTagRequest_fieldAccessorTable =
         new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
             internal_static_google_cloud_datacatalog_v1beta1_UpdateTagRequest_descriptor,
@@ -413,7 +585,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors(
               "Tag", "UpdateMask",
             });
     internal_static_google_cloud_datacatalog_v1beta1_DeleteTagRequest_descriptor =
-        getDescriptor().getMessageTypes().get(12);
+        getDescriptor().getMessageTypes().get(18);
     internal_static_google_cloud_datacatalog_v1beta1_DeleteTagRequest_fieldAccessorTable =
         new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
             internal_static_google_cloud_datacatalog_v1beta1_DeleteTagRequest_descriptor,
@@ -421,7 +593,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors(
               "Name",
             });
     internal_static_google_cloud_datacatalog_v1beta1_CreateTagTemplateFieldRequest_descriptor =
-        getDescriptor().getMessageTypes().get(13);
+        getDescriptor().getMessageTypes().get(19);
     internal_static_google_cloud_datacatalog_v1beta1_CreateTagTemplateFieldRequest_fieldAccessorTable =
         new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
             internal_static_google_cloud_datacatalog_v1beta1_CreateTagTemplateFieldRequest_descriptor,
@@ -429,7 +601,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors(
               "Parent", "TagTemplateFieldId", "TagTemplateField",
             });
     internal_static_google_cloud_datacatalog_v1beta1_UpdateTagTemplateFieldRequest_descriptor =
-        getDescriptor().getMessageTypes().get(14);
+        getDescriptor().getMessageTypes().get(20);
     internal_static_google_cloud_datacatalog_v1beta1_UpdateTagTemplateFieldRequest_fieldAccessorTable =
         new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
             internal_static_google_cloud_datacatalog_v1beta1_UpdateTagTemplateFieldRequest_descriptor,
@@ -437,7 +609,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors(
               "Name", "TagTemplateField", "UpdateMask",
             });
     internal_static_google_cloud_datacatalog_v1beta1_RenameTagTemplateFieldRequest_descriptor =
-        getDescriptor().getMessageTypes().get(15);
+        getDescriptor().getMessageTypes().get(21);
     internal_static_google_cloud_datacatalog_v1beta1_RenameTagTemplateFieldRequest_fieldAccessorTable =
         new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
             internal_static_google_cloud_datacatalog_v1beta1_RenameTagTemplateFieldRequest_descriptor,
@@ -445,7 +617,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors(
               "Name", "NewTagTemplateFieldId",
             });
     internal_static_google_cloud_datacatalog_v1beta1_DeleteTagTemplateFieldRequest_descriptor =
-        getDescriptor().getMessageTypes().get(16);
+        getDescriptor().getMessageTypes().get(22);
     internal_static_google_cloud_datacatalog_v1beta1_DeleteTagTemplateFieldRequest_fieldAccessorTable =
         new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
             internal_static_google_cloud_datacatalog_v1beta1_DeleteTagTemplateFieldRequest_descriptor,
@@ -453,7 +625,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors(
               "Name", "Force",
             });
     internal_static_google_cloud_datacatalog_v1beta1_ListTagsRequest_descriptor =
-        getDescriptor().getMessageTypes().get(17);
+        getDescriptor().getMessageTypes().get(23);
     internal_static_google_cloud_datacatalog_v1beta1_ListTagsRequest_fieldAccessorTable =
         new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
             internal_static_google_cloud_datacatalog_v1beta1_ListTagsRequest_descriptor,
@@ -461,7 +633,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors(
               "Parent", "PageSize", "PageToken",
             });
     internal_static_google_cloud_datacatalog_v1beta1_ListTagsResponse_descriptor =
-        getDescriptor().getMessageTypes().get(18);
+        getDescriptor().getMessageTypes().get(24);
     internal_static_google_cloud_datacatalog_v1beta1_ListTagsResponse_fieldAccessorTable =
         new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
             internal_static_google_cloud_datacatalog_v1beta1_ListTagsResponse_descriptor,
@@ -471,11 +643,19 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors(
     com.google.protobuf.ExtensionRegistry registry =
         com.google.protobuf.ExtensionRegistry.newInstance();
     registry.add(com.google.api.ClientProto.defaultHost);
+    registry.add(com.google.api.FieldBehaviorProto.fieldBehavior);
     registry.add(com.google.api.AnnotationsProto.http);
+    registry.add(com.google.api.ClientProto.methodSignature);
     registry.add(com.google.api.ClientProto.oauthScopes);
+    registry.add(com.google.api.ResourceProto.resource);
+    registry.add(com.google.api.ResourceProto.resourceReference);
     com.google.protobuf.Descriptors.FileDescriptor.internalUpdateFileDescriptor(
         descriptor, registry);
     com.google.api.AnnotationsProto.getDescriptor();
+    com.google.api.ClientProto.getDescriptor();
+    com.google.api.FieldBehaviorProto.getDescriptor();
+    com.google.api.ResourceProto.getDescriptor();
+    com.google.cloud.datacatalog.GcsFilesetSpecOuterClass.getDescriptor();
     com.google.cloud.datacatalog.SchemaOuterClass.getDescriptor();
     com.google.cloud.datacatalog.Search.getDescriptor();
     com.google.cloud.datacatalog.TableSpecOuterClass.getDescriptor();
@@ -485,7 +665,6 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors(
     com.google.iam.v1.PolicyProto.getDescriptor();
     com.google.protobuf.EmptyProto.getDescriptor();
     com.google.protobuf.FieldMaskProto.getDescriptor();
-    com.google.api.ClientProto.getDescriptor();
   }
 
   // @@protoc_insertion_point(outer_class_scope)
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/DeleteEntryGroupRequest.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/DeleteEntryGroupRequest.java
new file mode 100644
index 000000000000..074b316e5561
--- /dev/null
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/DeleteEntryGroupRequest.java
@@ -0,0 +1,621 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: google/cloud/datacatalog/v1beta1/datacatalog.proto
+
+package com.google.cloud.datacatalog;
+
+/**
+ *
+ *
+ * <pre>
+ * Request message for
+ * [DeleteEntryGroup][google.cloud.datacatalog.v1beta1.DataCatalog.DeleteEntryGroup].
+ * </pre>
+ *
+ * Protobuf type {@code google.cloud.datacatalog.v1beta1.DeleteEntryGroupRequest}
+ */
+public final class DeleteEntryGroupRequest extends com.google.protobuf.GeneratedMessageV3
+    implements
+    // @@protoc_insertion_point(message_implements:google.cloud.datacatalog.v1beta1.DeleteEntryGroupRequest)
+    DeleteEntryGroupRequestOrBuilder {
+  private static final long serialVersionUID = 0L;
+  // Use DeleteEntryGroupRequest.newBuilder() to construct.
+  private DeleteEntryGroupRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+    super(builder);
+  }
+
+  private DeleteEntryGroupRequest() {
+    name_ = "";
+  }
+
+  @java.lang.Override
+  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
+    return this.unknownFields;
+  }
+
+  private DeleteEntryGroupRequest(
+      com.google.protobuf.CodedInputStream input,
+      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
+    int mutable_bitField0_ = 0;
+    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+        com.google.protobuf.UnknownFieldSet.newBuilder();
+    try {
+      boolean done = false;
+      while (!done) {
+        int tag = input.readTag();
+        switch (tag) {
+          case 0:
+            done = true;
+            break;
+          case 10:
+            {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              name_ = 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.datacatalog.Datacatalog
+        .internal_static_google_cloud_datacatalog_v1beta1_DeleteEntryGroupRequest_descriptor;
+  }
+
+  @java.lang.Override
+  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internalGetFieldAccessorTable() {
+    return com.google.cloud.datacatalog.Datacatalog
+        .internal_static_google_cloud_datacatalog_v1beta1_DeleteEntryGroupRequest_fieldAccessorTable
+        .ensureFieldAccessorsInitialized(
+            com.google.cloud.datacatalog.DeleteEntryGroupRequest.class,
+            com.google.cloud.datacatalog.DeleteEntryGroupRequest.Builder.class);
+  }
+
+  public static final int NAME_FIELD_NUMBER = 1;
+  private volatile java.lang.Object name_;
+  /**
+   *
+   *
+   * <pre>
+   * Required. The name of the entry group. For example,
+   * `projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}`.
+   * </pre>
+   *
+   * <code>
+   * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
+   */
+  public java.lang.String getName() {
+    java.lang.Object ref = name_;
+    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();
+      name_ = s;
+      return s;
+    }
+  }
+  /**
+   *
+   *
+   * <pre>
+   * Required. The name of the entry group. For example,
+   * `projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}`.
+   * </pre>
+   *
+   * <code>
+   * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
+   */
+  public com.google.protobuf.ByteString getNameBytes() {
+    java.lang.Object ref = name_;
+    if (ref instanceof java.lang.String) {
+      com.google.protobuf.ByteString b =
+          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+      name_ = 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 (!getNameBytes().isEmpty()) {
+      com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
+    }
+    unknownFields.writeTo(output);
+  }
+
+  @java.lang.Override
+  public int getSerializedSize() {
+    int size = memoizedSize;
+    if (size != -1) return size;
+
+    size = 0;
+    if (!getNameBytes().isEmpty()) {
+      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
+    }
+    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.datacatalog.DeleteEntryGroupRequest)) {
+      return super.equals(obj);
+    }
+    com.google.cloud.datacatalog.DeleteEntryGroupRequest other =
+        (com.google.cloud.datacatalog.DeleteEntryGroupRequest) obj;
+
+    if (!getName().equals(other.getName())) 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) + NAME_FIELD_NUMBER;
+    hash = (53 * hash) + getName().hashCode();
+    hash = (29 * hash) + unknownFields.hashCode();
+    memoizedHashCode = hash;
+    return hash;
+  }
+
+  public static com.google.cloud.datacatalog.DeleteEntryGroupRequest parseFrom(
+      java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data);
+  }
+
+  public static com.google.cloud.datacatalog.DeleteEntryGroupRequest 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.datacatalog.DeleteEntryGroupRequest parseFrom(
+      com.google.protobuf.ByteString data)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data);
+  }
+
+  public static com.google.cloud.datacatalog.DeleteEntryGroupRequest 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.datacatalog.DeleteEntryGroupRequest parseFrom(byte[] data)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data);
+  }
+
+  public static com.google.cloud.datacatalog.DeleteEntryGroupRequest parseFrom(
+      byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data, extensionRegistry);
+  }
+
+  public static com.google.cloud.datacatalog.DeleteEntryGroupRequest parseFrom(
+      java.io.InputStream input) throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+  }
+
+  public static com.google.cloud.datacatalog.DeleteEntryGroupRequest 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.datacatalog.DeleteEntryGroupRequest parseDelimitedFrom(
+      java.io.InputStream input) throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
+  }
+
+  public static com.google.cloud.datacatalog.DeleteEntryGroupRequest 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.datacatalog.DeleteEntryGroupRequest parseFrom(
+      com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+  }
+
+  public static com.google.cloud.datacatalog.DeleteEntryGroupRequest 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.datacatalog.DeleteEntryGroupRequest 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>
+   * Request message for
+   * [DeleteEntryGroup][google.cloud.datacatalog.v1beta1.DataCatalog.DeleteEntryGroup].
+   * </pre>
+   *
+   * Protobuf type {@code google.cloud.datacatalog.v1beta1.DeleteEntryGroupRequest}
+   */
+  public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
+      implements
+      // @@protoc_insertion_point(builder_implements:google.cloud.datacatalog.v1beta1.DeleteEntryGroupRequest)
+      com.google.cloud.datacatalog.DeleteEntryGroupRequestOrBuilder {
+    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+      return com.google.cloud.datacatalog.Datacatalog
+          .internal_static_google_cloud_datacatalog_v1beta1_DeleteEntryGroupRequest_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return com.google.cloud.datacatalog.Datacatalog
+          .internal_static_google_cloud_datacatalog_v1beta1_DeleteEntryGroupRequest_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              com.google.cloud.datacatalog.DeleteEntryGroupRequest.class,
+              com.google.cloud.datacatalog.DeleteEntryGroupRequest.Builder.class);
+    }
+
+    // Construct using com.google.cloud.datacatalog.DeleteEntryGroupRequest.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();
+      name_ = "";
+
+      return this;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
+      return com.google.cloud.datacatalog.Datacatalog
+          .internal_static_google_cloud_datacatalog_v1beta1_DeleteEntryGroupRequest_descriptor;
+    }
+
+    @java.lang.Override
+    public com.google.cloud.datacatalog.DeleteEntryGroupRequest getDefaultInstanceForType() {
+      return com.google.cloud.datacatalog.DeleteEntryGroupRequest.getDefaultInstance();
+    }
+
+    @java.lang.Override
+    public com.google.cloud.datacatalog.DeleteEntryGroupRequest build() {
+      com.google.cloud.datacatalog.DeleteEntryGroupRequest result = buildPartial();
+      if (!result.isInitialized()) {
+        throw newUninitializedMessageException(result);
+      }
+      return result;
+    }
+
+    @java.lang.Override
+    public com.google.cloud.datacatalog.DeleteEntryGroupRequest buildPartial() {
+      com.google.cloud.datacatalog.DeleteEntryGroupRequest result =
+          new com.google.cloud.datacatalog.DeleteEntryGroupRequest(this);
+      result.name_ = name_;
+      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.datacatalog.DeleteEntryGroupRequest) {
+        return mergeFrom((com.google.cloud.datacatalog.DeleteEntryGroupRequest) other);
+      } else {
+        super.mergeFrom(other);
+        return this;
+      }
+    }
+
+    public Builder mergeFrom(com.google.cloud.datacatalog.DeleteEntryGroupRequest other) {
+      if (other == com.google.cloud.datacatalog.DeleteEntryGroupRequest.getDefaultInstance())
+        return this;
+      if (!other.getName().isEmpty()) {
+        name_ = other.name_;
+        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.datacatalog.DeleteEntryGroupRequest parsedMessage = null;
+      try {
+        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        parsedMessage =
+            (com.google.cloud.datacatalog.DeleteEntryGroupRequest) e.getUnfinishedMessage();
+        throw e.unwrapIOException();
+      } finally {
+        if (parsedMessage != null) {
+          mergeFrom(parsedMessage);
+        }
+      }
+      return this;
+    }
+
+    private java.lang.Object name_ = "";
+    /**
+     *
+     *
+     * <pre>
+     * Required. The name of the entry group. For example,
+     * `projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}`.
+     * </pre>
+     *
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
+     */
+    public java.lang.String getName() {
+      java.lang.Object ref = name_;
+      if (!(ref instanceof java.lang.String)) {
+        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        name_ = s;
+        return s;
+      } else {
+        return (java.lang.String) ref;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. The name of the entry group. For example,
+     * `projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}`.
+     * </pre>
+     *
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
+     */
+    public com.google.protobuf.ByteString getNameBytes() {
+      java.lang.Object ref = name_;
+      if (ref instanceof String) {
+        com.google.protobuf.ByteString b =
+            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+        name_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. The name of the entry group. For example,
+     * `projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}`.
+     * </pre>
+     *
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
+     */
+    public Builder setName(java.lang.String value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+
+      name_ = value;
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. The name of the entry group. For example,
+     * `projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}`.
+     * </pre>
+     *
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
+     */
+    public Builder clearName() {
+
+      name_ = getDefaultInstance().getName();
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. The name of the entry group. For example,
+     * `projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}`.
+     * </pre>
+     *
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
+     */
+    public Builder setNameBytes(com.google.protobuf.ByteString value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+      checkByteStringIsUtf8(value);
+
+      name_ = 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.datacatalog.v1beta1.DeleteEntryGroupRequest)
+  }
+
+  // @@protoc_insertion_point(class_scope:google.cloud.datacatalog.v1beta1.DeleteEntryGroupRequest)
+  private static final com.google.cloud.datacatalog.DeleteEntryGroupRequest DEFAULT_INSTANCE;
+
+  static {
+    DEFAULT_INSTANCE = new com.google.cloud.datacatalog.DeleteEntryGroupRequest();
+  }
+
+  public static com.google.cloud.datacatalog.DeleteEntryGroupRequest getDefaultInstance() {
+    return DEFAULT_INSTANCE;
+  }
+
+  private static final com.google.protobuf.Parser<DeleteEntryGroupRequest> PARSER =
+      new com.google.protobuf.AbstractParser<DeleteEntryGroupRequest>() {
+        @java.lang.Override
+        public DeleteEntryGroupRequest parsePartialFrom(
+            com.google.protobuf.CodedInputStream input,
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+            throws com.google.protobuf.InvalidProtocolBufferException {
+          return new DeleteEntryGroupRequest(input, extensionRegistry);
+        }
+      };
+
+  public static com.google.protobuf.Parser<DeleteEntryGroupRequest> parser() {
+    return PARSER;
+  }
+
+  @java.lang.Override
+  public com.google.protobuf.Parser<DeleteEntryGroupRequest> getParserForType() {
+    return PARSER;
+  }
+
+  @java.lang.Override
+  public com.google.cloud.datacatalog.DeleteEntryGroupRequest getDefaultInstanceForType() {
+    return DEFAULT_INSTANCE;
+  }
+}
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/DeleteEntryGroupRequestOrBuilder.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/DeleteEntryGroupRequestOrBuilder.java
new file mode 100644
index 000000000000..c419db2d1ee2
--- /dev/null
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/DeleteEntryGroupRequestOrBuilder.java
@@ -0,0 +1,37 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: google/cloud/datacatalog/v1beta1/datacatalog.proto
+
+package com.google.cloud.datacatalog;
+
+public interface DeleteEntryGroupRequestOrBuilder
+    extends
+    // @@protoc_insertion_point(interface_extends:google.cloud.datacatalog.v1beta1.DeleteEntryGroupRequest)
+    com.google.protobuf.MessageOrBuilder {
+
+  /**
+   *
+   *
+   * <pre>
+   * Required. The name of the entry group. For example,
+   * `projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}`.
+   * </pre>
+   *
+   * <code>
+   * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
+   */
+  java.lang.String getName();
+  /**
+   *
+   *
+   * <pre>
+   * Required. The name of the entry group. For example,
+   * `projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}`.
+   * </pre>
+   *
+   * <code>
+   * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
+   */
+  com.google.protobuf.ByteString getNameBytes();
+}
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/DeleteEntryRequest.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/DeleteEntryRequest.java
new file mode 100644
index 000000000000..75bb7e252eef
--- /dev/null
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/DeleteEntryRequest.java
@@ -0,0 +1,620 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: google/cloud/datacatalog/v1beta1/datacatalog.proto
+
+package com.google.cloud.datacatalog;
+
+/**
+ *
+ *
+ * <pre>
+ * Request message for
+ * [DeleteEntry][google.cloud.datacatalog.v1beta1.DataCatalog.DeleteEntry].
+ * </pre>
+ *
+ * Protobuf type {@code google.cloud.datacatalog.v1beta1.DeleteEntryRequest}
+ */
+public final class DeleteEntryRequest extends com.google.protobuf.GeneratedMessageV3
+    implements
+    // @@protoc_insertion_point(message_implements:google.cloud.datacatalog.v1beta1.DeleteEntryRequest)
+    DeleteEntryRequestOrBuilder {
+  private static final long serialVersionUID = 0L;
+  // Use DeleteEntryRequest.newBuilder() to construct.
+  private DeleteEntryRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+    super(builder);
+  }
+
+  private DeleteEntryRequest() {
+    name_ = "";
+  }
+
+  @java.lang.Override
+  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
+    return this.unknownFields;
+  }
+
+  private DeleteEntryRequest(
+      com.google.protobuf.CodedInputStream input,
+      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
+    int mutable_bitField0_ = 0;
+    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+        com.google.protobuf.UnknownFieldSet.newBuilder();
+    try {
+      boolean done = false;
+      while (!done) {
+        int tag = input.readTag();
+        switch (tag) {
+          case 0:
+            done = true;
+            break;
+          case 10:
+            {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              name_ = 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.datacatalog.Datacatalog
+        .internal_static_google_cloud_datacatalog_v1beta1_DeleteEntryRequest_descriptor;
+  }
+
+  @java.lang.Override
+  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internalGetFieldAccessorTable() {
+    return com.google.cloud.datacatalog.Datacatalog
+        .internal_static_google_cloud_datacatalog_v1beta1_DeleteEntryRequest_fieldAccessorTable
+        .ensureFieldAccessorsInitialized(
+            com.google.cloud.datacatalog.DeleteEntryRequest.class,
+            com.google.cloud.datacatalog.DeleteEntryRequest.Builder.class);
+  }
+
+  public static final int NAME_FIELD_NUMBER = 1;
+  private volatile java.lang.Object name_;
+  /**
+   *
+   *
+   * <pre>
+   * Required. The name of the entry. Example:
+   * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
+   * </pre>
+   *
+   * <code>
+   * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
+   */
+  public java.lang.String getName() {
+    java.lang.Object ref = name_;
+    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();
+      name_ = s;
+      return s;
+    }
+  }
+  /**
+   *
+   *
+   * <pre>
+   * Required. The name of the entry. Example:
+   * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
+   * </pre>
+   *
+   * <code>
+   * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
+   */
+  public com.google.protobuf.ByteString getNameBytes() {
+    java.lang.Object ref = name_;
+    if (ref instanceof java.lang.String) {
+      com.google.protobuf.ByteString b =
+          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+      name_ = 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 (!getNameBytes().isEmpty()) {
+      com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
+    }
+    unknownFields.writeTo(output);
+  }
+
+  @java.lang.Override
+  public int getSerializedSize() {
+    int size = memoizedSize;
+    if (size != -1) return size;
+
+    size = 0;
+    if (!getNameBytes().isEmpty()) {
+      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
+    }
+    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.datacatalog.DeleteEntryRequest)) {
+      return super.equals(obj);
+    }
+    com.google.cloud.datacatalog.DeleteEntryRequest other =
+        (com.google.cloud.datacatalog.DeleteEntryRequest) obj;
+
+    if (!getName().equals(other.getName())) 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) + NAME_FIELD_NUMBER;
+    hash = (53 * hash) + getName().hashCode();
+    hash = (29 * hash) + unknownFields.hashCode();
+    memoizedHashCode = hash;
+    return hash;
+  }
+
+  public static com.google.cloud.datacatalog.DeleteEntryRequest parseFrom(java.nio.ByteBuffer data)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data);
+  }
+
+  public static com.google.cloud.datacatalog.DeleteEntryRequest 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.datacatalog.DeleteEntryRequest parseFrom(
+      com.google.protobuf.ByteString data)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data);
+  }
+
+  public static com.google.cloud.datacatalog.DeleteEntryRequest 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.datacatalog.DeleteEntryRequest parseFrom(byte[] data)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data);
+  }
+
+  public static com.google.cloud.datacatalog.DeleteEntryRequest parseFrom(
+      byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data, extensionRegistry);
+  }
+
+  public static com.google.cloud.datacatalog.DeleteEntryRequest parseFrom(java.io.InputStream input)
+      throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+  }
+
+  public static com.google.cloud.datacatalog.DeleteEntryRequest 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.datacatalog.DeleteEntryRequest parseDelimitedFrom(
+      java.io.InputStream input) throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
+  }
+
+  public static com.google.cloud.datacatalog.DeleteEntryRequest 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.datacatalog.DeleteEntryRequest parseFrom(
+      com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+  }
+
+  public static com.google.cloud.datacatalog.DeleteEntryRequest 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.datacatalog.DeleteEntryRequest 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>
+   * Request message for
+   * [DeleteEntry][google.cloud.datacatalog.v1beta1.DataCatalog.DeleteEntry].
+   * </pre>
+   *
+   * Protobuf type {@code google.cloud.datacatalog.v1beta1.DeleteEntryRequest}
+   */
+  public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
+      implements
+      // @@protoc_insertion_point(builder_implements:google.cloud.datacatalog.v1beta1.DeleteEntryRequest)
+      com.google.cloud.datacatalog.DeleteEntryRequestOrBuilder {
+    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+      return com.google.cloud.datacatalog.Datacatalog
+          .internal_static_google_cloud_datacatalog_v1beta1_DeleteEntryRequest_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return com.google.cloud.datacatalog.Datacatalog
+          .internal_static_google_cloud_datacatalog_v1beta1_DeleteEntryRequest_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              com.google.cloud.datacatalog.DeleteEntryRequest.class,
+              com.google.cloud.datacatalog.DeleteEntryRequest.Builder.class);
+    }
+
+    // Construct using com.google.cloud.datacatalog.DeleteEntryRequest.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();
+      name_ = "";
+
+      return this;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
+      return com.google.cloud.datacatalog.Datacatalog
+          .internal_static_google_cloud_datacatalog_v1beta1_DeleteEntryRequest_descriptor;
+    }
+
+    @java.lang.Override
+    public com.google.cloud.datacatalog.DeleteEntryRequest getDefaultInstanceForType() {
+      return com.google.cloud.datacatalog.DeleteEntryRequest.getDefaultInstance();
+    }
+
+    @java.lang.Override
+    public com.google.cloud.datacatalog.DeleteEntryRequest build() {
+      com.google.cloud.datacatalog.DeleteEntryRequest result = buildPartial();
+      if (!result.isInitialized()) {
+        throw newUninitializedMessageException(result);
+      }
+      return result;
+    }
+
+    @java.lang.Override
+    public com.google.cloud.datacatalog.DeleteEntryRequest buildPartial() {
+      com.google.cloud.datacatalog.DeleteEntryRequest result =
+          new com.google.cloud.datacatalog.DeleteEntryRequest(this);
+      result.name_ = name_;
+      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.datacatalog.DeleteEntryRequest) {
+        return mergeFrom((com.google.cloud.datacatalog.DeleteEntryRequest) other);
+      } else {
+        super.mergeFrom(other);
+        return this;
+      }
+    }
+
+    public Builder mergeFrom(com.google.cloud.datacatalog.DeleteEntryRequest other) {
+      if (other == com.google.cloud.datacatalog.DeleteEntryRequest.getDefaultInstance())
+        return this;
+      if (!other.getName().isEmpty()) {
+        name_ = other.name_;
+        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.datacatalog.DeleteEntryRequest parsedMessage = null;
+      try {
+        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        parsedMessage = (com.google.cloud.datacatalog.DeleteEntryRequest) e.getUnfinishedMessage();
+        throw e.unwrapIOException();
+      } finally {
+        if (parsedMessage != null) {
+          mergeFrom(parsedMessage);
+        }
+      }
+      return this;
+    }
+
+    private java.lang.Object name_ = "";
+    /**
+     *
+     *
+     * <pre>
+     * Required. The name of the entry. Example:
+     * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
+     * </pre>
+     *
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
+     */
+    public java.lang.String getName() {
+      java.lang.Object ref = name_;
+      if (!(ref instanceof java.lang.String)) {
+        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        name_ = s;
+        return s;
+      } else {
+        return (java.lang.String) ref;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. The name of the entry. Example:
+     * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
+     * </pre>
+     *
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
+     */
+    public com.google.protobuf.ByteString getNameBytes() {
+      java.lang.Object ref = name_;
+      if (ref instanceof String) {
+        com.google.protobuf.ByteString b =
+            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+        name_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. The name of the entry. Example:
+     * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
+     * </pre>
+     *
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
+     */
+    public Builder setName(java.lang.String value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+
+      name_ = value;
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. The name of the entry. Example:
+     * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
+     * </pre>
+     *
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
+     */
+    public Builder clearName() {
+
+      name_ = getDefaultInstance().getName();
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. The name of the entry. Example:
+     * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
+     * </pre>
+     *
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
+     */
+    public Builder setNameBytes(com.google.protobuf.ByteString value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+      checkByteStringIsUtf8(value);
+
+      name_ = 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.datacatalog.v1beta1.DeleteEntryRequest)
+  }
+
+  // @@protoc_insertion_point(class_scope:google.cloud.datacatalog.v1beta1.DeleteEntryRequest)
+  private static final com.google.cloud.datacatalog.DeleteEntryRequest DEFAULT_INSTANCE;
+
+  static {
+    DEFAULT_INSTANCE = new com.google.cloud.datacatalog.DeleteEntryRequest();
+  }
+
+  public static com.google.cloud.datacatalog.DeleteEntryRequest getDefaultInstance() {
+    return DEFAULT_INSTANCE;
+  }
+
+  private static final com.google.protobuf.Parser<DeleteEntryRequest> PARSER =
+      new com.google.protobuf.AbstractParser<DeleteEntryRequest>() {
+        @java.lang.Override
+        public DeleteEntryRequest parsePartialFrom(
+            com.google.protobuf.CodedInputStream input,
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+            throws com.google.protobuf.InvalidProtocolBufferException {
+          return new DeleteEntryRequest(input, extensionRegistry);
+        }
+      };
+
+  public static com.google.protobuf.Parser<DeleteEntryRequest> parser() {
+    return PARSER;
+  }
+
+  @java.lang.Override
+  public com.google.protobuf.Parser<DeleteEntryRequest> getParserForType() {
+    return PARSER;
+  }
+
+  @java.lang.Override
+  public com.google.cloud.datacatalog.DeleteEntryRequest getDefaultInstanceForType() {
+    return DEFAULT_INSTANCE;
+  }
+}
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/DeleteEntryRequestOrBuilder.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/DeleteEntryRequestOrBuilder.java
new file mode 100644
index 000000000000..abce5e560de7
--- /dev/null
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/DeleteEntryRequestOrBuilder.java
@@ -0,0 +1,37 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: google/cloud/datacatalog/v1beta1/datacatalog.proto
+
+package com.google.cloud.datacatalog;
+
+public interface DeleteEntryRequestOrBuilder
+    extends
+    // @@protoc_insertion_point(interface_extends:google.cloud.datacatalog.v1beta1.DeleteEntryRequest)
+    com.google.protobuf.MessageOrBuilder {
+
+  /**
+   *
+   *
+   * <pre>
+   * Required. The name of the entry. Example:
+   * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
+   * </pre>
+   *
+   * <code>
+   * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
+   */
+  java.lang.String getName();
+  /**
+   *
+   *
+   * <pre>
+   * Required. The name of the entry. Example:
+   * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
+   * </pre>
+   *
+   * <code>
+   * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
+   */
+  com.google.protobuf.ByteString getNameBytes();
+}
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/DeleteTagRequest.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/DeleteTagRequest.java
index a536bc5b2688..8fc20fbcc5be 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/DeleteTagRequest.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/DeleteTagRequest.java
@@ -98,11 +98,13 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    *
    *
    * <pre>
-   * Required. The name of the tag to delete. For example,
-   * "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}".
+   * Required. The name of the tag to delete. Example:
+   * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}
    * </pre>
    *
-   * <code>string name = 1;</code>
+   * <code>
+   * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   public java.lang.String getName() {
     java.lang.Object ref = name_;
@@ -119,11 +121,13 @@ public java.lang.String getName() {
    *
    *
    * <pre>
-   * Required. The name of the tag to delete. For example,
-   * "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}".
+   * Required. The name of the tag to delete. Example:
+   * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}
    * </pre>
    *
-   * <code>string name = 1;</code>
+   * <code>
+   * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   public com.google.protobuf.ByteString getNameBytes() {
     java.lang.Object ref = name_;
@@ -459,11 +463,13 @@ public Builder mergeFrom(
      *
      *
      * <pre>
-     * Required. The name of the tag to delete. For example,
-     * "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}".
+     * Required. The name of the tag to delete. Example:
+     * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}
      * </pre>
      *
-     * <code>string name = 1;</code>
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public java.lang.String getName() {
       java.lang.Object ref = name_;
@@ -480,11 +486,13 @@ public java.lang.String getName() {
      *
      *
      * <pre>
-     * Required. The name of the tag to delete. For example,
-     * "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}".
+     * Required. The name of the tag to delete. Example:
+     * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}
      * </pre>
      *
-     * <code>string name = 1;</code>
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public com.google.protobuf.ByteString getNameBytes() {
       java.lang.Object ref = name_;
@@ -501,11 +509,13 @@ public com.google.protobuf.ByteString getNameBytes() {
      *
      *
      * <pre>
-     * Required. The name of the tag to delete. For example,
-     * "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}".
+     * Required. The name of the tag to delete. Example:
+     * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}
      * </pre>
      *
-     * <code>string name = 1;</code>
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public Builder setName(java.lang.String value) {
       if (value == null) {
@@ -520,11 +530,13 @@ public Builder setName(java.lang.String value) {
      *
      *
      * <pre>
-     * Required. The name of the tag to delete. For example,
-     * "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}".
+     * Required. The name of the tag to delete. Example:
+     * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}
      * </pre>
      *
-     * <code>string name = 1;</code>
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public Builder clearName() {
 
@@ -536,11 +548,13 @@ public Builder clearName() {
      *
      *
      * <pre>
-     * Required. The name of the tag to delete. For example,
-     * "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}".
+     * Required. The name of the tag to delete. Example:
+     * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}
      * </pre>
      *
-     * <code>string name = 1;</code>
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public Builder setNameBytes(com.google.protobuf.ByteString value) {
       if (value == null) {
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/DeleteTagRequestOrBuilder.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/DeleteTagRequestOrBuilder.java
index 0b3a85ca88c2..3ca7b2978179 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/DeleteTagRequestOrBuilder.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/DeleteTagRequestOrBuilder.java
@@ -12,22 +12,26 @@ public interface DeleteTagRequestOrBuilder
    *
    *
    * <pre>
-   * Required. The name of the tag to delete. For example,
-   * "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}".
+   * Required. The name of the tag to delete. Example:
+   * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}
    * </pre>
    *
-   * <code>string name = 1;</code>
+   * <code>
+   * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   java.lang.String getName();
   /**
    *
    *
    * <pre>
-   * Required. The name of the tag to delete. For example,
-   * "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}".
+   * Required. The name of the tag to delete. Example:
+   * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}
    * </pre>
    *
-   * <code>string name = 1;</code>
+   * <code>
+   * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   com.google.protobuf.ByteString getNameBytes();
 }
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/DeleteTagTemplateFieldRequest.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/DeleteTagTemplateFieldRequest.java
index 6de8d33e94ae..9e406adc5a44 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/DeleteTagTemplateFieldRequest.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/DeleteTagTemplateFieldRequest.java
@@ -103,11 +103,13 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    *
    *
    * <pre>
-   * Required. The name of the tag template field to delete. For example,
-   * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}".
+   * Required. The name of the tag template field to delete. Example:
+   * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}
    * </pre>
    *
-   * <code>string name = 1;</code>
+   * <code>
+   * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   public java.lang.String getName() {
     java.lang.Object ref = name_;
@@ -124,11 +126,13 @@ public java.lang.String getName() {
    *
    *
    * <pre>
-   * Required. The name of the tag template field to delete. For example,
-   * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}".
+   * Required. The name of the tag template field to delete. Example:
+   * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}
    * </pre>
    *
-   * <code>string name = 1;</code>
+   * <code>
+   * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   public com.google.protobuf.ByteString getNameBytes() {
     java.lang.Object ref = name_;
@@ -148,12 +152,12 @@ public com.google.protobuf.ByteString getNameBytes() {
    *
    *
    * <pre>
-   * Required. Currently, this field must always be set to &lt;code&gt;true&lt;/code&gt;.
+   * Required. Currently, this field must always be set to `true`.
    * This confirms the deletion of this field from any tags using this field.
-   * &lt;code&gt;force = false&lt;/code&gt; will be supported in the future.
+   * `force = false` will be supported in the future.
    * </pre>
    *
-   * <code>bool force = 2;</code>
+   * <code>bool force = 2 [(.google.api.field_behavior) = REQUIRED];</code>
    */
   public boolean getForce() {
     return force_;
@@ -499,11 +503,13 @@ public Builder mergeFrom(
      *
      *
      * <pre>
-     * Required. The name of the tag template field to delete. For example,
-     * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}".
+     * Required. The name of the tag template field to delete. Example:
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}
      * </pre>
      *
-     * <code>string name = 1;</code>
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public java.lang.String getName() {
       java.lang.Object ref = name_;
@@ -520,11 +526,13 @@ public java.lang.String getName() {
      *
      *
      * <pre>
-     * Required. The name of the tag template field to delete. For example,
-     * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}".
+     * Required. The name of the tag template field to delete. Example:
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}
      * </pre>
      *
-     * <code>string name = 1;</code>
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public com.google.protobuf.ByteString getNameBytes() {
       java.lang.Object ref = name_;
@@ -541,11 +549,13 @@ public com.google.protobuf.ByteString getNameBytes() {
      *
      *
      * <pre>
-     * Required. The name of the tag template field to delete. For example,
-     * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}".
+     * Required. The name of the tag template field to delete. Example:
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}
      * </pre>
      *
-     * <code>string name = 1;</code>
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public Builder setName(java.lang.String value) {
       if (value == null) {
@@ -560,11 +570,13 @@ public Builder setName(java.lang.String value) {
      *
      *
      * <pre>
-     * Required. The name of the tag template field to delete. For example,
-     * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}".
+     * Required. The name of the tag template field to delete. Example:
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}
      * </pre>
      *
-     * <code>string name = 1;</code>
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public Builder clearName() {
 
@@ -576,11 +588,13 @@ public Builder clearName() {
      *
      *
      * <pre>
-     * Required. The name of the tag template field to delete. For example,
-     * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}".
+     * Required. The name of the tag template field to delete. Example:
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}
      * </pre>
      *
-     * <code>string name = 1;</code>
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public Builder setNameBytes(com.google.protobuf.ByteString value) {
       if (value == null) {
@@ -598,12 +612,12 @@ public Builder setNameBytes(com.google.protobuf.ByteString value) {
      *
      *
      * <pre>
-     * Required. Currently, this field must always be set to &lt;code&gt;true&lt;/code&gt;.
+     * Required. Currently, this field must always be set to `true`.
      * This confirms the deletion of this field from any tags using this field.
-     * &lt;code&gt;force = false&lt;/code&gt; will be supported in the future.
+     * `force = false` will be supported in the future.
      * </pre>
      *
-     * <code>bool force = 2;</code>
+     * <code>bool force = 2 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public boolean getForce() {
       return force_;
@@ -612,12 +626,12 @@ public boolean getForce() {
      *
      *
      * <pre>
-     * Required. Currently, this field must always be set to &lt;code&gt;true&lt;/code&gt;.
+     * Required. Currently, this field must always be set to `true`.
      * This confirms the deletion of this field from any tags using this field.
-     * &lt;code&gt;force = false&lt;/code&gt; will be supported in the future.
+     * `force = false` will be supported in the future.
      * </pre>
      *
-     * <code>bool force = 2;</code>
+     * <code>bool force = 2 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public Builder setForce(boolean value) {
 
@@ -629,12 +643,12 @@ public Builder setForce(boolean value) {
      *
      *
      * <pre>
-     * Required. Currently, this field must always be set to &lt;code&gt;true&lt;/code&gt;.
+     * Required. Currently, this field must always be set to `true`.
      * This confirms the deletion of this field from any tags using this field.
-     * &lt;code&gt;force = false&lt;/code&gt; will be supported in the future.
+     * `force = false` will be supported in the future.
      * </pre>
      *
-     * <code>bool force = 2;</code>
+     * <code>bool force = 2 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public Builder clearForce() {
 
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/DeleteTagTemplateFieldRequestOrBuilder.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/DeleteTagTemplateFieldRequestOrBuilder.java
index 71ab09f0099a..67c536e1c35c 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/DeleteTagTemplateFieldRequestOrBuilder.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/DeleteTagTemplateFieldRequestOrBuilder.java
@@ -12,22 +12,26 @@ public interface DeleteTagTemplateFieldRequestOrBuilder
    *
    *
    * <pre>
-   * Required. The name of the tag template field to delete. For example,
-   * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}".
+   * Required. The name of the tag template field to delete. Example:
+   * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}
    * </pre>
    *
-   * <code>string name = 1;</code>
+   * <code>
+   * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   java.lang.String getName();
   /**
    *
    *
    * <pre>
-   * Required. The name of the tag template field to delete. For example,
-   * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}".
+   * Required. The name of the tag template field to delete. Example:
+   * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}
    * </pre>
    *
-   * <code>string name = 1;</code>
+   * <code>
+   * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   com.google.protobuf.ByteString getNameBytes();
 
@@ -35,12 +39,12 @@ public interface DeleteTagTemplateFieldRequestOrBuilder
    *
    *
    * <pre>
-   * Required. Currently, this field must always be set to &lt;code&gt;true&lt;/code&gt;.
+   * Required. Currently, this field must always be set to `true`.
    * This confirms the deletion of this field from any tags using this field.
-   * &lt;code&gt;force = false&lt;/code&gt; will be supported in the future.
+   * `force = false` will be supported in the future.
    * </pre>
    *
-   * <code>bool force = 2;</code>
+   * <code>bool force = 2 [(.google.api.field_behavior) = REQUIRED];</code>
    */
   boolean getForce();
 }
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/DeleteTagTemplateRequest.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/DeleteTagTemplateRequest.java
index 0ae206802757..38216350c288 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/DeleteTagTemplateRequest.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/DeleteTagTemplateRequest.java
@@ -103,11 +103,13 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    *
    *
    * <pre>
-   * Required. The name of the tag template to delete. For example,
-   * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}".
+   * Required. The name of the tag template to delete. Example:
+   * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
    * </pre>
    *
-   * <code>string name = 1;</code>
+   * <code>
+   * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   public java.lang.String getName() {
     java.lang.Object ref = name_;
@@ -124,11 +126,13 @@ public java.lang.String getName() {
    *
    *
    * <pre>
-   * Required. The name of the tag template to delete. For example,
-   * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}".
+   * Required. The name of the tag template to delete. Example:
+   * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
    * </pre>
    *
-   * <code>string name = 1;</code>
+   * <code>
+   * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   public com.google.protobuf.ByteString getNameBytes() {
     java.lang.Object ref = name_;
@@ -148,12 +152,12 @@ public com.google.protobuf.ByteString getNameBytes() {
    *
    *
    * <pre>
-   * Required. Currently, this field must always be set to &lt;code&gt;true&lt;/code&gt;.
+   * Required. Currently, this field must always be set to `true`.
    * This confirms the deletion of any possible tags using this template.
-   * &lt;code&gt;force = false&lt;/code&gt; will be supported in the future.
+   * `force = false` will be supported in the future.
    * </pre>
    *
-   * <code>bool force = 2;</code>
+   * <code>bool force = 2 [(.google.api.field_behavior) = REQUIRED];</code>
    */
   public boolean getForce() {
     return force_;
@@ -499,11 +503,13 @@ public Builder mergeFrom(
      *
      *
      * <pre>
-     * Required. The name of the tag template to delete. For example,
-     * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}".
+     * Required. The name of the tag template to delete. Example:
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
      * </pre>
      *
-     * <code>string name = 1;</code>
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public java.lang.String getName() {
       java.lang.Object ref = name_;
@@ -520,11 +526,13 @@ public java.lang.String getName() {
      *
      *
      * <pre>
-     * Required. The name of the tag template to delete. For example,
-     * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}".
+     * Required. The name of the tag template to delete. Example:
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
      * </pre>
      *
-     * <code>string name = 1;</code>
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public com.google.protobuf.ByteString getNameBytes() {
       java.lang.Object ref = name_;
@@ -541,11 +549,13 @@ public com.google.protobuf.ByteString getNameBytes() {
      *
      *
      * <pre>
-     * Required. The name of the tag template to delete. For example,
-     * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}".
+     * Required. The name of the tag template to delete. Example:
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
      * </pre>
      *
-     * <code>string name = 1;</code>
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public Builder setName(java.lang.String value) {
       if (value == null) {
@@ -560,11 +570,13 @@ public Builder setName(java.lang.String value) {
      *
      *
      * <pre>
-     * Required. The name of the tag template to delete. For example,
-     * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}".
+     * Required. The name of the tag template to delete. Example:
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
      * </pre>
      *
-     * <code>string name = 1;</code>
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public Builder clearName() {
 
@@ -576,11 +588,13 @@ public Builder clearName() {
      *
      *
      * <pre>
-     * Required. The name of the tag template to delete. For example,
-     * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}".
+     * Required. The name of the tag template to delete. Example:
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
      * </pre>
      *
-     * <code>string name = 1;</code>
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public Builder setNameBytes(com.google.protobuf.ByteString value) {
       if (value == null) {
@@ -598,12 +612,12 @@ public Builder setNameBytes(com.google.protobuf.ByteString value) {
      *
      *
      * <pre>
-     * Required. Currently, this field must always be set to &lt;code&gt;true&lt;/code&gt;.
+     * Required. Currently, this field must always be set to `true`.
      * This confirms the deletion of any possible tags using this template.
-     * &lt;code&gt;force = false&lt;/code&gt; will be supported in the future.
+     * `force = false` will be supported in the future.
      * </pre>
      *
-     * <code>bool force = 2;</code>
+     * <code>bool force = 2 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public boolean getForce() {
       return force_;
@@ -612,12 +626,12 @@ public boolean getForce() {
      *
      *
      * <pre>
-     * Required. Currently, this field must always be set to &lt;code&gt;true&lt;/code&gt;.
+     * Required. Currently, this field must always be set to `true`.
      * This confirms the deletion of any possible tags using this template.
-     * &lt;code&gt;force = false&lt;/code&gt; will be supported in the future.
+     * `force = false` will be supported in the future.
      * </pre>
      *
-     * <code>bool force = 2;</code>
+     * <code>bool force = 2 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public Builder setForce(boolean value) {
 
@@ -629,12 +643,12 @@ public Builder setForce(boolean value) {
      *
      *
      * <pre>
-     * Required. Currently, this field must always be set to &lt;code&gt;true&lt;/code&gt;.
+     * Required. Currently, this field must always be set to `true`.
      * This confirms the deletion of any possible tags using this template.
-     * &lt;code&gt;force = false&lt;/code&gt; will be supported in the future.
+     * `force = false` will be supported in the future.
      * </pre>
      *
-     * <code>bool force = 2;</code>
+     * <code>bool force = 2 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public Builder clearForce() {
 
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/DeleteTagTemplateRequestOrBuilder.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/DeleteTagTemplateRequestOrBuilder.java
index 37b92cebb7ad..a8a923003d70 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/DeleteTagTemplateRequestOrBuilder.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/DeleteTagTemplateRequestOrBuilder.java
@@ -12,22 +12,26 @@ public interface DeleteTagTemplateRequestOrBuilder
    *
    *
    * <pre>
-   * Required. The name of the tag template to delete. For example,
-   * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}".
+   * Required. The name of the tag template to delete. Example:
+   * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
    * </pre>
    *
-   * <code>string name = 1;</code>
+   * <code>
+   * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   java.lang.String getName();
   /**
    *
    *
    * <pre>
-   * Required. The name of the tag template to delete. For example,
-   * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}".
+   * Required. The name of the tag template to delete. Example:
+   * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
    * </pre>
    *
-   * <code>string name = 1;</code>
+   * <code>
+   * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   com.google.protobuf.ByteString getNameBytes();
 
@@ -35,12 +39,12 @@ public interface DeleteTagTemplateRequestOrBuilder
    *
    *
    * <pre>
-   * Required. Currently, this field must always be set to &lt;code&gt;true&lt;/code&gt;.
+   * Required. Currently, this field must always be set to `true`.
    * This confirms the deletion of any possible tags using this template.
-   * &lt;code&gt;force = false&lt;/code&gt; will be supported in the future.
+   * `force = false` will be supported in the future.
    * </pre>
    *
-   * <code>bool force = 2;</code>
+   * <code>bool force = 2 [(.google.api.field_behavior) = REQUIRED];</code>
    */
   boolean getForce();
 }
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/Entry.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/Entry.java
index 6baf1cedbbc1..01766d53bc80 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/Entry.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/Entry.java
@@ -9,9 +9,9 @@
  * <pre>
  * Entry Metadata.
  * A Data Catalog Entry resource represents another resource in Google
- * Cloud Platform, such as a BigQuery Dataset or a Pub/Sub Topic. Clients can
- * use the `linked_resource` field in the Entry resource to refer to the
- * original resource id of the source system.
+ * Cloud Platform, such as a BigQuery dataset or a Cloud Pub/Sub topic.
+ * Clients can use the `linked_resource` field in the Entry resource to refer to
+ * the original resource ID of the source system.
  * An Entry resource contains resource details, such as its schema. An Entry can
  * also be used to attach flexible metadata, such as a
  * [Tag][google.cloud.datacatalog.v1beta1.Tag].
@@ -32,7 +32,6 @@ private Entry(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
   private Entry() {
     name_ = "";
     linkedResource_ = "";
-    type_ = 0;
     displayName_ = "";
     description_ = "";
   }
@@ -71,8 +70,8 @@ private Entry(
           case 16:
             {
               int rawValue = input.readEnum();
-
-              type_ = rawValue;
+              entryTypeCase_ = 2;
+              entryType_ = rawValue;
               break;
             }
           case 26:
@@ -103,6 +102,22 @@ private Entry(
                 schema_ = subBuilder.buildPartial();
               }
 
+              break;
+            }
+          case 50:
+            {
+              com.google.cloud.datacatalog.GcsFilesetSpec.Builder subBuilder = null;
+              if (typeSpecCase_ == 6) {
+                subBuilder = ((com.google.cloud.datacatalog.GcsFilesetSpec) typeSpec_).toBuilder();
+              }
+              typeSpec_ =
+                  input.readMessage(
+                      com.google.cloud.datacatalog.GcsFilesetSpec.parser(), extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom((com.google.cloud.datacatalog.GcsFilesetSpec) typeSpec_);
+                typeSpec_ = subBuilder.buildPartial();
+              }
+              typeSpecCase_ = 6;
               break;
             }
           case 58:
@@ -198,10 +213,48 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
             com.google.cloud.datacatalog.Entry.Builder.class);
   }
 
+  private int entryTypeCase_ = 0;
+  private java.lang.Object entryType_;
+
+  public enum EntryTypeCase implements com.google.protobuf.Internal.EnumLite {
+    TYPE(2),
+    ENTRYTYPE_NOT_SET(0);
+    private final int value;
+
+    private EntryTypeCase(int value) {
+      this.value = value;
+    }
+    /** @deprecated Use {@link #forNumber(int)} instead. */
+    @java.lang.Deprecated
+    public static EntryTypeCase valueOf(int value) {
+      return forNumber(value);
+    }
+
+    public static EntryTypeCase forNumber(int value) {
+      switch (value) {
+        case 2:
+          return TYPE;
+        case 0:
+          return ENTRYTYPE_NOT_SET;
+        default:
+          return null;
+      }
+    }
+
+    public int getNumber() {
+      return this.value;
+    }
+  };
+
+  public EntryTypeCase getEntryTypeCase() {
+    return EntryTypeCase.forNumber(entryTypeCase_);
+  }
+
   private int typeSpecCase_ = 0;
   private java.lang.Object typeSpec_;
 
   public enum TypeSpecCase implements com.google.protobuf.Internal.EnumLite {
+    GCS_FILESET_SPEC(6),
     BIGQUERY_TABLE_SPEC(12),
     BIGQUERY_DATE_SHARDED_SPEC(15),
     TYPESPEC_NOT_SET(0);
@@ -218,6 +271,8 @@ public static TypeSpecCase valueOf(int value) {
 
     public static TypeSpecCase forNumber(int value) {
       switch (value) {
+        case 6:
+          return GCS_FILESET_SPEC;
         case 12:
           return BIGQUERY_TABLE_SPEC;
         case 15:
@@ -246,13 +301,13 @@ public TypeSpecCase getTypeSpecCase() {
    * <pre>
    * Required when used in
    * [UpdateEntryRequest][google.cloud.datacatalog.v1beta1.UpdateEntryRequest].
-   * The Data Catalog resource name of the entry in URL format. For example,
-   * "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}".
+   * The Data Catalog resource name of the entry in URL format. Example:
+   * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
    * Note that this Entry and its child resources may not actually be stored in
    * the location in this name.
    * </pre>
    *
-   * <code>string name = 1;</code>
+   * <code>string name = 1 [(.google.api.resource_reference) = { ... }</code>
    */
   public java.lang.String getName() {
     java.lang.Object ref = name_;
@@ -271,13 +326,13 @@ public java.lang.String getName() {
    * <pre>
    * Required when used in
    * [UpdateEntryRequest][google.cloud.datacatalog.v1beta1.UpdateEntryRequest].
-   * The Data Catalog resource name of the entry in URL format. For example,
-   * "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}".
+   * The Data Catalog resource name of the entry in URL format. Example:
+   * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
    * Note that this Entry and its child resources may not actually be stored in
    * the location in this name.
    * </pre>
    *
-   * <code>string name = 1;</code>
+   * <code>string name = 1 [(.google.api.resource_reference) = { ... }</code>
    */
   public com.google.protobuf.ByteString getNameBytes() {
     java.lang.Object ref = name_;
@@ -297,12 +352,12 @@ public com.google.protobuf.ByteString getNameBytes() {
    *
    *
    * <pre>
-   * Output only. The full name of the cloud resource the entry belongs to. See:
-   * https://cloud.google.com/apis/design/resource_names#full_resource_name
-   * Data Catalog supports resources from select Google Cloud Platform systems.
-   * `linked_resource` is the full name of the Google Cloud Platform resource.
+   * Output only. The resource this metadata entry refers to.
+   * For Google Cloud Platform resources, `linked_resource` is the [full name of
+   * the
+   * resource](https://cloud.google.com/apis/design/resource_names#full_resource_name).
    * For example, the `linked_resource` for a table resource from BigQuery is:
-   * "//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId".
+   * * //bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId
    * </pre>
    *
    * <code>string linked_resource = 9;</code>
@@ -322,12 +377,12 @@ public java.lang.String getLinkedResource() {
    *
    *
    * <pre>
-   * Output only. The full name of the cloud resource the entry belongs to. See:
-   * https://cloud.google.com/apis/design/resource_names#full_resource_name
-   * Data Catalog supports resources from select Google Cloud Platform systems.
-   * `linked_resource` is the full name of the Google Cloud Platform resource.
+   * Output only. The resource this metadata entry refers to.
+   * For Google Cloud Platform resources, `linked_resource` is the [full name of
+   * the
+   * resource](https://cloud.google.com/apis/design/resource_names#full_resource_name).
    * For example, the `linked_resource` for a table resource from BigQuery is:
-   * "//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId".
+   * * //bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId
    * </pre>
    *
    * <code>string linked_resource = 9;</code>
@@ -345,33 +400,85 @@ public com.google.protobuf.ByteString getLinkedResourceBytes() {
   }
 
   public static final int TYPE_FIELD_NUMBER = 2;
-  private int type_;
   /**
    *
    *
    * <pre>
-   * Required. Type of entry.
+   * The type of the entry.
    * </pre>
    *
    * <code>.google.cloud.datacatalog.v1beta1.EntryType type = 2;</code>
    */
   public int getTypeValue() {
-    return type_;
+    if (entryTypeCase_ == 2) {
+      return (java.lang.Integer) entryType_;
+    }
+    return 0;
   }
   /**
    *
    *
    * <pre>
-   * Required. Type of entry.
+   * The type of the entry.
    * </pre>
    *
    * <code>.google.cloud.datacatalog.v1beta1.EntryType type = 2;</code>
    */
   public com.google.cloud.datacatalog.EntryType getType() {
-    @SuppressWarnings("deprecation")
-    com.google.cloud.datacatalog.EntryType result =
-        com.google.cloud.datacatalog.EntryType.valueOf(type_);
-    return result == null ? com.google.cloud.datacatalog.EntryType.UNRECOGNIZED : result;
+    if (entryTypeCase_ == 2) {
+      @SuppressWarnings("deprecation")
+      com.google.cloud.datacatalog.EntryType result =
+          com.google.cloud.datacatalog.EntryType.valueOf((java.lang.Integer) entryType_);
+      return result == null ? com.google.cloud.datacatalog.EntryType.UNRECOGNIZED : result;
+    }
+    return com.google.cloud.datacatalog.EntryType.ENTRY_TYPE_UNSPECIFIED;
+  }
+
+  public static final int GCS_FILESET_SPEC_FIELD_NUMBER = 6;
+  /**
+   *
+   *
+   * <pre>
+   * Specification that applies to a Cloud Storage fileset. This is only valid
+   * on entries of type FILESET.
+   * </pre>
+   *
+   * <code>.google.cloud.datacatalog.v1beta1.GcsFilesetSpec gcs_fileset_spec = 6;</code>
+   */
+  public boolean hasGcsFilesetSpec() {
+    return typeSpecCase_ == 6;
+  }
+  /**
+   *
+   *
+   * <pre>
+   * Specification that applies to a Cloud Storage fileset. This is only valid
+   * on entries of type FILESET.
+   * </pre>
+   *
+   * <code>.google.cloud.datacatalog.v1beta1.GcsFilesetSpec gcs_fileset_spec = 6;</code>
+   */
+  public com.google.cloud.datacatalog.GcsFilesetSpec getGcsFilesetSpec() {
+    if (typeSpecCase_ == 6) {
+      return (com.google.cloud.datacatalog.GcsFilesetSpec) typeSpec_;
+    }
+    return com.google.cloud.datacatalog.GcsFilesetSpec.getDefaultInstance();
+  }
+  /**
+   *
+   *
+   * <pre>
+   * Specification that applies to a Cloud Storage fileset. This is only valid
+   * on entries of type FILESET.
+   * </pre>
+   *
+   * <code>.google.cloud.datacatalog.v1beta1.GcsFilesetSpec gcs_fileset_spec = 6;</code>
+   */
+  public com.google.cloud.datacatalog.GcsFilesetSpecOrBuilder getGcsFilesetSpecOrBuilder() {
+    if (typeSpecCase_ == 6) {
+      return (com.google.cloud.datacatalog.GcsFilesetSpec) typeSpec_;
+    }
+    return com.google.cloud.datacatalog.GcsFilesetSpec.getDefaultInstance();
   }
 
   public static final int BIGQUERY_TABLE_SPEC_FIELD_NUMBER = 12;
@@ -380,7 +487,7 @@ public com.google.cloud.datacatalog.EntryType getType() {
    *
    * <pre>
    * Specification that applies to a BigQuery table. This is only valid on
-   * entries of type TABLE.
+   * entries of type `TABLE`.
    * </pre>
    *
    * <code>.google.cloud.datacatalog.v1beta1.BigQueryTableSpec bigquery_table_spec = 12;</code>
@@ -393,7 +500,7 @@ public boolean hasBigqueryTableSpec() {
    *
    * <pre>
    * Specification that applies to a BigQuery table. This is only valid on
-   * entries of type TABLE.
+   * entries of type `TABLE`.
    * </pre>
    *
    * <code>.google.cloud.datacatalog.v1beta1.BigQueryTableSpec bigquery_table_spec = 12;</code>
@@ -409,7 +516,7 @@ public com.google.cloud.datacatalog.BigQueryTableSpec getBigqueryTableSpec() {
    *
    * <pre>
    * Specification that applies to a BigQuery table. This is only valid on
-   * entries of type TABLE.
+   * entries of type `TABLE`.
    * </pre>
    *
    * <code>.google.cloud.datacatalog.v1beta1.BigQueryTableSpec bigquery_table_spec = 12;</code>
@@ -427,8 +534,8 @@ public com.google.cloud.datacatalog.BigQueryTableSpecOrBuilder getBigqueryTableS
    *
    * <pre>
    * Specification for a group of BigQuery tables with name pattern
-   * [prefix]YYYYMMDD. Context:
-   * https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding
+   * `[prefix]YYYYMMDD`. Context:
+   * https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding.
    * </pre>
    *
    * <code>
@@ -443,8 +550,8 @@ public boolean hasBigqueryDateShardedSpec() {
    *
    * <pre>
    * Specification for a group of BigQuery tables with name pattern
-   * [prefix]YYYYMMDD. Context:
-   * https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding
+   * `[prefix]YYYYMMDD`. Context:
+   * https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding.
    * </pre>
    *
    * <code>
@@ -462,8 +569,8 @@ public com.google.cloud.datacatalog.BigQueryDateShardedSpec getBigqueryDateShard
    *
    * <pre>
    * Specification for a group of BigQuery tables with name pattern
-   * [prefix]YYYYMMDD. Context:
-   * https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding
+   * `[prefix]YYYYMMDD`. Context:
+   * https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding.
    * </pre>
    *
    * <code>
@@ -618,8 +725,8 @@ public com.google.cloud.datacatalog.SchemaOrBuilder getSchemaOrBuilder() {
    *
    *
    * <pre>
-   * Output only. Timestamps about the underlying Google Cloud Platform resource
-   * -- not about this Data Catalog Entry.
+   * Output only. Timestamps about the underlying Google Cloud Platform
+   * resource, not about this Data Catalog Entry.
    * </pre>
    *
    * <code>.google.cloud.datacatalog.v1beta1.SystemTimestamps source_system_timestamps = 7;</code>
@@ -631,8 +738,8 @@ public boolean hasSourceSystemTimestamps() {
    *
    *
    * <pre>
-   * Output only. Timestamps about the underlying Google Cloud Platform resource
-   * -- not about this Data Catalog Entry.
+   * Output only. Timestamps about the underlying Google Cloud Platform
+   * resource, not about this Data Catalog Entry.
    * </pre>
    *
    * <code>.google.cloud.datacatalog.v1beta1.SystemTimestamps source_system_timestamps = 7;</code>
@@ -646,8 +753,8 @@ public com.google.cloud.datacatalog.SystemTimestamps getSourceSystemTimestamps()
    *
    *
    * <pre>
-   * Output only. Timestamps about the underlying Google Cloud Platform resource
-   * -- not about this Data Catalog Entry.
+   * Output only. Timestamps about the underlying Google Cloud Platform
+   * resource, not about this Data Catalog Entry.
    * </pre>
    *
    * <code>.google.cloud.datacatalog.v1beta1.SystemTimestamps source_system_timestamps = 7;</code>
@@ -674,8 +781,8 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
     if (!getNameBytes().isEmpty()) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
     }
-    if (type_ != com.google.cloud.datacatalog.EntryType.ENTRY_TYPE_UNSPECIFIED.getNumber()) {
-      output.writeEnum(2, type_);
+    if (entryTypeCase_ == 2) {
+      output.writeEnum(2, ((java.lang.Integer) entryType_));
     }
     if (!getDisplayNameBytes().isEmpty()) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 3, displayName_);
@@ -686,6 +793,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
     if (schema_ != null) {
       output.writeMessage(5, getSchema());
     }
+    if (typeSpecCase_ == 6) {
+      output.writeMessage(6, (com.google.cloud.datacatalog.GcsFilesetSpec) typeSpec_);
+    }
     if (sourceSystemTimestamps_ != null) {
       output.writeMessage(7, getSourceSystemTimestamps());
     }
@@ -710,8 +820,10 @@ public int getSerializedSize() {
     if (!getNameBytes().isEmpty()) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
     }
-    if (type_ != com.google.cloud.datacatalog.EntryType.ENTRY_TYPE_UNSPECIFIED.getNumber()) {
-      size += com.google.protobuf.CodedOutputStream.computeEnumSize(2, type_);
+    if (entryTypeCase_ == 2) {
+      size +=
+          com.google.protobuf.CodedOutputStream.computeEnumSize(
+              2, ((java.lang.Integer) entryType_));
     }
     if (!getDisplayNameBytes().isEmpty()) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, displayName_);
@@ -722,6 +834,11 @@ public int getSerializedSize() {
     if (schema_ != null) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getSchema());
     }
+    if (typeSpecCase_ == 6) {
+      size +=
+          com.google.protobuf.CodedOutputStream.computeMessageSize(
+              6, (com.google.cloud.datacatalog.GcsFilesetSpec) typeSpec_);
+    }
     if (sourceSystemTimestamps_ != null) {
       size +=
           com.google.protobuf.CodedOutputStream.computeMessageSize(7, getSourceSystemTimestamps());
@@ -756,7 +873,6 @@ public boolean equals(final java.lang.Object obj) {
 
     if (!getName().equals(other.getName())) return false;
     if (!getLinkedResource().equals(other.getLinkedResource())) return false;
-    if (type_ != other.type_) return false;
     if (!getDisplayName().equals(other.getDisplayName())) return false;
     if (!getDescription().equals(other.getDescription())) return false;
     if (hasSchema() != other.hasSchema()) return false;
@@ -767,8 +883,19 @@ public boolean equals(final java.lang.Object obj) {
     if (hasSourceSystemTimestamps()) {
       if (!getSourceSystemTimestamps().equals(other.getSourceSystemTimestamps())) return false;
     }
+    if (!getEntryTypeCase().equals(other.getEntryTypeCase())) return false;
+    switch (entryTypeCase_) {
+      case 2:
+        if (getTypeValue() != other.getTypeValue()) return false;
+        break;
+      case 0:
+      default:
+    }
     if (!getTypeSpecCase().equals(other.getTypeSpecCase())) return false;
     switch (typeSpecCase_) {
+      case 6:
+        if (!getGcsFilesetSpec().equals(other.getGcsFilesetSpec())) return false;
+        break;
       case 12:
         if (!getBigqueryTableSpec().equals(other.getBigqueryTableSpec())) return false;
         break;
@@ -793,8 +920,6 @@ public int hashCode() {
     hash = (53 * hash) + getName().hashCode();
     hash = (37 * hash) + LINKED_RESOURCE_FIELD_NUMBER;
     hash = (53 * hash) + getLinkedResource().hashCode();
-    hash = (37 * hash) + TYPE_FIELD_NUMBER;
-    hash = (53 * hash) + type_;
     hash = (37 * hash) + DISPLAY_NAME_FIELD_NUMBER;
     hash = (53 * hash) + getDisplayName().hashCode();
     hash = (37 * hash) + DESCRIPTION_FIELD_NUMBER;
@@ -807,7 +932,19 @@ public int hashCode() {
       hash = (37 * hash) + SOURCE_SYSTEM_TIMESTAMPS_FIELD_NUMBER;
       hash = (53 * hash) + getSourceSystemTimestamps().hashCode();
     }
+    switch (entryTypeCase_) {
+      case 2:
+        hash = (37 * hash) + TYPE_FIELD_NUMBER;
+        hash = (53 * hash) + getTypeValue();
+        break;
+      case 0:
+      default:
+    }
     switch (typeSpecCase_) {
+      case 6:
+        hash = (37 * hash) + GCS_FILESET_SPEC_FIELD_NUMBER;
+        hash = (53 * hash) + getGcsFilesetSpec().hashCode();
+        break;
       case 12:
         hash = (37 * hash) + BIGQUERY_TABLE_SPEC_FIELD_NUMBER;
         hash = (53 * hash) + getBigqueryTableSpec().hashCode();
@@ -924,9 +1061,9 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    * <pre>
    * Entry Metadata.
    * A Data Catalog Entry resource represents another resource in Google
-   * Cloud Platform, such as a BigQuery Dataset or a Pub/Sub Topic. Clients can
-   * use the `linked_resource` field in the Entry resource to refer to the
-   * original resource id of the source system.
+   * Cloud Platform, such as a BigQuery dataset or a Cloud Pub/Sub topic.
+   * Clients can use the `linked_resource` field in the Entry resource to refer to
+   * the original resource ID of the source system.
    * An Entry resource contains resource details, such as its schema. An Entry can
    * also be used to attach flexible metadata, such as a
    * [Tag][google.cloud.datacatalog.v1beta1.Tag].
@@ -974,8 +1111,6 @@ public Builder clear() {
 
       linkedResource_ = "";
 
-      type_ = 0;
-
       displayName_ = "";
 
       description_ = "";
@@ -992,6 +1127,8 @@ public Builder clear() {
         sourceSystemTimestamps_ = null;
         sourceSystemTimestampsBuilder_ = null;
       }
+      entryTypeCase_ = 0;
+      entryType_ = null;
       typeSpecCase_ = 0;
       typeSpec_ = null;
       return this;
@@ -1022,7 +1159,16 @@ public com.google.cloud.datacatalog.Entry buildPartial() {
       com.google.cloud.datacatalog.Entry result = new com.google.cloud.datacatalog.Entry(this);
       result.name_ = name_;
       result.linkedResource_ = linkedResource_;
-      result.type_ = type_;
+      if (entryTypeCase_ == 2) {
+        result.entryType_ = entryType_;
+      }
+      if (typeSpecCase_ == 6) {
+        if (gcsFilesetSpecBuilder_ == null) {
+          result.typeSpec_ = typeSpec_;
+        } else {
+          result.typeSpec_ = gcsFilesetSpecBuilder_.build();
+        }
+      }
       if (typeSpecCase_ == 12) {
         if (bigqueryTableSpecBuilder_ == null) {
           result.typeSpec_ = typeSpec_;
@@ -1049,6 +1195,7 @@ public com.google.cloud.datacatalog.Entry buildPartial() {
       } else {
         result.sourceSystemTimestamps_ = sourceSystemTimestampsBuilder_.build();
       }
+      result.entryTypeCase_ = entryTypeCase_;
       result.typeSpecCase_ = typeSpecCase_;
       onBuilt();
       return result;
@@ -1107,9 +1254,6 @@ public Builder mergeFrom(com.google.cloud.datacatalog.Entry other) {
         linkedResource_ = other.linkedResource_;
         onChanged();
       }
-      if (other.type_ != 0) {
-        setTypeValue(other.getTypeValue());
-      }
       if (!other.getDisplayName().isEmpty()) {
         displayName_ = other.displayName_;
         onChanged();
@@ -1124,7 +1268,23 @@ public Builder mergeFrom(com.google.cloud.datacatalog.Entry other) {
       if (other.hasSourceSystemTimestamps()) {
         mergeSourceSystemTimestamps(other.getSourceSystemTimestamps());
       }
+      switch (other.getEntryTypeCase()) {
+        case TYPE:
+          {
+            setTypeValue(other.getTypeValue());
+            break;
+          }
+        case ENTRYTYPE_NOT_SET:
+          {
+            break;
+          }
+      }
       switch (other.getTypeSpecCase()) {
+        case GCS_FILESET_SPEC:
+          {
+            mergeGcsFilesetSpec(other.getGcsFilesetSpec());
+            break;
+          }
         case BIGQUERY_TABLE_SPEC:
           {
             mergeBigqueryTableSpec(other.getBigqueryTableSpec());
@@ -1169,6 +1329,20 @@ public Builder mergeFrom(
       return this;
     }
 
+    private int entryTypeCase_ = 0;
+    private java.lang.Object entryType_;
+
+    public EntryTypeCase getEntryTypeCase() {
+      return EntryTypeCase.forNumber(entryTypeCase_);
+    }
+
+    public Builder clearEntryType() {
+      entryTypeCase_ = 0;
+      entryType_ = null;
+      onChanged();
+      return this;
+    }
+
     private int typeSpecCase_ = 0;
     private java.lang.Object typeSpec_;
 
@@ -1190,13 +1364,13 @@ public Builder clearTypeSpec() {
      * <pre>
      * Required when used in
      * [UpdateEntryRequest][google.cloud.datacatalog.v1beta1.UpdateEntryRequest].
-     * The Data Catalog resource name of the entry in URL format. For example,
-     * "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}".
+     * The Data Catalog resource name of the entry in URL format. Example:
+     * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
      * Note that this Entry and its child resources may not actually be stored in
      * the location in this name.
      * </pre>
      *
-     * <code>string name = 1;</code>
+     * <code>string name = 1 [(.google.api.resource_reference) = { ... }</code>
      */
     public java.lang.String getName() {
       java.lang.Object ref = name_;
@@ -1215,13 +1389,13 @@ public java.lang.String getName() {
      * <pre>
      * Required when used in
      * [UpdateEntryRequest][google.cloud.datacatalog.v1beta1.UpdateEntryRequest].
-     * The Data Catalog resource name of the entry in URL format. For example,
-     * "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}".
+     * The Data Catalog resource name of the entry in URL format. Example:
+     * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
      * Note that this Entry and its child resources may not actually be stored in
      * the location in this name.
      * </pre>
      *
-     * <code>string name = 1;</code>
+     * <code>string name = 1 [(.google.api.resource_reference) = { ... }</code>
      */
     public com.google.protobuf.ByteString getNameBytes() {
       java.lang.Object ref = name_;
@@ -1240,13 +1414,13 @@ public com.google.protobuf.ByteString getNameBytes() {
      * <pre>
      * Required when used in
      * [UpdateEntryRequest][google.cloud.datacatalog.v1beta1.UpdateEntryRequest].
-     * The Data Catalog resource name of the entry in URL format. For example,
-     * "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}".
+     * The Data Catalog resource name of the entry in URL format. Example:
+     * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
      * Note that this Entry and its child resources may not actually be stored in
      * the location in this name.
      * </pre>
      *
-     * <code>string name = 1;</code>
+     * <code>string name = 1 [(.google.api.resource_reference) = { ... }</code>
      */
     public Builder setName(java.lang.String value) {
       if (value == null) {
@@ -1263,13 +1437,13 @@ public Builder setName(java.lang.String value) {
      * <pre>
      * Required when used in
      * [UpdateEntryRequest][google.cloud.datacatalog.v1beta1.UpdateEntryRequest].
-     * The Data Catalog resource name of the entry in URL format. For example,
-     * "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}".
+     * The Data Catalog resource name of the entry in URL format. Example:
+     * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
      * Note that this Entry and its child resources may not actually be stored in
      * the location in this name.
      * </pre>
      *
-     * <code>string name = 1;</code>
+     * <code>string name = 1 [(.google.api.resource_reference) = { ... }</code>
      */
     public Builder clearName() {
 
@@ -1283,13 +1457,13 @@ public Builder clearName() {
      * <pre>
      * Required when used in
      * [UpdateEntryRequest][google.cloud.datacatalog.v1beta1.UpdateEntryRequest].
-     * The Data Catalog resource name of the entry in URL format. For example,
-     * "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}".
+     * The Data Catalog resource name of the entry in URL format. Example:
+     * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
      * Note that this Entry and its child resources may not actually be stored in
      * the location in this name.
      * </pre>
      *
-     * <code>string name = 1;</code>
+     * <code>string name = 1 [(.google.api.resource_reference) = { ... }</code>
      */
     public Builder setNameBytes(com.google.protobuf.ByteString value) {
       if (value == null) {
@@ -1307,12 +1481,12 @@ public Builder setNameBytes(com.google.protobuf.ByteString value) {
      *
      *
      * <pre>
-     * Output only. The full name of the cloud resource the entry belongs to. See:
-     * https://cloud.google.com/apis/design/resource_names#full_resource_name
-     * Data Catalog supports resources from select Google Cloud Platform systems.
-     * `linked_resource` is the full name of the Google Cloud Platform resource.
+     * Output only. The resource this metadata entry refers to.
+     * For Google Cloud Platform resources, `linked_resource` is the [full name of
+     * the
+     * resource](https://cloud.google.com/apis/design/resource_names#full_resource_name).
      * For example, the `linked_resource` for a table resource from BigQuery is:
-     * "//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId".
+     * * //bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId
      * </pre>
      *
      * <code>string linked_resource = 9;</code>
@@ -1332,12 +1506,12 @@ public java.lang.String getLinkedResource() {
      *
      *
      * <pre>
-     * Output only. The full name of the cloud resource the entry belongs to. See:
-     * https://cloud.google.com/apis/design/resource_names#full_resource_name
-     * Data Catalog supports resources from select Google Cloud Platform systems.
-     * `linked_resource` is the full name of the Google Cloud Platform resource.
+     * Output only. The resource this metadata entry refers to.
+     * For Google Cloud Platform resources, `linked_resource` is the [full name of
+     * the
+     * resource](https://cloud.google.com/apis/design/resource_names#full_resource_name).
      * For example, the `linked_resource` for a table resource from BigQuery is:
-     * "//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId".
+     * * //bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId
      * </pre>
      *
      * <code>string linked_resource = 9;</code>
@@ -1357,12 +1531,12 @@ public com.google.protobuf.ByteString getLinkedResourceBytes() {
      *
      *
      * <pre>
-     * Output only. The full name of the cloud resource the entry belongs to. See:
-     * https://cloud.google.com/apis/design/resource_names#full_resource_name
-     * Data Catalog supports resources from select Google Cloud Platform systems.
-     * `linked_resource` is the full name of the Google Cloud Platform resource.
+     * Output only. The resource this metadata entry refers to.
+     * For Google Cloud Platform resources, `linked_resource` is the [full name of
+     * the
+     * resource](https://cloud.google.com/apis/design/resource_names#full_resource_name).
      * For example, the `linked_resource` for a table resource from BigQuery is:
-     * "//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId".
+     * * //bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId
      * </pre>
      *
      * <code>string linked_resource = 9;</code>
@@ -1380,12 +1554,12 @@ public Builder setLinkedResource(java.lang.String value) {
      *
      *
      * <pre>
-     * Output only. The full name of the cloud resource the entry belongs to. See:
-     * https://cloud.google.com/apis/design/resource_names#full_resource_name
-     * Data Catalog supports resources from select Google Cloud Platform systems.
-     * `linked_resource` is the full name of the Google Cloud Platform resource.
+     * Output only. The resource this metadata entry refers to.
+     * For Google Cloud Platform resources, `linked_resource` is the [full name of
+     * the
+     * resource](https://cloud.google.com/apis/design/resource_names#full_resource_name).
      * For example, the `linked_resource` for a table resource from BigQuery is:
-     * "//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId".
+     * * //bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId
      * </pre>
      *
      * <code>string linked_resource = 9;</code>
@@ -1400,12 +1574,12 @@ public Builder clearLinkedResource() {
      *
      *
      * <pre>
-     * Output only. The full name of the cloud resource the entry belongs to. See:
-     * https://cloud.google.com/apis/design/resource_names#full_resource_name
-     * Data Catalog supports resources from select Google Cloud Platform systems.
-     * `linked_resource` is the full name of the Google Cloud Platform resource.
+     * Output only. The resource this metadata entry refers to.
+     * For Google Cloud Platform resources, `linked_resource` is the [full name of
+     * the
+     * resource](https://cloud.google.com/apis/design/resource_names#full_resource_name).
      * For example, the `linked_resource` for a table resource from BigQuery is:
-     * "//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId".
+     * * //bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId
      * </pre>
      *
      * <code>string linked_resource = 9;</code>
@@ -1421,30 +1595,33 @@ public Builder setLinkedResourceBytes(com.google.protobuf.ByteString value) {
       return this;
     }
 
-    private int type_ = 0;
     /**
      *
      *
      * <pre>
-     * Required. Type of entry.
+     * The type of the entry.
      * </pre>
      *
      * <code>.google.cloud.datacatalog.v1beta1.EntryType type = 2;</code>
      */
     public int getTypeValue() {
-      return type_;
+      if (entryTypeCase_ == 2) {
+        return ((java.lang.Integer) entryType_).intValue();
+      }
+      return 0;
     }
     /**
      *
      *
      * <pre>
-     * Required. Type of entry.
+     * The type of the entry.
      * </pre>
      *
      * <code>.google.cloud.datacatalog.v1beta1.EntryType type = 2;</code>
      */
     public Builder setTypeValue(int value) {
-      type_ = value;
+      entryTypeCase_ = 2;
+      entryType_ = value;
       onChanged();
       return this;
     }
@@ -1452,22 +1629,25 @@ public Builder setTypeValue(int value) {
      *
      *
      * <pre>
-     * Required. Type of entry.
+     * The type of the entry.
      * </pre>
      *
      * <code>.google.cloud.datacatalog.v1beta1.EntryType type = 2;</code>
      */
     public com.google.cloud.datacatalog.EntryType getType() {
-      @SuppressWarnings("deprecation")
-      com.google.cloud.datacatalog.EntryType result =
-          com.google.cloud.datacatalog.EntryType.valueOf(type_);
-      return result == null ? com.google.cloud.datacatalog.EntryType.UNRECOGNIZED : result;
+      if (entryTypeCase_ == 2) {
+        @SuppressWarnings("deprecation")
+        com.google.cloud.datacatalog.EntryType result =
+            com.google.cloud.datacatalog.EntryType.valueOf((java.lang.Integer) entryType_);
+        return result == null ? com.google.cloud.datacatalog.EntryType.UNRECOGNIZED : result;
+      }
+      return com.google.cloud.datacatalog.EntryType.ENTRY_TYPE_UNSPECIFIED;
     }
     /**
      *
      *
      * <pre>
-     * Required. Type of entry.
+     * The type of the entry.
      * </pre>
      *
      * <code>.google.cloud.datacatalog.v1beta1.EntryType type = 2;</code>
@@ -1476,8 +1656,8 @@ public Builder setType(com.google.cloud.datacatalog.EntryType value) {
       if (value == null) {
         throw new NullPointerException();
       }
-
-      type_ = value.getNumber();
+      entryTypeCase_ = 2;
+      entryType_ = value.getNumber();
       onChanged();
       return this;
     }
@@ -1485,17 +1665,230 @@ public Builder setType(com.google.cloud.datacatalog.EntryType value) {
      *
      *
      * <pre>
-     * Required. Type of entry.
+     * The type of the entry.
      * </pre>
      *
      * <code>.google.cloud.datacatalog.v1beta1.EntryType type = 2;</code>
      */
     public Builder clearType() {
+      if (entryTypeCase_ == 2) {
+        entryTypeCase_ = 0;
+        entryType_ = null;
+        onChanged();
+      }
+      return this;
+    }
 
-      type_ = 0;
-      onChanged();
+    private com.google.protobuf.SingleFieldBuilderV3<
+            com.google.cloud.datacatalog.GcsFilesetSpec,
+            com.google.cloud.datacatalog.GcsFilesetSpec.Builder,
+            com.google.cloud.datacatalog.GcsFilesetSpecOrBuilder>
+        gcsFilesetSpecBuilder_;
+    /**
+     *
+     *
+     * <pre>
+     * Specification that applies to a Cloud Storage fileset. This is only valid
+     * on entries of type FILESET.
+     * </pre>
+     *
+     * <code>.google.cloud.datacatalog.v1beta1.GcsFilesetSpec gcs_fileset_spec = 6;</code>
+     */
+    public boolean hasGcsFilesetSpec() {
+      return typeSpecCase_ == 6;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Specification that applies to a Cloud Storage fileset. This is only valid
+     * on entries of type FILESET.
+     * </pre>
+     *
+     * <code>.google.cloud.datacatalog.v1beta1.GcsFilesetSpec gcs_fileset_spec = 6;</code>
+     */
+    public com.google.cloud.datacatalog.GcsFilesetSpec getGcsFilesetSpec() {
+      if (gcsFilesetSpecBuilder_ == null) {
+        if (typeSpecCase_ == 6) {
+          return (com.google.cloud.datacatalog.GcsFilesetSpec) typeSpec_;
+        }
+        return com.google.cloud.datacatalog.GcsFilesetSpec.getDefaultInstance();
+      } else {
+        if (typeSpecCase_ == 6) {
+          return gcsFilesetSpecBuilder_.getMessage();
+        }
+        return com.google.cloud.datacatalog.GcsFilesetSpec.getDefaultInstance();
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Specification that applies to a Cloud Storage fileset. This is only valid
+     * on entries of type FILESET.
+     * </pre>
+     *
+     * <code>.google.cloud.datacatalog.v1beta1.GcsFilesetSpec gcs_fileset_spec = 6;</code>
+     */
+    public Builder setGcsFilesetSpec(com.google.cloud.datacatalog.GcsFilesetSpec value) {
+      if (gcsFilesetSpecBuilder_ == null) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        typeSpec_ = value;
+        onChanged();
+      } else {
+        gcsFilesetSpecBuilder_.setMessage(value);
+      }
+      typeSpecCase_ = 6;
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Specification that applies to a Cloud Storage fileset. This is only valid
+     * on entries of type FILESET.
+     * </pre>
+     *
+     * <code>.google.cloud.datacatalog.v1beta1.GcsFilesetSpec gcs_fileset_spec = 6;</code>
+     */
+    public Builder setGcsFilesetSpec(
+        com.google.cloud.datacatalog.GcsFilesetSpec.Builder builderForValue) {
+      if (gcsFilesetSpecBuilder_ == null) {
+        typeSpec_ = builderForValue.build();
+        onChanged();
+      } else {
+        gcsFilesetSpecBuilder_.setMessage(builderForValue.build());
+      }
+      typeSpecCase_ = 6;
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Specification that applies to a Cloud Storage fileset. This is only valid
+     * on entries of type FILESET.
+     * </pre>
+     *
+     * <code>.google.cloud.datacatalog.v1beta1.GcsFilesetSpec gcs_fileset_spec = 6;</code>
+     */
+    public Builder mergeGcsFilesetSpec(com.google.cloud.datacatalog.GcsFilesetSpec value) {
+      if (gcsFilesetSpecBuilder_ == null) {
+        if (typeSpecCase_ == 6
+            && typeSpec_ != com.google.cloud.datacatalog.GcsFilesetSpec.getDefaultInstance()) {
+          typeSpec_ =
+              com.google.cloud.datacatalog.GcsFilesetSpec.newBuilder(
+                      (com.google.cloud.datacatalog.GcsFilesetSpec) typeSpec_)
+                  .mergeFrom(value)
+                  .buildPartial();
+        } else {
+          typeSpec_ = value;
+        }
+        onChanged();
+      } else {
+        if (typeSpecCase_ == 6) {
+          gcsFilesetSpecBuilder_.mergeFrom(value);
+        }
+        gcsFilesetSpecBuilder_.setMessage(value);
+      }
+      typeSpecCase_ = 6;
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Specification that applies to a Cloud Storage fileset. This is only valid
+     * on entries of type FILESET.
+     * </pre>
+     *
+     * <code>.google.cloud.datacatalog.v1beta1.GcsFilesetSpec gcs_fileset_spec = 6;</code>
+     */
+    public Builder clearGcsFilesetSpec() {
+      if (gcsFilesetSpecBuilder_ == null) {
+        if (typeSpecCase_ == 6) {
+          typeSpecCase_ = 0;
+          typeSpec_ = null;
+          onChanged();
+        }
+      } else {
+        if (typeSpecCase_ == 6) {
+          typeSpecCase_ = 0;
+          typeSpec_ = null;
+        }
+        gcsFilesetSpecBuilder_.clear();
+      }
       return this;
     }
+    /**
+     *
+     *
+     * <pre>
+     * Specification that applies to a Cloud Storage fileset. This is only valid
+     * on entries of type FILESET.
+     * </pre>
+     *
+     * <code>.google.cloud.datacatalog.v1beta1.GcsFilesetSpec gcs_fileset_spec = 6;</code>
+     */
+    public com.google.cloud.datacatalog.GcsFilesetSpec.Builder getGcsFilesetSpecBuilder() {
+      return getGcsFilesetSpecFieldBuilder().getBuilder();
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Specification that applies to a Cloud Storage fileset. This is only valid
+     * on entries of type FILESET.
+     * </pre>
+     *
+     * <code>.google.cloud.datacatalog.v1beta1.GcsFilesetSpec gcs_fileset_spec = 6;</code>
+     */
+    public com.google.cloud.datacatalog.GcsFilesetSpecOrBuilder getGcsFilesetSpecOrBuilder() {
+      if ((typeSpecCase_ == 6) && (gcsFilesetSpecBuilder_ != null)) {
+        return gcsFilesetSpecBuilder_.getMessageOrBuilder();
+      } else {
+        if (typeSpecCase_ == 6) {
+          return (com.google.cloud.datacatalog.GcsFilesetSpec) typeSpec_;
+        }
+        return com.google.cloud.datacatalog.GcsFilesetSpec.getDefaultInstance();
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Specification that applies to a Cloud Storage fileset. This is only valid
+     * on entries of type FILESET.
+     * </pre>
+     *
+     * <code>.google.cloud.datacatalog.v1beta1.GcsFilesetSpec gcs_fileset_spec = 6;</code>
+     */
+    private com.google.protobuf.SingleFieldBuilderV3<
+            com.google.cloud.datacatalog.GcsFilesetSpec,
+            com.google.cloud.datacatalog.GcsFilesetSpec.Builder,
+            com.google.cloud.datacatalog.GcsFilesetSpecOrBuilder>
+        getGcsFilesetSpecFieldBuilder() {
+      if (gcsFilesetSpecBuilder_ == null) {
+        if (!(typeSpecCase_ == 6)) {
+          typeSpec_ = com.google.cloud.datacatalog.GcsFilesetSpec.getDefaultInstance();
+        }
+        gcsFilesetSpecBuilder_ =
+            new com.google.protobuf.SingleFieldBuilderV3<
+                com.google.cloud.datacatalog.GcsFilesetSpec,
+                com.google.cloud.datacatalog.GcsFilesetSpec.Builder,
+                com.google.cloud.datacatalog.GcsFilesetSpecOrBuilder>(
+                (com.google.cloud.datacatalog.GcsFilesetSpec) typeSpec_,
+                getParentForChildren(),
+                isClean());
+        typeSpec_ = null;
+      }
+      typeSpecCase_ = 6;
+      onChanged();
+      ;
+      return gcsFilesetSpecBuilder_;
+    }
 
     private com.google.protobuf.SingleFieldBuilderV3<
             com.google.cloud.datacatalog.BigQueryTableSpec,
@@ -1507,7 +1900,7 @@ public Builder clearType() {
      *
      * <pre>
      * Specification that applies to a BigQuery table. This is only valid on
-     * entries of type TABLE.
+     * entries of type `TABLE`.
      * </pre>
      *
      * <code>.google.cloud.datacatalog.v1beta1.BigQueryTableSpec bigquery_table_spec = 12;</code>
@@ -1520,7 +1913,7 @@ public boolean hasBigqueryTableSpec() {
      *
      * <pre>
      * Specification that applies to a BigQuery table. This is only valid on
-     * entries of type TABLE.
+     * entries of type `TABLE`.
      * </pre>
      *
      * <code>.google.cloud.datacatalog.v1beta1.BigQueryTableSpec bigquery_table_spec = 12;</code>
@@ -1543,7 +1936,7 @@ public com.google.cloud.datacatalog.BigQueryTableSpec getBigqueryTableSpec() {
      *
      * <pre>
      * Specification that applies to a BigQuery table. This is only valid on
-     * entries of type TABLE.
+     * entries of type `TABLE`.
      * </pre>
      *
      * <code>.google.cloud.datacatalog.v1beta1.BigQueryTableSpec bigquery_table_spec = 12;</code>
@@ -1566,7 +1959,7 @@ public Builder setBigqueryTableSpec(com.google.cloud.datacatalog.BigQueryTableSp
      *
      * <pre>
      * Specification that applies to a BigQuery table. This is only valid on
-     * entries of type TABLE.
+     * entries of type `TABLE`.
      * </pre>
      *
      * <code>.google.cloud.datacatalog.v1beta1.BigQueryTableSpec bigquery_table_spec = 12;</code>
@@ -1587,7 +1980,7 @@ public Builder setBigqueryTableSpec(
      *
      * <pre>
      * Specification that applies to a BigQuery table. This is only valid on
-     * entries of type TABLE.
+     * entries of type `TABLE`.
      * </pre>
      *
      * <code>.google.cloud.datacatalog.v1beta1.BigQueryTableSpec bigquery_table_spec = 12;</code>
@@ -1619,7 +2012,7 @@ public Builder mergeBigqueryTableSpec(com.google.cloud.datacatalog.BigQueryTable
      *
      * <pre>
      * Specification that applies to a BigQuery table. This is only valid on
-     * entries of type TABLE.
+     * entries of type `TABLE`.
      * </pre>
      *
      * <code>.google.cloud.datacatalog.v1beta1.BigQueryTableSpec bigquery_table_spec = 12;</code>
@@ -1645,7 +2038,7 @@ public Builder clearBigqueryTableSpec() {
      *
      * <pre>
      * Specification that applies to a BigQuery table. This is only valid on
-     * entries of type TABLE.
+     * entries of type `TABLE`.
      * </pre>
      *
      * <code>.google.cloud.datacatalog.v1beta1.BigQueryTableSpec bigquery_table_spec = 12;</code>
@@ -1658,7 +2051,7 @@ public com.google.cloud.datacatalog.BigQueryTableSpec.Builder getBigqueryTableSp
      *
      * <pre>
      * Specification that applies to a BigQuery table. This is only valid on
-     * entries of type TABLE.
+     * entries of type `TABLE`.
      * </pre>
      *
      * <code>.google.cloud.datacatalog.v1beta1.BigQueryTableSpec bigquery_table_spec = 12;</code>
@@ -1678,7 +2071,7 @@ public com.google.cloud.datacatalog.BigQueryTableSpecOrBuilder getBigqueryTableS
      *
      * <pre>
      * Specification that applies to a BigQuery table. This is only valid on
-     * entries of type TABLE.
+     * entries of type `TABLE`.
      * </pre>
      *
      * <code>.google.cloud.datacatalog.v1beta1.BigQueryTableSpec bigquery_table_spec = 12;</code>
@@ -1718,8 +2111,8 @@ public com.google.cloud.datacatalog.BigQueryTableSpecOrBuilder getBigqueryTableS
      *
      * <pre>
      * Specification for a group of BigQuery tables with name pattern
-     * [prefix]YYYYMMDD. Context:
-     * https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding
+     * `[prefix]YYYYMMDD`. Context:
+     * https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding.
      * </pre>
      *
      * <code>
@@ -1734,8 +2127,8 @@ public boolean hasBigqueryDateShardedSpec() {
      *
      * <pre>
      * Specification for a group of BigQuery tables with name pattern
-     * [prefix]YYYYMMDD. Context:
-     * https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding
+     * `[prefix]YYYYMMDD`. Context:
+     * https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding.
      * </pre>
      *
      * <code>
@@ -1760,8 +2153,8 @@ public com.google.cloud.datacatalog.BigQueryDateShardedSpec getBigqueryDateShard
      *
      * <pre>
      * Specification for a group of BigQuery tables with name pattern
-     * [prefix]YYYYMMDD. Context:
-     * https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding
+     * `[prefix]YYYYMMDD`. Context:
+     * https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding.
      * </pre>
      *
      * <code>
@@ -1787,8 +2180,8 @@ public Builder setBigqueryDateShardedSpec(
      *
      * <pre>
      * Specification for a group of BigQuery tables with name pattern
-     * [prefix]YYYYMMDD. Context:
-     * https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding
+     * `[prefix]YYYYMMDD`. Context:
+     * https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding.
      * </pre>
      *
      * <code>
@@ -1811,8 +2204,8 @@ public Builder setBigqueryDateShardedSpec(
      *
      * <pre>
      * Specification for a group of BigQuery tables with name pattern
-     * [prefix]YYYYMMDD. Context:
-     * https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding
+     * `[prefix]YYYYMMDD`. Context:
+     * https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding.
      * </pre>
      *
      * <code>
@@ -1848,8 +2241,8 @@ public Builder mergeBigqueryDateShardedSpec(
      *
      * <pre>
      * Specification for a group of BigQuery tables with name pattern
-     * [prefix]YYYYMMDD. Context:
-     * https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding
+     * `[prefix]YYYYMMDD`. Context:
+     * https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding.
      * </pre>
      *
      * <code>
@@ -1877,8 +2270,8 @@ public Builder clearBigqueryDateShardedSpec() {
      *
      * <pre>
      * Specification for a group of BigQuery tables with name pattern
-     * [prefix]YYYYMMDD. Context:
-     * https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding
+     * `[prefix]YYYYMMDD`. Context:
+     * https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding.
      * </pre>
      *
      * <code>
@@ -1894,8 +2287,8 @@ public Builder clearBigqueryDateShardedSpec() {
      *
      * <pre>
      * Specification for a group of BigQuery tables with name pattern
-     * [prefix]YYYYMMDD. Context:
-     * https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding
+     * `[prefix]YYYYMMDD`. Context:
+     * https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding.
      * </pre>
      *
      * <code>
@@ -1918,8 +2311,8 @@ public Builder clearBigqueryDateShardedSpec() {
      *
      * <pre>
      * Specification for a group of BigQuery tables with name pattern
-     * [prefix]YYYYMMDD. Context:
-     * https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding
+     * `[prefix]YYYYMMDD`. Context:
+     * https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding.
      * </pre>
      *
      * <code>
@@ -2350,8 +2743,8 @@ public com.google.cloud.datacatalog.SchemaOrBuilder getSchemaOrBuilder() {
      *
      *
      * <pre>
-     * Output only. Timestamps about the underlying Google Cloud Platform resource
-     * -- not about this Data Catalog Entry.
+     * Output only. Timestamps about the underlying Google Cloud Platform
+     * resource, not about this Data Catalog Entry.
      * </pre>
      *
      * <code>.google.cloud.datacatalog.v1beta1.SystemTimestamps source_system_timestamps = 7;</code>
@@ -2363,8 +2756,8 @@ public boolean hasSourceSystemTimestamps() {
      *
      *
      * <pre>
-     * Output only. Timestamps about the underlying Google Cloud Platform resource
-     * -- not about this Data Catalog Entry.
+     * Output only. Timestamps about the underlying Google Cloud Platform
+     * resource, not about this Data Catalog Entry.
      * </pre>
      *
      * <code>.google.cloud.datacatalog.v1beta1.SystemTimestamps source_system_timestamps = 7;</code>
@@ -2382,8 +2775,8 @@ public com.google.cloud.datacatalog.SystemTimestamps getSourceSystemTimestamps()
      *
      *
      * <pre>
-     * Output only. Timestamps about the underlying Google Cloud Platform resource
-     * -- not about this Data Catalog Entry.
+     * Output only. Timestamps about the underlying Google Cloud Platform
+     * resource, not about this Data Catalog Entry.
      * </pre>
      *
      * <code>.google.cloud.datacatalog.v1beta1.SystemTimestamps source_system_timestamps = 7;</code>
@@ -2405,8 +2798,8 @@ public Builder setSourceSystemTimestamps(com.google.cloud.datacatalog.SystemTime
      *
      *
      * <pre>
-     * Output only. Timestamps about the underlying Google Cloud Platform resource
-     * -- not about this Data Catalog Entry.
+     * Output only. Timestamps about the underlying Google Cloud Platform
+     * resource, not about this Data Catalog Entry.
      * </pre>
      *
      * <code>.google.cloud.datacatalog.v1beta1.SystemTimestamps source_system_timestamps = 7;</code>
@@ -2426,8 +2819,8 @@ public Builder setSourceSystemTimestamps(
      *
      *
      * <pre>
-     * Output only. Timestamps about the underlying Google Cloud Platform resource
-     * -- not about this Data Catalog Entry.
+     * Output only. Timestamps about the underlying Google Cloud Platform
+     * resource, not about this Data Catalog Entry.
      * </pre>
      *
      * <code>.google.cloud.datacatalog.v1beta1.SystemTimestamps source_system_timestamps = 7;</code>
@@ -2454,8 +2847,8 @@ public Builder mergeSourceSystemTimestamps(
      *
      *
      * <pre>
-     * Output only. Timestamps about the underlying Google Cloud Platform resource
-     * -- not about this Data Catalog Entry.
+     * Output only. Timestamps about the underlying Google Cloud Platform
+     * resource, not about this Data Catalog Entry.
      * </pre>
      *
      * <code>.google.cloud.datacatalog.v1beta1.SystemTimestamps source_system_timestamps = 7;</code>
@@ -2475,8 +2868,8 @@ public Builder clearSourceSystemTimestamps() {
      *
      *
      * <pre>
-     * Output only. Timestamps about the underlying Google Cloud Platform resource
-     * -- not about this Data Catalog Entry.
+     * Output only. Timestamps about the underlying Google Cloud Platform
+     * resource, not about this Data Catalog Entry.
      * </pre>
      *
      * <code>.google.cloud.datacatalog.v1beta1.SystemTimestamps source_system_timestamps = 7;</code>
@@ -2491,8 +2884,8 @@ public Builder clearSourceSystemTimestamps() {
      *
      *
      * <pre>
-     * Output only. Timestamps about the underlying Google Cloud Platform resource
-     * -- not about this Data Catalog Entry.
+     * Output only. Timestamps about the underlying Google Cloud Platform
+     * resource, not about this Data Catalog Entry.
      * </pre>
      *
      * <code>.google.cloud.datacatalog.v1beta1.SystemTimestamps source_system_timestamps = 7;</code>
@@ -2511,8 +2904,8 @@ public Builder clearSourceSystemTimestamps() {
      *
      *
      * <pre>
-     * Output only. Timestamps about the underlying Google Cloud Platform resource
-     * -- not about this Data Catalog Entry.
+     * Output only. Timestamps about the underlying Google Cloud Platform
+     * resource, not about this Data Catalog Entry.
      * </pre>
      *
      * <code>.google.cloud.datacatalog.v1beta1.SystemTimestamps source_system_timestamps = 7;</code>
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/EntryGroup.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/EntryGroup.java
new file mode 100644
index 000000000000..c766373e2ab2
--- /dev/null
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/EntryGroup.java
@@ -0,0 +1,1283 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: google/cloud/datacatalog/v1beta1/datacatalog.proto
+
+package com.google.cloud.datacatalog;
+
+/**
+ *
+ *
+ * <pre>
+ * EntryGroup Metadata.
+ * An EntryGroup resource represents a logical grouping of zero or more
+ * Data Catalog [Entry][google.cloud.datacatalog.v1beta1.Entry] resources.
+ * </pre>
+ *
+ * Protobuf type {@code google.cloud.datacatalog.v1beta1.EntryGroup}
+ */
+public final class EntryGroup extends com.google.protobuf.GeneratedMessageV3
+    implements
+    // @@protoc_insertion_point(message_implements:google.cloud.datacatalog.v1beta1.EntryGroup)
+    EntryGroupOrBuilder {
+  private static final long serialVersionUID = 0L;
+  // Use EntryGroup.newBuilder() to construct.
+  private EntryGroup(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+    super(builder);
+  }
+
+  private EntryGroup() {
+    name_ = "";
+    displayName_ = "";
+    description_ = "";
+  }
+
+  @java.lang.Override
+  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
+    return this.unknownFields;
+  }
+
+  private EntryGroup(
+      com.google.protobuf.CodedInputStream input,
+      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
+    int mutable_bitField0_ = 0;
+    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+        com.google.protobuf.UnknownFieldSet.newBuilder();
+    try {
+      boolean done = false;
+      while (!done) {
+        int tag = input.readTag();
+        switch (tag) {
+          case 0:
+            done = true;
+            break;
+          case 10:
+            {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              name_ = s;
+              break;
+            }
+          case 18:
+            {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              displayName_ = s;
+              break;
+            }
+          case 26:
+            {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              description_ = s;
+              break;
+            }
+          case 34:
+            {
+              com.google.cloud.datacatalog.SystemTimestamps.Builder subBuilder = null;
+              if (dataCatalogTimestamps_ != null) {
+                subBuilder = dataCatalogTimestamps_.toBuilder();
+              }
+              dataCatalogTimestamps_ =
+                  input.readMessage(
+                      com.google.cloud.datacatalog.SystemTimestamps.parser(), extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(dataCatalogTimestamps_);
+                dataCatalogTimestamps_ = 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.datacatalog.Datacatalog
+        .internal_static_google_cloud_datacatalog_v1beta1_EntryGroup_descriptor;
+  }
+
+  @java.lang.Override
+  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internalGetFieldAccessorTable() {
+    return com.google.cloud.datacatalog.Datacatalog
+        .internal_static_google_cloud_datacatalog_v1beta1_EntryGroup_fieldAccessorTable
+        .ensureFieldAccessorsInitialized(
+            com.google.cloud.datacatalog.EntryGroup.class,
+            com.google.cloud.datacatalog.EntryGroup.Builder.class);
+  }
+
+  public static final int NAME_FIELD_NUMBER = 1;
+  private volatile java.lang.Object name_;
+  /**
+   *
+   *
+   * <pre>
+   * Required when used in
+   * [UpdateEntryGroupRequest][google.cloud.datacatalog.v1beta1.UpdateEntryGroupRequest].
+   * The resource name of the entry group in URL format. Example:
+   * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}
+   * Note that this EntryGroup and its child resources may not actually be
+   * stored in the location in this name.
+   * </pre>
+   *
+   * <code>string name = 1;</code>
+   */
+  public java.lang.String getName() {
+    java.lang.Object ref = name_;
+    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();
+      name_ = s;
+      return s;
+    }
+  }
+  /**
+   *
+   *
+   * <pre>
+   * Required when used in
+   * [UpdateEntryGroupRequest][google.cloud.datacatalog.v1beta1.UpdateEntryGroupRequest].
+   * The resource name of the entry group in URL format. Example:
+   * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}
+   * Note that this EntryGroup and its child resources may not actually be
+   * stored in the location in this name.
+   * </pre>
+   *
+   * <code>string name = 1;</code>
+   */
+  public com.google.protobuf.ByteString getNameBytes() {
+    java.lang.Object ref = name_;
+    if (ref instanceof java.lang.String) {
+      com.google.protobuf.ByteString b =
+          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+      name_ = b;
+      return b;
+    } else {
+      return (com.google.protobuf.ByteString) ref;
+    }
+  }
+
+  public static final int DISPLAY_NAME_FIELD_NUMBER = 2;
+  private volatile java.lang.Object displayName_;
+  /**
+   *
+   *
+   * <pre>
+   * Optional. A short name to identify the entry group, for example,
+   * "analytics data - jan 2011". Default value is an empty string.
+   * </pre>
+   *
+   * <code>string display_name = 2;</code>
+   */
+  public java.lang.String getDisplayName() {
+    java.lang.Object ref = displayName_;
+    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();
+      displayName_ = s;
+      return s;
+    }
+  }
+  /**
+   *
+   *
+   * <pre>
+   * Optional. A short name to identify the entry group, for example,
+   * "analytics data - jan 2011". Default value is an empty string.
+   * </pre>
+   *
+   * <code>string display_name = 2;</code>
+   */
+  public com.google.protobuf.ByteString getDisplayNameBytes() {
+    java.lang.Object ref = displayName_;
+    if (ref instanceof java.lang.String) {
+      com.google.protobuf.ByteString b =
+          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+      displayName_ = b;
+      return b;
+    } else {
+      return (com.google.protobuf.ByteString) ref;
+    }
+  }
+
+  public static final int DESCRIPTION_FIELD_NUMBER = 3;
+  private volatile java.lang.Object description_;
+  /**
+   *
+   *
+   * <pre>
+   * Optional. Entry group description, which can consist of several sentences
+   * or paragraphs that describe entry group contents. Default value is an empty
+   * string.
+   * </pre>
+   *
+   * <code>string description = 3;</code>
+   */
+  public java.lang.String getDescription() {
+    java.lang.Object ref = description_;
+    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();
+      description_ = s;
+      return s;
+    }
+  }
+  /**
+   *
+   *
+   * <pre>
+   * Optional. Entry group description, which can consist of several sentences
+   * or paragraphs that describe entry group contents. Default value is an empty
+   * string.
+   * </pre>
+   *
+   * <code>string description = 3;</code>
+   */
+  public com.google.protobuf.ByteString getDescriptionBytes() {
+    java.lang.Object ref = description_;
+    if (ref instanceof java.lang.String) {
+      com.google.protobuf.ByteString b =
+          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+      description_ = b;
+      return b;
+    } else {
+      return (com.google.protobuf.ByteString) ref;
+    }
+  }
+
+  public static final int DATA_CATALOG_TIMESTAMPS_FIELD_NUMBER = 4;
+  private com.google.cloud.datacatalog.SystemTimestamps dataCatalogTimestamps_;
+  /**
+   *
+   *
+   * <pre>
+   * Output only. Timestamps about this EntryGroup. Default value is empty
+   * timestamps.
+   * </pre>
+   *
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.SystemTimestamps data_catalog_timestamps = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+   * </code>
+   */
+  public boolean hasDataCatalogTimestamps() {
+    return dataCatalogTimestamps_ != null;
+  }
+  /**
+   *
+   *
+   * <pre>
+   * Output only. Timestamps about this EntryGroup. Default value is empty
+   * timestamps.
+   * </pre>
+   *
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.SystemTimestamps data_catalog_timestamps = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+   * </code>
+   */
+  public com.google.cloud.datacatalog.SystemTimestamps getDataCatalogTimestamps() {
+    return dataCatalogTimestamps_ == null
+        ? com.google.cloud.datacatalog.SystemTimestamps.getDefaultInstance()
+        : dataCatalogTimestamps_;
+  }
+  /**
+   *
+   *
+   * <pre>
+   * Output only. Timestamps about this EntryGroup. Default value is empty
+   * timestamps.
+   * </pre>
+   *
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.SystemTimestamps data_catalog_timestamps = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+   * </code>
+   */
+  public com.google.cloud.datacatalog.SystemTimestampsOrBuilder
+      getDataCatalogTimestampsOrBuilder() {
+    return getDataCatalogTimestamps();
+  }
+
+  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 (!getNameBytes().isEmpty()) {
+      com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
+    }
+    if (!getDisplayNameBytes().isEmpty()) {
+      com.google.protobuf.GeneratedMessageV3.writeString(output, 2, displayName_);
+    }
+    if (!getDescriptionBytes().isEmpty()) {
+      com.google.protobuf.GeneratedMessageV3.writeString(output, 3, description_);
+    }
+    if (dataCatalogTimestamps_ != null) {
+      output.writeMessage(4, getDataCatalogTimestamps());
+    }
+    unknownFields.writeTo(output);
+  }
+
+  @java.lang.Override
+  public int getSerializedSize() {
+    int size = memoizedSize;
+    if (size != -1) return size;
+
+    size = 0;
+    if (!getNameBytes().isEmpty()) {
+      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
+    }
+    if (!getDisplayNameBytes().isEmpty()) {
+      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, displayName_);
+    }
+    if (!getDescriptionBytes().isEmpty()) {
+      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, description_);
+    }
+    if (dataCatalogTimestamps_ != null) {
+      size +=
+          com.google.protobuf.CodedOutputStream.computeMessageSize(4, getDataCatalogTimestamps());
+    }
+    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.datacatalog.EntryGroup)) {
+      return super.equals(obj);
+    }
+    com.google.cloud.datacatalog.EntryGroup other = (com.google.cloud.datacatalog.EntryGroup) obj;
+
+    if (!getName().equals(other.getName())) return false;
+    if (!getDisplayName().equals(other.getDisplayName())) return false;
+    if (!getDescription().equals(other.getDescription())) return false;
+    if (hasDataCatalogTimestamps() != other.hasDataCatalogTimestamps()) return false;
+    if (hasDataCatalogTimestamps()) {
+      if (!getDataCatalogTimestamps().equals(other.getDataCatalogTimestamps())) 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) + NAME_FIELD_NUMBER;
+    hash = (53 * hash) + getName().hashCode();
+    hash = (37 * hash) + DISPLAY_NAME_FIELD_NUMBER;
+    hash = (53 * hash) + getDisplayName().hashCode();
+    hash = (37 * hash) + DESCRIPTION_FIELD_NUMBER;
+    hash = (53 * hash) + getDescription().hashCode();
+    if (hasDataCatalogTimestamps()) {
+      hash = (37 * hash) + DATA_CATALOG_TIMESTAMPS_FIELD_NUMBER;
+      hash = (53 * hash) + getDataCatalogTimestamps().hashCode();
+    }
+    hash = (29 * hash) + unknownFields.hashCode();
+    memoizedHashCode = hash;
+    return hash;
+  }
+
+  public static com.google.cloud.datacatalog.EntryGroup parseFrom(java.nio.ByteBuffer data)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data);
+  }
+
+  public static com.google.cloud.datacatalog.EntryGroup 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.datacatalog.EntryGroup parseFrom(
+      com.google.protobuf.ByteString data)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data);
+  }
+
+  public static com.google.cloud.datacatalog.EntryGroup 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.datacatalog.EntryGroup parseFrom(byte[] data)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data);
+  }
+
+  public static com.google.cloud.datacatalog.EntryGroup parseFrom(
+      byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data, extensionRegistry);
+  }
+
+  public static com.google.cloud.datacatalog.EntryGroup parseFrom(java.io.InputStream input)
+      throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+  }
+
+  public static com.google.cloud.datacatalog.EntryGroup 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.datacatalog.EntryGroup parseDelimitedFrom(
+      java.io.InputStream input) throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
+  }
+
+  public static com.google.cloud.datacatalog.EntryGroup 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.datacatalog.EntryGroup parseFrom(
+      com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+  }
+
+  public static com.google.cloud.datacatalog.EntryGroup 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.datacatalog.EntryGroup 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>
+   * EntryGroup Metadata.
+   * An EntryGroup resource represents a logical grouping of zero or more
+   * Data Catalog [Entry][google.cloud.datacatalog.v1beta1.Entry] resources.
+   * </pre>
+   *
+   * Protobuf type {@code google.cloud.datacatalog.v1beta1.EntryGroup}
+   */
+  public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
+      implements
+      // @@protoc_insertion_point(builder_implements:google.cloud.datacatalog.v1beta1.EntryGroup)
+      com.google.cloud.datacatalog.EntryGroupOrBuilder {
+    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+      return com.google.cloud.datacatalog.Datacatalog
+          .internal_static_google_cloud_datacatalog_v1beta1_EntryGroup_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return com.google.cloud.datacatalog.Datacatalog
+          .internal_static_google_cloud_datacatalog_v1beta1_EntryGroup_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              com.google.cloud.datacatalog.EntryGroup.class,
+              com.google.cloud.datacatalog.EntryGroup.Builder.class);
+    }
+
+    // Construct using com.google.cloud.datacatalog.EntryGroup.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();
+      name_ = "";
+
+      displayName_ = "";
+
+      description_ = "";
+
+      if (dataCatalogTimestampsBuilder_ == null) {
+        dataCatalogTimestamps_ = null;
+      } else {
+        dataCatalogTimestamps_ = null;
+        dataCatalogTimestampsBuilder_ = null;
+      }
+      return this;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
+      return com.google.cloud.datacatalog.Datacatalog
+          .internal_static_google_cloud_datacatalog_v1beta1_EntryGroup_descriptor;
+    }
+
+    @java.lang.Override
+    public com.google.cloud.datacatalog.EntryGroup getDefaultInstanceForType() {
+      return com.google.cloud.datacatalog.EntryGroup.getDefaultInstance();
+    }
+
+    @java.lang.Override
+    public com.google.cloud.datacatalog.EntryGroup build() {
+      com.google.cloud.datacatalog.EntryGroup result = buildPartial();
+      if (!result.isInitialized()) {
+        throw newUninitializedMessageException(result);
+      }
+      return result;
+    }
+
+    @java.lang.Override
+    public com.google.cloud.datacatalog.EntryGroup buildPartial() {
+      com.google.cloud.datacatalog.EntryGroup result =
+          new com.google.cloud.datacatalog.EntryGroup(this);
+      result.name_ = name_;
+      result.displayName_ = displayName_;
+      result.description_ = description_;
+      if (dataCatalogTimestampsBuilder_ == null) {
+        result.dataCatalogTimestamps_ = dataCatalogTimestamps_;
+      } else {
+        result.dataCatalogTimestamps_ = dataCatalogTimestampsBuilder_.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.datacatalog.EntryGroup) {
+        return mergeFrom((com.google.cloud.datacatalog.EntryGroup) other);
+      } else {
+        super.mergeFrom(other);
+        return this;
+      }
+    }
+
+    public Builder mergeFrom(com.google.cloud.datacatalog.EntryGroup other) {
+      if (other == com.google.cloud.datacatalog.EntryGroup.getDefaultInstance()) return this;
+      if (!other.getName().isEmpty()) {
+        name_ = other.name_;
+        onChanged();
+      }
+      if (!other.getDisplayName().isEmpty()) {
+        displayName_ = other.displayName_;
+        onChanged();
+      }
+      if (!other.getDescription().isEmpty()) {
+        description_ = other.description_;
+        onChanged();
+      }
+      if (other.hasDataCatalogTimestamps()) {
+        mergeDataCatalogTimestamps(other.getDataCatalogTimestamps());
+      }
+      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.datacatalog.EntryGroup parsedMessage = null;
+      try {
+        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        parsedMessage = (com.google.cloud.datacatalog.EntryGroup) e.getUnfinishedMessage();
+        throw e.unwrapIOException();
+      } finally {
+        if (parsedMessage != null) {
+          mergeFrom(parsedMessage);
+        }
+      }
+      return this;
+    }
+
+    private java.lang.Object name_ = "";
+    /**
+     *
+     *
+     * <pre>
+     * Required when used in
+     * [UpdateEntryGroupRequest][google.cloud.datacatalog.v1beta1.UpdateEntryGroupRequest].
+     * The resource name of the entry group in URL format. Example:
+     * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}
+     * Note that this EntryGroup and its child resources may not actually be
+     * stored in the location in this name.
+     * </pre>
+     *
+     * <code>string name = 1;</code>
+     */
+    public java.lang.String getName() {
+      java.lang.Object ref = name_;
+      if (!(ref instanceof java.lang.String)) {
+        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        name_ = s;
+        return s;
+      } else {
+        return (java.lang.String) ref;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required when used in
+     * [UpdateEntryGroupRequest][google.cloud.datacatalog.v1beta1.UpdateEntryGroupRequest].
+     * The resource name of the entry group in URL format. Example:
+     * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}
+     * Note that this EntryGroup and its child resources may not actually be
+     * stored in the location in this name.
+     * </pre>
+     *
+     * <code>string name = 1;</code>
+     */
+    public com.google.protobuf.ByteString getNameBytes() {
+      java.lang.Object ref = name_;
+      if (ref instanceof String) {
+        com.google.protobuf.ByteString b =
+            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+        name_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required when used in
+     * [UpdateEntryGroupRequest][google.cloud.datacatalog.v1beta1.UpdateEntryGroupRequest].
+     * The resource name of the entry group in URL format. Example:
+     * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}
+     * Note that this EntryGroup and its child resources may not actually be
+     * stored in the location in this name.
+     * </pre>
+     *
+     * <code>string name = 1;</code>
+     */
+    public Builder setName(java.lang.String value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+
+      name_ = value;
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required when used in
+     * [UpdateEntryGroupRequest][google.cloud.datacatalog.v1beta1.UpdateEntryGroupRequest].
+     * The resource name of the entry group in URL format. Example:
+     * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}
+     * Note that this EntryGroup and its child resources may not actually be
+     * stored in the location in this name.
+     * </pre>
+     *
+     * <code>string name = 1;</code>
+     */
+    public Builder clearName() {
+
+      name_ = getDefaultInstance().getName();
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required when used in
+     * [UpdateEntryGroupRequest][google.cloud.datacatalog.v1beta1.UpdateEntryGroupRequest].
+     * The resource name of the entry group in URL format. Example:
+     * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}
+     * Note that this EntryGroup and its child resources may not actually be
+     * stored in the location in this name.
+     * </pre>
+     *
+     * <code>string name = 1;</code>
+     */
+    public Builder setNameBytes(com.google.protobuf.ByteString value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+      checkByteStringIsUtf8(value);
+
+      name_ = value;
+      onChanged();
+      return this;
+    }
+
+    private java.lang.Object displayName_ = "";
+    /**
+     *
+     *
+     * <pre>
+     * Optional. A short name to identify the entry group, for example,
+     * "analytics data - jan 2011". Default value is an empty string.
+     * </pre>
+     *
+     * <code>string display_name = 2;</code>
+     */
+    public java.lang.String getDisplayName() {
+      java.lang.Object ref = displayName_;
+      if (!(ref instanceof java.lang.String)) {
+        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        displayName_ = s;
+        return s;
+      } else {
+        return (java.lang.String) ref;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Optional. A short name to identify the entry group, for example,
+     * "analytics data - jan 2011". Default value is an empty string.
+     * </pre>
+     *
+     * <code>string display_name = 2;</code>
+     */
+    public com.google.protobuf.ByteString getDisplayNameBytes() {
+      java.lang.Object ref = displayName_;
+      if (ref instanceof String) {
+        com.google.protobuf.ByteString b =
+            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+        displayName_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Optional. A short name to identify the entry group, for example,
+     * "analytics data - jan 2011". Default value is an empty string.
+     * </pre>
+     *
+     * <code>string display_name = 2;</code>
+     */
+    public Builder setDisplayName(java.lang.String value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+
+      displayName_ = value;
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Optional. A short name to identify the entry group, for example,
+     * "analytics data - jan 2011". Default value is an empty string.
+     * </pre>
+     *
+     * <code>string display_name = 2;</code>
+     */
+    public Builder clearDisplayName() {
+
+      displayName_ = getDefaultInstance().getDisplayName();
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Optional. A short name to identify the entry group, for example,
+     * "analytics data - jan 2011". Default value is an empty string.
+     * </pre>
+     *
+     * <code>string display_name = 2;</code>
+     */
+    public Builder setDisplayNameBytes(com.google.protobuf.ByteString value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+      checkByteStringIsUtf8(value);
+
+      displayName_ = value;
+      onChanged();
+      return this;
+    }
+
+    private java.lang.Object description_ = "";
+    /**
+     *
+     *
+     * <pre>
+     * Optional. Entry group description, which can consist of several sentences
+     * or paragraphs that describe entry group contents. Default value is an empty
+     * string.
+     * </pre>
+     *
+     * <code>string description = 3;</code>
+     */
+    public java.lang.String getDescription() {
+      java.lang.Object ref = description_;
+      if (!(ref instanceof java.lang.String)) {
+        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        description_ = s;
+        return s;
+      } else {
+        return (java.lang.String) ref;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Optional. Entry group description, which can consist of several sentences
+     * or paragraphs that describe entry group contents. Default value is an empty
+     * string.
+     * </pre>
+     *
+     * <code>string description = 3;</code>
+     */
+    public com.google.protobuf.ByteString getDescriptionBytes() {
+      java.lang.Object ref = description_;
+      if (ref instanceof String) {
+        com.google.protobuf.ByteString b =
+            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+        description_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Optional. Entry group description, which can consist of several sentences
+     * or paragraphs that describe entry group contents. Default value is an empty
+     * string.
+     * </pre>
+     *
+     * <code>string description = 3;</code>
+     */
+    public Builder setDescription(java.lang.String value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+
+      description_ = value;
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Optional. Entry group description, which can consist of several sentences
+     * or paragraphs that describe entry group contents. Default value is an empty
+     * string.
+     * </pre>
+     *
+     * <code>string description = 3;</code>
+     */
+    public Builder clearDescription() {
+
+      description_ = getDefaultInstance().getDescription();
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Optional. Entry group description, which can consist of several sentences
+     * or paragraphs that describe entry group contents. Default value is an empty
+     * string.
+     * </pre>
+     *
+     * <code>string description = 3;</code>
+     */
+    public Builder setDescriptionBytes(com.google.protobuf.ByteString value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+      checkByteStringIsUtf8(value);
+
+      description_ = value;
+      onChanged();
+      return this;
+    }
+
+    private com.google.cloud.datacatalog.SystemTimestamps dataCatalogTimestamps_;
+    private com.google.protobuf.SingleFieldBuilderV3<
+            com.google.cloud.datacatalog.SystemTimestamps,
+            com.google.cloud.datacatalog.SystemTimestamps.Builder,
+            com.google.cloud.datacatalog.SystemTimestampsOrBuilder>
+        dataCatalogTimestampsBuilder_;
+    /**
+     *
+     *
+     * <pre>
+     * Output only. Timestamps about this EntryGroup. Default value is empty
+     * timestamps.
+     * </pre>
+     *
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.SystemTimestamps data_catalog_timestamps = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
+     */
+    public boolean hasDataCatalogTimestamps() {
+      return dataCatalogTimestampsBuilder_ != null || dataCatalogTimestamps_ != null;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Output only. Timestamps about this EntryGroup. Default value is empty
+     * timestamps.
+     * </pre>
+     *
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.SystemTimestamps data_catalog_timestamps = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
+     */
+    public com.google.cloud.datacatalog.SystemTimestamps getDataCatalogTimestamps() {
+      if (dataCatalogTimestampsBuilder_ == null) {
+        return dataCatalogTimestamps_ == null
+            ? com.google.cloud.datacatalog.SystemTimestamps.getDefaultInstance()
+            : dataCatalogTimestamps_;
+      } else {
+        return dataCatalogTimestampsBuilder_.getMessage();
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Output only. Timestamps about this EntryGroup. Default value is empty
+     * timestamps.
+     * </pre>
+     *
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.SystemTimestamps data_catalog_timestamps = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
+     */
+    public Builder setDataCatalogTimestamps(com.google.cloud.datacatalog.SystemTimestamps value) {
+      if (dataCatalogTimestampsBuilder_ == null) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        dataCatalogTimestamps_ = value;
+        onChanged();
+      } else {
+        dataCatalogTimestampsBuilder_.setMessage(value);
+      }
+
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Output only. Timestamps about this EntryGroup. Default value is empty
+     * timestamps.
+     * </pre>
+     *
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.SystemTimestamps data_catalog_timestamps = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
+     */
+    public Builder setDataCatalogTimestamps(
+        com.google.cloud.datacatalog.SystemTimestamps.Builder builderForValue) {
+      if (dataCatalogTimestampsBuilder_ == null) {
+        dataCatalogTimestamps_ = builderForValue.build();
+        onChanged();
+      } else {
+        dataCatalogTimestampsBuilder_.setMessage(builderForValue.build());
+      }
+
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Output only. Timestamps about this EntryGroup. Default value is empty
+     * timestamps.
+     * </pre>
+     *
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.SystemTimestamps data_catalog_timestamps = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
+     */
+    public Builder mergeDataCatalogTimestamps(com.google.cloud.datacatalog.SystemTimestamps value) {
+      if (dataCatalogTimestampsBuilder_ == null) {
+        if (dataCatalogTimestamps_ != null) {
+          dataCatalogTimestamps_ =
+              com.google.cloud.datacatalog.SystemTimestamps.newBuilder(dataCatalogTimestamps_)
+                  .mergeFrom(value)
+                  .buildPartial();
+        } else {
+          dataCatalogTimestamps_ = value;
+        }
+        onChanged();
+      } else {
+        dataCatalogTimestampsBuilder_.mergeFrom(value);
+      }
+
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Output only. Timestamps about this EntryGroup. Default value is empty
+     * timestamps.
+     * </pre>
+     *
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.SystemTimestamps data_catalog_timestamps = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
+     */
+    public Builder clearDataCatalogTimestamps() {
+      if (dataCatalogTimestampsBuilder_ == null) {
+        dataCatalogTimestamps_ = null;
+        onChanged();
+      } else {
+        dataCatalogTimestamps_ = null;
+        dataCatalogTimestampsBuilder_ = null;
+      }
+
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Output only. Timestamps about this EntryGroup. Default value is empty
+     * timestamps.
+     * </pre>
+     *
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.SystemTimestamps data_catalog_timestamps = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
+     */
+    public com.google.cloud.datacatalog.SystemTimestamps.Builder getDataCatalogTimestampsBuilder() {
+
+      onChanged();
+      return getDataCatalogTimestampsFieldBuilder().getBuilder();
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Output only. Timestamps about this EntryGroup. Default value is empty
+     * timestamps.
+     * </pre>
+     *
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.SystemTimestamps data_catalog_timestamps = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
+     */
+    public com.google.cloud.datacatalog.SystemTimestampsOrBuilder
+        getDataCatalogTimestampsOrBuilder() {
+      if (dataCatalogTimestampsBuilder_ != null) {
+        return dataCatalogTimestampsBuilder_.getMessageOrBuilder();
+      } else {
+        return dataCatalogTimestamps_ == null
+            ? com.google.cloud.datacatalog.SystemTimestamps.getDefaultInstance()
+            : dataCatalogTimestamps_;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Output only. Timestamps about this EntryGroup. Default value is empty
+     * timestamps.
+     * </pre>
+     *
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.SystemTimestamps data_catalog_timestamps = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
+     */
+    private com.google.protobuf.SingleFieldBuilderV3<
+            com.google.cloud.datacatalog.SystemTimestamps,
+            com.google.cloud.datacatalog.SystemTimestamps.Builder,
+            com.google.cloud.datacatalog.SystemTimestampsOrBuilder>
+        getDataCatalogTimestampsFieldBuilder() {
+      if (dataCatalogTimestampsBuilder_ == null) {
+        dataCatalogTimestampsBuilder_ =
+            new com.google.protobuf.SingleFieldBuilderV3<
+                com.google.cloud.datacatalog.SystemTimestamps,
+                com.google.cloud.datacatalog.SystemTimestamps.Builder,
+                com.google.cloud.datacatalog.SystemTimestampsOrBuilder>(
+                getDataCatalogTimestamps(), getParentForChildren(), isClean());
+        dataCatalogTimestamps_ = null;
+      }
+      return dataCatalogTimestampsBuilder_;
+    }
+
+    @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.datacatalog.v1beta1.EntryGroup)
+  }
+
+  // @@protoc_insertion_point(class_scope:google.cloud.datacatalog.v1beta1.EntryGroup)
+  private static final com.google.cloud.datacatalog.EntryGroup DEFAULT_INSTANCE;
+
+  static {
+    DEFAULT_INSTANCE = new com.google.cloud.datacatalog.EntryGroup();
+  }
+
+  public static com.google.cloud.datacatalog.EntryGroup getDefaultInstance() {
+    return DEFAULT_INSTANCE;
+  }
+
+  private static final com.google.protobuf.Parser<EntryGroup> PARSER =
+      new com.google.protobuf.AbstractParser<EntryGroup>() {
+        @java.lang.Override
+        public EntryGroup parsePartialFrom(
+            com.google.protobuf.CodedInputStream input,
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+            throws com.google.protobuf.InvalidProtocolBufferException {
+          return new EntryGroup(input, extensionRegistry);
+        }
+      };
+
+  public static com.google.protobuf.Parser<EntryGroup> parser() {
+    return PARSER;
+  }
+
+  @java.lang.Override
+  public com.google.protobuf.Parser<EntryGroup> getParserForType() {
+    return PARSER;
+  }
+
+  @java.lang.Override
+  public com.google.cloud.datacatalog.EntryGroup getDefaultInstanceForType() {
+    return DEFAULT_INSTANCE;
+  }
+}
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/EntryGroupName.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/EntryGroupName.java
new file mode 100644
index 000000000000..307517db31da
--- /dev/null
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/EntryGroupName.java
@@ -0,0 +1,209 @@
+/*
+ * Copyright 2018 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.google.cloud.datacatalog;
+
+import com.google.api.pathtemplate.PathTemplate;
+import com.google.api.resourcenames.ResourceName;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.ImmutableMap;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+// AUTO-GENERATED DOCUMENTATION AND CLASS
+@javax.annotation.Generated("by GAPIC protoc plugin")
+public class EntryGroupName implements ResourceName {
+
+  private static final PathTemplate PATH_TEMPLATE =
+      PathTemplate.createWithoutUrlEncoding(
+          "projects/{project}/locations/{location}/entryGroups/{entry_group}");
+
+  private volatile Map<String, String> fieldValuesMap;
+
+  private final String project;
+  private final String location;
+  private final String entryGroup;
+
+  public String getProject() {
+    return project;
+  }
+
+  public String getLocation() {
+    return location;
+  }
+
+  public String getEntryGroup() {
+    return entryGroup;
+  }
+
+  public static Builder newBuilder() {
+    return new Builder();
+  }
+
+  public Builder toBuilder() {
+    return new Builder(this);
+  }
+
+  private EntryGroupName(Builder builder) {
+    project = Preconditions.checkNotNull(builder.getProject());
+    location = Preconditions.checkNotNull(builder.getLocation());
+    entryGroup = Preconditions.checkNotNull(builder.getEntryGroup());
+  }
+
+  public static EntryGroupName of(String project, String location, String entryGroup) {
+    return newBuilder().setProject(project).setLocation(location).setEntryGroup(entryGroup).build();
+  }
+
+  public static String format(String project, String location, String entryGroup) {
+    return newBuilder()
+        .setProject(project)
+        .setLocation(location)
+        .setEntryGroup(entryGroup)
+        .build()
+        .toString();
+  }
+
+  public static EntryGroupName parse(String formattedString) {
+    if (formattedString.isEmpty()) {
+      return null;
+    }
+    Map<String, String> matchMap =
+        PATH_TEMPLATE.validatedMatch(
+            formattedString, "EntryGroupName.parse: formattedString not in valid format");
+    return of(matchMap.get("project"), matchMap.get("location"), matchMap.get("entry_group"));
+  }
+
+  public static List<EntryGroupName> parseList(List<String> formattedStrings) {
+    List<EntryGroupName> list = new ArrayList<>(formattedStrings.size());
+    for (String formattedString : formattedStrings) {
+      list.add(parse(formattedString));
+    }
+    return list;
+  }
+
+  public static List<String> toStringList(List<EntryGroupName> values) {
+    List<String> list = new ArrayList<String>(values.size());
+    for (EntryGroupName value : values) {
+      if (value == null) {
+        list.add("");
+      } else {
+        list.add(value.toString());
+      }
+    }
+    return list;
+  }
+
+  public static boolean isParsableFrom(String formattedString) {
+    return PATH_TEMPLATE.matches(formattedString);
+  }
+
+  public Map<String, String> getFieldValuesMap() {
+    if (fieldValuesMap == null) {
+      synchronized (this) {
+        if (fieldValuesMap == null) {
+          ImmutableMap.Builder<String, String> fieldMapBuilder = ImmutableMap.builder();
+          fieldMapBuilder.put("project", project);
+          fieldMapBuilder.put("location", location);
+          fieldMapBuilder.put("entryGroup", entryGroup);
+          fieldValuesMap = fieldMapBuilder.build();
+        }
+      }
+    }
+    return fieldValuesMap;
+  }
+
+  public String getFieldValue(String fieldName) {
+    return getFieldValuesMap().get(fieldName);
+  }
+
+  @Override
+  public String toString() {
+    return PATH_TEMPLATE.instantiate(
+        "project", project, "location", location, "entry_group", entryGroup);
+  }
+
+  /** Builder for EntryGroupName. */
+  public static class Builder {
+
+    private String project;
+    private String location;
+    private String entryGroup;
+
+    public String getProject() {
+      return project;
+    }
+
+    public String getLocation() {
+      return location;
+    }
+
+    public String getEntryGroup() {
+      return entryGroup;
+    }
+
+    public Builder setProject(String project) {
+      this.project = project;
+      return this;
+    }
+
+    public Builder setLocation(String location) {
+      this.location = location;
+      return this;
+    }
+
+    public Builder setEntryGroup(String entryGroup) {
+      this.entryGroup = entryGroup;
+      return this;
+    }
+
+    private Builder() {}
+
+    private Builder(EntryGroupName entryGroupName) {
+      project = entryGroupName.project;
+      location = entryGroupName.location;
+      entryGroup = entryGroupName.entryGroup;
+    }
+
+    public EntryGroupName build() {
+      return new EntryGroupName(this);
+    }
+  }
+
+  @Override
+  public boolean equals(Object o) {
+    if (o == this) {
+      return true;
+    }
+    if (o instanceof EntryGroupName) {
+      EntryGroupName that = (EntryGroupName) o;
+      return (this.project.equals(that.project))
+          && (this.location.equals(that.location))
+          && (this.entryGroup.equals(that.entryGroup));
+    }
+    return false;
+  }
+
+  @Override
+  public int hashCode() {
+    int h = 1;
+    h *= 1000003;
+    h ^= project.hashCode();
+    h *= 1000003;
+    h ^= location.hashCode();
+    h *= 1000003;
+    h ^= entryGroup.hashCode();
+    return h;
+  }
+}
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/EntryGroupOrBuilder.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/EntryGroupOrBuilder.java
new file mode 100644
index 000000000000..97296531c8b4
--- /dev/null
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/EntryGroupOrBuilder.java
@@ -0,0 +1,129 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: google/cloud/datacatalog/v1beta1/datacatalog.proto
+
+package com.google.cloud.datacatalog;
+
+public interface EntryGroupOrBuilder
+    extends
+    // @@protoc_insertion_point(interface_extends:google.cloud.datacatalog.v1beta1.EntryGroup)
+    com.google.protobuf.MessageOrBuilder {
+
+  /**
+   *
+   *
+   * <pre>
+   * Required when used in
+   * [UpdateEntryGroupRequest][google.cloud.datacatalog.v1beta1.UpdateEntryGroupRequest].
+   * The resource name of the entry group in URL format. Example:
+   * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}
+   * Note that this EntryGroup and its child resources may not actually be
+   * stored in the location in this name.
+   * </pre>
+   *
+   * <code>string name = 1;</code>
+   */
+  java.lang.String getName();
+  /**
+   *
+   *
+   * <pre>
+   * Required when used in
+   * [UpdateEntryGroupRequest][google.cloud.datacatalog.v1beta1.UpdateEntryGroupRequest].
+   * The resource name of the entry group in URL format. Example:
+   * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}
+   * Note that this EntryGroup and its child resources may not actually be
+   * stored in the location in this name.
+   * </pre>
+   *
+   * <code>string name = 1;</code>
+   */
+  com.google.protobuf.ByteString getNameBytes();
+
+  /**
+   *
+   *
+   * <pre>
+   * Optional. A short name to identify the entry group, for example,
+   * "analytics data - jan 2011". Default value is an empty string.
+   * </pre>
+   *
+   * <code>string display_name = 2;</code>
+   */
+  java.lang.String getDisplayName();
+  /**
+   *
+   *
+   * <pre>
+   * Optional. A short name to identify the entry group, for example,
+   * "analytics data - jan 2011". Default value is an empty string.
+   * </pre>
+   *
+   * <code>string display_name = 2;</code>
+   */
+  com.google.protobuf.ByteString getDisplayNameBytes();
+
+  /**
+   *
+   *
+   * <pre>
+   * Optional. Entry group description, which can consist of several sentences
+   * or paragraphs that describe entry group contents. Default value is an empty
+   * string.
+   * </pre>
+   *
+   * <code>string description = 3;</code>
+   */
+  java.lang.String getDescription();
+  /**
+   *
+   *
+   * <pre>
+   * Optional. Entry group description, which can consist of several sentences
+   * or paragraphs that describe entry group contents. Default value is an empty
+   * string.
+   * </pre>
+   *
+   * <code>string description = 3;</code>
+   */
+  com.google.protobuf.ByteString getDescriptionBytes();
+
+  /**
+   *
+   *
+   * <pre>
+   * Output only. Timestamps about this EntryGroup. Default value is empty
+   * timestamps.
+   * </pre>
+   *
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.SystemTimestamps data_catalog_timestamps = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+   * </code>
+   */
+  boolean hasDataCatalogTimestamps();
+  /**
+   *
+   *
+   * <pre>
+   * Output only. Timestamps about this EntryGroup. Default value is empty
+   * timestamps.
+   * </pre>
+   *
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.SystemTimestamps data_catalog_timestamps = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+   * </code>
+   */
+  com.google.cloud.datacatalog.SystemTimestamps getDataCatalogTimestamps();
+  /**
+   *
+   *
+   * <pre>
+   * Output only. Timestamps about this EntryGroup. Default value is empty
+   * timestamps.
+   * </pre>
+   *
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.SystemTimestamps data_catalog_timestamps = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+   * </code>
+   */
+  com.google.cloud.datacatalog.SystemTimestampsOrBuilder getDataCatalogTimestampsOrBuilder();
+}
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/EntryOrBuilder.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/EntryOrBuilder.java
index 9d3f6a2442c0..cd3f50935858 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/EntryOrBuilder.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/EntryOrBuilder.java
@@ -14,13 +14,13 @@ public interface EntryOrBuilder
    * <pre>
    * Required when used in
    * [UpdateEntryRequest][google.cloud.datacatalog.v1beta1.UpdateEntryRequest].
-   * The Data Catalog resource name of the entry in URL format. For example,
-   * "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}".
+   * The Data Catalog resource name of the entry in URL format. Example:
+   * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
    * Note that this Entry and its child resources may not actually be stored in
    * the location in this name.
    * </pre>
    *
-   * <code>string name = 1;</code>
+   * <code>string name = 1 [(.google.api.resource_reference) = { ... }</code>
    */
   java.lang.String getName();
   /**
@@ -29,13 +29,13 @@ public interface EntryOrBuilder
    * <pre>
    * Required when used in
    * [UpdateEntryRequest][google.cloud.datacatalog.v1beta1.UpdateEntryRequest].
-   * The Data Catalog resource name of the entry in URL format. For example,
-   * "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}".
+   * The Data Catalog resource name of the entry in URL format. Example:
+   * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
    * Note that this Entry and its child resources may not actually be stored in
    * the location in this name.
    * </pre>
    *
-   * <code>string name = 1;</code>
+   * <code>string name = 1 [(.google.api.resource_reference) = { ... }</code>
    */
   com.google.protobuf.ByteString getNameBytes();
 
@@ -43,12 +43,12 @@ public interface EntryOrBuilder
    *
    *
    * <pre>
-   * Output only. The full name of the cloud resource the entry belongs to. See:
-   * https://cloud.google.com/apis/design/resource_names#full_resource_name
-   * Data Catalog supports resources from select Google Cloud Platform systems.
-   * `linked_resource` is the full name of the Google Cloud Platform resource.
+   * Output only. The resource this metadata entry refers to.
+   * For Google Cloud Platform resources, `linked_resource` is the [full name of
+   * the
+   * resource](https://cloud.google.com/apis/design/resource_names#full_resource_name).
    * For example, the `linked_resource` for a table resource from BigQuery is:
-   * "//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId".
+   * * //bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId
    * </pre>
    *
    * <code>string linked_resource = 9;</code>
@@ -58,12 +58,12 @@ public interface EntryOrBuilder
    *
    *
    * <pre>
-   * Output only. The full name of the cloud resource the entry belongs to. See:
-   * https://cloud.google.com/apis/design/resource_names#full_resource_name
-   * Data Catalog supports resources from select Google Cloud Platform systems.
-   * `linked_resource` is the full name of the Google Cloud Platform resource.
+   * Output only. The resource this metadata entry refers to.
+   * For Google Cloud Platform resources, `linked_resource` is the [full name of
+   * the
+   * resource](https://cloud.google.com/apis/design/resource_names#full_resource_name).
    * For example, the `linked_resource` for a table resource from BigQuery is:
-   * "//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId".
+   * * //bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId
    * </pre>
    *
    * <code>string linked_resource = 9;</code>
@@ -74,7 +74,7 @@ public interface EntryOrBuilder
    *
    *
    * <pre>
-   * Required. Type of entry.
+   * The type of the entry.
    * </pre>
    *
    * <code>.google.cloud.datacatalog.v1beta1.EntryType type = 2;</code>
@@ -84,19 +84,53 @@ public interface EntryOrBuilder
    *
    *
    * <pre>
-   * Required. Type of entry.
+   * The type of the entry.
    * </pre>
    *
    * <code>.google.cloud.datacatalog.v1beta1.EntryType type = 2;</code>
    */
   com.google.cloud.datacatalog.EntryType getType();
 
+  /**
+   *
+   *
+   * <pre>
+   * Specification that applies to a Cloud Storage fileset. This is only valid
+   * on entries of type FILESET.
+   * </pre>
+   *
+   * <code>.google.cloud.datacatalog.v1beta1.GcsFilesetSpec gcs_fileset_spec = 6;</code>
+   */
+  boolean hasGcsFilesetSpec();
+  /**
+   *
+   *
+   * <pre>
+   * Specification that applies to a Cloud Storage fileset. This is only valid
+   * on entries of type FILESET.
+   * </pre>
+   *
+   * <code>.google.cloud.datacatalog.v1beta1.GcsFilesetSpec gcs_fileset_spec = 6;</code>
+   */
+  com.google.cloud.datacatalog.GcsFilesetSpec getGcsFilesetSpec();
+  /**
+   *
+   *
+   * <pre>
+   * Specification that applies to a Cloud Storage fileset. This is only valid
+   * on entries of type FILESET.
+   * </pre>
+   *
+   * <code>.google.cloud.datacatalog.v1beta1.GcsFilesetSpec gcs_fileset_spec = 6;</code>
+   */
+  com.google.cloud.datacatalog.GcsFilesetSpecOrBuilder getGcsFilesetSpecOrBuilder();
+
   /**
    *
    *
    * <pre>
    * Specification that applies to a BigQuery table. This is only valid on
-   * entries of type TABLE.
+   * entries of type `TABLE`.
    * </pre>
    *
    * <code>.google.cloud.datacatalog.v1beta1.BigQueryTableSpec bigquery_table_spec = 12;</code>
@@ -107,7 +141,7 @@ public interface EntryOrBuilder
    *
    * <pre>
    * Specification that applies to a BigQuery table. This is only valid on
-   * entries of type TABLE.
+   * entries of type `TABLE`.
    * </pre>
    *
    * <code>.google.cloud.datacatalog.v1beta1.BigQueryTableSpec bigquery_table_spec = 12;</code>
@@ -118,7 +152,7 @@ public interface EntryOrBuilder
    *
    * <pre>
    * Specification that applies to a BigQuery table. This is only valid on
-   * entries of type TABLE.
+   * entries of type `TABLE`.
    * </pre>
    *
    * <code>.google.cloud.datacatalog.v1beta1.BigQueryTableSpec bigquery_table_spec = 12;</code>
@@ -130,8 +164,8 @@ public interface EntryOrBuilder
    *
    * <pre>
    * Specification for a group of BigQuery tables with name pattern
-   * [prefix]YYYYMMDD. Context:
-   * https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding
+   * `[prefix]YYYYMMDD`. Context:
+   * https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding.
    * </pre>
    *
    * <code>
@@ -144,8 +178,8 @@ public interface EntryOrBuilder
    *
    * <pre>
    * Specification for a group of BigQuery tables with name pattern
-   * [prefix]YYYYMMDD. Context:
-   * https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding
+   * `[prefix]YYYYMMDD`. Context:
+   * https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding.
    * </pre>
    *
    * <code>
@@ -158,8 +192,8 @@ public interface EntryOrBuilder
    *
    * <pre>
    * Specification for a group of BigQuery tables with name pattern
-   * [prefix]YYYYMMDD. Context:
-   * https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding
+   * `[prefix]YYYYMMDD`. Context:
+   * https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding.
    * </pre>
    *
    * <code>
@@ -255,8 +289,8 @@ public interface EntryOrBuilder
    *
    *
    * <pre>
-   * Output only. Timestamps about the underlying Google Cloud Platform resource
-   * -- not about this Data Catalog Entry.
+   * Output only. Timestamps about the underlying Google Cloud Platform
+   * resource, not about this Data Catalog Entry.
    * </pre>
    *
    * <code>.google.cloud.datacatalog.v1beta1.SystemTimestamps source_system_timestamps = 7;</code>
@@ -266,8 +300,8 @@ public interface EntryOrBuilder
    *
    *
    * <pre>
-   * Output only. Timestamps about the underlying Google Cloud Platform resource
-   * -- not about this Data Catalog Entry.
+   * Output only. Timestamps about the underlying Google Cloud Platform
+   * resource, not about this Data Catalog Entry.
    * </pre>
    *
    * <code>.google.cloud.datacatalog.v1beta1.SystemTimestamps source_system_timestamps = 7;</code>
@@ -277,13 +311,15 @@ public interface EntryOrBuilder
    *
    *
    * <pre>
-   * Output only. Timestamps about the underlying Google Cloud Platform resource
-   * -- not about this Data Catalog Entry.
+   * Output only. Timestamps about the underlying Google Cloud Platform
+   * resource, not about this Data Catalog Entry.
    * </pre>
    *
    * <code>.google.cloud.datacatalog.v1beta1.SystemTimestamps source_system_timestamps = 7;</code>
    */
   com.google.cloud.datacatalog.SystemTimestampsOrBuilder getSourceSystemTimestampsOrBuilder();
 
+  public com.google.cloud.datacatalog.Entry.EntryTypeCase getEntryTypeCase();
+
   public com.google.cloud.datacatalog.Entry.TypeSpecCase getTypeSpecCase();
 }
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/EntryType.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/EntryType.java
index 7fdc3dd7efdf..9d537a217096 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/EntryType.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/EntryType.java
@@ -7,8 +7,8 @@
  *
  *
  * <pre>
- * Entry resources in Data Catalog can be of different types e.g. BigQuery
- * Table entry is of type 'TABLE'. This enum describes all the possible types
+ * Entry resources in Data Catalog can be of different types e.g. a BigQuery
+ * Table entry is of type `TABLE`. This enum describes all the possible types
  * Data Catalog contains.
  * </pre>
  *
@@ -29,7 +29,8 @@ public enum EntryType implements com.google.protobuf.ProtocolMessageEnum {
    *
    *
    * <pre>
-   * The type of entry that has a GoogleSQL schema, including logical views.
+   * Output only. The type of entry that has a GoogleSQL schema, including
+   * logical views.
    * </pre>
    *
    * <code>TABLE = 2;</code>
@@ -39,12 +40,24 @@ public enum EntryType implements com.google.protobuf.ProtocolMessageEnum {
    *
    *
    * <pre>
-   * An entry type which is used for streaming entries. Example - Pub/Sub.
+   * Output only. An entry type which is used for streaming entries. Example:
+   * Cloud Pub/Sub topic.
    * </pre>
    *
    * <code>DATA_STREAM = 3;</code>
    */
   DATA_STREAM(3),
+  /**
+   *
+   *
+   * <pre>
+   * An entry type which is a set of files or objects. Example: Cloud Storage
+   * fileset.
+   * </pre>
+   *
+   * <code>FILESET = 4;</code>
+   */
+  FILESET(4),
   UNRECOGNIZED(-1),
   ;
 
@@ -62,7 +75,8 @@ public enum EntryType implements com.google.protobuf.ProtocolMessageEnum {
    *
    *
    * <pre>
-   * The type of entry that has a GoogleSQL schema, including logical views.
+   * Output only. The type of entry that has a GoogleSQL schema, including
+   * logical views.
    * </pre>
    *
    * <code>TABLE = 2;</code>
@@ -72,12 +86,24 @@ public enum EntryType implements com.google.protobuf.ProtocolMessageEnum {
    *
    *
    * <pre>
-   * An entry type which is used for streaming entries. Example - Pub/Sub.
+   * Output only. An entry type which is used for streaming entries. Example:
+   * Cloud Pub/Sub topic.
    * </pre>
    *
    * <code>DATA_STREAM = 3;</code>
    */
   public static final int DATA_STREAM_VALUE = 3;
+  /**
+   *
+   *
+   * <pre>
+   * An entry type which is a set of files or objects. Example: Cloud Storage
+   * fileset.
+   * </pre>
+   *
+   * <code>FILESET = 4;</code>
+   */
+  public static final int FILESET_VALUE = 4;
 
   public final int getNumber() {
     if (this == UNRECOGNIZED) {
@@ -101,6 +127,8 @@ public static EntryType forNumber(int value) {
         return TABLE;
       case 3:
         return DATA_STREAM;
+      case 4:
+        return FILESET;
       default:
         return null;
     }
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/FieldType.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/FieldType.java
index 6e4dc4ea64bd..6c5af1db17df 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/FieldType.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/FieldType.java
@@ -288,12 +288,12 @@ public interface EnumTypeOrBuilder
      *
      *
      * <pre>
-     * Required. The set of allowed values for this enum. This set must not be
-     * empty, the display names of the values in this set must not be empty and
-     * the display names of the values must be case-insensitively unique within
-     * this set. Currently, enum values can only be added to the list of allowed
-     * values. Deletion and renaming of enum values are not supported. Can have
-     * up to 500 allowed values.
+     * Required on create; optional on update. The set of allowed values for
+     * this enum. This set must not be empty, the display names of the values in
+     * this set must not be empty and the display names of the values must be
+     * case-insensitively unique within this set. Currently, enum values can
+     * only be added to the list of allowed values. Deletion and renaming of
+     * enum values are not supported. Can have up to 500 allowed values.
      * </pre>
      *
      * <code>
@@ -306,12 +306,12 @@ public interface EnumTypeOrBuilder
      *
      *
      * <pre>
-     * Required. The set of allowed values for this enum. This set must not be
-     * empty, the display names of the values in this set must not be empty and
-     * the display names of the values must be case-insensitively unique within
-     * this set. Currently, enum values can only be added to the list of allowed
-     * values. Deletion and renaming of enum values are not supported. Can have
-     * up to 500 allowed values.
+     * Required on create; optional on update. The set of allowed values for
+     * this enum. This set must not be empty, the display names of the values in
+     * this set must not be empty and the display names of the values must be
+     * case-insensitively unique within this set. Currently, enum values can
+     * only be added to the list of allowed values. Deletion and renaming of
+     * enum values are not supported. Can have up to 500 allowed values.
      * </pre>
      *
      * <code>
@@ -323,12 +323,12 @@ public interface EnumTypeOrBuilder
      *
      *
      * <pre>
-     * Required. The set of allowed values for this enum. This set must not be
-     * empty, the display names of the values in this set must not be empty and
-     * the display names of the values must be case-insensitively unique within
-     * this set. Currently, enum values can only be added to the list of allowed
-     * values. Deletion and renaming of enum values are not supported. Can have
-     * up to 500 allowed values.
+     * Required on create; optional on update. The set of allowed values for
+     * this enum. This set must not be empty, the display names of the values in
+     * this set must not be empty and the display names of the values must be
+     * case-insensitively unique within this set. Currently, enum values can
+     * only be added to the list of allowed values. Deletion and renaming of
+     * enum values are not supported. Can have up to 500 allowed values.
      * </pre>
      *
      * <code>
@@ -340,12 +340,12 @@ public interface EnumTypeOrBuilder
      *
      *
      * <pre>
-     * Required. The set of allowed values for this enum. This set must not be
-     * empty, the display names of the values in this set must not be empty and
-     * the display names of the values must be case-insensitively unique within
-     * this set. Currently, enum values can only be added to the list of allowed
-     * values. Deletion and renaming of enum values are not supported. Can have
-     * up to 500 allowed values.
+     * Required on create; optional on update. The set of allowed values for
+     * this enum. This set must not be empty, the display names of the values in
+     * this set must not be empty and the display names of the values must be
+     * case-insensitively unique within this set. Currently, enum values can
+     * only be added to the list of allowed values. Deletion and renaming of
+     * enum values are not supported. Can have up to 500 allowed values.
      * </pre>
      *
      * <code>
@@ -358,12 +358,12 @@ public interface EnumTypeOrBuilder
      *
      *
      * <pre>
-     * Required. The set of allowed values for this enum. This set must not be
-     * empty, the display names of the values in this set must not be empty and
-     * the display names of the values must be case-insensitively unique within
-     * this set. Currently, enum values can only be added to the list of allowed
-     * values. Deletion and renaming of enum values are not supported. Can have
-     * up to 500 allowed values.
+     * Required on create; optional on update. The set of allowed values for
+     * this enum. This set must not be empty, the display names of the values in
+     * this set must not be empty and the display names of the values must be
+     * case-insensitively unique within this set. Currently, enum values can
+     * only be added to the list of allowed values. Deletion and renaming of
+     * enum values are not supported. Can have up to 500 allowed values.
      * </pre>
      *
      * <code>
@@ -476,7 +476,7 @@ public interface EnumValueOrBuilder
        * string.
        * </pre>
        *
-       * <code>string display_name = 1;</code>
+       * <code>string display_name = 1 [(.google.api.field_behavior) = REQUIRED];</code>
        */
       java.lang.String getDisplayName();
       /**
@@ -487,7 +487,7 @@ public interface EnumValueOrBuilder
        * string.
        * </pre>
        *
-       * <code>string display_name = 1;</code>
+       * <code>string display_name = 1 [(.google.api.field_behavior) = REQUIRED];</code>
        */
       com.google.protobuf.ByteString getDisplayNameBytes();
     }
@@ -582,7 +582,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        * string.
        * </pre>
        *
-       * <code>string display_name = 1;</code>
+       * <code>string display_name = 1 [(.google.api.field_behavior) = REQUIRED];</code>
        */
       public java.lang.String getDisplayName() {
         java.lang.Object ref = displayName_;
@@ -603,7 +603,7 @@ public java.lang.String getDisplayName() {
        * string.
        * </pre>
        *
-       * <code>string display_name = 1;</code>
+       * <code>string display_name = 1 [(.google.api.field_behavior) = REQUIRED];</code>
        */
       public com.google.protobuf.ByteString getDisplayNameBytes() {
         java.lang.Object ref = displayName_;
@@ -944,7 +944,7 @@ public Builder mergeFrom(
          * string.
          * </pre>
          *
-         * <code>string display_name = 1;</code>
+         * <code>string display_name = 1 [(.google.api.field_behavior) = REQUIRED];</code>
          */
         public java.lang.String getDisplayName() {
           java.lang.Object ref = displayName_;
@@ -965,7 +965,7 @@ public java.lang.String getDisplayName() {
          * string.
          * </pre>
          *
-         * <code>string display_name = 1;</code>
+         * <code>string display_name = 1 [(.google.api.field_behavior) = REQUIRED];</code>
          */
         public com.google.protobuf.ByteString getDisplayNameBytes() {
           java.lang.Object ref = displayName_;
@@ -986,7 +986,7 @@ public com.google.protobuf.ByteString getDisplayNameBytes() {
          * string.
          * </pre>
          *
-         * <code>string display_name = 1;</code>
+         * <code>string display_name = 1 [(.google.api.field_behavior) = REQUIRED];</code>
          */
         public Builder setDisplayName(java.lang.String value) {
           if (value == null) {
@@ -1005,7 +1005,7 @@ public Builder setDisplayName(java.lang.String value) {
          * string.
          * </pre>
          *
-         * <code>string display_name = 1;</code>
+         * <code>string display_name = 1 [(.google.api.field_behavior) = REQUIRED];</code>
          */
         public Builder clearDisplayName() {
 
@@ -1021,7 +1021,7 @@ public Builder clearDisplayName() {
          * string.
          * </pre>
          *
-         * <code>string display_name = 1;</code>
+         * <code>string display_name = 1 [(.google.api.field_behavior) = REQUIRED];</code>
          */
         public Builder setDisplayNameBytes(com.google.protobuf.ByteString value) {
           if (value == null) {
@@ -1094,12 +1094,12 @@ public com.google.cloud.datacatalog.FieldType.EnumType.EnumValue getDefaultInsta
      *
      *
      * <pre>
-     * Required. The set of allowed values for this enum. This set must not be
-     * empty, the display names of the values in this set must not be empty and
-     * the display names of the values must be case-insensitively unique within
-     * this set. Currently, enum values can only be added to the list of allowed
-     * values. Deletion and renaming of enum values are not supported. Can have
-     * up to 500 allowed values.
+     * Required on create; optional on update. The set of allowed values for
+     * this enum. This set must not be empty, the display names of the values in
+     * this set must not be empty and the display names of the values must be
+     * case-insensitively unique within this set. Currently, enum values can
+     * only be added to the list of allowed values. Deletion and renaming of
+     * enum values are not supported. Can have up to 500 allowed values.
      * </pre>
      *
      * <code>
@@ -1114,12 +1114,12 @@ public com.google.cloud.datacatalog.FieldType.EnumType.EnumValue getDefaultInsta
      *
      *
      * <pre>
-     * Required. The set of allowed values for this enum. This set must not be
-     * empty, the display names of the values in this set must not be empty and
-     * the display names of the values must be case-insensitively unique within
-     * this set. Currently, enum values can only be added to the list of allowed
-     * values. Deletion and renaming of enum values are not supported. Can have
-     * up to 500 allowed values.
+     * Required on create; optional on update. The set of allowed values for
+     * this enum. This set must not be empty, the display names of the values in
+     * this set must not be empty and the display names of the values must be
+     * case-insensitively unique within this set. Currently, enum values can
+     * only be added to the list of allowed values. Deletion and renaming of
+     * enum values are not supported. Can have up to 500 allowed values.
      * </pre>
      *
      * <code>
@@ -1135,12 +1135,12 @@ public com.google.cloud.datacatalog.FieldType.EnumType.EnumValue getDefaultInsta
      *
      *
      * <pre>
-     * Required. The set of allowed values for this enum. This set must not be
-     * empty, the display names of the values in this set must not be empty and
-     * the display names of the values must be case-insensitively unique within
-     * this set. Currently, enum values can only be added to the list of allowed
-     * values. Deletion and renaming of enum values are not supported. Can have
-     * up to 500 allowed values.
+     * Required on create; optional on update. The set of allowed values for
+     * this enum. This set must not be empty, the display names of the values in
+     * this set must not be empty and the display names of the values must be
+     * case-insensitively unique within this set. Currently, enum values can
+     * only be added to the list of allowed values. Deletion and renaming of
+     * enum values are not supported. Can have up to 500 allowed values.
      * </pre>
      *
      * <code>
@@ -1154,12 +1154,12 @@ public int getAllowedValuesCount() {
      *
      *
      * <pre>
-     * Required. The set of allowed values for this enum. This set must not be
-     * empty, the display names of the values in this set must not be empty and
-     * the display names of the values must be case-insensitively unique within
-     * this set. Currently, enum values can only be added to the list of allowed
-     * values. Deletion and renaming of enum values are not supported. Can have
-     * up to 500 allowed values.
+     * Required on create; optional on update. The set of allowed values for
+     * this enum. This set must not be empty, the display names of the values in
+     * this set must not be empty and the display names of the values must be
+     * case-insensitively unique within this set. Currently, enum values can
+     * only be added to the list of allowed values. Deletion and renaming of
+     * enum values are not supported. Can have up to 500 allowed values.
      * </pre>
      *
      * <code>
@@ -1173,12 +1173,12 @@ public com.google.cloud.datacatalog.FieldType.EnumType.EnumValue getAllowedValue
      *
      *
      * <pre>
-     * Required. The set of allowed values for this enum. This set must not be
-     * empty, the display names of the values in this set must not be empty and
-     * the display names of the values must be case-insensitively unique within
-     * this set. Currently, enum values can only be added to the list of allowed
-     * values. Deletion and renaming of enum values are not supported. Can have
-     * up to 500 allowed values.
+     * Required on create; optional on update. The set of allowed values for
+     * this enum. This set must not be empty, the display names of the values in
+     * this set must not be empty and the display names of the values must be
+     * case-insensitively unique within this set. Currently, enum values can
+     * only be added to the list of allowed values. Deletion and renaming of
+     * enum values are not supported. Can have up to 500 allowed values.
      * </pre>
      *
      * <code>
@@ -1568,12 +1568,12 @@ private void ensureAllowedValuesIsMutable() {
        *
        *
        * <pre>
-       * Required. The set of allowed values for this enum. This set must not be
-       * empty, the display names of the values in this set must not be empty and
-       * the display names of the values must be case-insensitively unique within
-       * this set. Currently, enum values can only be added to the list of allowed
-       * values. Deletion and renaming of enum values are not supported. Can have
-       * up to 500 allowed values.
+       * Required on create; optional on update. The set of allowed values for
+       * this enum. This set must not be empty, the display names of the values in
+       * this set must not be empty and the display names of the values must be
+       * case-insensitively unique within this set. Currently, enum values can
+       * only be added to the list of allowed values. Deletion and renaming of
+       * enum values are not supported. Can have up to 500 allowed values.
        * </pre>
        *
        * <code>
@@ -1592,12 +1592,12 @@ private void ensureAllowedValuesIsMutable() {
        *
        *
        * <pre>
-       * Required. The set of allowed values for this enum. This set must not be
-       * empty, the display names of the values in this set must not be empty and
-       * the display names of the values must be case-insensitively unique within
-       * this set. Currently, enum values can only be added to the list of allowed
-       * values. Deletion and renaming of enum values are not supported. Can have
-       * up to 500 allowed values.
+       * Required on create; optional on update. The set of allowed values for
+       * this enum. This set must not be empty, the display names of the values in
+       * this set must not be empty and the display names of the values must be
+       * case-insensitively unique within this set. Currently, enum values can
+       * only be added to the list of allowed values. Deletion and renaming of
+       * enum values are not supported. Can have up to 500 allowed values.
        * </pre>
        *
        * <code>
@@ -1615,12 +1615,12 @@ public int getAllowedValuesCount() {
        *
        *
        * <pre>
-       * Required. The set of allowed values for this enum. This set must not be
-       * empty, the display names of the values in this set must not be empty and
-       * the display names of the values must be case-insensitively unique within
-       * this set. Currently, enum values can only be added to the list of allowed
-       * values. Deletion and renaming of enum values are not supported. Can have
-       * up to 500 allowed values.
+       * Required on create; optional on update. The set of allowed values for
+       * this enum. This set must not be empty, the display names of the values in
+       * this set must not be empty and the display names of the values must be
+       * case-insensitively unique within this set. Currently, enum values can
+       * only be added to the list of allowed values. Deletion and renaming of
+       * enum values are not supported. Can have up to 500 allowed values.
        * </pre>
        *
        * <code>
@@ -1638,12 +1638,12 @@ public com.google.cloud.datacatalog.FieldType.EnumType.EnumValue getAllowedValue
        *
        *
        * <pre>
-       * Required. The set of allowed values for this enum. This set must not be
-       * empty, the display names of the values in this set must not be empty and
-       * the display names of the values must be case-insensitively unique within
-       * this set. Currently, enum values can only be added to the list of allowed
-       * values. Deletion and renaming of enum values are not supported. Can have
-       * up to 500 allowed values.
+       * Required on create; optional on update. The set of allowed values for
+       * this enum. This set must not be empty, the display names of the values in
+       * this set must not be empty and the display names of the values must be
+       * case-insensitively unique within this set. Currently, enum values can
+       * only be added to the list of allowed values. Deletion and renaming of
+       * enum values are not supported. Can have up to 500 allowed values.
        * </pre>
        *
        * <code>
@@ -1668,12 +1668,12 @@ public Builder setAllowedValues(
        *
        *
        * <pre>
-       * Required. The set of allowed values for this enum. This set must not be
-       * empty, the display names of the values in this set must not be empty and
-       * the display names of the values must be case-insensitively unique within
-       * this set. Currently, enum values can only be added to the list of allowed
-       * values. Deletion and renaming of enum values are not supported. Can have
-       * up to 500 allowed values.
+       * Required on create; optional on update. The set of allowed values for
+       * this enum. This set must not be empty, the display names of the values in
+       * this set must not be empty and the display names of the values must be
+       * case-insensitively unique within this set. Currently, enum values can
+       * only be added to the list of allowed values. Deletion and renaming of
+       * enum values are not supported. Can have up to 500 allowed values.
        * </pre>
        *
        * <code>
@@ -1696,12 +1696,12 @@ public Builder setAllowedValues(
        *
        *
        * <pre>
-       * Required. The set of allowed values for this enum. This set must not be
-       * empty, the display names of the values in this set must not be empty and
-       * the display names of the values must be case-insensitively unique within
-       * this set. Currently, enum values can only be added to the list of allowed
-       * values. Deletion and renaming of enum values are not supported. Can have
-       * up to 500 allowed values.
+       * Required on create; optional on update. The set of allowed values for
+       * this enum. This set must not be empty, the display names of the values in
+       * this set must not be empty and the display names of the values must be
+       * case-insensitively unique within this set. Currently, enum values can
+       * only be added to the list of allowed values. Deletion and renaming of
+       * enum values are not supported. Can have up to 500 allowed values.
        * </pre>
        *
        * <code>
@@ -1726,12 +1726,12 @@ public Builder addAllowedValues(
        *
        *
        * <pre>
-       * Required. The set of allowed values for this enum. This set must not be
-       * empty, the display names of the values in this set must not be empty and
-       * the display names of the values must be case-insensitively unique within
-       * this set. Currently, enum values can only be added to the list of allowed
-       * values. Deletion and renaming of enum values are not supported. Can have
-       * up to 500 allowed values.
+       * Required on create; optional on update. The set of allowed values for
+       * this enum. This set must not be empty, the display names of the values in
+       * this set must not be empty and the display names of the values must be
+       * case-insensitively unique within this set. Currently, enum values can
+       * only be added to the list of allowed values. Deletion and renaming of
+       * enum values are not supported. Can have up to 500 allowed values.
        * </pre>
        *
        * <code>
@@ -1756,12 +1756,12 @@ public Builder addAllowedValues(
        *
        *
        * <pre>
-       * Required. The set of allowed values for this enum. This set must not be
-       * empty, the display names of the values in this set must not be empty and
-       * the display names of the values must be case-insensitively unique within
-       * this set. Currently, enum values can only be added to the list of allowed
-       * values. Deletion and renaming of enum values are not supported. Can have
-       * up to 500 allowed values.
+       * Required on create; optional on update. The set of allowed values for
+       * this enum. This set must not be empty, the display names of the values in
+       * this set must not be empty and the display names of the values must be
+       * case-insensitively unique within this set. Currently, enum values can
+       * only be added to the list of allowed values. Deletion and renaming of
+       * enum values are not supported. Can have up to 500 allowed values.
        * </pre>
        *
        * <code>
@@ -1783,12 +1783,12 @@ public Builder addAllowedValues(
        *
        *
        * <pre>
-       * Required. The set of allowed values for this enum. This set must not be
-       * empty, the display names of the values in this set must not be empty and
-       * the display names of the values must be case-insensitively unique within
-       * this set. Currently, enum values can only be added to the list of allowed
-       * values. Deletion and renaming of enum values are not supported. Can have
-       * up to 500 allowed values.
+       * Required on create; optional on update. The set of allowed values for
+       * this enum. This set must not be empty, the display names of the values in
+       * this set must not be empty and the display names of the values must be
+       * case-insensitively unique within this set. Currently, enum values can
+       * only be added to the list of allowed values. Deletion and renaming of
+       * enum values are not supported. Can have up to 500 allowed values.
        * </pre>
        *
        * <code>
@@ -1811,12 +1811,12 @@ public Builder addAllowedValues(
        *
        *
        * <pre>
-       * Required. The set of allowed values for this enum. This set must not be
-       * empty, the display names of the values in this set must not be empty and
-       * the display names of the values must be case-insensitively unique within
-       * this set. Currently, enum values can only be added to the list of allowed
-       * values. Deletion and renaming of enum values are not supported. Can have
-       * up to 500 allowed values.
+       * Required on create; optional on update. The set of allowed values for
+       * this enum. This set must not be empty, the display names of the values in
+       * this set must not be empty and the display names of the values must be
+       * case-insensitively unique within this set. Currently, enum values can
+       * only be added to the list of allowed values. Deletion and renaming of
+       * enum values are not supported. Can have up to 500 allowed values.
        * </pre>
        *
        * <code>
@@ -1839,12 +1839,12 @@ public Builder addAllAllowedValues(
        *
        *
        * <pre>
-       * Required. The set of allowed values for this enum. This set must not be
-       * empty, the display names of the values in this set must not be empty and
-       * the display names of the values must be case-insensitively unique within
-       * this set. Currently, enum values can only be added to the list of allowed
-       * values. Deletion and renaming of enum values are not supported. Can have
-       * up to 500 allowed values.
+       * Required on create; optional on update. The set of allowed values for
+       * this enum. This set must not be empty, the display names of the values in
+       * this set must not be empty and the display names of the values must be
+       * case-insensitively unique within this set. Currently, enum values can
+       * only be added to the list of allowed values. Deletion and renaming of
+       * enum values are not supported. Can have up to 500 allowed values.
        * </pre>
        *
        * <code>
@@ -1865,12 +1865,12 @@ public Builder clearAllowedValues() {
        *
        *
        * <pre>
-       * Required. The set of allowed values for this enum. This set must not be
-       * empty, the display names of the values in this set must not be empty and
-       * the display names of the values must be case-insensitively unique within
-       * this set. Currently, enum values can only be added to the list of allowed
-       * values. Deletion and renaming of enum values are not supported. Can have
-       * up to 500 allowed values.
+       * Required on create; optional on update. The set of allowed values for
+       * this enum. This set must not be empty, the display names of the values in
+       * this set must not be empty and the display names of the values must be
+       * case-insensitively unique within this set. Currently, enum values can
+       * only be added to the list of allowed values. Deletion and renaming of
+       * enum values are not supported. Can have up to 500 allowed values.
        * </pre>
        *
        * <code>
@@ -1891,12 +1891,12 @@ public Builder removeAllowedValues(int index) {
        *
        *
        * <pre>
-       * Required. The set of allowed values for this enum. This set must not be
-       * empty, the display names of the values in this set must not be empty and
-       * the display names of the values must be case-insensitively unique within
-       * this set. Currently, enum values can only be added to the list of allowed
-       * values. Deletion and renaming of enum values are not supported. Can have
-       * up to 500 allowed values.
+       * Required on create; optional on update. The set of allowed values for
+       * this enum. This set must not be empty, the display names of the values in
+       * this set must not be empty and the display names of the values must be
+       * case-insensitively unique within this set. Currently, enum values can
+       * only be added to the list of allowed values. Deletion and renaming of
+       * enum values are not supported. Can have up to 500 allowed values.
        * </pre>
        *
        * <code>
@@ -1911,12 +1911,12 @@ public Builder removeAllowedValues(int index) {
        *
        *
        * <pre>
-       * Required. The set of allowed values for this enum. This set must not be
-       * empty, the display names of the values in this set must not be empty and
-       * the display names of the values must be case-insensitively unique within
-       * this set. Currently, enum values can only be added to the list of allowed
-       * values. Deletion and renaming of enum values are not supported. Can have
-       * up to 500 allowed values.
+       * Required on create; optional on update. The set of allowed values for
+       * this enum. This set must not be empty, the display names of the values in
+       * this set must not be empty and the display names of the values must be
+       * case-insensitively unique within this set. Currently, enum values can
+       * only be added to the list of allowed values. Deletion and renaming of
+       * enum values are not supported. Can have up to 500 allowed values.
        * </pre>
        *
        * <code>
@@ -1935,12 +1935,12 @@ public Builder removeAllowedValues(int index) {
        *
        *
        * <pre>
-       * Required. The set of allowed values for this enum. This set must not be
-       * empty, the display names of the values in this set must not be empty and
-       * the display names of the values must be case-insensitively unique within
-       * this set. Currently, enum values can only be added to the list of allowed
-       * values. Deletion and renaming of enum values are not supported. Can have
-       * up to 500 allowed values.
+       * Required on create; optional on update. The set of allowed values for
+       * this enum. This set must not be empty, the display names of the values in
+       * this set must not be empty and the display names of the values must be
+       * case-insensitively unique within this set. Currently, enum values can
+       * only be added to the list of allowed values. Deletion and renaming of
+       * enum values are not supported. Can have up to 500 allowed values.
        * </pre>
        *
        * <code>
@@ -1960,12 +1960,12 @@ public Builder removeAllowedValues(int index) {
        *
        *
        * <pre>
-       * Required. The set of allowed values for this enum. This set must not be
-       * empty, the display names of the values in this set must not be empty and
-       * the display names of the values must be case-insensitively unique within
-       * this set. Currently, enum values can only be added to the list of allowed
-       * values. Deletion and renaming of enum values are not supported. Can have
-       * up to 500 allowed values.
+       * Required on create; optional on update. The set of allowed values for
+       * this enum. This set must not be empty, the display names of the values in
+       * this set must not be empty and the display names of the values must be
+       * case-insensitively unique within this set. Currently, enum values can
+       * only be added to the list of allowed values. Deletion and renaming of
+       * enum values are not supported. Can have up to 500 allowed values.
        * </pre>
        *
        * <code>
@@ -1982,12 +1982,12 @@ public Builder removeAllowedValues(int index) {
        *
        *
        * <pre>
-       * Required. The set of allowed values for this enum. This set must not be
-       * empty, the display names of the values in this set must not be empty and
-       * the display names of the values must be case-insensitively unique within
-       * this set. Currently, enum values can only be added to the list of allowed
-       * values. Deletion and renaming of enum values are not supported. Can have
-       * up to 500 allowed values.
+       * Required on create; optional on update. The set of allowed values for
+       * this enum. This set must not be empty, the display names of the values in
+       * this set must not be empty and the display names of the values must be
+       * case-insensitively unique within this set. Currently, enum values can
+       * only be added to the list of allowed values. Deletion and renaming of
+       * enum values are not supported. Can have up to 500 allowed values.
        * </pre>
        *
        * <code>
@@ -2005,12 +2005,12 @@ public Builder removeAllowedValues(int index) {
        *
        *
        * <pre>
-       * Required. The set of allowed values for this enum. This set must not be
-       * empty, the display names of the values in this set must not be empty and
-       * the display names of the values must be case-insensitively unique within
-       * this set. Currently, enum values can only be added to the list of allowed
-       * values. Deletion and renaming of enum values are not supported. Can have
-       * up to 500 allowed values.
+       * Required on create; optional on update. The set of allowed values for
+       * this enum. This set must not be empty, the display names of the values in
+       * this set must not be empty and the display names of the values must be
+       * case-insensitively unique within this set. Currently, enum values can
+       * only be added to the list of allowed values. Deletion and renaming of
+       * enum values are not supported. Can have up to 500 allowed values.
        * </pre>
        *
        * <code>
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/GcsFileSpec.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/GcsFileSpec.java
new file mode 100644
index 000000000000..f680f5e186f0
--- /dev/null
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/GcsFileSpec.java
@@ -0,0 +1,965 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: google/cloud/datacatalog/v1beta1/gcs_fileset_spec.proto
+
+package com.google.cloud.datacatalog;
+
+/**
+ *
+ *
+ * <pre>
+ * Specifications of a single file in GCS.
+ * </pre>
+ *
+ * Protobuf type {@code google.cloud.datacatalog.v1beta1.GcsFileSpec}
+ */
+public final class GcsFileSpec extends com.google.protobuf.GeneratedMessageV3
+    implements
+    // @@protoc_insertion_point(message_implements:google.cloud.datacatalog.v1beta1.GcsFileSpec)
+    GcsFileSpecOrBuilder {
+  private static final long serialVersionUID = 0L;
+  // Use GcsFileSpec.newBuilder() to construct.
+  private GcsFileSpec(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+    super(builder);
+  }
+
+  private GcsFileSpec() {
+    filePath_ = "";
+  }
+
+  @java.lang.Override
+  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
+    return this.unknownFields;
+  }
+
+  private GcsFileSpec(
+      com.google.protobuf.CodedInputStream input,
+      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
+    int mutable_bitField0_ = 0;
+    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+        com.google.protobuf.UnknownFieldSet.newBuilder();
+    try {
+      boolean done = false;
+      while (!done) {
+        int tag = input.readTag();
+        switch (tag) {
+          case 0:
+            done = true;
+            break;
+          case 10:
+            {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              filePath_ = s;
+              break;
+            }
+          case 18:
+            {
+              com.google.cloud.datacatalog.SystemTimestamps.Builder subBuilder = null;
+              if (gcsTimestamps_ != null) {
+                subBuilder = gcsTimestamps_.toBuilder();
+              }
+              gcsTimestamps_ =
+                  input.readMessage(
+                      com.google.cloud.datacatalog.SystemTimestamps.parser(), extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(gcsTimestamps_);
+                gcsTimestamps_ = subBuilder.buildPartial();
+              }
+
+              break;
+            }
+          case 32:
+            {
+              sizeBytes_ = input.readInt64();
+              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.datacatalog.GcsFilesetSpecOuterClass
+        .internal_static_google_cloud_datacatalog_v1beta1_GcsFileSpec_descriptor;
+  }
+
+  @java.lang.Override
+  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internalGetFieldAccessorTable() {
+    return com.google.cloud.datacatalog.GcsFilesetSpecOuterClass
+        .internal_static_google_cloud_datacatalog_v1beta1_GcsFileSpec_fieldAccessorTable
+        .ensureFieldAccessorsInitialized(
+            com.google.cloud.datacatalog.GcsFileSpec.class,
+            com.google.cloud.datacatalog.GcsFileSpec.Builder.class);
+  }
+
+  public static final int FILE_PATH_FIELD_NUMBER = 1;
+  private volatile java.lang.Object filePath_;
+  /**
+   *
+   *
+   * <pre>
+   * Required. The full file path. Example: `gs://bucket_name/a/b.txt`.
+   * </pre>
+   *
+   * <code>string file_path = 1 [(.google.api.field_behavior) = REQUIRED];</code>
+   */
+  public java.lang.String getFilePath() {
+    java.lang.Object ref = filePath_;
+    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();
+      filePath_ = s;
+      return s;
+    }
+  }
+  /**
+   *
+   *
+   * <pre>
+   * Required. The full file path. Example: `gs://bucket_name/a/b.txt`.
+   * </pre>
+   *
+   * <code>string file_path = 1 [(.google.api.field_behavior) = REQUIRED];</code>
+   */
+  public com.google.protobuf.ByteString getFilePathBytes() {
+    java.lang.Object ref = filePath_;
+    if (ref instanceof java.lang.String) {
+      com.google.protobuf.ByteString b =
+          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+      filePath_ = b;
+      return b;
+    } else {
+      return (com.google.protobuf.ByteString) ref;
+    }
+  }
+
+  public static final int GCS_TIMESTAMPS_FIELD_NUMBER = 2;
+  private com.google.cloud.datacatalog.SystemTimestamps gcsTimestamps_;
+  /**
+   *
+   *
+   * <pre>
+   * Output only. Timestamps about the GCS file.
+   * </pre>
+   *
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.SystemTimestamps gcs_timestamps = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+   * </code>
+   */
+  public boolean hasGcsTimestamps() {
+    return gcsTimestamps_ != null;
+  }
+  /**
+   *
+   *
+   * <pre>
+   * Output only. Timestamps about the GCS file.
+   * </pre>
+   *
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.SystemTimestamps gcs_timestamps = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+   * </code>
+   */
+  public com.google.cloud.datacatalog.SystemTimestamps getGcsTimestamps() {
+    return gcsTimestamps_ == null
+        ? com.google.cloud.datacatalog.SystemTimestamps.getDefaultInstance()
+        : gcsTimestamps_;
+  }
+  /**
+   *
+   *
+   * <pre>
+   * Output only. Timestamps about the GCS file.
+   * </pre>
+   *
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.SystemTimestamps gcs_timestamps = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+   * </code>
+   */
+  public com.google.cloud.datacatalog.SystemTimestampsOrBuilder getGcsTimestampsOrBuilder() {
+    return getGcsTimestamps();
+  }
+
+  public static final int SIZE_BYTES_FIELD_NUMBER = 4;
+  private long sizeBytes_;
+  /**
+   *
+   *
+   * <pre>
+   * Output only. The size of the file, in bytes.
+   * </pre>
+   *
+   * <code>int64 size_bytes = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
+   */
+  public long getSizeBytes() {
+    return sizeBytes_;
+  }
+
+  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 (!getFilePathBytes().isEmpty()) {
+      com.google.protobuf.GeneratedMessageV3.writeString(output, 1, filePath_);
+    }
+    if (gcsTimestamps_ != null) {
+      output.writeMessage(2, getGcsTimestamps());
+    }
+    if (sizeBytes_ != 0L) {
+      output.writeInt64(4, sizeBytes_);
+    }
+    unknownFields.writeTo(output);
+  }
+
+  @java.lang.Override
+  public int getSerializedSize() {
+    int size = memoizedSize;
+    if (size != -1) return size;
+
+    size = 0;
+    if (!getFilePathBytes().isEmpty()) {
+      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, filePath_);
+    }
+    if (gcsTimestamps_ != null) {
+      size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getGcsTimestamps());
+    }
+    if (sizeBytes_ != 0L) {
+      size += com.google.protobuf.CodedOutputStream.computeInt64Size(4, sizeBytes_);
+    }
+    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.datacatalog.GcsFileSpec)) {
+      return super.equals(obj);
+    }
+    com.google.cloud.datacatalog.GcsFileSpec other = (com.google.cloud.datacatalog.GcsFileSpec) obj;
+
+    if (!getFilePath().equals(other.getFilePath())) return false;
+    if (hasGcsTimestamps() != other.hasGcsTimestamps()) return false;
+    if (hasGcsTimestamps()) {
+      if (!getGcsTimestamps().equals(other.getGcsTimestamps())) return false;
+    }
+    if (getSizeBytes() != other.getSizeBytes()) 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) + FILE_PATH_FIELD_NUMBER;
+    hash = (53 * hash) + getFilePath().hashCode();
+    if (hasGcsTimestamps()) {
+      hash = (37 * hash) + GCS_TIMESTAMPS_FIELD_NUMBER;
+      hash = (53 * hash) + getGcsTimestamps().hashCode();
+    }
+    hash = (37 * hash) + SIZE_BYTES_FIELD_NUMBER;
+    hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getSizeBytes());
+    hash = (29 * hash) + unknownFields.hashCode();
+    memoizedHashCode = hash;
+    return hash;
+  }
+
+  public static com.google.cloud.datacatalog.GcsFileSpec parseFrom(java.nio.ByteBuffer data)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data);
+  }
+
+  public static com.google.cloud.datacatalog.GcsFileSpec 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.datacatalog.GcsFileSpec parseFrom(
+      com.google.protobuf.ByteString data)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data);
+  }
+
+  public static com.google.cloud.datacatalog.GcsFileSpec 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.datacatalog.GcsFileSpec parseFrom(byte[] data)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data);
+  }
+
+  public static com.google.cloud.datacatalog.GcsFileSpec parseFrom(
+      byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data, extensionRegistry);
+  }
+
+  public static com.google.cloud.datacatalog.GcsFileSpec parseFrom(java.io.InputStream input)
+      throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+  }
+
+  public static com.google.cloud.datacatalog.GcsFileSpec 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.datacatalog.GcsFileSpec parseDelimitedFrom(
+      java.io.InputStream input) throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
+  }
+
+  public static com.google.cloud.datacatalog.GcsFileSpec 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.datacatalog.GcsFileSpec parseFrom(
+      com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+  }
+
+  public static com.google.cloud.datacatalog.GcsFileSpec 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.datacatalog.GcsFileSpec 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>
+   * Specifications of a single file in GCS.
+   * </pre>
+   *
+   * Protobuf type {@code google.cloud.datacatalog.v1beta1.GcsFileSpec}
+   */
+  public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
+      implements
+      // @@protoc_insertion_point(builder_implements:google.cloud.datacatalog.v1beta1.GcsFileSpec)
+      com.google.cloud.datacatalog.GcsFileSpecOrBuilder {
+    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+      return com.google.cloud.datacatalog.GcsFilesetSpecOuterClass
+          .internal_static_google_cloud_datacatalog_v1beta1_GcsFileSpec_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return com.google.cloud.datacatalog.GcsFilesetSpecOuterClass
+          .internal_static_google_cloud_datacatalog_v1beta1_GcsFileSpec_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              com.google.cloud.datacatalog.GcsFileSpec.class,
+              com.google.cloud.datacatalog.GcsFileSpec.Builder.class);
+    }
+
+    // Construct using com.google.cloud.datacatalog.GcsFileSpec.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();
+      filePath_ = "";
+
+      if (gcsTimestampsBuilder_ == null) {
+        gcsTimestamps_ = null;
+      } else {
+        gcsTimestamps_ = null;
+        gcsTimestampsBuilder_ = null;
+      }
+      sizeBytes_ = 0L;
+
+      return this;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
+      return com.google.cloud.datacatalog.GcsFilesetSpecOuterClass
+          .internal_static_google_cloud_datacatalog_v1beta1_GcsFileSpec_descriptor;
+    }
+
+    @java.lang.Override
+    public com.google.cloud.datacatalog.GcsFileSpec getDefaultInstanceForType() {
+      return com.google.cloud.datacatalog.GcsFileSpec.getDefaultInstance();
+    }
+
+    @java.lang.Override
+    public com.google.cloud.datacatalog.GcsFileSpec build() {
+      com.google.cloud.datacatalog.GcsFileSpec result = buildPartial();
+      if (!result.isInitialized()) {
+        throw newUninitializedMessageException(result);
+      }
+      return result;
+    }
+
+    @java.lang.Override
+    public com.google.cloud.datacatalog.GcsFileSpec buildPartial() {
+      com.google.cloud.datacatalog.GcsFileSpec result =
+          new com.google.cloud.datacatalog.GcsFileSpec(this);
+      result.filePath_ = filePath_;
+      if (gcsTimestampsBuilder_ == null) {
+        result.gcsTimestamps_ = gcsTimestamps_;
+      } else {
+        result.gcsTimestamps_ = gcsTimestampsBuilder_.build();
+      }
+      result.sizeBytes_ = sizeBytes_;
+      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.datacatalog.GcsFileSpec) {
+        return mergeFrom((com.google.cloud.datacatalog.GcsFileSpec) other);
+      } else {
+        super.mergeFrom(other);
+        return this;
+      }
+    }
+
+    public Builder mergeFrom(com.google.cloud.datacatalog.GcsFileSpec other) {
+      if (other == com.google.cloud.datacatalog.GcsFileSpec.getDefaultInstance()) return this;
+      if (!other.getFilePath().isEmpty()) {
+        filePath_ = other.filePath_;
+        onChanged();
+      }
+      if (other.hasGcsTimestamps()) {
+        mergeGcsTimestamps(other.getGcsTimestamps());
+      }
+      if (other.getSizeBytes() != 0L) {
+        setSizeBytes(other.getSizeBytes());
+      }
+      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.datacatalog.GcsFileSpec parsedMessage = null;
+      try {
+        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        parsedMessage = (com.google.cloud.datacatalog.GcsFileSpec) e.getUnfinishedMessage();
+        throw e.unwrapIOException();
+      } finally {
+        if (parsedMessage != null) {
+          mergeFrom(parsedMessage);
+        }
+      }
+      return this;
+    }
+
+    private java.lang.Object filePath_ = "";
+    /**
+     *
+     *
+     * <pre>
+     * Required. The full file path. Example: `gs://bucket_name/a/b.txt`.
+     * </pre>
+     *
+     * <code>string file_path = 1 [(.google.api.field_behavior) = REQUIRED];</code>
+     */
+    public java.lang.String getFilePath() {
+      java.lang.Object ref = filePath_;
+      if (!(ref instanceof java.lang.String)) {
+        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        filePath_ = s;
+        return s;
+      } else {
+        return (java.lang.String) ref;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. The full file path. Example: `gs://bucket_name/a/b.txt`.
+     * </pre>
+     *
+     * <code>string file_path = 1 [(.google.api.field_behavior) = REQUIRED];</code>
+     */
+    public com.google.protobuf.ByteString getFilePathBytes() {
+      java.lang.Object ref = filePath_;
+      if (ref instanceof String) {
+        com.google.protobuf.ByteString b =
+            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+        filePath_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. The full file path. Example: `gs://bucket_name/a/b.txt`.
+     * </pre>
+     *
+     * <code>string file_path = 1 [(.google.api.field_behavior) = REQUIRED];</code>
+     */
+    public Builder setFilePath(java.lang.String value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+
+      filePath_ = value;
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. The full file path. Example: `gs://bucket_name/a/b.txt`.
+     * </pre>
+     *
+     * <code>string file_path = 1 [(.google.api.field_behavior) = REQUIRED];</code>
+     */
+    public Builder clearFilePath() {
+
+      filePath_ = getDefaultInstance().getFilePath();
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. The full file path. Example: `gs://bucket_name/a/b.txt`.
+     * </pre>
+     *
+     * <code>string file_path = 1 [(.google.api.field_behavior) = REQUIRED];</code>
+     */
+    public Builder setFilePathBytes(com.google.protobuf.ByteString value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+      checkByteStringIsUtf8(value);
+
+      filePath_ = value;
+      onChanged();
+      return this;
+    }
+
+    private com.google.cloud.datacatalog.SystemTimestamps gcsTimestamps_;
+    private com.google.protobuf.SingleFieldBuilderV3<
+            com.google.cloud.datacatalog.SystemTimestamps,
+            com.google.cloud.datacatalog.SystemTimestamps.Builder,
+            com.google.cloud.datacatalog.SystemTimestampsOrBuilder>
+        gcsTimestampsBuilder_;
+    /**
+     *
+     *
+     * <pre>
+     * Output only. Timestamps about the GCS file.
+     * </pre>
+     *
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.SystemTimestamps gcs_timestamps = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
+     */
+    public boolean hasGcsTimestamps() {
+      return gcsTimestampsBuilder_ != null || gcsTimestamps_ != null;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Output only. Timestamps about the GCS file.
+     * </pre>
+     *
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.SystemTimestamps gcs_timestamps = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
+     */
+    public com.google.cloud.datacatalog.SystemTimestamps getGcsTimestamps() {
+      if (gcsTimestampsBuilder_ == null) {
+        return gcsTimestamps_ == null
+            ? com.google.cloud.datacatalog.SystemTimestamps.getDefaultInstance()
+            : gcsTimestamps_;
+      } else {
+        return gcsTimestampsBuilder_.getMessage();
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Output only. Timestamps about the GCS file.
+     * </pre>
+     *
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.SystemTimestamps gcs_timestamps = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
+     */
+    public Builder setGcsTimestamps(com.google.cloud.datacatalog.SystemTimestamps value) {
+      if (gcsTimestampsBuilder_ == null) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        gcsTimestamps_ = value;
+        onChanged();
+      } else {
+        gcsTimestampsBuilder_.setMessage(value);
+      }
+
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Output only. Timestamps about the GCS file.
+     * </pre>
+     *
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.SystemTimestamps gcs_timestamps = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
+     */
+    public Builder setGcsTimestamps(
+        com.google.cloud.datacatalog.SystemTimestamps.Builder builderForValue) {
+      if (gcsTimestampsBuilder_ == null) {
+        gcsTimestamps_ = builderForValue.build();
+        onChanged();
+      } else {
+        gcsTimestampsBuilder_.setMessage(builderForValue.build());
+      }
+
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Output only. Timestamps about the GCS file.
+     * </pre>
+     *
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.SystemTimestamps gcs_timestamps = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
+     */
+    public Builder mergeGcsTimestamps(com.google.cloud.datacatalog.SystemTimestamps value) {
+      if (gcsTimestampsBuilder_ == null) {
+        if (gcsTimestamps_ != null) {
+          gcsTimestamps_ =
+              com.google.cloud.datacatalog.SystemTimestamps.newBuilder(gcsTimestamps_)
+                  .mergeFrom(value)
+                  .buildPartial();
+        } else {
+          gcsTimestamps_ = value;
+        }
+        onChanged();
+      } else {
+        gcsTimestampsBuilder_.mergeFrom(value);
+      }
+
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Output only. Timestamps about the GCS file.
+     * </pre>
+     *
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.SystemTimestamps gcs_timestamps = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
+     */
+    public Builder clearGcsTimestamps() {
+      if (gcsTimestampsBuilder_ == null) {
+        gcsTimestamps_ = null;
+        onChanged();
+      } else {
+        gcsTimestamps_ = null;
+        gcsTimestampsBuilder_ = null;
+      }
+
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Output only. Timestamps about the GCS file.
+     * </pre>
+     *
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.SystemTimestamps gcs_timestamps = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
+     */
+    public com.google.cloud.datacatalog.SystemTimestamps.Builder getGcsTimestampsBuilder() {
+
+      onChanged();
+      return getGcsTimestampsFieldBuilder().getBuilder();
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Output only. Timestamps about the GCS file.
+     * </pre>
+     *
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.SystemTimestamps gcs_timestamps = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
+     */
+    public com.google.cloud.datacatalog.SystemTimestampsOrBuilder getGcsTimestampsOrBuilder() {
+      if (gcsTimestampsBuilder_ != null) {
+        return gcsTimestampsBuilder_.getMessageOrBuilder();
+      } else {
+        return gcsTimestamps_ == null
+            ? com.google.cloud.datacatalog.SystemTimestamps.getDefaultInstance()
+            : gcsTimestamps_;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Output only. Timestamps about the GCS file.
+     * </pre>
+     *
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.SystemTimestamps gcs_timestamps = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
+     */
+    private com.google.protobuf.SingleFieldBuilderV3<
+            com.google.cloud.datacatalog.SystemTimestamps,
+            com.google.cloud.datacatalog.SystemTimestamps.Builder,
+            com.google.cloud.datacatalog.SystemTimestampsOrBuilder>
+        getGcsTimestampsFieldBuilder() {
+      if (gcsTimestampsBuilder_ == null) {
+        gcsTimestampsBuilder_ =
+            new com.google.protobuf.SingleFieldBuilderV3<
+                com.google.cloud.datacatalog.SystemTimestamps,
+                com.google.cloud.datacatalog.SystemTimestamps.Builder,
+                com.google.cloud.datacatalog.SystemTimestampsOrBuilder>(
+                getGcsTimestamps(), getParentForChildren(), isClean());
+        gcsTimestamps_ = null;
+      }
+      return gcsTimestampsBuilder_;
+    }
+
+    private long sizeBytes_;
+    /**
+     *
+     *
+     * <pre>
+     * Output only. The size of the file, in bytes.
+     * </pre>
+     *
+     * <code>int64 size_bytes = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
+     */
+    public long getSizeBytes() {
+      return sizeBytes_;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Output only. The size of the file, in bytes.
+     * </pre>
+     *
+     * <code>int64 size_bytes = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
+     */
+    public Builder setSizeBytes(long value) {
+
+      sizeBytes_ = value;
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Output only. The size of the file, in bytes.
+     * </pre>
+     *
+     * <code>int64 size_bytes = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
+     */
+    public Builder clearSizeBytes() {
+
+      sizeBytes_ = 0L;
+      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.datacatalog.v1beta1.GcsFileSpec)
+  }
+
+  // @@protoc_insertion_point(class_scope:google.cloud.datacatalog.v1beta1.GcsFileSpec)
+  private static final com.google.cloud.datacatalog.GcsFileSpec DEFAULT_INSTANCE;
+
+  static {
+    DEFAULT_INSTANCE = new com.google.cloud.datacatalog.GcsFileSpec();
+  }
+
+  public static com.google.cloud.datacatalog.GcsFileSpec getDefaultInstance() {
+    return DEFAULT_INSTANCE;
+  }
+
+  private static final com.google.protobuf.Parser<GcsFileSpec> PARSER =
+      new com.google.protobuf.AbstractParser<GcsFileSpec>() {
+        @java.lang.Override
+        public GcsFileSpec parsePartialFrom(
+            com.google.protobuf.CodedInputStream input,
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+            throws com.google.protobuf.InvalidProtocolBufferException {
+          return new GcsFileSpec(input, extensionRegistry);
+        }
+      };
+
+  public static com.google.protobuf.Parser<GcsFileSpec> parser() {
+    return PARSER;
+  }
+
+  @java.lang.Override
+  public com.google.protobuf.Parser<GcsFileSpec> getParserForType() {
+    return PARSER;
+  }
+
+  @java.lang.Override
+  public com.google.cloud.datacatalog.GcsFileSpec getDefaultInstanceForType() {
+    return DEFAULT_INSTANCE;
+  }
+}
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/GcsFileSpecOrBuilder.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/GcsFileSpecOrBuilder.java
new file mode 100644
index 000000000000..b53bdb908b2b
--- /dev/null
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/GcsFileSpecOrBuilder.java
@@ -0,0 +1,79 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: google/cloud/datacatalog/v1beta1/gcs_fileset_spec.proto
+
+package com.google.cloud.datacatalog;
+
+public interface GcsFileSpecOrBuilder
+    extends
+    // @@protoc_insertion_point(interface_extends:google.cloud.datacatalog.v1beta1.GcsFileSpec)
+    com.google.protobuf.MessageOrBuilder {
+
+  /**
+   *
+   *
+   * <pre>
+   * Required. The full file path. Example: `gs://bucket_name/a/b.txt`.
+   * </pre>
+   *
+   * <code>string file_path = 1 [(.google.api.field_behavior) = REQUIRED];</code>
+   */
+  java.lang.String getFilePath();
+  /**
+   *
+   *
+   * <pre>
+   * Required. The full file path. Example: `gs://bucket_name/a/b.txt`.
+   * </pre>
+   *
+   * <code>string file_path = 1 [(.google.api.field_behavior) = REQUIRED];</code>
+   */
+  com.google.protobuf.ByteString getFilePathBytes();
+
+  /**
+   *
+   *
+   * <pre>
+   * Output only. Timestamps about the GCS file.
+   * </pre>
+   *
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.SystemTimestamps gcs_timestamps = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+   * </code>
+   */
+  boolean hasGcsTimestamps();
+  /**
+   *
+   *
+   * <pre>
+   * Output only. Timestamps about the GCS file.
+   * </pre>
+   *
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.SystemTimestamps gcs_timestamps = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+   * </code>
+   */
+  com.google.cloud.datacatalog.SystemTimestamps getGcsTimestamps();
+  /**
+   *
+   *
+   * <pre>
+   * Output only. Timestamps about the GCS file.
+   * </pre>
+   *
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.SystemTimestamps gcs_timestamps = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+   * </code>
+   */
+  com.google.cloud.datacatalog.SystemTimestampsOrBuilder getGcsTimestampsOrBuilder();
+
+  /**
+   *
+   *
+   * <pre>
+   * Output only. The size of the file, in bytes.
+   * </pre>
+   *
+   * <code>int64 size_bytes = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
+   */
+  long getSizeBytes();
+}
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/GcsFilesetSpec.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/GcsFilesetSpec.java
new file mode 100644
index 000000000000..72d6e622ea07
--- /dev/null
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/GcsFilesetSpec.java
@@ -0,0 +1,1335 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: google/cloud/datacatalog/v1beta1/gcs_fileset_spec.proto
+
+package com.google.cloud.datacatalog;
+
+/**
+ *
+ *
+ * <pre>
+ * Describes a Cloud Storage fileset entry.
+ * </pre>
+ *
+ * Protobuf type {@code google.cloud.datacatalog.v1beta1.GcsFilesetSpec}
+ */
+public final class GcsFilesetSpec extends com.google.protobuf.GeneratedMessageV3
+    implements
+    // @@protoc_insertion_point(message_implements:google.cloud.datacatalog.v1beta1.GcsFilesetSpec)
+    GcsFilesetSpecOrBuilder {
+  private static final long serialVersionUID = 0L;
+  // Use GcsFilesetSpec.newBuilder() to construct.
+  private GcsFilesetSpec(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+    super(builder);
+  }
+
+  private GcsFilesetSpec() {
+    filePatterns_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+    sampleGcsFileSpecs_ = java.util.Collections.emptyList();
+  }
+
+  @java.lang.Override
+  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
+    return this.unknownFields;
+  }
+
+  private GcsFilesetSpec(
+      com.google.protobuf.CodedInputStream input,
+      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
+    int mutable_bitField0_ = 0;
+    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+        com.google.protobuf.UnknownFieldSet.newBuilder();
+    try {
+      boolean done = false;
+      while (!done) {
+        int tag = input.readTag();
+        switch (tag) {
+          case 0:
+            done = true;
+            break;
+          case 10:
+            {
+              java.lang.String s = input.readStringRequireUtf8();
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                filePatterns_ = new com.google.protobuf.LazyStringArrayList();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              filePatterns_.add(s);
+              break;
+            }
+          case 18:
+            {
+              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
+                sampleGcsFileSpecs_ =
+                    new java.util.ArrayList<com.google.cloud.datacatalog.GcsFileSpec>();
+                mutable_bitField0_ |= 0x00000002;
+              }
+              sampleGcsFileSpecs_.add(
+                  input.readMessage(
+                      com.google.cloud.datacatalog.GcsFileSpec.parser(), extensionRegistry));
+              break;
+            }
+          default:
+            {
+              if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+        }
+      }
+    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+      throw e.setUnfinishedMessage(this);
+    } catch (java.io.IOException e) {
+      throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
+    } finally {
+      if (((mutable_bitField0_ & 0x00000001) != 0)) {
+        filePatterns_ = filePatterns_.getUnmodifiableView();
+      }
+      if (((mutable_bitField0_ & 0x00000002) != 0)) {
+        sampleGcsFileSpecs_ = java.util.Collections.unmodifiableList(sampleGcsFileSpecs_);
+      }
+      this.unknownFields = unknownFields.build();
+      makeExtensionsImmutable();
+    }
+  }
+
+  public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+    return com.google.cloud.datacatalog.GcsFilesetSpecOuterClass
+        .internal_static_google_cloud_datacatalog_v1beta1_GcsFilesetSpec_descriptor;
+  }
+
+  @java.lang.Override
+  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internalGetFieldAccessorTable() {
+    return com.google.cloud.datacatalog.GcsFilesetSpecOuterClass
+        .internal_static_google_cloud_datacatalog_v1beta1_GcsFilesetSpec_fieldAccessorTable
+        .ensureFieldAccessorsInitialized(
+            com.google.cloud.datacatalog.GcsFilesetSpec.class,
+            com.google.cloud.datacatalog.GcsFilesetSpec.Builder.class);
+  }
+
+  public static final int FILE_PATTERNS_FIELD_NUMBER = 1;
+  private com.google.protobuf.LazyStringList filePatterns_;
+  /**
+   *
+   *
+   * <pre>
+   * Required. Patterns to identify a set of files in Google Cloud Storage.
+   * Examples of valid file_patterns:
+   *  * `gs://bucket_name/&#42;`: matches all files in `bucket_name`
+   *  * `gs://bucket_name/file*`: matches files prefixed by `file` in
+   *                              `bucket_name`
+   *  * `gs://bucket_name/a/&#42;&#47;b`: matches all files in `bucket_name` that match
+   *                              `a/&#42;&#47;b` pattern, such as `a/c/b`, `a/d/b`
+   *  * `gs://another_bucket/a.txt`: matches `gs://another_bucket/a.txt`
+   * </pre>
+   *
+   * <code>repeated string file_patterns = 1 [(.google.api.field_behavior) = REQUIRED];</code>
+   */
+  public com.google.protobuf.ProtocolStringList getFilePatternsList() {
+    return filePatterns_;
+  }
+  /**
+   *
+   *
+   * <pre>
+   * Required. Patterns to identify a set of files in Google Cloud Storage.
+   * Examples of valid file_patterns:
+   *  * `gs://bucket_name/&#42;`: matches all files in `bucket_name`
+   *  * `gs://bucket_name/file*`: matches files prefixed by `file` in
+   *                              `bucket_name`
+   *  * `gs://bucket_name/a/&#42;&#47;b`: matches all files in `bucket_name` that match
+   *                              `a/&#42;&#47;b` pattern, such as `a/c/b`, `a/d/b`
+   *  * `gs://another_bucket/a.txt`: matches `gs://another_bucket/a.txt`
+   * </pre>
+   *
+   * <code>repeated string file_patterns = 1 [(.google.api.field_behavior) = REQUIRED];</code>
+   */
+  public int getFilePatternsCount() {
+    return filePatterns_.size();
+  }
+  /**
+   *
+   *
+   * <pre>
+   * Required. Patterns to identify a set of files in Google Cloud Storage.
+   * Examples of valid file_patterns:
+   *  * `gs://bucket_name/&#42;`: matches all files in `bucket_name`
+   *  * `gs://bucket_name/file*`: matches files prefixed by `file` in
+   *                              `bucket_name`
+   *  * `gs://bucket_name/a/&#42;&#47;b`: matches all files in `bucket_name` that match
+   *                              `a/&#42;&#47;b` pattern, such as `a/c/b`, `a/d/b`
+   *  * `gs://another_bucket/a.txt`: matches `gs://another_bucket/a.txt`
+   * </pre>
+   *
+   * <code>repeated string file_patterns = 1 [(.google.api.field_behavior) = REQUIRED];</code>
+   */
+  public java.lang.String getFilePatterns(int index) {
+    return filePatterns_.get(index);
+  }
+  /**
+   *
+   *
+   * <pre>
+   * Required. Patterns to identify a set of files in Google Cloud Storage.
+   * Examples of valid file_patterns:
+   *  * `gs://bucket_name/&#42;`: matches all files in `bucket_name`
+   *  * `gs://bucket_name/file*`: matches files prefixed by `file` in
+   *                              `bucket_name`
+   *  * `gs://bucket_name/a/&#42;&#47;b`: matches all files in `bucket_name` that match
+   *                              `a/&#42;&#47;b` pattern, such as `a/c/b`, `a/d/b`
+   *  * `gs://another_bucket/a.txt`: matches `gs://another_bucket/a.txt`
+   * </pre>
+   *
+   * <code>repeated string file_patterns = 1 [(.google.api.field_behavior) = REQUIRED];</code>
+   */
+  public com.google.protobuf.ByteString getFilePatternsBytes(int index) {
+    return filePatterns_.getByteString(index);
+  }
+
+  public static final int SAMPLE_GCS_FILE_SPECS_FIELD_NUMBER = 2;
+  private java.util.List<com.google.cloud.datacatalog.GcsFileSpec> sampleGcsFileSpecs_;
+  /**
+   *
+   *
+   * <pre>
+   * Output only. Sample files contained in this fileset, not all files contained in this
+   * fileset are represented here.
+   * </pre>
+   *
+   * <code>
+   * repeated .google.cloud.datacatalog.v1beta1.GcsFileSpec sample_gcs_file_specs = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+   * </code>
+   */
+  public java.util.List<com.google.cloud.datacatalog.GcsFileSpec> getSampleGcsFileSpecsList() {
+    return sampleGcsFileSpecs_;
+  }
+  /**
+   *
+   *
+   * <pre>
+   * Output only. Sample files contained in this fileset, not all files contained in this
+   * fileset are represented here.
+   * </pre>
+   *
+   * <code>
+   * repeated .google.cloud.datacatalog.v1beta1.GcsFileSpec sample_gcs_file_specs = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+   * </code>
+   */
+  public java.util.List<? extends com.google.cloud.datacatalog.GcsFileSpecOrBuilder>
+      getSampleGcsFileSpecsOrBuilderList() {
+    return sampleGcsFileSpecs_;
+  }
+  /**
+   *
+   *
+   * <pre>
+   * Output only. Sample files contained in this fileset, not all files contained in this
+   * fileset are represented here.
+   * </pre>
+   *
+   * <code>
+   * repeated .google.cloud.datacatalog.v1beta1.GcsFileSpec sample_gcs_file_specs = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+   * </code>
+   */
+  public int getSampleGcsFileSpecsCount() {
+    return sampleGcsFileSpecs_.size();
+  }
+  /**
+   *
+   *
+   * <pre>
+   * Output only. Sample files contained in this fileset, not all files contained in this
+   * fileset are represented here.
+   * </pre>
+   *
+   * <code>
+   * repeated .google.cloud.datacatalog.v1beta1.GcsFileSpec sample_gcs_file_specs = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+   * </code>
+   */
+  public com.google.cloud.datacatalog.GcsFileSpec getSampleGcsFileSpecs(int index) {
+    return sampleGcsFileSpecs_.get(index);
+  }
+  /**
+   *
+   *
+   * <pre>
+   * Output only. Sample files contained in this fileset, not all files contained in this
+   * fileset are represented here.
+   * </pre>
+   *
+   * <code>
+   * repeated .google.cloud.datacatalog.v1beta1.GcsFileSpec sample_gcs_file_specs = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+   * </code>
+   */
+  public com.google.cloud.datacatalog.GcsFileSpecOrBuilder getSampleGcsFileSpecsOrBuilder(
+      int index) {
+    return sampleGcsFileSpecs_.get(index);
+  }
+
+  private byte memoizedIsInitialized = -1;
+
+  @java.lang.Override
+  public final boolean isInitialized() {
+    byte isInitialized = memoizedIsInitialized;
+    if (isInitialized == 1) return true;
+    if (isInitialized == 0) return false;
+
+    memoizedIsInitialized = 1;
+    return true;
+  }
+
+  @java.lang.Override
+  public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+    for (int i = 0; i < filePatterns_.size(); i++) {
+      com.google.protobuf.GeneratedMessageV3.writeString(output, 1, filePatterns_.getRaw(i));
+    }
+    for (int i = 0; i < sampleGcsFileSpecs_.size(); i++) {
+      output.writeMessage(2, sampleGcsFileSpecs_.get(i));
+    }
+    unknownFields.writeTo(output);
+  }
+
+  @java.lang.Override
+  public int getSerializedSize() {
+    int size = memoizedSize;
+    if (size != -1) return size;
+
+    size = 0;
+    {
+      int dataSize = 0;
+      for (int i = 0; i < filePatterns_.size(); i++) {
+        dataSize += computeStringSizeNoTag(filePatterns_.getRaw(i));
+      }
+      size += dataSize;
+      size += 1 * getFilePatternsList().size();
+    }
+    for (int i = 0; i < sampleGcsFileSpecs_.size(); i++) {
+      size +=
+          com.google.protobuf.CodedOutputStream.computeMessageSize(2, sampleGcsFileSpecs_.get(i));
+    }
+    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.datacatalog.GcsFilesetSpec)) {
+      return super.equals(obj);
+    }
+    com.google.cloud.datacatalog.GcsFilesetSpec other =
+        (com.google.cloud.datacatalog.GcsFilesetSpec) obj;
+
+    if (!getFilePatternsList().equals(other.getFilePatternsList())) return false;
+    if (!getSampleGcsFileSpecsList().equals(other.getSampleGcsFileSpecsList())) 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();
+    if (getFilePatternsCount() > 0) {
+      hash = (37 * hash) + FILE_PATTERNS_FIELD_NUMBER;
+      hash = (53 * hash) + getFilePatternsList().hashCode();
+    }
+    if (getSampleGcsFileSpecsCount() > 0) {
+      hash = (37 * hash) + SAMPLE_GCS_FILE_SPECS_FIELD_NUMBER;
+      hash = (53 * hash) + getSampleGcsFileSpecsList().hashCode();
+    }
+    hash = (29 * hash) + unknownFields.hashCode();
+    memoizedHashCode = hash;
+    return hash;
+  }
+
+  public static com.google.cloud.datacatalog.GcsFilesetSpec parseFrom(java.nio.ByteBuffer data)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data);
+  }
+
+  public static com.google.cloud.datacatalog.GcsFilesetSpec 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.datacatalog.GcsFilesetSpec parseFrom(
+      com.google.protobuf.ByteString data)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data);
+  }
+
+  public static com.google.cloud.datacatalog.GcsFilesetSpec 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.datacatalog.GcsFilesetSpec parseFrom(byte[] data)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data);
+  }
+
+  public static com.google.cloud.datacatalog.GcsFilesetSpec parseFrom(
+      byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data, extensionRegistry);
+  }
+
+  public static com.google.cloud.datacatalog.GcsFilesetSpec parseFrom(java.io.InputStream input)
+      throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+  }
+
+  public static com.google.cloud.datacatalog.GcsFilesetSpec 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.datacatalog.GcsFilesetSpec parseDelimitedFrom(
+      java.io.InputStream input) throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
+  }
+
+  public static com.google.cloud.datacatalog.GcsFilesetSpec 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.datacatalog.GcsFilesetSpec parseFrom(
+      com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+  }
+
+  public static com.google.cloud.datacatalog.GcsFilesetSpec 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.datacatalog.GcsFilesetSpec 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>
+   * Describes a Cloud Storage fileset entry.
+   * </pre>
+   *
+   * Protobuf type {@code google.cloud.datacatalog.v1beta1.GcsFilesetSpec}
+   */
+  public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
+      implements
+      // @@protoc_insertion_point(builder_implements:google.cloud.datacatalog.v1beta1.GcsFilesetSpec)
+      com.google.cloud.datacatalog.GcsFilesetSpecOrBuilder {
+    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+      return com.google.cloud.datacatalog.GcsFilesetSpecOuterClass
+          .internal_static_google_cloud_datacatalog_v1beta1_GcsFilesetSpec_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return com.google.cloud.datacatalog.GcsFilesetSpecOuterClass
+          .internal_static_google_cloud_datacatalog_v1beta1_GcsFilesetSpec_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              com.google.cloud.datacatalog.GcsFilesetSpec.class,
+              com.google.cloud.datacatalog.GcsFilesetSpec.Builder.class);
+    }
+
+    // Construct using com.google.cloud.datacatalog.GcsFilesetSpec.newBuilder()
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
+
+    private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getSampleGcsFileSpecsFieldBuilder();
+      }
+    }
+
+    @java.lang.Override
+    public Builder clear() {
+      super.clear();
+      filePatterns_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      if (sampleGcsFileSpecsBuilder_ == null) {
+        sampleGcsFileSpecs_ = java.util.Collections.emptyList();
+        bitField0_ = (bitField0_ & ~0x00000002);
+      } else {
+        sampleGcsFileSpecsBuilder_.clear();
+      }
+      return this;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
+      return com.google.cloud.datacatalog.GcsFilesetSpecOuterClass
+          .internal_static_google_cloud_datacatalog_v1beta1_GcsFilesetSpec_descriptor;
+    }
+
+    @java.lang.Override
+    public com.google.cloud.datacatalog.GcsFilesetSpec getDefaultInstanceForType() {
+      return com.google.cloud.datacatalog.GcsFilesetSpec.getDefaultInstance();
+    }
+
+    @java.lang.Override
+    public com.google.cloud.datacatalog.GcsFilesetSpec build() {
+      com.google.cloud.datacatalog.GcsFilesetSpec result = buildPartial();
+      if (!result.isInitialized()) {
+        throw newUninitializedMessageException(result);
+      }
+      return result;
+    }
+
+    @java.lang.Override
+    public com.google.cloud.datacatalog.GcsFilesetSpec buildPartial() {
+      com.google.cloud.datacatalog.GcsFilesetSpec result =
+          new com.google.cloud.datacatalog.GcsFilesetSpec(this);
+      int from_bitField0_ = bitField0_;
+      if (((bitField0_ & 0x00000001) != 0)) {
+        filePatterns_ = filePatterns_.getUnmodifiableView();
+        bitField0_ = (bitField0_ & ~0x00000001);
+      }
+      result.filePatterns_ = filePatterns_;
+      if (sampleGcsFileSpecsBuilder_ == null) {
+        if (((bitField0_ & 0x00000002) != 0)) {
+          sampleGcsFileSpecs_ = java.util.Collections.unmodifiableList(sampleGcsFileSpecs_);
+          bitField0_ = (bitField0_ & ~0x00000002);
+        }
+        result.sampleGcsFileSpecs_ = sampleGcsFileSpecs_;
+      } else {
+        result.sampleGcsFileSpecs_ = sampleGcsFileSpecsBuilder_.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.datacatalog.GcsFilesetSpec) {
+        return mergeFrom((com.google.cloud.datacatalog.GcsFilesetSpec) other);
+      } else {
+        super.mergeFrom(other);
+        return this;
+      }
+    }
+
+    public Builder mergeFrom(com.google.cloud.datacatalog.GcsFilesetSpec other) {
+      if (other == com.google.cloud.datacatalog.GcsFilesetSpec.getDefaultInstance()) return this;
+      if (!other.filePatterns_.isEmpty()) {
+        if (filePatterns_.isEmpty()) {
+          filePatterns_ = other.filePatterns_;
+          bitField0_ = (bitField0_ & ~0x00000001);
+        } else {
+          ensureFilePatternsIsMutable();
+          filePatterns_.addAll(other.filePatterns_);
+        }
+        onChanged();
+      }
+      if (sampleGcsFileSpecsBuilder_ == null) {
+        if (!other.sampleGcsFileSpecs_.isEmpty()) {
+          if (sampleGcsFileSpecs_.isEmpty()) {
+            sampleGcsFileSpecs_ = other.sampleGcsFileSpecs_;
+            bitField0_ = (bitField0_ & ~0x00000002);
+          } else {
+            ensureSampleGcsFileSpecsIsMutable();
+            sampleGcsFileSpecs_.addAll(other.sampleGcsFileSpecs_);
+          }
+          onChanged();
+        }
+      } else {
+        if (!other.sampleGcsFileSpecs_.isEmpty()) {
+          if (sampleGcsFileSpecsBuilder_.isEmpty()) {
+            sampleGcsFileSpecsBuilder_.dispose();
+            sampleGcsFileSpecsBuilder_ = null;
+            sampleGcsFileSpecs_ = other.sampleGcsFileSpecs_;
+            bitField0_ = (bitField0_ & ~0x00000002);
+            sampleGcsFileSpecsBuilder_ =
+                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
+                    ? getSampleGcsFileSpecsFieldBuilder()
+                    : null;
+          } else {
+            sampleGcsFileSpecsBuilder_.addAllMessages(other.sampleGcsFileSpecs_);
+          }
+        }
+      }
+      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.datacatalog.GcsFilesetSpec parsedMessage = null;
+      try {
+        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        parsedMessage = (com.google.cloud.datacatalog.GcsFilesetSpec) e.getUnfinishedMessage();
+        throw e.unwrapIOException();
+      } finally {
+        if (parsedMessage != null) {
+          mergeFrom(parsedMessage);
+        }
+      }
+      return this;
+    }
+
+    private int bitField0_;
+
+    private com.google.protobuf.LazyStringList filePatterns_ =
+        com.google.protobuf.LazyStringArrayList.EMPTY;
+
+    private void ensureFilePatternsIsMutable() {
+      if (!((bitField0_ & 0x00000001) != 0)) {
+        filePatterns_ = new com.google.protobuf.LazyStringArrayList(filePatterns_);
+        bitField0_ |= 0x00000001;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. Patterns to identify a set of files in Google Cloud Storage.
+     * Examples of valid file_patterns:
+     *  * `gs://bucket_name/&#42;`: matches all files in `bucket_name`
+     *  * `gs://bucket_name/file*`: matches files prefixed by `file` in
+     *                              `bucket_name`
+     *  * `gs://bucket_name/a/&#42;&#47;b`: matches all files in `bucket_name` that match
+     *                              `a/&#42;&#47;b` pattern, such as `a/c/b`, `a/d/b`
+     *  * `gs://another_bucket/a.txt`: matches `gs://another_bucket/a.txt`
+     * </pre>
+     *
+     * <code>repeated string file_patterns = 1 [(.google.api.field_behavior) = REQUIRED];</code>
+     */
+    public com.google.protobuf.ProtocolStringList getFilePatternsList() {
+      return filePatterns_.getUnmodifiableView();
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. Patterns to identify a set of files in Google Cloud Storage.
+     * Examples of valid file_patterns:
+     *  * `gs://bucket_name/&#42;`: matches all files in `bucket_name`
+     *  * `gs://bucket_name/file*`: matches files prefixed by `file` in
+     *                              `bucket_name`
+     *  * `gs://bucket_name/a/&#42;&#47;b`: matches all files in `bucket_name` that match
+     *                              `a/&#42;&#47;b` pattern, such as `a/c/b`, `a/d/b`
+     *  * `gs://another_bucket/a.txt`: matches `gs://another_bucket/a.txt`
+     * </pre>
+     *
+     * <code>repeated string file_patterns = 1 [(.google.api.field_behavior) = REQUIRED];</code>
+     */
+    public int getFilePatternsCount() {
+      return filePatterns_.size();
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. Patterns to identify a set of files in Google Cloud Storage.
+     * Examples of valid file_patterns:
+     *  * `gs://bucket_name/&#42;`: matches all files in `bucket_name`
+     *  * `gs://bucket_name/file*`: matches files prefixed by `file` in
+     *                              `bucket_name`
+     *  * `gs://bucket_name/a/&#42;&#47;b`: matches all files in `bucket_name` that match
+     *                              `a/&#42;&#47;b` pattern, such as `a/c/b`, `a/d/b`
+     *  * `gs://another_bucket/a.txt`: matches `gs://another_bucket/a.txt`
+     * </pre>
+     *
+     * <code>repeated string file_patterns = 1 [(.google.api.field_behavior) = REQUIRED];</code>
+     */
+    public java.lang.String getFilePatterns(int index) {
+      return filePatterns_.get(index);
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. Patterns to identify a set of files in Google Cloud Storage.
+     * Examples of valid file_patterns:
+     *  * `gs://bucket_name/&#42;`: matches all files in `bucket_name`
+     *  * `gs://bucket_name/file*`: matches files prefixed by `file` in
+     *                              `bucket_name`
+     *  * `gs://bucket_name/a/&#42;&#47;b`: matches all files in `bucket_name` that match
+     *                              `a/&#42;&#47;b` pattern, such as `a/c/b`, `a/d/b`
+     *  * `gs://another_bucket/a.txt`: matches `gs://another_bucket/a.txt`
+     * </pre>
+     *
+     * <code>repeated string file_patterns = 1 [(.google.api.field_behavior) = REQUIRED];</code>
+     */
+    public com.google.protobuf.ByteString getFilePatternsBytes(int index) {
+      return filePatterns_.getByteString(index);
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. Patterns to identify a set of files in Google Cloud Storage.
+     * Examples of valid file_patterns:
+     *  * `gs://bucket_name/&#42;`: matches all files in `bucket_name`
+     *  * `gs://bucket_name/file*`: matches files prefixed by `file` in
+     *                              `bucket_name`
+     *  * `gs://bucket_name/a/&#42;&#47;b`: matches all files in `bucket_name` that match
+     *                              `a/&#42;&#47;b` pattern, such as `a/c/b`, `a/d/b`
+     *  * `gs://another_bucket/a.txt`: matches `gs://another_bucket/a.txt`
+     * </pre>
+     *
+     * <code>repeated string file_patterns = 1 [(.google.api.field_behavior) = REQUIRED];</code>
+     */
+    public Builder setFilePatterns(int index, java.lang.String value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+      ensureFilePatternsIsMutable();
+      filePatterns_.set(index, value);
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. Patterns to identify a set of files in Google Cloud Storage.
+     * Examples of valid file_patterns:
+     *  * `gs://bucket_name/&#42;`: matches all files in `bucket_name`
+     *  * `gs://bucket_name/file*`: matches files prefixed by `file` in
+     *                              `bucket_name`
+     *  * `gs://bucket_name/a/&#42;&#47;b`: matches all files in `bucket_name` that match
+     *                              `a/&#42;&#47;b` pattern, such as `a/c/b`, `a/d/b`
+     *  * `gs://another_bucket/a.txt`: matches `gs://another_bucket/a.txt`
+     * </pre>
+     *
+     * <code>repeated string file_patterns = 1 [(.google.api.field_behavior) = REQUIRED];</code>
+     */
+    public Builder addFilePatterns(java.lang.String value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+      ensureFilePatternsIsMutable();
+      filePatterns_.add(value);
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. Patterns to identify a set of files in Google Cloud Storage.
+     * Examples of valid file_patterns:
+     *  * `gs://bucket_name/&#42;`: matches all files in `bucket_name`
+     *  * `gs://bucket_name/file*`: matches files prefixed by `file` in
+     *                              `bucket_name`
+     *  * `gs://bucket_name/a/&#42;&#47;b`: matches all files in `bucket_name` that match
+     *                              `a/&#42;&#47;b` pattern, such as `a/c/b`, `a/d/b`
+     *  * `gs://another_bucket/a.txt`: matches `gs://another_bucket/a.txt`
+     * </pre>
+     *
+     * <code>repeated string file_patterns = 1 [(.google.api.field_behavior) = REQUIRED];</code>
+     */
+    public Builder addAllFilePatterns(java.lang.Iterable<java.lang.String> values) {
+      ensureFilePatternsIsMutable();
+      com.google.protobuf.AbstractMessageLite.Builder.addAll(values, filePatterns_);
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. Patterns to identify a set of files in Google Cloud Storage.
+     * Examples of valid file_patterns:
+     *  * `gs://bucket_name/&#42;`: matches all files in `bucket_name`
+     *  * `gs://bucket_name/file*`: matches files prefixed by `file` in
+     *                              `bucket_name`
+     *  * `gs://bucket_name/a/&#42;&#47;b`: matches all files in `bucket_name` that match
+     *                              `a/&#42;&#47;b` pattern, such as `a/c/b`, `a/d/b`
+     *  * `gs://another_bucket/a.txt`: matches `gs://another_bucket/a.txt`
+     * </pre>
+     *
+     * <code>repeated string file_patterns = 1 [(.google.api.field_behavior) = REQUIRED];</code>
+     */
+    public Builder clearFilePatterns() {
+      filePatterns_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. Patterns to identify a set of files in Google Cloud Storage.
+     * Examples of valid file_patterns:
+     *  * `gs://bucket_name/&#42;`: matches all files in `bucket_name`
+     *  * `gs://bucket_name/file*`: matches files prefixed by `file` in
+     *                              `bucket_name`
+     *  * `gs://bucket_name/a/&#42;&#47;b`: matches all files in `bucket_name` that match
+     *                              `a/&#42;&#47;b` pattern, such as `a/c/b`, `a/d/b`
+     *  * `gs://another_bucket/a.txt`: matches `gs://another_bucket/a.txt`
+     * </pre>
+     *
+     * <code>repeated string file_patterns = 1 [(.google.api.field_behavior) = REQUIRED];</code>
+     */
+    public Builder addFilePatternsBytes(com.google.protobuf.ByteString value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+      checkByteStringIsUtf8(value);
+      ensureFilePatternsIsMutable();
+      filePatterns_.add(value);
+      onChanged();
+      return this;
+    }
+
+    private java.util.List<com.google.cloud.datacatalog.GcsFileSpec> sampleGcsFileSpecs_ =
+        java.util.Collections.emptyList();
+
+    private void ensureSampleGcsFileSpecsIsMutable() {
+      if (!((bitField0_ & 0x00000002) != 0)) {
+        sampleGcsFileSpecs_ =
+            new java.util.ArrayList<com.google.cloud.datacatalog.GcsFileSpec>(sampleGcsFileSpecs_);
+        bitField0_ |= 0x00000002;
+      }
+    }
+
+    private com.google.protobuf.RepeatedFieldBuilderV3<
+            com.google.cloud.datacatalog.GcsFileSpec,
+            com.google.cloud.datacatalog.GcsFileSpec.Builder,
+            com.google.cloud.datacatalog.GcsFileSpecOrBuilder>
+        sampleGcsFileSpecsBuilder_;
+
+    /**
+     *
+     *
+     * <pre>
+     * Output only. Sample files contained in this fileset, not all files contained in this
+     * fileset are represented here.
+     * </pre>
+     *
+     * <code>
+     * repeated .google.cloud.datacatalog.v1beta1.GcsFileSpec sample_gcs_file_specs = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
+     */
+    public java.util.List<com.google.cloud.datacatalog.GcsFileSpec> getSampleGcsFileSpecsList() {
+      if (sampleGcsFileSpecsBuilder_ == null) {
+        return java.util.Collections.unmodifiableList(sampleGcsFileSpecs_);
+      } else {
+        return sampleGcsFileSpecsBuilder_.getMessageList();
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Output only. Sample files contained in this fileset, not all files contained in this
+     * fileset are represented here.
+     * </pre>
+     *
+     * <code>
+     * repeated .google.cloud.datacatalog.v1beta1.GcsFileSpec sample_gcs_file_specs = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
+     */
+    public int getSampleGcsFileSpecsCount() {
+      if (sampleGcsFileSpecsBuilder_ == null) {
+        return sampleGcsFileSpecs_.size();
+      } else {
+        return sampleGcsFileSpecsBuilder_.getCount();
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Output only. Sample files contained in this fileset, not all files contained in this
+     * fileset are represented here.
+     * </pre>
+     *
+     * <code>
+     * repeated .google.cloud.datacatalog.v1beta1.GcsFileSpec sample_gcs_file_specs = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
+     */
+    public com.google.cloud.datacatalog.GcsFileSpec getSampleGcsFileSpecs(int index) {
+      if (sampleGcsFileSpecsBuilder_ == null) {
+        return sampleGcsFileSpecs_.get(index);
+      } else {
+        return sampleGcsFileSpecsBuilder_.getMessage(index);
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Output only. Sample files contained in this fileset, not all files contained in this
+     * fileset are represented here.
+     * </pre>
+     *
+     * <code>
+     * repeated .google.cloud.datacatalog.v1beta1.GcsFileSpec sample_gcs_file_specs = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
+     */
+    public Builder setSampleGcsFileSpecs(
+        int index, com.google.cloud.datacatalog.GcsFileSpec value) {
+      if (sampleGcsFileSpecsBuilder_ == null) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        ensureSampleGcsFileSpecsIsMutable();
+        sampleGcsFileSpecs_.set(index, value);
+        onChanged();
+      } else {
+        sampleGcsFileSpecsBuilder_.setMessage(index, value);
+      }
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Output only. Sample files contained in this fileset, not all files contained in this
+     * fileset are represented here.
+     * </pre>
+     *
+     * <code>
+     * repeated .google.cloud.datacatalog.v1beta1.GcsFileSpec sample_gcs_file_specs = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
+     */
+    public Builder setSampleGcsFileSpecs(
+        int index, com.google.cloud.datacatalog.GcsFileSpec.Builder builderForValue) {
+      if (sampleGcsFileSpecsBuilder_ == null) {
+        ensureSampleGcsFileSpecsIsMutable();
+        sampleGcsFileSpecs_.set(index, builderForValue.build());
+        onChanged();
+      } else {
+        sampleGcsFileSpecsBuilder_.setMessage(index, builderForValue.build());
+      }
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Output only. Sample files contained in this fileset, not all files contained in this
+     * fileset are represented here.
+     * </pre>
+     *
+     * <code>
+     * repeated .google.cloud.datacatalog.v1beta1.GcsFileSpec sample_gcs_file_specs = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
+     */
+    public Builder addSampleGcsFileSpecs(com.google.cloud.datacatalog.GcsFileSpec value) {
+      if (sampleGcsFileSpecsBuilder_ == null) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        ensureSampleGcsFileSpecsIsMutable();
+        sampleGcsFileSpecs_.add(value);
+        onChanged();
+      } else {
+        sampleGcsFileSpecsBuilder_.addMessage(value);
+      }
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Output only. Sample files contained in this fileset, not all files contained in this
+     * fileset are represented here.
+     * </pre>
+     *
+     * <code>
+     * repeated .google.cloud.datacatalog.v1beta1.GcsFileSpec sample_gcs_file_specs = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
+     */
+    public Builder addSampleGcsFileSpecs(
+        int index, com.google.cloud.datacatalog.GcsFileSpec value) {
+      if (sampleGcsFileSpecsBuilder_ == null) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        ensureSampleGcsFileSpecsIsMutable();
+        sampleGcsFileSpecs_.add(index, value);
+        onChanged();
+      } else {
+        sampleGcsFileSpecsBuilder_.addMessage(index, value);
+      }
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Output only. Sample files contained in this fileset, not all files contained in this
+     * fileset are represented here.
+     * </pre>
+     *
+     * <code>
+     * repeated .google.cloud.datacatalog.v1beta1.GcsFileSpec sample_gcs_file_specs = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
+     */
+    public Builder addSampleGcsFileSpecs(
+        com.google.cloud.datacatalog.GcsFileSpec.Builder builderForValue) {
+      if (sampleGcsFileSpecsBuilder_ == null) {
+        ensureSampleGcsFileSpecsIsMutable();
+        sampleGcsFileSpecs_.add(builderForValue.build());
+        onChanged();
+      } else {
+        sampleGcsFileSpecsBuilder_.addMessage(builderForValue.build());
+      }
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Output only. Sample files contained in this fileset, not all files contained in this
+     * fileset are represented here.
+     * </pre>
+     *
+     * <code>
+     * repeated .google.cloud.datacatalog.v1beta1.GcsFileSpec sample_gcs_file_specs = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
+     */
+    public Builder addSampleGcsFileSpecs(
+        int index, com.google.cloud.datacatalog.GcsFileSpec.Builder builderForValue) {
+      if (sampleGcsFileSpecsBuilder_ == null) {
+        ensureSampleGcsFileSpecsIsMutable();
+        sampleGcsFileSpecs_.add(index, builderForValue.build());
+        onChanged();
+      } else {
+        sampleGcsFileSpecsBuilder_.addMessage(index, builderForValue.build());
+      }
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Output only. Sample files contained in this fileset, not all files contained in this
+     * fileset are represented here.
+     * </pre>
+     *
+     * <code>
+     * repeated .google.cloud.datacatalog.v1beta1.GcsFileSpec sample_gcs_file_specs = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
+     */
+    public Builder addAllSampleGcsFileSpecs(
+        java.lang.Iterable<? extends com.google.cloud.datacatalog.GcsFileSpec> values) {
+      if (sampleGcsFileSpecsBuilder_ == null) {
+        ensureSampleGcsFileSpecsIsMutable();
+        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, sampleGcsFileSpecs_);
+        onChanged();
+      } else {
+        sampleGcsFileSpecsBuilder_.addAllMessages(values);
+      }
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Output only. Sample files contained in this fileset, not all files contained in this
+     * fileset are represented here.
+     * </pre>
+     *
+     * <code>
+     * repeated .google.cloud.datacatalog.v1beta1.GcsFileSpec sample_gcs_file_specs = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
+     */
+    public Builder clearSampleGcsFileSpecs() {
+      if (sampleGcsFileSpecsBuilder_ == null) {
+        sampleGcsFileSpecs_ = java.util.Collections.emptyList();
+        bitField0_ = (bitField0_ & ~0x00000002);
+        onChanged();
+      } else {
+        sampleGcsFileSpecsBuilder_.clear();
+      }
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Output only. Sample files contained in this fileset, not all files contained in this
+     * fileset are represented here.
+     * </pre>
+     *
+     * <code>
+     * repeated .google.cloud.datacatalog.v1beta1.GcsFileSpec sample_gcs_file_specs = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
+     */
+    public Builder removeSampleGcsFileSpecs(int index) {
+      if (sampleGcsFileSpecsBuilder_ == null) {
+        ensureSampleGcsFileSpecsIsMutable();
+        sampleGcsFileSpecs_.remove(index);
+        onChanged();
+      } else {
+        sampleGcsFileSpecsBuilder_.remove(index);
+      }
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Output only. Sample files contained in this fileset, not all files contained in this
+     * fileset are represented here.
+     * </pre>
+     *
+     * <code>
+     * repeated .google.cloud.datacatalog.v1beta1.GcsFileSpec sample_gcs_file_specs = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
+     */
+    public com.google.cloud.datacatalog.GcsFileSpec.Builder getSampleGcsFileSpecsBuilder(
+        int index) {
+      return getSampleGcsFileSpecsFieldBuilder().getBuilder(index);
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Output only. Sample files contained in this fileset, not all files contained in this
+     * fileset are represented here.
+     * </pre>
+     *
+     * <code>
+     * repeated .google.cloud.datacatalog.v1beta1.GcsFileSpec sample_gcs_file_specs = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
+     */
+    public com.google.cloud.datacatalog.GcsFileSpecOrBuilder getSampleGcsFileSpecsOrBuilder(
+        int index) {
+      if (sampleGcsFileSpecsBuilder_ == null) {
+        return sampleGcsFileSpecs_.get(index);
+      } else {
+        return sampleGcsFileSpecsBuilder_.getMessageOrBuilder(index);
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Output only. Sample files contained in this fileset, not all files contained in this
+     * fileset are represented here.
+     * </pre>
+     *
+     * <code>
+     * repeated .google.cloud.datacatalog.v1beta1.GcsFileSpec sample_gcs_file_specs = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
+     */
+    public java.util.List<? extends com.google.cloud.datacatalog.GcsFileSpecOrBuilder>
+        getSampleGcsFileSpecsOrBuilderList() {
+      if (sampleGcsFileSpecsBuilder_ != null) {
+        return sampleGcsFileSpecsBuilder_.getMessageOrBuilderList();
+      } else {
+        return java.util.Collections.unmodifiableList(sampleGcsFileSpecs_);
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Output only. Sample files contained in this fileset, not all files contained in this
+     * fileset are represented here.
+     * </pre>
+     *
+     * <code>
+     * repeated .google.cloud.datacatalog.v1beta1.GcsFileSpec sample_gcs_file_specs = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
+     */
+    public com.google.cloud.datacatalog.GcsFileSpec.Builder addSampleGcsFileSpecsBuilder() {
+      return getSampleGcsFileSpecsFieldBuilder()
+          .addBuilder(com.google.cloud.datacatalog.GcsFileSpec.getDefaultInstance());
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Output only. Sample files contained in this fileset, not all files contained in this
+     * fileset are represented here.
+     * </pre>
+     *
+     * <code>
+     * repeated .google.cloud.datacatalog.v1beta1.GcsFileSpec sample_gcs_file_specs = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
+     */
+    public com.google.cloud.datacatalog.GcsFileSpec.Builder addSampleGcsFileSpecsBuilder(
+        int index) {
+      return getSampleGcsFileSpecsFieldBuilder()
+          .addBuilder(index, com.google.cloud.datacatalog.GcsFileSpec.getDefaultInstance());
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Output only. Sample files contained in this fileset, not all files contained in this
+     * fileset are represented here.
+     * </pre>
+     *
+     * <code>
+     * repeated .google.cloud.datacatalog.v1beta1.GcsFileSpec sample_gcs_file_specs = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
+     */
+    public java.util.List<com.google.cloud.datacatalog.GcsFileSpec.Builder>
+        getSampleGcsFileSpecsBuilderList() {
+      return getSampleGcsFileSpecsFieldBuilder().getBuilderList();
+    }
+
+    private com.google.protobuf.RepeatedFieldBuilderV3<
+            com.google.cloud.datacatalog.GcsFileSpec,
+            com.google.cloud.datacatalog.GcsFileSpec.Builder,
+            com.google.cloud.datacatalog.GcsFileSpecOrBuilder>
+        getSampleGcsFileSpecsFieldBuilder() {
+      if (sampleGcsFileSpecsBuilder_ == null) {
+        sampleGcsFileSpecsBuilder_ =
+            new com.google.protobuf.RepeatedFieldBuilderV3<
+                com.google.cloud.datacatalog.GcsFileSpec,
+                com.google.cloud.datacatalog.GcsFileSpec.Builder,
+                com.google.cloud.datacatalog.GcsFileSpecOrBuilder>(
+                sampleGcsFileSpecs_,
+                ((bitField0_ & 0x00000002) != 0),
+                getParentForChildren(),
+                isClean());
+        sampleGcsFileSpecs_ = null;
+      }
+      return sampleGcsFileSpecsBuilder_;
+    }
+
+    @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.datacatalog.v1beta1.GcsFilesetSpec)
+  }
+
+  // @@protoc_insertion_point(class_scope:google.cloud.datacatalog.v1beta1.GcsFilesetSpec)
+  private static final com.google.cloud.datacatalog.GcsFilesetSpec DEFAULT_INSTANCE;
+
+  static {
+    DEFAULT_INSTANCE = new com.google.cloud.datacatalog.GcsFilesetSpec();
+  }
+
+  public static com.google.cloud.datacatalog.GcsFilesetSpec getDefaultInstance() {
+    return DEFAULT_INSTANCE;
+  }
+
+  private static final com.google.protobuf.Parser<GcsFilesetSpec> PARSER =
+      new com.google.protobuf.AbstractParser<GcsFilesetSpec>() {
+        @java.lang.Override
+        public GcsFilesetSpec parsePartialFrom(
+            com.google.protobuf.CodedInputStream input,
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+            throws com.google.protobuf.InvalidProtocolBufferException {
+          return new GcsFilesetSpec(input, extensionRegistry);
+        }
+      };
+
+  public static com.google.protobuf.Parser<GcsFilesetSpec> parser() {
+    return PARSER;
+  }
+
+  @java.lang.Override
+  public com.google.protobuf.Parser<GcsFilesetSpec> getParserForType() {
+    return PARSER;
+  }
+
+  @java.lang.Override
+  public com.google.cloud.datacatalog.GcsFilesetSpec getDefaultInstanceForType() {
+    return DEFAULT_INSTANCE;
+  }
+}
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/GcsFilesetSpecOrBuilder.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/GcsFilesetSpecOrBuilder.java
new file mode 100644
index 000000000000..89311690f2be
--- /dev/null
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/GcsFilesetSpecOrBuilder.java
@@ -0,0 +1,146 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: google/cloud/datacatalog/v1beta1/gcs_fileset_spec.proto
+
+package com.google.cloud.datacatalog;
+
+public interface GcsFilesetSpecOrBuilder
+    extends
+    // @@protoc_insertion_point(interface_extends:google.cloud.datacatalog.v1beta1.GcsFilesetSpec)
+    com.google.protobuf.MessageOrBuilder {
+
+  /**
+   *
+   *
+   * <pre>
+   * Required. Patterns to identify a set of files in Google Cloud Storage.
+   * Examples of valid file_patterns:
+   *  * `gs://bucket_name/&#42;`: matches all files in `bucket_name`
+   *  * `gs://bucket_name/file*`: matches files prefixed by `file` in
+   *                              `bucket_name`
+   *  * `gs://bucket_name/a/&#42;&#47;b`: matches all files in `bucket_name` that match
+   *                              `a/&#42;&#47;b` pattern, such as `a/c/b`, `a/d/b`
+   *  * `gs://another_bucket/a.txt`: matches `gs://another_bucket/a.txt`
+   * </pre>
+   *
+   * <code>repeated string file_patterns = 1 [(.google.api.field_behavior) = REQUIRED];</code>
+   */
+  java.util.List<java.lang.String> getFilePatternsList();
+  /**
+   *
+   *
+   * <pre>
+   * Required. Patterns to identify a set of files in Google Cloud Storage.
+   * Examples of valid file_patterns:
+   *  * `gs://bucket_name/&#42;`: matches all files in `bucket_name`
+   *  * `gs://bucket_name/file*`: matches files prefixed by `file` in
+   *                              `bucket_name`
+   *  * `gs://bucket_name/a/&#42;&#47;b`: matches all files in `bucket_name` that match
+   *                              `a/&#42;&#47;b` pattern, such as `a/c/b`, `a/d/b`
+   *  * `gs://another_bucket/a.txt`: matches `gs://another_bucket/a.txt`
+   * </pre>
+   *
+   * <code>repeated string file_patterns = 1 [(.google.api.field_behavior) = REQUIRED];</code>
+   */
+  int getFilePatternsCount();
+  /**
+   *
+   *
+   * <pre>
+   * Required. Patterns to identify a set of files in Google Cloud Storage.
+   * Examples of valid file_patterns:
+   *  * `gs://bucket_name/&#42;`: matches all files in `bucket_name`
+   *  * `gs://bucket_name/file*`: matches files prefixed by `file` in
+   *                              `bucket_name`
+   *  * `gs://bucket_name/a/&#42;&#47;b`: matches all files in `bucket_name` that match
+   *                              `a/&#42;&#47;b` pattern, such as `a/c/b`, `a/d/b`
+   *  * `gs://another_bucket/a.txt`: matches `gs://another_bucket/a.txt`
+   * </pre>
+   *
+   * <code>repeated string file_patterns = 1 [(.google.api.field_behavior) = REQUIRED];</code>
+   */
+  java.lang.String getFilePatterns(int index);
+  /**
+   *
+   *
+   * <pre>
+   * Required. Patterns to identify a set of files in Google Cloud Storage.
+   * Examples of valid file_patterns:
+   *  * `gs://bucket_name/&#42;`: matches all files in `bucket_name`
+   *  * `gs://bucket_name/file*`: matches files prefixed by `file` in
+   *                              `bucket_name`
+   *  * `gs://bucket_name/a/&#42;&#47;b`: matches all files in `bucket_name` that match
+   *                              `a/&#42;&#47;b` pattern, such as `a/c/b`, `a/d/b`
+   *  * `gs://another_bucket/a.txt`: matches `gs://another_bucket/a.txt`
+   * </pre>
+   *
+   * <code>repeated string file_patterns = 1 [(.google.api.field_behavior) = REQUIRED];</code>
+   */
+  com.google.protobuf.ByteString getFilePatternsBytes(int index);
+
+  /**
+   *
+   *
+   * <pre>
+   * Output only. Sample files contained in this fileset, not all files contained in this
+   * fileset are represented here.
+   * </pre>
+   *
+   * <code>
+   * repeated .google.cloud.datacatalog.v1beta1.GcsFileSpec sample_gcs_file_specs = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+   * </code>
+   */
+  java.util.List<com.google.cloud.datacatalog.GcsFileSpec> getSampleGcsFileSpecsList();
+  /**
+   *
+   *
+   * <pre>
+   * Output only. Sample files contained in this fileset, not all files contained in this
+   * fileset are represented here.
+   * </pre>
+   *
+   * <code>
+   * repeated .google.cloud.datacatalog.v1beta1.GcsFileSpec sample_gcs_file_specs = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+   * </code>
+   */
+  com.google.cloud.datacatalog.GcsFileSpec getSampleGcsFileSpecs(int index);
+  /**
+   *
+   *
+   * <pre>
+   * Output only. Sample files contained in this fileset, not all files contained in this
+   * fileset are represented here.
+   * </pre>
+   *
+   * <code>
+   * repeated .google.cloud.datacatalog.v1beta1.GcsFileSpec sample_gcs_file_specs = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+   * </code>
+   */
+  int getSampleGcsFileSpecsCount();
+  /**
+   *
+   *
+   * <pre>
+   * Output only. Sample files contained in this fileset, not all files contained in this
+   * fileset are represented here.
+   * </pre>
+   *
+   * <code>
+   * repeated .google.cloud.datacatalog.v1beta1.GcsFileSpec sample_gcs_file_specs = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+   * </code>
+   */
+  java.util.List<? extends com.google.cloud.datacatalog.GcsFileSpecOrBuilder>
+      getSampleGcsFileSpecsOrBuilderList();
+  /**
+   *
+   *
+   * <pre>
+   * Output only. Sample files contained in this fileset, not all files contained in this
+   * fileset are represented here.
+   * </pre>
+   *
+   * <code>
+   * repeated .google.cloud.datacatalog.v1beta1.GcsFileSpec sample_gcs_file_specs = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+   * </code>
+   */
+  com.google.cloud.datacatalog.GcsFileSpecOrBuilder getSampleGcsFileSpecsOrBuilder(int index);
+}
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/GcsFilesetSpecOuterClass.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/GcsFilesetSpecOuterClass.java
new file mode 100644
index 000000000000..3436e1742158
--- /dev/null
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/GcsFilesetSpecOuterClass.java
@@ -0,0 +1,89 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: google/cloud/datacatalog/v1beta1/gcs_fileset_spec.proto
+
+package com.google.cloud.datacatalog;
+
+public final class GcsFilesetSpecOuterClass {
+  private GcsFilesetSpecOuterClass() {}
+
+  public static void registerAllExtensions(com.google.protobuf.ExtensionRegistryLite registry) {}
+
+  public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions((com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+
+  static final com.google.protobuf.Descriptors.Descriptor
+      internal_static_google_cloud_datacatalog_v1beta1_GcsFilesetSpec_descriptor;
+  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_google_cloud_datacatalog_v1beta1_GcsFilesetSpec_fieldAccessorTable;
+  static final com.google.protobuf.Descriptors.Descriptor
+      internal_static_google_cloud_datacatalog_v1beta1_GcsFileSpec_descriptor;
+  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_google_cloud_datacatalog_v1beta1_GcsFileSpec_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+    return descriptor;
+  }
+
+  private static com.google.protobuf.Descriptors.FileDescriptor descriptor;
+
+  static {
+    java.lang.String[] descriptorData = {
+      "\n7google/cloud/datacatalog/v1beta1/gcs_f"
+          + "ileset_spec.proto\022 google.cloud.datacata"
+          + "log.v1beta1\032\037google/api/field_behavior.p"
+          + "roto\0321google/cloud/datacatalog/v1beta1/t"
+          + "imestamps.proto\"\177\n\016GcsFilesetSpec\022\032\n\rfil"
+          + "e_patterns\030\001 \003(\tB\003\340A\002\022Q\n\025sample_gcs_file"
+          + "_specs\030\002 \003(\0132-.google.cloud.datacatalog."
+          + "v1beta1.GcsFileSpecB\003\340A\003\"\217\001\n\013GcsFileSpec"
+          + "\022\026\n\tfile_path\030\001 \001(\tB\003\340A\002\022O\n\016gcs_timestam"
+          + "ps\030\002 \001(\01322.google.cloud.datacatalog.v1be"
+          + "ta1.SystemTimestampsB\003\340A\003\022\027\n\nsize_bytes\030"
+          + "\004 \001(\003B\003\340A\003Bp\n\034com.google.cloud.datacatal"
+          + "ogP\001ZKgoogle.golang.org/genproto/googlea"
+          + "pis/cloud/datacatalog/v1beta1;datacatalo"
+          + "g\370\001\001b\006proto3"
+    };
+    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
+        new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
+          public com.google.protobuf.ExtensionRegistry assignDescriptors(
+              com.google.protobuf.Descriptors.FileDescriptor root) {
+            descriptor = root;
+            return null;
+          }
+        };
+    com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
+        descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          com.google.api.FieldBehaviorProto.getDescriptor(),
+          com.google.cloud.datacatalog.Timestamps.getDescriptor(),
+        },
+        assigner);
+    internal_static_google_cloud_datacatalog_v1beta1_GcsFilesetSpec_descriptor =
+        getDescriptor().getMessageTypes().get(0);
+    internal_static_google_cloud_datacatalog_v1beta1_GcsFilesetSpec_fieldAccessorTable =
+        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+            internal_static_google_cloud_datacatalog_v1beta1_GcsFilesetSpec_descriptor,
+            new java.lang.String[] {
+              "FilePatterns", "SampleGcsFileSpecs",
+            });
+    internal_static_google_cloud_datacatalog_v1beta1_GcsFileSpec_descriptor =
+        getDescriptor().getMessageTypes().get(1);
+    internal_static_google_cloud_datacatalog_v1beta1_GcsFileSpec_fieldAccessorTable =
+        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+            internal_static_google_cloud_datacatalog_v1beta1_GcsFileSpec_descriptor,
+            new java.lang.String[] {
+              "FilePath", "GcsTimestamps", "SizeBytes",
+            });
+    com.google.protobuf.ExtensionRegistry registry =
+        com.google.protobuf.ExtensionRegistry.newInstance();
+    registry.add(com.google.api.FieldBehaviorProto.fieldBehavior);
+    com.google.protobuf.Descriptors.FileDescriptor.internalUpdateFileDescriptor(
+        descriptor, registry);
+    com.google.api.FieldBehaviorProto.getDescriptor();
+    com.google.cloud.datacatalog.Timestamps.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/GetEntryGroupRequest.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/GetEntryGroupRequest.java
new file mode 100644
index 000000000000..d239002377c8
--- /dev/null
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/GetEntryGroupRequest.java
@@ -0,0 +1,890 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: google/cloud/datacatalog/v1beta1/datacatalog.proto
+
+package com.google.cloud.datacatalog;
+
+/**
+ *
+ *
+ * <pre>
+ * Request message for
+ * [GetEntryGroup][google.cloud.datacatalog.v1beta1.DataCatalog.GetEntryGroup].
+ * </pre>
+ *
+ * Protobuf type {@code google.cloud.datacatalog.v1beta1.GetEntryGroupRequest}
+ */
+public final class GetEntryGroupRequest extends com.google.protobuf.GeneratedMessageV3
+    implements
+    // @@protoc_insertion_point(message_implements:google.cloud.datacatalog.v1beta1.GetEntryGroupRequest)
+    GetEntryGroupRequestOrBuilder {
+  private static final long serialVersionUID = 0L;
+  // Use GetEntryGroupRequest.newBuilder() to construct.
+  private GetEntryGroupRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+    super(builder);
+  }
+
+  private GetEntryGroupRequest() {
+    name_ = "";
+  }
+
+  @java.lang.Override
+  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
+    return this.unknownFields;
+  }
+
+  private GetEntryGroupRequest(
+      com.google.protobuf.CodedInputStream input,
+      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
+    int mutable_bitField0_ = 0;
+    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+        com.google.protobuf.UnknownFieldSet.newBuilder();
+    try {
+      boolean done = false;
+      while (!done) {
+        int tag = input.readTag();
+        switch (tag) {
+          case 0:
+            done = true;
+            break;
+          case 10:
+            {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              name_ = s;
+              break;
+            }
+          case 18:
+            {
+              com.google.protobuf.FieldMask.Builder subBuilder = null;
+              if (readMask_ != null) {
+                subBuilder = readMask_.toBuilder();
+              }
+              readMask_ =
+                  input.readMessage(com.google.protobuf.FieldMask.parser(), extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(readMask_);
+                readMask_ = 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.datacatalog.Datacatalog
+        .internal_static_google_cloud_datacatalog_v1beta1_GetEntryGroupRequest_descriptor;
+  }
+
+  @java.lang.Override
+  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internalGetFieldAccessorTable() {
+    return com.google.cloud.datacatalog.Datacatalog
+        .internal_static_google_cloud_datacatalog_v1beta1_GetEntryGroupRequest_fieldAccessorTable
+        .ensureFieldAccessorsInitialized(
+            com.google.cloud.datacatalog.GetEntryGroupRequest.class,
+            com.google.cloud.datacatalog.GetEntryGroupRequest.Builder.class);
+  }
+
+  public static final int NAME_FIELD_NUMBER = 1;
+  private volatile java.lang.Object name_;
+  /**
+   *
+   *
+   * <pre>
+   * Required. The name of the entry group. For example,
+   * `projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}`.
+   * </pre>
+   *
+   * <code>
+   * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
+   */
+  public java.lang.String getName() {
+    java.lang.Object ref = name_;
+    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();
+      name_ = s;
+      return s;
+    }
+  }
+  /**
+   *
+   *
+   * <pre>
+   * Required. The name of the entry group. For example,
+   * `projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}`.
+   * </pre>
+   *
+   * <code>
+   * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
+   */
+  public com.google.protobuf.ByteString getNameBytes() {
+    java.lang.Object ref = name_;
+    if (ref instanceof java.lang.String) {
+      com.google.protobuf.ByteString b =
+          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+      name_ = b;
+      return b;
+    } else {
+      return (com.google.protobuf.ByteString) ref;
+    }
+  }
+
+  public static final int READ_MASK_FIELD_NUMBER = 2;
+  private com.google.protobuf.FieldMask readMask_;
+  /**
+   *
+   *
+   * <pre>
+   * Optional. The fields to return. If not set or empty, all fields are
+   * returned.
+   * </pre>
+   *
+   * <code>.google.protobuf.FieldMask read_mask = 2;</code>
+   */
+  public boolean hasReadMask() {
+    return readMask_ != null;
+  }
+  /**
+   *
+   *
+   * <pre>
+   * Optional. The fields to return. If not set or empty, all fields are
+   * returned.
+   * </pre>
+   *
+   * <code>.google.protobuf.FieldMask read_mask = 2;</code>
+   */
+  public com.google.protobuf.FieldMask getReadMask() {
+    return readMask_ == null ? com.google.protobuf.FieldMask.getDefaultInstance() : readMask_;
+  }
+  /**
+   *
+   *
+   * <pre>
+   * Optional. The fields to return. If not set or empty, all fields are
+   * returned.
+   * </pre>
+   *
+   * <code>.google.protobuf.FieldMask read_mask = 2;</code>
+   */
+  public com.google.protobuf.FieldMaskOrBuilder getReadMaskOrBuilder() {
+    return getReadMask();
+  }
+
+  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 (!getNameBytes().isEmpty()) {
+      com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
+    }
+    if (readMask_ != null) {
+      output.writeMessage(2, getReadMask());
+    }
+    unknownFields.writeTo(output);
+  }
+
+  @java.lang.Override
+  public int getSerializedSize() {
+    int size = memoizedSize;
+    if (size != -1) return size;
+
+    size = 0;
+    if (!getNameBytes().isEmpty()) {
+      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
+    }
+    if (readMask_ != null) {
+      size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getReadMask());
+    }
+    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.datacatalog.GetEntryGroupRequest)) {
+      return super.equals(obj);
+    }
+    com.google.cloud.datacatalog.GetEntryGroupRequest other =
+        (com.google.cloud.datacatalog.GetEntryGroupRequest) obj;
+
+    if (!getName().equals(other.getName())) return false;
+    if (hasReadMask() != other.hasReadMask()) return false;
+    if (hasReadMask()) {
+      if (!getReadMask().equals(other.getReadMask())) 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) + NAME_FIELD_NUMBER;
+    hash = (53 * hash) + getName().hashCode();
+    if (hasReadMask()) {
+      hash = (37 * hash) + READ_MASK_FIELD_NUMBER;
+      hash = (53 * hash) + getReadMask().hashCode();
+    }
+    hash = (29 * hash) + unknownFields.hashCode();
+    memoizedHashCode = hash;
+    return hash;
+  }
+
+  public static com.google.cloud.datacatalog.GetEntryGroupRequest parseFrom(
+      java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data);
+  }
+
+  public static com.google.cloud.datacatalog.GetEntryGroupRequest 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.datacatalog.GetEntryGroupRequest parseFrom(
+      com.google.protobuf.ByteString data)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data);
+  }
+
+  public static com.google.cloud.datacatalog.GetEntryGroupRequest 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.datacatalog.GetEntryGroupRequest parseFrom(byte[] data)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data);
+  }
+
+  public static com.google.cloud.datacatalog.GetEntryGroupRequest parseFrom(
+      byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data, extensionRegistry);
+  }
+
+  public static com.google.cloud.datacatalog.GetEntryGroupRequest parseFrom(
+      java.io.InputStream input) throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+  }
+
+  public static com.google.cloud.datacatalog.GetEntryGroupRequest 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.datacatalog.GetEntryGroupRequest parseDelimitedFrom(
+      java.io.InputStream input) throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
+  }
+
+  public static com.google.cloud.datacatalog.GetEntryGroupRequest 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.datacatalog.GetEntryGroupRequest parseFrom(
+      com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+  }
+
+  public static com.google.cloud.datacatalog.GetEntryGroupRequest 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.datacatalog.GetEntryGroupRequest 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>
+   * Request message for
+   * [GetEntryGroup][google.cloud.datacatalog.v1beta1.DataCatalog.GetEntryGroup].
+   * </pre>
+   *
+   * Protobuf type {@code google.cloud.datacatalog.v1beta1.GetEntryGroupRequest}
+   */
+  public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
+      implements
+      // @@protoc_insertion_point(builder_implements:google.cloud.datacatalog.v1beta1.GetEntryGroupRequest)
+      com.google.cloud.datacatalog.GetEntryGroupRequestOrBuilder {
+    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+      return com.google.cloud.datacatalog.Datacatalog
+          .internal_static_google_cloud_datacatalog_v1beta1_GetEntryGroupRequest_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return com.google.cloud.datacatalog.Datacatalog
+          .internal_static_google_cloud_datacatalog_v1beta1_GetEntryGroupRequest_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              com.google.cloud.datacatalog.GetEntryGroupRequest.class,
+              com.google.cloud.datacatalog.GetEntryGroupRequest.Builder.class);
+    }
+
+    // Construct using com.google.cloud.datacatalog.GetEntryGroupRequest.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();
+      name_ = "";
+
+      if (readMaskBuilder_ == null) {
+        readMask_ = null;
+      } else {
+        readMask_ = null;
+        readMaskBuilder_ = null;
+      }
+      return this;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
+      return com.google.cloud.datacatalog.Datacatalog
+          .internal_static_google_cloud_datacatalog_v1beta1_GetEntryGroupRequest_descriptor;
+    }
+
+    @java.lang.Override
+    public com.google.cloud.datacatalog.GetEntryGroupRequest getDefaultInstanceForType() {
+      return com.google.cloud.datacatalog.GetEntryGroupRequest.getDefaultInstance();
+    }
+
+    @java.lang.Override
+    public com.google.cloud.datacatalog.GetEntryGroupRequest build() {
+      com.google.cloud.datacatalog.GetEntryGroupRequest result = buildPartial();
+      if (!result.isInitialized()) {
+        throw newUninitializedMessageException(result);
+      }
+      return result;
+    }
+
+    @java.lang.Override
+    public com.google.cloud.datacatalog.GetEntryGroupRequest buildPartial() {
+      com.google.cloud.datacatalog.GetEntryGroupRequest result =
+          new com.google.cloud.datacatalog.GetEntryGroupRequest(this);
+      result.name_ = name_;
+      if (readMaskBuilder_ == null) {
+        result.readMask_ = readMask_;
+      } else {
+        result.readMask_ = readMaskBuilder_.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.datacatalog.GetEntryGroupRequest) {
+        return mergeFrom((com.google.cloud.datacatalog.GetEntryGroupRequest) other);
+      } else {
+        super.mergeFrom(other);
+        return this;
+      }
+    }
+
+    public Builder mergeFrom(com.google.cloud.datacatalog.GetEntryGroupRequest other) {
+      if (other == com.google.cloud.datacatalog.GetEntryGroupRequest.getDefaultInstance())
+        return this;
+      if (!other.getName().isEmpty()) {
+        name_ = other.name_;
+        onChanged();
+      }
+      if (other.hasReadMask()) {
+        mergeReadMask(other.getReadMask());
+      }
+      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.datacatalog.GetEntryGroupRequest parsedMessage = null;
+      try {
+        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        parsedMessage =
+            (com.google.cloud.datacatalog.GetEntryGroupRequest) e.getUnfinishedMessage();
+        throw e.unwrapIOException();
+      } finally {
+        if (parsedMessage != null) {
+          mergeFrom(parsedMessage);
+        }
+      }
+      return this;
+    }
+
+    private java.lang.Object name_ = "";
+    /**
+     *
+     *
+     * <pre>
+     * Required. The name of the entry group. For example,
+     * `projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}`.
+     * </pre>
+     *
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
+     */
+    public java.lang.String getName() {
+      java.lang.Object ref = name_;
+      if (!(ref instanceof java.lang.String)) {
+        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        name_ = s;
+        return s;
+      } else {
+        return (java.lang.String) ref;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. The name of the entry group. For example,
+     * `projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}`.
+     * </pre>
+     *
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
+     */
+    public com.google.protobuf.ByteString getNameBytes() {
+      java.lang.Object ref = name_;
+      if (ref instanceof String) {
+        com.google.protobuf.ByteString b =
+            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+        name_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. The name of the entry group. For example,
+     * `projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}`.
+     * </pre>
+     *
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
+     */
+    public Builder setName(java.lang.String value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+
+      name_ = value;
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. The name of the entry group. For example,
+     * `projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}`.
+     * </pre>
+     *
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
+     */
+    public Builder clearName() {
+
+      name_ = getDefaultInstance().getName();
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. The name of the entry group. For example,
+     * `projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}`.
+     * </pre>
+     *
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
+     */
+    public Builder setNameBytes(com.google.protobuf.ByteString value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+      checkByteStringIsUtf8(value);
+
+      name_ = value;
+      onChanged();
+      return this;
+    }
+
+    private com.google.protobuf.FieldMask readMask_;
+    private com.google.protobuf.SingleFieldBuilderV3<
+            com.google.protobuf.FieldMask,
+            com.google.protobuf.FieldMask.Builder,
+            com.google.protobuf.FieldMaskOrBuilder>
+        readMaskBuilder_;
+    /**
+     *
+     *
+     * <pre>
+     * Optional. The fields to return. If not set or empty, all fields are
+     * returned.
+     * </pre>
+     *
+     * <code>.google.protobuf.FieldMask read_mask = 2;</code>
+     */
+    public boolean hasReadMask() {
+      return readMaskBuilder_ != null || readMask_ != null;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Optional. The fields to return. If not set or empty, all fields are
+     * returned.
+     * </pre>
+     *
+     * <code>.google.protobuf.FieldMask read_mask = 2;</code>
+     */
+    public com.google.protobuf.FieldMask getReadMask() {
+      if (readMaskBuilder_ == null) {
+        return readMask_ == null ? com.google.protobuf.FieldMask.getDefaultInstance() : readMask_;
+      } else {
+        return readMaskBuilder_.getMessage();
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Optional. The fields to return. If not set or empty, all fields are
+     * returned.
+     * </pre>
+     *
+     * <code>.google.protobuf.FieldMask read_mask = 2;</code>
+     */
+    public Builder setReadMask(com.google.protobuf.FieldMask value) {
+      if (readMaskBuilder_ == null) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        readMask_ = value;
+        onChanged();
+      } else {
+        readMaskBuilder_.setMessage(value);
+      }
+
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Optional. The fields to return. If not set or empty, all fields are
+     * returned.
+     * </pre>
+     *
+     * <code>.google.protobuf.FieldMask read_mask = 2;</code>
+     */
+    public Builder setReadMask(com.google.protobuf.FieldMask.Builder builderForValue) {
+      if (readMaskBuilder_ == null) {
+        readMask_ = builderForValue.build();
+        onChanged();
+      } else {
+        readMaskBuilder_.setMessage(builderForValue.build());
+      }
+
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Optional. The fields to return. If not set or empty, all fields are
+     * returned.
+     * </pre>
+     *
+     * <code>.google.protobuf.FieldMask read_mask = 2;</code>
+     */
+    public Builder mergeReadMask(com.google.protobuf.FieldMask value) {
+      if (readMaskBuilder_ == null) {
+        if (readMask_ != null) {
+          readMask_ =
+              com.google.protobuf.FieldMask.newBuilder(readMask_).mergeFrom(value).buildPartial();
+        } else {
+          readMask_ = value;
+        }
+        onChanged();
+      } else {
+        readMaskBuilder_.mergeFrom(value);
+      }
+
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Optional. The fields to return. If not set or empty, all fields are
+     * returned.
+     * </pre>
+     *
+     * <code>.google.protobuf.FieldMask read_mask = 2;</code>
+     */
+    public Builder clearReadMask() {
+      if (readMaskBuilder_ == null) {
+        readMask_ = null;
+        onChanged();
+      } else {
+        readMask_ = null;
+        readMaskBuilder_ = null;
+      }
+
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Optional. The fields to return. If not set or empty, all fields are
+     * returned.
+     * </pre>
+     *
+     * <code>.google.protobuf.FieldMask read_mask = 2;</code>
+     */
+    public com.google.protobuf.FieldMask.Builder getReadMaskBuilder() {
+
+      onChanged();
+      return getReadMaskFieldBuilder().getBuilder();
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Optional. The fields to return. If not set or empty, all fields are
+     * returned.
+     * </pre>
+     *
+     * <code>.google.protobuf.FieldMask read_mask = 2;</code>
+     */
+    public com.google.protobuf.FieldMaskOrBuilder getReadMaskOrBuilder() {
+      if (readMaskBuilder_ != null) {
+        return readMaskBuilder_.getMessageOrBuilder();
+      } else {
+        return readMask_ == null ? com.google.protobuf.FieldMask.getDefaultInstance() : readMask_;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Optional. The fields to return. If not set or empty, all fields are
+     * returned.
+     * </pre>
+     *
+     * <code>.google.protobuf.FieldMask read_mask = 2;</code>
+     */
+    private com.google.protobuf.SingleFieldBuilderV3<
+            com.google.protobuf.FieldMask,
+            com.google.protobuf.FieldMask.Builder,
+            com.google.protobuf.FieldMaskOrBuilder>
+        getReadMaskFieldBuilder() {
+      if (readMaskBuilder_ == null) {
+        readMaskBuilder_ =
+            new com.google.protobuf.SingleFieldBuilderV3<
+                com.google.protobuf.FieldMask,
+                com.google.protobuf.FieldMask.Builder,
+                com.google.protobuf.FieldMaskOrBuilder>(
+                getReadMask(), getParentForChildren(), isClean());
+        readMask_ = null;
+      }
+      return readMaskBuilder_;
+    }
+
+    @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.datacatalog.v1beta1.GetEntryGroupRequest)
+  }
+
+  // @@protoc_insertion_point(class_scope:google.cloud.datacatalog.v1beta1.GetEntryGroupRequest)
+  private static final com.google.cloud.datacatalog.GetEntryGroupRequest DEFAULT_INSTANCE;
+
+  static {
+    DEFAULT_INSTANCE = new com.google.cloud.datacatalog.GetEntryGroupRequest();
+  }
+
+  public static com.google.cloud.datacatalog.GetEntryGroupRequest getDefaultInstance() {
+    return DEFAULT_INSTANCE;
+  }
+
+  private static final com.google.protobuf.Parser<GetEntryGroupRequest> PARSER =
+      new com.google.protobuf.AbstractParser<GetEntryGroupRequest>() {
+        @java.lang.Override
+        public GetEntryGroupRequest parsePartialFrom(
+            com.google.protobuf.CodedInputStream input,
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+            throws com.google.protobuf.InvalidProtocolBufferException {
+          return new GetEntryGroupRequest(input, extensionRegistry);
+        }
+      };
+
+  public static com.google.protobuf.Parser<GetEntryGroupRequest> parser() {
+    return PARSER;
+  }
+
+  @java.lang.Override
+  public com.google.protobuf.Parser<GetEntryGroupRequest> getParserForType() {
+    return PARSER;
+  }
+
+  @java.lang.Override
+  public com.google.cloud.datacatalog.GetEntryGroupRequest getDefaultInstanceForType() {
+    return DEFAULT_INSTANCE;
+  }
+}
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/GetEntryGroupRequestOrBuilder.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/GetEntryGroupRequestOrBuilder.java
new file mode 100644
index 000000000000..6a17cf06f294
--- /dev/null
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/GetEntryGroupRequestOrBuilder.java
@@ -0,0 +1,71 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: google/cloud/datacatalog/v1beta1/datacatalog.proto
+
+package com.google.cloud.datacatalog;
+
+public interface GetEntryGroupRequestOrBuilder
+    extends
+    // @@protoc_insertion_point(interface_extends:google.cloud.datacatalog.v1beta1.GetEntryGroupRequest)
+    com.google.protobuf.MessageOrBuilder {
+
+  /**
+   *
+   *
+   * <pre>
+   * Required. The name of the entry group. For example,
+   * `projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}`.
+   * </pre>
+   *
+   * <code>
+   * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
+   */
+  java.lang.String getName();
+  /**
+   *
+   *
+   * <pre>
+   * Required. The name of the entry group. For example,
+   * `projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}`.
+   * </pre>
+   *
+   * <code>
+   * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
+   */
+  com.google.protobuf.ByteString getNameBytes();
+
+  /**
+   *
+   *
+   * <pre>
+   * Optional. The fields to return. If not set or empty, all fields are
+   * returned.
+   * </pre>
+   *
+   * <code>.google.protobuf.FieldMask read_mask = 2;</code>
+   */
+  boolean hasReadMask();
+  /**
+   *
+   *
+   * <pre>
+   * Optional. The fields to return. If not set or empty, all fields are
+   * returned.
+   * </pre>
+   *
+   * <code>.google.protobuf.FieldMask read_mask = 2;</code>
+   */
+  com.google.protobuf.FieldMask getReadMask();
+  /**
+   *
+   *
+   * <pre>
+   * Optional. The fields to return. If not set or empty, all fields are
+   * returned.
+   * </pre>
+   *
+   * <code>.google.protobuf.FieldMask read_mask = 2;</code>
+   */
+  com.google.protobuf.FieldMaskOrBuilder getReadMaskOrBuilder();
+}
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/GetEntryRequest.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/GetEntryRequest.java
index b2cc074e9f81..e68177038f08 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/GetEntryRequest.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/GetEntryRequest.java
@@ -98,11 +98,17 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    *
    *
    * <pre>
-   * Required. The name of the entry. For example,
-   * "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}".
+   * Required. The name of the entry. Example:
+   * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
+   * Entry groups are logical groupings of entries. Currently, users cannot
+   * create/modify entry groups. They are created by Data Catalog; they include
+   * `&#64;bigquery` for all BigQuery entries, and `&#64;pubsub` for all Cloud Pub/Sub
+   * entries.
    * </pre>
    *
-   * <code>string name = 1;</code>
+   * <code>
+   * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   public java.lang.String getName() {
     java.lang.Object ref = name_;
@@ -119,11 +125,17 @@ public java.lang.String getName() {
    *
    *
    * <pre>
-   * Required. The name of the entry. For example,
-   * "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}".
+   * Required. The name of the entry. Example:
+   * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
+   * Entry groups are logical groupings of entries. Currently, users cannot
+   * create/modify entry groups. They are created by Data Catalog; they include
+   * `&#64;bigquery` for all BigQuery entries, and `&#64;pubsub` for all Cloud Pub/Sub
+   * entries.
    * </pre>
    *
-   * <code>string name = 1;</code>
+   * <code>
+   * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   public com.google.protobuf.ByteString getNameBytes() {
     java.lang.Object ref = name_;
@@ -459,11 +471,17 @@ public Builder mergeFrom(
      *
      *
      * <pre>
-     * Required. The name of the entry. For example,
-     * "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}".
+     * Required. The name of the entry. Example:
+     * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
+     * Entry groups are logical groupings of entries. Currently, users cannot
+     * create/modify entry groups. They are created by Data Catalog; they include
+     * `&#64;bigquery` for all BigQuery entries, and `&#64;pubsub` for all Cloud Pub/Sub
+     * entries.
      * </pre>
      *
-     * <code>string name = 1;</code>
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public java.lang.String getName() {
       java.lang.Object ref = name_;
@@ -480,11 +498,17 @@ public java.lang.String getName() {
      *
      *
      * <pre>
-     * Required. The name of the entry. For example,
-     * "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}".
+     * Required. The name of the entry. Example:
+     * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
+     * Entry groups are logical groupings of entries. Currently, users cannot
+     * create/modify entry groups. They are created by Data Catalog; they include
+     * `&#64;bigquery` for all BigQuery entries, and `&#64;pubsub` for all Cloud Pub/Sub
+     * entries.
      * </pre>
      *
-     * <code>string name = 1;</code>
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public com.google.protobuf.ByteString getNameBytes() {
       java.lang.Object ref = name_;
@@ -501,11 +525,17 @@ public com.google.protobuf.ByteString getNameBytes() {
      *
      *
      * <pre>
-     * Required. The name of the entry. For example,
-     * "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}".
+     * Required. The name of the entry. Example:
+     * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
+     * Entry groups are logical groupings of entries. Currently, users cannot
+     * create/modify entry groups. They are created by Data Catalog; they include
+     * `&#64;bigquery` for all BigQuery entries, and `&#64;pubsub` for all Cloud Pub/Sub
+     * entries.
      * </pre>
      *
-     * <code>string name = 1;</code>
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public Builder setName(java.lang.String value) {
       if (value == null) {
@@ -520,11 +550,17 @@ public Builder setName(java.lang.String value) {
      *
      *
      * <pre>
-     * Required. The name of the entry. For example,
-     * "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}".
+     * Required. The name of the entry. Example:
+     * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
+     * Entry groups are logical groupings of entries. Currently, users cannot
+     * create/modify entry groups. They are created by Data Catalog; they include
+     * `&#64;bigquery` for all BigQuery entries, and `&#64;pubsub` for all Cloud Pub/Sub
+     * entries.
      * </pre>
      *
-     * <code>string name = 1;</code>
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public Builder clearName() {
 
@@ -536,11 +572,17 @@ public Builder clearName() {
      *
      *
      * <pre>
-     * Required. The name of the entry. For example,
-     * "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}".
+     * Required. The name of the entry. Example:
+     * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
+     * Entry groups are logical groupings of entries. Currently, users cannot
+     * create/modify entry groups. They are created by Data Catalog; they include
+     * `&#64;bigquery` for all BigQuery entries, and `&#64;pubsub` for all Cloud Pub/Sub
+     * entries.
      * </pre>
      *
-     * <code>string name = 1;</code>
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public Builder setNameBytes(com.google.protobuf.ByteString value) {
       if (value == null) {
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/GetEntryRequestOrBuilder.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/GetEntryRequestOrBuilder.java
index 6eb9cfb9d712..12db6770ba36 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/GetEntryRequestOrBuilder.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/GetEntryRequestOrBuilder.java
@@ -12,22 +12,34 @@ public interface GetEntryRequestOrBuilder
    *
    *
    * <pre>
-   * Required. The name of the entry. For example,
-   * "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}".
+   * Required. The name of the entry. Example:
+   * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
+   * Entry groups are logical groupings of entries. Currently, users cannot
+   * create/modify entry groups. They are created by Data Catalog; they include
+   * `&#64;bigquery` for all BigQuery entries, and `&#64;pubsub` for all Cloud Pub/Sub
+   * entries.
    * </pre>
    *
-   * <code>string name = 1;</code>
+   * <code>
+   * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   java.lang.String getName();
   /**
    *
    *
    * <pre>
-   * Required. The name of the entry. For example,
-   * "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}".
+   * Required. The name of the entry. Example:
+   * * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
+   * Entry groups are logical groupings of entries. Currently, users cannot
+   * create/modify entry groups. They are created by Data Catalog; they include
+   * `&#64;bigquery` for all BigQuery entries, and `&#64;pubsub` for all Cloud Pub/Sub
+   * entries.
    * </pre>
    *
-   * <code>string name = 1;</code>
+   * <code>
+   * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   com.google.protobuf.ByteString getNameBytes();
 }
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/GetTagTemplateRequest.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/GetTagTemplateRequest.java
index a48f3d5e74bd..36da1d2e7df1 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/GetTagTemplateRequest.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/GetTagTemplateRequest.java
@@ -98,11 +98,13 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    *
    *
    * <pre>
-   * Required. The name of the tag template. For example,
-   * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}".
+   * Required. The name of the tag template. Example:
+   * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
    * </pre>
    *
-   * <code>string name = 1;</code>
+   * <code>
+   * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   public java.lang.String getName() {
     java.lang.Object ref = name_;
@@ -119,11 +121,13 @@ public java.lang.String getName() {
    *
    *
    * <pre>
-   * Required. The name of the tag template. For example,
-   * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}".
+   * Required. The name of the tag template. Example:
+   * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
    * </pre>
    *
-   * <code>string name = 1;</code>
+   * <code>
+   * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   public com.google.protobuf.ByteString getNameBytes() {
     java.lang.Object ref = name_;
@@ -461,11 +465,13 @@ public Builder mergeFrom(
      *
      *
      * <pre>
-     * Required. The name of the tag template. For example,
-     * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}".
+     * Required. The name of the tag template. Example:
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
      * </pre>
      *
-     * <code>string name = 1;</code>
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public java.lang.String getName() {
       java.lang.Object ref = name_;
@@ -482,11 +488,13 @@ public java.lang.String getName() {
      *
      *
      * <pre>
-     * Required. The name of the tag template. For example,
-     * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}".
+     * Required. The name of the tag template. Example:
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
      * </pre>
      *
-     * <code>string name = 1;</code>
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public com.google.protobuf.ByteString getNameBytes() {
       java.lang.Object ref = name_;
@@ -503,11 +511,13 @@ public com.google.protobuf.ByteString getNameBytes() {
      *
      *
      * <pre>
-     * Required. The name of the tag template. For example,
-     * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}".
+     * Required. The name of the tag template. Example:
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
      * </pre>
      *
-     * <code>string name = 1;</code>
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public Builder setName(java.lang.String value) {
       if (value == null) {
@@ -522,11 +532,13 @@ public Builder setName(java.lang.String value) {
      *
      *
      * <pre>
-     * Required. The name of the tag template. For example,
-     * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}".
+     * Required. The name of the tag template. Example:
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
      * </pre>
      *
-     * <code>string name = 1;</code>
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public Builder clearName() {
 
@@ -538,11 +550,13 @@ public Builder clearName() {
      *
      *
      * <pre>
-     * Required. The name of the tag template. For example,
-     * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}".
+     * Required. The name of the tag template. Example:
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
      * </pre>
      *
-     * <code>string name = 1;</code>
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public Builder setNameBytes(com.google.protobuf.ByteString value) {
       if (value == null) {
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/GetTagTemplateRequestOrBuilder.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/GetTagTemplateRequestOrBuilder.java
index b4a42c7956b8..8da527d1d63d 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/GetTagTemplateRequestOrBuilder.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/GetTagTemplateRequestOrBuilder.java
@@ -12,22 +12,26 @@ public interface GetTagTemplateRequestOrBuilder
    *
    *
    * <pre>
-   * Required. The name of the tag template. For example,
-   * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}".
+   * Required. The name of the tag template. Example:
+   * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
    * </pre>
    *
-   * <code>string name = 1;</code>
+   * <code>
+   * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   java.lang.String getName();
   /**
    *
    *
    * <pre>
-   * Required. The name of the tag template. For example,
-   * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}".
+   * Required. The name of the tag template. Example:
+   * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
    * </pre>
    *
-   * <code>string name = 1;</code>
+   * <code>
+   * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   com.google.protobuf.ByteString getNameBytes();
 }
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/ListTagsRequest.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/ListTagsRequest.java
index ec4683fe09b9..0e8365a2694f 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/ListTagsRequest.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/ListTagsRequest.java
@@ -115,7 +115,9 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    * resource could be an [Entry][google.cloud.datacatalog.v1beta1.Entry].
    * </pre>
    *
-   * <code>string parent = 1;</code>
+   * <code>
+   * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   public java.lang.String getParent() {
     java.lang.Object ref = parent_;
@@ -136,7 +138,9 @@ public java.lang.String getParent() {
    * resource could be an [Entry][google.cloud.datacatalog.v1beta1.Entry].
    * </pre>
    *
-   * <code>string parent = 1;</code>
+   * <code>
+   * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   public com.google.protobuf.ByteString getParentBytes() {
     java.lang.Object ref = parent_;
@@ -568,7 +572,9 @@ public Builder mergeFrom(
      * resource could be an [Entry][google.cloud.datacatalog.v1beta1.Entry].
      * </pre>
      *
-     * <code>string parent = 1;</code>
+     * <code>
+     * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public java.lang.String getParent() {
       java.lang.Object ref = parent_;
@@ -589,7 +595,9 @@ public java.lang.String getParent() {
      * resource could be an [Entry][google.cloud.datacatalog.v1beta1.Entry].
      * </pre>
      *
-     * <code>string parent = 1;</code>
+     * <code>
+     * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public com.google.protobuf.ByteString getParentBytes() {
       java.lang.Object ref = parent_;
@@ -610,7 +618,9 @@ public com.google.protobuf.ByteString getParentBytes() {
      * resource could be an [Entry][google.cloud.datacatalog.v1beta1.Entry].
      * </pre>
      *
-     * <code>string parent = 1;</code>
+     * <code>
+     * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public Builder setParent(java.lang.String value) {
       if (value == null) {
@@ -629,7 +639,9 @@ public Builder setParent(java.lang.String value) {
      * resource could be an [Entry][google.cloud.datacatalog.v1beta1.Entry].
      * </pre>
      *
-     * <code>string parent = 1;</code>
+     * <code>
+     * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public Builder clearParent() {
 
@@ -645,7 +657,9 @@ public Builder clearParent() {
      * resource could be an [Entry][google.cloud.datacatalog.v1beta1.Entry].
      * </pre>
      *
-     * <code>string parent = 1;</code>
+     * <code>
+     * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public Builder setParentBytes(com.google.protobuf.ByteString value) {
       if (value == null) {
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/ListTagsRequestOrBuilder.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/ListTagsRequestOrBuilder.java
index 808ef7a93a64..467424380414 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/ListTagsRequestOrBuilder.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/ListTagsRequestOrBuilder.java
@@ -16,7 +16,9 @@ public interface ListTagsRequestOrBuilder
    * resource could be an [Entry][google.cloud.datacatalog.v1beta1.Entry].
    * </pre>
    *
-   * <code>string parent = 1;</code>
+   * <code>
+   * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   java.lang.String getParent();
   /**
@@ -27,7 +29,9 @@ public interface ListTagsRequestOrBuilder
    * resource could be an [Entry][google.cloud.datacatalog.v1beta1.Entry].
    * </pre>
    *
-   * <code>string parent = 1;</code>
+   * <code>
+   * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   com.google.protobuf.ByteString getParentBytes();
 
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/LookupEntryRequest.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/LookupEntryRequest.java
index e3d21778012e..26365c167ead 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/LookupEntryRequest.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/LookupEntryRequest.java
@@ -144,11 +144,11 @@ public TargetNameCase getTargetNameCase() {
    * <pre>
    * The full name of the Google Cloud Platform resource the Data Catalog
    * entry represents. See:
-   * https://cloud.google.com/apis/design/resource_names#full_resource_name
+   * https://cloud.google.com/apis/design/resource_names#full_resource_name.
    * Full names are case-sensitive.
    * Examples:
-   * "//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId".
-   * "//pubsub.googleapis.com/projects/projectId/topics/topicId"
+   *  * //bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId
+   *  * //pubsub.googleapis.com/projects/projectId/topics/topicId
    * </pre>
    *
    * <code>string linked_resource = 1;</code>
@@ -175,11 +175,11 @@ public java.lang.String getLinkedResource() {
    * <pre>
    * The full name of the Google Cloud Platform resource the Data Catalog
    * entry represents. See:
-   * https://cloud.google.com/apis/design/resource_names#full_resource_name
+   * https://cloud.google.com/apis/design/resource_names#full_resource_name.
    * Full names are case-sensitive.
    * Examples:
-   * "//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId".
-   * "//pubsub.googleapis.com/projects/projectId/topics/topicId"
+   *  * //bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId
+   *  * //pubsub.googleapis.com/projects/projectId/topics/topicId
    * </pre>
    *
    * <code>string linked_resource = 1;</code>
@@ -208,14 +208,12 @@ public com.google.protobuf.ByteString getLinkedResourceBytes() {
    * <pre>
    * The SQL name of the entry. SQL names are case-sensitive.
    * Examples:
-   * &lt;ul&gt;
-   *   &lt;li&gt;cloud_pubsub.project_id.topic_id&lt;/li&gt;
-   *   &lt;li&gt;pubsub.project_id.`topic.id.with.dots`&lt;/li&gt;
-   *   &lt;li&gt;bigquery.project_id.dataset_id.table_id&lt;/li&gt;
-   *   &lt;li&gt;datacatalog.project_id.location_id.entry_group_id.entry_id&lt;/li&gt;
-   * &lt;/ul&gt;
-   * *_ids shoud satisfy the standard SQL rules for identifiers.
-   * https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical
+   *   * `cloud_pubsub.project_id.topic_id`
+   *   * ``pubsub.project_id.`topic.id.with.dots` ``
+   *   * `bigquery.project_id.dataset_id.table_id`
+   *   * `datacatalog.project_id.location_id.entry_group_id.entry_id`
+   * `*_id`s shoud satisfy the standard SQL rules for identifiers.
+   * https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical.
    * </pre>
    *
    * <code>string sql_resource = 3;</code>
@@ -242,14 +240,12 @@ public java.lang.String getSqlResource() {
    * <pre>
    * The SQL name of the entry. SQL names are case-sensitive.
    * Examples:
-   * &lt;ul&gt;
-   *   &lt;li&gt;cloud_pubsub.project_id.topic_id&lt;/li&gt;
-   *   &lt;li&gt;pubsub.project_id.`topic.id.with.dots`&lt;/li&gt;
-   *   &lt;li&gt;bigquery.project_id.dataset_id.table_id&lt;/li&gt;
-   *   &lt;li&gt;datacatalog.project_id.location_id.entry_group_id.entry_id&lt;/li&gt;
-   * &lt;/ul&gt;
-   * *_ids shoud satisfy the standard SQL rules for identifiers.
-   * https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical
+   *   * `cloud_pubsub.project_id.topic_id`
+   *   * ``pubsub.project_id.`topic.id.with.dots` ``
+   *   * `bigquery.project_id.dataset_id.table_id`
+   *   * `datacatalog.project_id.location_id.entry_group_id.entry_id`
+   * `*_id`s shoud satisfy the standard SQL rules for identifiers.
+   * https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical.
    * </pre>
    *
    * <code>string sql_resource = 3;</code>
@@ -657,11 +653,11 @@ public Builder clearTargetName() {
      * <pre>
      * The full name of the Google Cloud Platform resource the Data Catalog
      * entry represents. See:
-     * https://cloud.google.com/apis/design/resource_names#full_resource_name
+     * https://cloud.google.com/apis/design/resource_names#full_resource_name.
      * Full names are case-sensitive.
      * Examples:
-     * "//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId".
-     * "//pubsub.googleapis.com/projects/projectId/topics/topicId"
+     *  * //bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId
+     *  * //pubsub.googleapis.com/projects/projectId/topics/topicId
      * </pre>
      *
      * <code>string linked_resource = 1;</code>
@@ -688,11 +684,11 @@ public java.lang.String getLinkedResource() {
      * <pre>
      * The full name of the Google Cloud Platform resource the Data Catalog
      * entry represents. See:
-     * https://cloud.google.com/apis/design/resource_names#full_resource_name
+     * https://cloud.google.com/apis/design/resource_names#full_resource_name.
      * Full names are case-sensitive.
      * Examples:
-     * "//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId".
-     * "//pubsub.googleapis.com/projects/projectId/topics/topicId"
+     *  * //bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId
+     *  * //pubsub.googleapis.com/projects/projectId/topics/topicId
      * </pre>
      *
      * <code>string linked_resource = 1;</code>
@@ -719,11 +715,11 @@ public com.google.protobuf.ByteString getLinkedResourceBytes() {
      * <pre>
      * The full name of the Google Cloud Platform resource the Data Catalog
      * entry represents. See:
-     * https://cloud.google.com/apis/design/resource_names#full_resource_name
+     * https://cloud.google.com/apis/design/resource_names#full_resource_name.
      * Full names are case-sensitive.
      * Examples:
-     * "//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId".
-     * "//pubsub.googleapis.com/projects/projectId/topics/topicId"
+     *  * //bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId
+     *  * //pubsub.googleapis.com/projects/projectId/topics/topicId
      * </pre>
      *
      * <code>string linked_resource = 1;</code>
@@ -743,11 +739,11 @@ public Builder setLinkedResource(java.lang.String value) {
      * <pre>
      * The full name of the Google Cloud Platform resource the Data Catalog
      * entry represents. See:
-     * https://cloud.google.com/apis/design/resource_names#full_resource_name
+     * https://cloud.google.com/apis/design/resource_names#full_resource_name.
      * Full names are case-sensitive.
      * Examples:
-     * "//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId".
-     * "//pubsub.googleapis.com/projects/projectId/topics/topicId"
+     *  * //bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId
+     *  * //pubsub.googleapis.com/projects/projectId/topics/topicId
      * </pre>
      *
      * <code>string linked_resource = 1;</code>
@@ -766,11 +762,11 @@ public Builder clearLinkedResource() {
      * <pre>
      * The full name of the Google Cloud Platform resource the Data Catalog
      * entry represents. See:
-     * https://cloud.google.com/apis/design/resource_names#full_resource_name
+     * https://cloud.google.com/apis/design/resource_names#full_resource_name.
      * Full names are case-sensitive.
      * Examples:
-     * "//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId".
-     * "//pubsub.googleapis.com/projects/projectId/topics/topicId"
+     *  * //bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId
+     *  * //pubsub.googleapis.com/projects/projectId/topics/topicId
      * </pre>
      *
      * <code>string linked_resource = 1;</code>
@@ -792,14 +788,12 @@ public Builder setLinkedResourceBytes(com.google.protobuf.ByteString value) {
      * <pre>
      * The SQL name of the entry. SQL names are case-sensitive.
      * Examples:
-     * &lt;ul&gt;
-     *   &lt;li&gt;cloud_pubsub.project_id.topic_id&lt;/li&gt;
-     *   &lt;li&gt;pubsub.project_id.`topic.id.with.dots`&lt;/li&gt;
-     *   &lt;li&gt;bigquery.project_id.dataset_id.table_id&lt;/li&gt;
-     *   &lt;li&gt;datacatalog.project_id.location_id.entry_group_id.entry_id&lt;/li&gt;
-     * &lt;/ul&gt;
-     * *_ids shoud satisfy the standard SQL rules for identifiers.
-     * https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical
+     *   * `cloud_pubsub.project_id.topic_id`
+     *   * ``pubsub.project_id.`topic.id.with.dots` ``
+     *   * `bigquery.project_id.dataset_id.table_id`
+     *   * `datacatalog.project_id.location_id.entry_group_id.entry_id`
+     * `*_id`s shoud satisfy the standard SQL rules for identifiers.
+     * https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical.
      * </pre>
      *
      * <code>string sql_resource = 3;</code>
@@ -826,14 +820,12 @@ public java.lang.String getSqlResource() {
      * <pre>
      * The SQL name of the entry. SQL names are case-sensitive.
      * Examples:
-     * &lt;ul&gt;
-     *   &lt;li&gt;cloud_pubsub.project_id.topic_id&lt;/li&gt;
-     *   &lt;li&gt;pubsub.project_id.`topic.id.with.dots`&lt;/li&gt;
-     *   &lt;li&gt;bigquery.project_id.dataset_id.table_id&lt;/li&gt;
-     *   &lt;li&gt;datacatalog.project_id.location_id.entry_group_id.entry_id&lt;/li&gt;
-     * &lt;/ul&gt;
-     * *_ids shoud satisfy the standard SQL rules for identifiers.
-     * https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical
+     *   * `cloud_pubsub.project_id.topic_id`
+     *   * ``pubsub.project_id.`topic.id.with.dots` ``
+     *   * `bigquery.project_id.dataset_id.table_id`
+     *   * `datacatalog.project_id.location_id.entry_group_id.entry_id`
+     * `*_id`s shoud satisfy the standard SQL rules for identifiers.
+     * https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical.
      * </pre>
      *
      * <code>string sql_resource = 3;</code>
@@ -860,14 +852,12 @@ public com.google.protobuf.ByteString getSqlResourceBytes() {
      * <pre>
      * The SQL name of the entry. SQL names are case-sensitive.
      * Examples:
-     * &lt;ul&gt;
-     *   &lt;li&gt;cloud_pubsub.project_id.topic_id&lt;/li&gt;
-     *   &lt;li&gt;pubsub.project_id.`topic.id.with.dots`&lt;/li&gt;
-     *   &lt;li&gt;bigquery.project_id.dataset_id.table_id&lt;/li&gt;
-     *   &lt;li&gt;datacatalog.project_id.location_id.entry_group_id.entry_id&lt;/li&gt;
-     * &lt;/ul&gt;
-     * *_ids shoud satisfy the standard SQL rules for identifiers.
-     * https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical
+     *   * `cloud_pubsub.project_id.topic_id`
+     *   * ``pubsub.project_id.`topic.id.with.dots` ``
+     *   * `bigquery.project_id.dataset_id.table_id`
+     *   * `datacatalog.project_id.location_id.entry_group_id.entry_id`
+     * `*_id`s shoud satisfy the standard SQL rules for identifiers.
+     * https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical.
      * </pre>
      *
      * <code>string sql_resource = 3;</code>
@@ -887,14 +877,12 @@ public Builder setSqlResource(java.lang.String value) {
      * <pre>
      * The SQL name of the entry. SQL names are case-sensitive.
      * Examples:
-     * &lt;ul&gt;
-     *   &lt;li&gt;cloud_pubsub.project_id.topic_id&lt;/li&gt;
-     *   &lt;li&gt;pubsub.project_id.`topic.id.with.dots`&lt;/li&gt;
-     *   &lt;li&gt;bigquery.project_id.dataset_id.table_id&lt;/li&gt;
-     *   &lt;li&gt;datacatalog.project_id.location_id.entry_group_id.entry_id&lt;/li&gt;
-     * &lt;/ul&gt;
-     * *_ids shoud satisfy the standard SQL rules for identifiers.
-     * https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical
+     *   * `cloud_pubsub.project_id.topic_id`
+     *   * ``pubsub.project_id.`topic.id.with.dots` ``
+     *   * `bigquery.project_id.dataset_id.table_id`
+     *   * `datacatalog.project_id.location_id.entry_group_id.entry_id`
+     * `*_id`s shoud satisfy the standard SQL rules for identifiers.
+     * https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical.
      * </pre>
      *
      * <code>string sql_resource = 3;</code>
@@ -913,14 +901,12 @@ public Builder clearSqlResource() {
      * <pre>
      * The SQL name of the entry. SQL names are case-sensitive.
      * Examples:
-     * &lt;ul&gt;
-     *   &lt;li&gt;cloud_pubsub.project_id.topic_id&lt;/li&gt;
-     *   &lt;li&gt;pubsub.project_id.`topic.id.with.dots`&lt;/li&gt;
-     *   &lt;li&gt;bigquery.project_id.dataset_id.table_id&lt;/li&gt;
-     *   &lt;li&gt;datacatalog.project_id.location_id.entry_group_id.entry_id&lt;/li&gt;
-     * &lt;/ul&gt;
-     * *_ids shoud satisfy the standard SQL rules for identifiers.
-     * https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical
+     *   * `cloud_pubsub.project_id.topic_id`
+     *   * ``pubsub.project_id.`topic.id.with.dots` ``
+     *   * `bigquery.project_id.dataset_id.table_id`
+     *   * `datacatalog.project_id.location_id.entry_group_id.entry_id`
+     * `*_id`s shoud satisfy the standard SQL rules for identifiers.
+     * https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical.
      * </pre>
      *
      * <code>string sql_resource = 3;</code>
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/LookupEntryRequestOrBuilder.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/LookupEntryRequestOrBuilder.java
index 2a8b2bce8efa..65a238420ee8 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/LookupEntryRequestOrBuilder.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/LookupEntryRequestOrBuilder.java
@@ -14,11 +14,11 @@ public interface LookupEntryRequestOrBuilder
    * <pre>
    * The full name of the Google Cloud Platform resource the Data Catalog
    * entry represents. See:
-   * https://cloud.google.com/apis/design/resource_names#full_resource_name
+   * https://cloud.google.com/apis/design/resource_names#full_resource_name.
    * Full names are case-sensitive.
    * Examples:
-   * "//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId".
-   * "//pubsub.googleapis.com/projects/projectId/topics/topicId"
+   *  * //bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId
+   *  * //pubsub.googleapis.com/projects/projectId/topics/topicId
    * </pre>
    *
    * <code>string linked_resource = 1;</code>
@@ -30,11 +30,11 @@ public interface LookupEntryRequestOrBuilder
    * <pre>
    * The full name of the Google Cloud Platform resource the Data Catalog
    * entry represents. See:
-   * https://cloud.google.com/apis/design/resource_names#full_resource_name
+   * https://cloud.google.com/apis/design/resource_names#full_resource_name.
    * Full names are case-sensitive.
    * Examples:
-   * "//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId".
-   * "//pubsub.googleapis.com/projects/projectId/topics/topicId"
+   *  * //bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId
+   *  * //pubsub.googleapis.com/projects/projectId/topics/topicId
    * </pre>
    *
    * <code>string linked_resource = 1;</code>
@@ -47,14 +47,12 @@ public interface LookupEntryRequestOrBuilder
    * <pre>
    * The SQL name of the entry. SQL names are case-sensitive.
    * Examples:
-   * &lt;ul&gt;
-   *   &lt;li&gt;cloud_pubsub.project_id.topic_id&lt;/li&gt;
-   *   &lt;li&gt;pubsub.project_id.`topic.id.with.dots`&lt;/li&gt;
-   *   &lt;li&gt;bigquery.project_id.dataset_id.table_id&lt;/li&gt;
-   *   &lt;li&gt;datacatalog.project_id.location_id.entry_group_id.entry_id&lt;/li&gt;
-   * &lt;/ul&gt;
-   * *_ids shoud satisfy the standard SQL rules for identifiers.
-   * https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical
+   *   * `cloud_pubsub.project_id.topic_id`
+   *   * ``pubsub.project_id.`topic.id.with.dots` ``
+   *   * `bigquery.project_id.dataset_id.table_id`
+   *   * `datacatalog.project_id.location_id.entry_group_id.entry_id`
+   * `*_id`s shoud satisfy the standard SQL rules for identifiers.
+   * https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical.
    * </pre>
    *
    * <code>string sql_resource = 3;</code>
@@ -66,14 +64,12 @@ public interface LookupEntryRequestOrBuilder
    * <pre>
    * The SQL name of the entry. SQL names are case-sensitive.
    * Examples:
-   * &lt;ul&gt;
-   *   &lt;li&gt;cloud_pubsub.project_id.topic_id&lt;/li&gt;
-   *   &lt;li&gt;pubsub.project_id.`topic.id.with.dots`&lt;/li&gt;
-   *   &lt;li&gt;bigquery.project_id.dataset_id.table_id&lt;/li&gt;
-   *   &lt;li&gt;datacatalog.project_id.location_id.entry_group_id.entry_id&lt;/li&gt;
-   * &lt;/ul&gt;
-   * *_ids shoud satisfy the standard SQL rules for identifiers.
-   * https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical
+   *   * `cloud_pubsub.project_id.topic_id`
+   *   * ``pubsub.project_id.`topic.id.with.dots` ``
+   *   * `bigquery.project_id.dataset_id.table_id`
+   *   * `datacatalog.project_id.location_id.entry_group_id.entry_id`
+   * `*_id`s shoud satisfy the standard SQL rules for identifiers.
+   * https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical.
    * </pre>
    *
    * <code>string sql_resource = 3;</code>
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/RenameTagTemplateFieldRequest.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/RenameTagTemplateFieldRequest.java
index 471d03f266c3..8134551d489d 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/RenameTagTemplateFieldRequest.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/RenameTagTemplateFieldRequest.java
@@ -106,11 +106,13 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    *
    *
    * <pre>
-   * Required. The name of the tag template. For example,
-   * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}".
+   * Required. The name of the tag template. Example:
+   * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}
    * </pre>
    *
-   * <code>string name = 1;</code>
+   * <code>
+   * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   public java.lang.String getName() {
     java.lang.Object ref = name_;
@@ -127,11 +129,13 @@ public java.lang.String getName() {
    *
    *
    * <pre>
-   * Required. The name of the tag template. For example,
-   * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}".
+   * Required. The name of the tag template. Example:
+   * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}
    * </pre>
    *
-   * <code>string name = 1;</code>
+   * <code>
+   * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   public com.google.protobuf.ByteString getNameBytes() {
     java.lang.Object ref = name_;
@@ -152,10 +156,10 @@ public com.google.protobuf.ByteString getNameBytes() {
    *
    * <pre>
    * Required. The new ID of this tag template field. For example,
-   * "my_new_field".
+   * `my_new_field`.
    * </pre>
    *
-   * <code>string new_tag_template_field_id = 2;</code>
+   * <code>string new_tag_template_field_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
    */
   public java.lang.String getNewTagTemplateFieldId() {
     java.lang.Object ref = newTagTemplateFieldId_;
@@ -173,10 +177,10 @@ public java.lang.String getNewTagTemplateFieldId() {
    *
    * <pre>
    * Required. The new ID of this tag template field. For example,
-   * "my_new_field".
+   * `my_new_field`.
    * </pre>
    *
-   * <code>string new_tag_template_field_id = 2;</code>
+   * <code>string new_tag_template_field_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
    */
   public com.google.protobuf.ByteString getNewTagTemplateFieldIdBytes() {
     java.lang.Object ref = newTagTemplateFieldId_;
@@ -531,11 +535,13 @@ public Builder mergeFrom(
      *
      *
      * <pre>
-     * Required. The name of the tag template. For example,
-     * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}".
+     * Required. The name of the tag template. Example:
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}
      * </pre>
      *
-     * <code>string name = 1;</code>
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public java.lang.String getName() {
       java.lang.Object ref = name_;
@@ -552,11 +558,13 @@ public java.lang.String getName() {
      *
      *
      * <pre>
-     * Required. The name of the tag template. For example,
-     * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}".
+     * Required. The name of the tag template. Example:
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}
      * </pre>
      *
-     * <code>string name = 1;</code>
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public com.google.protobuf.ByteString getNameBytes() {
       java.lang.Object ref = name_;
@@ -573,11 +581,13 @@ public com.google.protobuf.ByteString getNameBytes() {
      *
      *
      * <pre>
-     * Required. The name of the tag template. For example,
-     * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}".
+     * Required. The name of the tag template. Example:
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}
      * </pre>
      *
-     * <code>string name = 1;</code>
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public Builder setName(java.lang.String value) {
       if (value == null) {
@@ -592,11 +602,13 @@ public Builder setName(java.lang.String value) {
      *
      *
      * <pre>
-     * Required. The name of the tag template. For example,
-     * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}".
+     * Required. The name of the tag template. Example:
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}
      * </pre>
      *
-     * <code>string name = 1;</code>
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public Builder clearName() {
 
@@ -608,11 +620,13 @@ public Builder clearName() {
      *
      *
      * <pre>
-     * Required. The name of the tag template. For example,
-     * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}".
+     * Required. The name of the tag template. Example:
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}
      * </pre>
      *
-     * <code>string name = 1;</code>
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public Builder setNameBytes(com.google.protobuf.ByteString value) {
       if (value == null) {
@@ -631,10 +645,10 @@ public Builder setNameBytes(com.google.protobuf.ByteString value) {
      *
      * <pre>
      * Required. The new ID of this tag template field. For example,
-     * "my_new_field".
+     * `my_new_field`.
      * </pre>
      *
-     * <code>string new_tag_template_field_id = 2;</code>
+     * <code>string new_tag_template_field_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public java.lang.String getNewTagTemplateFieldId() {
       java.lang.Object ref = newTagTemplateFieldId_;
@@ -652,10 +666,10 @@ public java.lang.String getNewTagTemplateFieldId() {
      *
      * <pre>
      * Required. The new ID of this tag template field. For example,
-     * "my_new_field".
+     * `my_new_field`.
      * </pre>
      *
-     * <code>string new_tag_template_field_id = 2;</code>
+     * <code>string new_tag_template_field_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public com.google.protobuf.ByteString getNewTagTemplateFieldIdBytes() {
       java.lang.Object ref = newTagTemplateFieldId_;
@@ -673,10 +687,10 @@ public com.google.protobuf.ByteString getNewTagTemplateFieldIdBytes() {
      *
      * <pre>
      * Required. The new ID of this tag template field. For example,
-     * "my_new_field".
+     * `my_new_field`.
      * </pre>
      *
-     * <code>string new_tag_template_field_id = 2;</code>
+     * <code>string new_tag_template_field_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public Builder setNewTagTemplateFieldId(java.lang.String value) {
       if (value == null) {
@@ -692,10 +706,10 @@ public Builder setNewTagTemplateFieldId(java.lang.String value) {
      *
      * <pre>
      * Required. The new ID of this tag template field. For example,
-     * "my_new_field".
+     * `my_new_field`.
      * </pre>
      *
-     * <code>string new_tag_template_field_id = 2;</code>
+     * <code>string new_tag_template_field_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public Builder clearNewTagTemplateFieldId() {
 
@@ -708,10 +722,10 @@ public Builder clearNewTagTemplateFieldId() {
      *
      * <pre>
      * Required. The new ID of this tag template field. For example,
-     * "my_new_field".
+     * `my_new_field`.
      * </pre>
      *
-     * <code>string new_tag_template_field_id = 2;</code>
+     * <code>string new_tag_template_field_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public Builder setNewTagTemplateFieldIdBytes(com.google.protobuf.ByteString value) {
       if (value == null) {
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/RenameTagTemplateFieldRequestOrBuilder.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/RenameTagTemplateFieldRequestOrBuilder.java
index fe9cc7adeb27..a417170ad74e 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/RenameTagTemplateFieldRequestOrBuilder.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/RenameTagTemplateFieldRequestOrBuilder.java
@@ -12,22 +12,26 @@ public interface RenameTagTemplateFieldRequestOrBuilder
    *
    *
    * <pre>
-   * Required. The name of the tag template. For example,
-   * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}".
+   * Required. The name of the tag template. Example:
+   * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}
    * </pre>
    *
-   * <code>string name = 1;</code>
+   * <code>
+   * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   java.lang.String getName();
   /**
    *
    *
    * <pre>
-   * Required. The name of the tag template. For example,
-   * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}".
+   * Required. The name of the tag template. Example:
+   * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}
    * </pre>
    *
-   * <code>string name = 1;</code>
+   * <code>
+   * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   com.google.protobuf.ByteString getNameBytes();
 
@@ -36,10 +40,10 @@ public interface RenameTagTemplateFieldRequestOrBuilder
    *
    * <pre>
    * Required. The new ID of this tag template field. For example,
-   * "my_new_field".
+   * `my_new_field`.
    * </pre>
    *
-   * <code>string new_tag_template_field_id = 2;</code>
+   * <code>string new_tag_template_field_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
    */
   java.lang.String getNewTagTemplateFieldId();
   /**
@@ -47,10 +51,10 @@ public interface RenameTagTemplateFieldRequestOrBuilder
    *
    * <pre>
    * Required. The new ID of this tag template field. For example,
-   * "my_new_field".
+   * `my_new_field`.
    * </pre>
    *
-   * <code>string new_tag_template_field_id = 2;</code>
+   * <code>string new_tag_template_field_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
    */
   com.google.protobuf.ByteString getNewTagTemplateFieldIdBytes();
 }
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/Schema.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/Schema.java
index a8d8cd0f0f0f..1ebee0b9b16c 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/Schema.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/Schema.java
@@ -108,7 +108,9 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    * can be specified.
    * </pre>
    *
-   * <code>repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2;</code>
+   * <code>
+   * repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   public java.util.List<com.google.cloud.datacatalog.ColumnSchema> getColumnsList() {
     return columns_;
@@ -121,7 +123,9 @@ public java.util.List<com.google.cloud.datacatalog.ColumnSchema> getColumnsList(
    * can be specified.
    * </pre>
    *
-   * <code>repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2;</code>
+   * <code>
+   * repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   public java.util.List<? extends com.google.cloud.datacatalog.ColumnSchemaOrBuilder>
       getColumnsOrBuilderList() {
@@ -135,7 +139,9 @@ public java.util.List<com.google.cloud.datacatalog.ColumnSchema> getColumnsList(
    * can be specified.
    * </pre>
    *
-   * <code>repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2;</code>
+   * <code>
+   * repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   public int getColumnsCount() {
     return columns_.size();
@@ -148,7 +154,9 @@ public int getColumnsCount() {
    * can be specified.
    * </pre>
    *
-   * <code>repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2;</code>
+   * <code>
+   * repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   public com.google.cloud.datacatalog.ColumnSchema getColumns(int index) {
     return columns_.get(index);
@@ -161,7 +169,9 @@ public com.google.cloud.datacatalog.ColumnSchema getColumns(int index) {
    * can be specified.
    * </pre>
    *
-   * <code>repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2;</code>
+   * <code>
+   * repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   public com.google.cloud.datacatalog.ColumnSchemaOrBuilder getColumnsOrBuilder(int index) {
     return columns_.get(index);
@@ -546,7 +556,9 @@ private void ensureColumnsIsMutable() {
      * can be specified.
      * </pre>
      *
-     * <code>repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2;</code>
+     * <code>
+     * repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public java.util.List<com.google.cloud.datacatalog.ColumnSchema> getColumnsList() {
       if (columnsBuilder_ == null) {
@@ -563,7 +575,9 @@ public java.util.List<com.google.cloud.datacatalog.ColumnSchema> getColumnsList(
      * can be specified.
      * </pre>
      *
-     * <code>repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2;</code>
+     * <code>
+     * repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public int getColumnsCount() {
       if (columnsBuilder_ == null) {
@@ -580,7 +594,9 @@ public int getColumnsCount() {
      * can be specified.
      * </pre>
      *
-     * <code>repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2;</code>
+     * <code>
+     * repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public com.google.cloud.datacatalog.ColumnSchema getColumns(int index) {
       if (columnsBuilder_ == null) {
@@ -597,7 +613,9 @@ public com.google.cloud.datacatalog.ColumnSchema getColumns(int index) {
      * can be specified.
      * </pre>
      *
-     * <code>repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2;</code>
+     * <code>
+     * repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder setColumns(int index, com.google.cloud.datacatalog.ColumnSchema value) {
       if (columnsBuilder_ == null) {
@@ -620,7 +638,9 @@ public Builder setColumns(int index, com.google.cloud.datacatalog.ColumnSchema v
      * can be specified.
      * </pre>
      *
-     * <code>repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2;</code>
+     * <code>
+     * repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder setColumns(
         int index, com.google.cloud.datacatalog.ColumnSchema.Builder builderForValue) {
@@ -641,7 +661,9 @@ public Builder setColumns(
      * can be specified.
      * </pre>
      *
-     * <code>repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2;</code>
+     * <code>
+     * repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder addColumns(com.google.cloud.datacatalog.ColumnSchema value) {
       if (columnsBuilder_ == null) {
@@ -664,7 +686,9 @@ public Builder addColumns(com.google.cloud.datacatalog.ColumnSchema value) {
      * can be specified.
      * </pre>
      *
-     * <code>repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2;</code>
+     * <code>
+     * repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder addColumns(int index, com.google.cloud.datacatalog.ColumnSchema value) {
       if (columnsBuilder_ == null) {
@@ -687,7 +711,9 @@ public Builder addColumns(int index, com.google.cloud.datacatalog.ColumnSchema v
      * can be specified.
      * </pre>
      *
-     * <code>repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2;</code>
+     * <code>
+     * repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder addColumns(com.google.cloud.datacatalog.ColumnSchema.Builder builderForValue) {
       if (columnsBuilder_ == null) {
@@ -707,7 +733,9 @@ public Builder addColumns(com.google.cloud.datacatalog.ColumnSchema.Builder buil
      * can be specified.
      * </pre>
      *
-     * <code>repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2;</code>
+     * <code>
+     * repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder addColumns(
         int index, com.google.cloud.datacatalog.ColumnSchema.Builder builderForValue) {
@@ -728,7 +756,9 @@ public Builder addColumns(
      * can be specified.
      * </pre>
      *
-     * <code>repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2;</code>
+     * <code>
+     * repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder addAllColumns(
         java.lang.Iterable<? extends com.google.cloud.datacatalog.ColumnSchema> values) {
@@ -749,7 +779,9 @@ public Builder addAllColumns(
      * can be specified.
      * </pre>
      *
-     * <code>repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2;</code>
+     * <code>
+     * repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder clearColumns() {
       if (columnsBuilder_ == null) {
@@ -769,7 +801,9 @@ public Builder clearColumns() {
      * can be specified.
      * </pre>
      *
-     * <code>repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2;</code>
+     * <code>
+     * repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder removeColumns(int index) {
       if (columnsBuilder_ == null) {
@@ -789,7 +823,9 @@ public Builder removeColumns(int index) {
      * can be specified.
      * </pre>
      *
-     * <code>repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2;</code>
+     * <code>
+     * repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public com.google.cloud.datacatalog.ColumnSchema.Builder getColumnsBuilder(int index) {
       return getColumnsFieldBuilder().getBuilder(index);
@@ -802,7 +838,9 @@ public com.google.cloud.datacatalog.ColumnSchema.Builder getColumnsBuilder(int i
      * can be specified.
      * </pre>
      *
-     * <code>repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2;</code>
+     * <code>
+     * repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public com.google.cloud.datacatalog.ColumnSchemaOrBuilder getColumnsOrBuilder(int index) {
       if (columnsBuilder_ == null) {
@@ -819,7 +857,9 @@ public com.google.cloud.datacatalog.ColumnSchemaOrBuilder getColumnsOrBuilder(in
      * can be specified.
      * </pre>
      *
-     * <code>repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2;</code>
+     * <code>
+     * repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public java.util.List<? extends com.google.cloud.datacatalog.ColumnSchemaOrBuilder>
         getColumnsOrBuilderList() {
@@ -837,7 +877,9 @@ public com.google.cloud.datacatalog.ColumnSchemaOrBuilder getColumnsOrBuilder(in
      * can be specified.
      * </pre>
      *
-     * <code>repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2;</code>
+     * <code>
+     * repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public com.google.cloud.datacatalog.ColumnSchema.Builder addColumnsBuilder() {
       return getColumnsFieldBuilder()
@@ -851,7 +893,9 @@ public com.google.cloud.datacatalog.ColumnSchema.Builder addColumnsBuilder() {
      * can be specified.
      * </pre>
      *
-     * <code>repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2;</code>
+     * <code>
+     * repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public com.google.cloud.datacatalog.ColumnSchema.Builder addColumnsBuilder(int index) {
       return getColumnsFieldBuilder()
@@ -865,7 +909,9 @@ public com.google.cloud.datacatalog.ColumnSchema.Builder addColumnsBuilder(int i
      * can be specified.
      * </pre>
      *
-     * <code>repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2;</code>
+     * <code>
+     * repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public java.util.List<com.google.cloud.datacatalog.ColumnSchema.Builder>
         getColumnsBuilderList() {
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/SchemaOrBuilder.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/SchemaOrBuilder.java
index 1b4b54965bcd..d44908db7387 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/SchemaOrBuilder.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/SchemaOrBuilder.java
@@ -16,7 +16,9 @@ public interface SchemaOrBuilder
    * can be specified.
    * </pre>
    *
-   * <code>repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2;</code>
+   * <code>
+   * repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   java.util.List<com.google.cloud.datacatalog.ColumnSchema> getColumnsList();
   /**
@@ -27,7 +29,9 @@ public interface SchemaOrBuilder
    * can be specified.
    * </pre>
    *
-   * <code>repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2;</code>
+   * <code>
+   * repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   com.google.cloud.datacatalog.ColumnSchema getColumns(int index);
   /**
@@ -38,7 +42,9 @@ public interface SchemaOrBuilder
    * can be specified.
    * </pre>
    *
-   * <code>repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2;</code>
+   * <code>
+   * repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   int getColumnsCount();
   /**
@@ -49,7 +55,9 @@ public interface SchemaOrBuilder
    * can be specified.
    * </pre>
    *
-   * <code>repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2;</code>
+   * <code>
+   * repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   java.util.List<? extends com.google.cloud.datacatalog.ColumnSchemaOrBuilder>
       getColumnsOrBuilderList();
@@ -61,7 +69,9 @@ public interface SchemaOrBuilder
    * can be specified.
    * </pre>
    *
-   * <code>repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2;</code>
+   * <code>
+   * repeated .google.cloud.datacatalog.v1beta1.ColumnSchema columns = 2 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   com.google.cloud.datacatalog.ColumnSchemaOrBuilder getColumnsOrBuilder(int index);
 }
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/SchemaOuterClass.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/SchemaOuterClass.java
index 3a56bbbb7957..39ce80a0cc30 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/SchemaOuterClass.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/SchemaOuterClass.java
@@ -31,15 +31,16 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
     java.lang.String[] descriptorData = {
       "\n-google/cloud/datacatalog/v1beta1/schem"
           + "a.proto\022 google.cloud.datacatalog.v1beta"
-          + "1\"I\n\006Schema\022?\n\007columns\030\002 \003(\0132..google.cl"
-          + "oud.datacatalog.v1beta1.ColumnSchema\"\223\001\n"
-          + "\014ColumnSchema\022\016\n\006column\030\006 \001(\t\022\014\n\004type\030\001 "
-          + "\001(\t\022\023\n\013description\030\002 \001(\t\022\014\n\004mode\030\003 \001(\t\022B"
-          + "\n\nsubcolumns\030\007 \003(\0132..google.cloud.dataca"
-          + "talog.v1beta1.ColumnSchemaBp\n\034com.google"
-          + ".cloud.datacatalogP\001ZKgoogle.golang.org/"
-          + "genproto/googleapis/cloud/datacatalog/v1"
-          + "beta1;datacatalog\370\001\001b\006proto3"
+          + "1\032\037google/api/field_behavior.proto\"N\n\006Sc"
+          + "hema\022D\n\007columns\030\002 \003(\0132..google.cloud.dat"
+          + "acatalog.v1beta1.ColumnSchemaB\003\340A\002\"\235\001\n\014C"
+          + "olumnSchema\022\023\n\006column\030\006 \001(\tB\003\340A\002\022\021\n\004type"
+          + "\030\001 \001(\tB\003\340A\002\022\023\n\013description\030\002 \001(\t\022\014\n\004mode"
+          + "\030\003 \001(\t\022B\n\nsubcolumns\030\007 \003(\0132..google.clou"
+          + "d.datacatalog.v1beta1.ColumnSchemaBp\n\034co"
+          + "m.google.cloud.datacatalogP\001ZKgoogle.gol"
+          + "ang.org/genproto/googleapis/cloud/dataca"
+          + "talog/v1beta1;datacatalog\370\001\001b\006proto3"
     };
     com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
         new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
@@ -50,7 +51,11 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors(
           }
         };
     com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
-        descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] {}, assigner);
+        descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          com.google.api.FieldBehaviorProto.getDescriptor(),
+        },
+        assigner);
     internal_static_google_cloud_datacatalog_v1beta1_Schema_descriptor =
         getDescriptor().getMessageTypes().get(0);
     internal_static_google_cloud_datacatalog_v1beta1_Schema_fieldAccessorTable =
@@ -67,6 +72,12 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors(
             new java.lang.String[] {
               "Column", "Type", "Description", "Mode", "Subcolumns",
             });
+    com.google.protobuf.ExtensionRegistry registry =
+        com.google.protobuf.ExtensionRegistry.newInstance();
+    registry.add(com.google.api.FieldBehaviorProto.fieldBehavior);
+    com.google.protobuf.Descriptors.FileDescriptor.internalUpdateFileDescriptor(
+        descriptor, registry);
+    com.google.api.FieldBehaviorProto.getDescriptor();
   }
 
   // @@protoc_insertion_point(outer_class_scope)
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/Search.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/Search.java
index c3c147a8f65e..9a020b9a9f02 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/Search.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/Search.java
@@ -27,18 +27,18 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
     java.lang.String[] descriptorData = {
       "\n-google/cloud/datacatalog/v1beta1/searc"
           + "h.proto\022 google.cloud.datacatalog.v1beta"
-          + "1\032\034google/api/annotations.proto\032\037google/"
-          + "protobuf/timestamp.proto\"\275\001\n\023SearchCatal"
-          + "ogResult\022N\n\022search_result_type\030\001 \001(\01622.g"
-          + "oogle.cloud.datacatalog.v1beta1.SearchRe"
-          + "sultType\022\035\n\025search_result_subtype\030\002 \001(\t\022"
-          + "\036\n\026relative_resource_name\030\003 \001(\t\022\027\n\017linke"
-          + "d_resource\030\004 \001(\t*d\n\020SearchResultType\022\"\n\036"
-          + "SEARCH_RESULT_TYPE_UNSPECIFIED\020\000\022\t\n\005ENTR"
-          + "Y\020\001\022\020\n\014TAG_TEMPLATE\020\002\022\017\n\013ENTRY_GROUP\020\003Bp"
-          + "\n\034com.google.cloud.datacatalogP\001ZKgoogle"
-          + ".golang.org/genproto/googleapis/cloud/da"
-          + "tacatalog/v1beta1;datacatalog\370\001\001b\006proto3"
+          + "1\032\037google/protobuf/timestamp.proto\"\275\001\n\023S"
+          + "earchCatalogResult\022N\n\022search_result_type"
+          + "\030\001 \001(\01622.google.cloud.datacatalog.v1beta"
+          + "1.SearchResultType\022\035\n\025search_result_subt"
+          + "ype\030\002 \001(\t\022\036\n\026relative_resource_name\030\003 \001("
+          + "\t\022\027\n\017linked_resource\030\004 \001(\t*d\n\020SearchResu"
+          + "ltType\022\"\n\036SEARCH_RESULT_TYPE_UNSPECIFIED"
+          + "\020\000\022\t\n\005ENTRY\020\001\022\020\n\014TAG_TEMPLATE\020\002\022\017\n\013ENTRY"
+          + "_GROUP\020\003Bp\n\034com.google.cloud.datacatalog"
+          + "P\001ZKgoogle.golang.org/genproto/googleapi"
+          + "s/cloud/datacatalog/v1beta1;datacatalog\370"
+          + "\001\001b\006proto3"
     };
     com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
         new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
@@ -51,7 +51,6 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors(
     com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
         descriptorData,
         new com.google.protobuf.Descriptors.FileDescriptor[] {
-          com.google.api.AnnotationsProto.getDescriptor(),
           com.google.protobuf.TimestampProto.getDescriptor(),
         },
         assigner);
@@ -63,7 +62,6 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors(
             new java.lang.String[] {
               "SearchResultType", "SearchResultSubtype", "RelativeResourceName", "LinkedResource",
             });
-    com.google.api.AnnotationsProto.getDescriptor();
     com.google.protobuf.TimestampProto.getDescriptor();
   }
 
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/SearchCatalogRequest.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/SearchCatalogRequest.java
index 6ad7b82cf16b..ae9652288ead 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/SearchCatalogRequest.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/SearchCatalogRequest.java
@@ -141,12 +141,12 @@ public interface ScopeOrBuilder
      * <pre>
      * Data Catalog tries to automatically choose the right corpus of data to
      * search through. You can ensure an organization is included by adding it
-     * to "include_org_ids". You can ensure a project's org is included with
-     * "include_project_ids". You must specify at least one organization
-     * using "include_org_ids" or "include_project_ids" in all search requests.
+     * to `include_org_ids`. You can ensure a project's org is included with
+     * `include_project_ids`. You must specify at least one organization
+     * using `include_org_ids` or `include_project_ids` in all search requests.
      * List of organization IDs to search within. To find your organization ID,
      * follow instructions in
-     * https://cloud.google.com/resource-manager/docs/creating-managing-organization
+     * https://cloud.google.com/resource-manager/docs/creating-managing-organization.
      * </pre>
      *
      * <code>repeated string include_org_ids = 2;</code>
@@ -158,12 +158,12 @@ public interface ScopeOrBuilder
      * <pre>
      * Data Catalog tries to automatically choose the right corpus of data to
      * search through. You can ensure an organization is included by adding it
-     * to "include_org_ids". You can ensure a project's org is included with
-     * "include_project_ids". You must specify at least one organization
-     * using "include_org_ids" or "include_project_ids" in all search requests.
+     * to `include_org_ids`. You can ensure a project's org is included with
+     * `include_project_ids`. You must specify at least one organization
+     * using `include_org_ids` or `include_project_ids` in all search requests.
      * List of organization IDs to search within. To find your organization ID,
      * follow instructions in
-     * https://cloud.google.com/resource-manager/docs/creating-managing-organization
+     * https://cloud.google.com/resource-manager/docs/creating-managing-organization.
      * </pre>
      *
      * <code>repeated string include_org_ids = 2;</code>
@@ -175,12 +175,12 @@ public interface ScopeOrBuilder
      * <pre>
      * Data Catalog tries to automatically choose the right corpus of data to
      * search through. You can ensure an organization is included by adding it
-     * to "include_org_ids". You can ensure a project's org is included with
-     * "include_project_ids". You must specify at least one organization
-     * using "include_org_ids" or "include_project_ids" in all search requests.
+     * to `include_org_ids`. You can ensure a project's org is included with
+     * `include_project_ids`. You must specify at least one organization
+     * using `include_org_ids` or `include_project_ids` in all search requests.
      * List of organization IDs to search within. To find your organization ID,
      * follow instructions in
-     * https://cloud.google.com/resource-manager/docs/creating-managing-organization
+     * https://cloud.google.com/resource-manager/docs/creating-managing-organization.
      * </pre>
      *
      * <code>repeated string include_org_ids = 2;</code>
@@ -192,12 +192,12 @@ public interface ScopeOrBuilder
      * <pre>
      * Data Catalog tries to automatically choose the right corpus of data to
      * search through. You can ensure an organization is included by adding it
-     * to "include_org_ids". You can ensure a project's org is included with
-     * "include_project_ids". You must specify at least one organization
-     * using "include_org_ids" or "include_project_ids" in all search requests.
+     * to `include_org_ids`. You can ensure a project's org is included with
+     * `include_project_ids`. You must specify at least one organization
+     * using `include_org_ids` or `include_project_ids` in all search requests.
      * List of organization IDs to search within. To find your organization ID,
      * follow instructions in
-     * https://cloud.google.com/resource-manager/docs/creating-managing-organization
+     * https://cloud.google.com/resource-manager/docs/creating-managing-organization.
      * </pre>
      *
      * <code>repeated string include_org_ids = 2;</code>
@@ -210,7 +210,7 @@ public interface ScopeOrBuilder
      * <pre>
      * List of project IDs to search within. To learn more about the
      * distinction between project names/IDs/numbers, go to
-     * https://cloud.google.com/docs/overview/#projects
+     * https://cloud.google.com/docs/overview/#projects.
      * </pre>
      *
      * <code>repeated string include_project_ids = 3;</code>
@@ -222,7 +222,7 @@ public interface ScopeOrBuilder
      * <pre>
      * List of project IDs to search within. To learn more about the
      * distinction between project names/IDs/numbers, go to
-     * https://cloud.google.com/docs/overview/#projects
+     * https://cloud.google.com/docs/overview/#projects.
      * </pre>
      *
      * <code>repeated string include_project_ids = 3;</code>
@@ -234,7 +234,7 @@ public interface ScopeOrBuilder
      * <pre>
      * List of project IDs to search within. To learn more about the
      * distinction between project names/IDs/numbers, go to
-     * https://cloud.google.com/docs/overview/#projects
+     * https://cloud.google.com/docs/overview/#projects.
      * </pre>
      *
      * <code>repeated string include_project_ids = 3;</code>
@@ -246,7 +246,7 @@ public interface ScopeOrBuilder
      * <pre>
      * List of project IDs to search within. To learn more about the
      * distinction between project names/IDs/numbers, go to
-     * https://cloud.google.com/docs/overview/#projects
+     * https://cloud.google.com/docs/overview/#projects.
      * </pre>
      *
      * <code>repeated string include_project_ids = 3;</code>
@@ -257,7 +257,7 @@ public interface ScopeOrBuilder
      *
      *
      * <pre>
-     * If true, include Google Cloud Platform (GCP) public datasets in the
+     * If `true`, include Google Cloud Platform (GCP) public datasets in the
      * search results. Info on GCP public datasets is available at
      * https://cloud.google.com/public-datasets/. By default, GCP public
      * datasets are excluded.
@@ -381,12 +381,12 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      * <pre>
      * Data Catalog tries to automatically choose the right corpus of data to
      * search through. You can ensure an organization is included by adding it
-     * to "include_org_ids". You can ensure a project's org is included with
-     * "include_project_ids". You must specify at least one organization
-     * using "include_org_ids" or "include_project_ids" in all search requests.
+     * to `include_org_ids`. You can ensure a project's org is included with
+     * `include_project_ids`. You must specify at least one organization
+     * using `include_org_ids` or `include_project_ids` in all search requests.
      * List of organization IDs to search within. To find your organization ID,
      * follow instructions in
-     * https://cloud.google.com/resource-manager/docs/creating-managing-organization
+     * https://cloud.google.com/resource-manager/docs/creating-managing-organization.
      * </pre>
      *
      * <code>repeated string include_org_ids = 2;</code>
@@ -400,12 +400,12 @@ public com.google.protobuf.ProtocolStringList getIncludeOrgIdsList() {
      * <pre>
      * Data Catalog tries to automatically choose the right corpus of data to
      * search through. You can ensure an organization is included by adding it
-     * to "include_org_ids". You can ensure a project's org is included with
-     * "include_project_ids". You must specify at least one organization
-     * using "include_org_ids" or "include_project_ids" in all search requests.
+     * to `include_org_ids`. You can ensure a project's org is included with
+     * `include_project_ids`. You must specify at least one organization
+     * using `include_org_ids` or `include_project_ids` in all search requests.
      * List of organization IDs to search within. To find your organization ID,
      * follow instructions in
-     * https://cloud.google.com/resource-manager/docs/creating-managing-organization
+     * https://cloud.google.com/resource-manager/docs/creating-managing-organization.
      * </pre>
      *
      * <code>repeated string include_org_ids = 2;</code>
@@ -419,12 +419,12 @@ public int getIncludeOrgIdsCount() {
      * <pre>
      * Data Catalog tries to automatically choose the right corpus of data to
      * search through. You can ensure an organization is included by adding it
-     * to "include_org_ids". You can ensure a project's org is included with
-     * "include_project_ids". You must specify at least one organization
-     * using "include_org_ids" or "include_project_ids" in all search requests.
+     * to `include_org_ids`. You can ensure a project's org is included with
+     * `include_project_ids`. You must specify at least one organization
+     * using `include_org_ids` or `include_project_ids` in all search requests.
      * List of organization IDs to search within. To find your organization ID,
      * follow instructions in
-     * https://cloud.google.com/resource-manager/docs/creating-managing-organization
+     * https://cloud.google.com/resource-manager/docs/creating-managing-organization.
      * </pre>
      *
      * <code>repeated string include_org_ids = 2;</code>
@@ -438,12 +438,12 @@ public java.lang.String getIncludeOrgIds(int index) {
      * <pre>
      * Data Catalog tries to automatically choose the right corpus of data to
      * search through. You can ensure an organization is included by adding it
-     * to "include_org_ids". You can ensure a project's org is included with
-     * "include_project_ids". You must specify at least one organization
-     * using "include_org_ids" or "include_project_ids" in all search requests.
+     * to `include_org_ids`. You can ensure a project's org is included with
+     * `include_project_ids`. You must specify at least one organization
+     * using `include_org_ids` or `include_project_ids` in all search requests.
      * List of organization IDs to search within. To find your organization ID,
      * follow instructions in
-     * https://cloud.google.com/resource-manager/docs/creating-managing-organization
+     * https://cloud.google.com/resource-manager/docs/creating-managing-organization.
      * </pre>
      *
      * <code>repeated string include_org_ids = 2;</code>
@@ -460,7 +460,7 @@ public com.google.protobuf.ByteString getIncludeOrgIdsBytes(int index) {
      * <pre>
      * List of project IDs to search within. To learn more about the
      * distinction between project names/IDs/numbers, go to
-     * https://cloud.google.com/docs/overview/#projects
+     * https://cloud.google.com/docs/overview/#projects.
      * </pre>
      *
      * <code>repeated string include_project_ids = 3;</code>
@@ -474,7 +474,7 @@ public com.google.protobuf.ProtocolStringList getIncludeProjectIdsList() {
      * <pre>
      * List of project IDs to search within. To learn more about the
      * distinction between project names/IDs/numbers, go to
-     * https://cloud.google.com/docs/overview/#projects
+     * https://cloud.google.com/docs/overview/#projects.
      * </pre>
      *
      * <code>repeated string include_project_ids = 3;</code>
@@ -488,7 +488,7 @@ public int getIncludeProjectIdsCount() {
      * <pre>
      * List of project IDs to search within. To learn more about the
      * distinction between project names/IDs/numbers, go to
-     * https://cloud.google.com/docs/overview/#projects
+     * https://cloud.google.com/docs/overview/#projects.
      * </pre>
      *
      * <code>repeated string include_project_ids = 3;</code>
@@ -502,7 +502,7 @@ public java.lang.String getIncludeProjectIds(int index) {
      * <pre>
      * List of project IDs to search within. To learn more about the
      * distinction between project names/IDs/numbers, go to
-     * https://cloud.google.com/docs/overview/#projects
+     * https://cloud.google.com/docs/overview/#projects.
      * </pre>
      *
      * <code>repeated string include_project_ids = 3;</code>
@@ -517,7 +517,7 @@ public com.google.protobuf.ByteString getIncludeProjectIdsBytes(int index) {
      *
      *
      * <pre>
-     * If true, include Google Cloud Platform (GCP) public datasets in the
+     * If `true`, include Google Cloud Platform (GCP) public datasets in the
      * search results. Info on GCP public datasets is available at
      * https://cloud.google.com/public-datasets/. By default, GCP public
      * datasets are excluded.
@@ -929,12 +929,12 @@ private void ensureIncludeOrgIdsIsMutable() {
        * <pre>
        * Data Catalog tries to automatically choose the right corpus of data to
        * search through. You can ensure an organization is included by adding it
-       * to "include_org_ids". You can ensure a project's org is included with
-       * "include_project_ids". You must specify at least one organization
-       * using "include_org_ids" or "include_project_ids" in all search requests.
+       * to `include_org_ids`. You can ensure a project's org is included with
+       * `include_project_ids`. You must specify at least one organization
+       * using `include_org_ids` or `include_project_ids` in all search requests.
        * List of organization IDs to search within. To find your organization ID,
        * follow instructions in
-       * https://cloud.google.com/resource-manager/docs/creating-managing-organization
+       * https://cloud.google.com/resource-manager/docs/creating-managing-organization.
        * </pre>
        *
        * <code>repeated string include_org_ids = 2;</code>
@@ -948,12 +948,12 @@ public com.google.protobuf.ProtocolStringList getIncludeOrgIdsList() {
        * <pre>
        * Data Catalog tries to automatically choose the right corpus of data to
        * search through. You can ensure an organization is included by adding it
-       * to "include_org_ids". You can ensure a project's org is included with
-       * "include_project_ids". You must specify at least one organization
-       * using "include_org_ids" or "include_project_ids" in all search requests.
+       * to `include_org_ids`. You can ensure a project's org is included with
+       * `include_project_ids`. You must specify at least one organization
+       * using `include_org_ids` or `include_project_ids` in all search requests.
        * List of organization IDs to search within. To find your organization ID,
        * follow instructions in
-       * https://cloud.google.com/resource-manager/docs/creating-managing-organization
+       * https://cloud.google.com/resource-manager/docs/creating-managing-organization.
        * </pre>
        *
        * <code>repeated string include_org_ids = 2;</code>
@@ -967,12 +967,12 @@ public int getIncludeOrgIdsCount() {
        * <pre>
        * Data Catalog tries to automatically choose the right corpus of data to
        * search through. You can ensure an organization is included by adding it
-       * to "include_org_ids". You can ensure a project's org is included with
-       * "include_project_ids". You must specify at least one organization
-       * using "include_org_ids" or "include_project_ids" in all search requests.
+       * to `include_org_ids`. You can ensure a project's org is included with
+       * `include_project_ids`. You must specify at least one organization
+       * using `include_org_ids` or `include_project_ids` in all search requests.
        * List of organization IDs to search within. To find your organization ID,
        * follow instructions in
-       * https://cloud.google.com/resource-manager/docs/creating-managing-organization
+       * https://cloud.google.com/resource-manager/docs/creating-managing-organization.
        * </pre>
        *
        * <code>repeated string include_org_ids = 2;</code>
@@ -986,12 +986,12 @@ public java.lang.String getIncludeOrgIds(int index) {
        * <pre>
        * Data Catalog tries to automatically choose the right corpus of data to
        * search through. You can ensure an organization is included by adding it
-       * to "include_org_ids". You can ensure a project's org is included with
-       * "include_project_ids". You must specify at least one organization
-       * using "include_org_ids" or "include_project_ids" in all search requests.
+       * to `include_org_ids`. You can ensure a project's org is included with
+       * `include_project_ids`. You must specify at least one organization
+       * using `include_org_ids` or `include_project_ids` in all search requests.
        * List of organization IDs to search within. To find your organization ID,
        * follow instructions in
-       * https://cloud.google.com/resource-manager/docs/creating-managing-organization
+       * https://cloud.google.com/resource-manager/docs/creating-managing-organization.
        * </pre>
        *
        * <code>repeated string include_org_ids = 2;</code>
@@ -1005,12 +1005,12 @@ public com.google.protobuf.ByteString getIncludeOrgIdsBytes(int index) {
        * <pre>
        * Data Catalog tries to automatically choose the right corpus of data to
        * search through. You can ensure an organization is included by adding it
-       * to "include_org_ids". You can ensure a project's org is included with
-       * "include_project_ids". You must specify at least one organization
-       * using "include_org_ids" or "include_project_ids" in all search requests.
+       * to `include_org_ids`. You can ensure a project's org is included with
+       * `include_project_ids`. You must specify at least one organization
+       * using `include_org_ids` or `include_project_ids` in all search requests.
        * List of organization IDs to search within. To find your organization ID,
        * follow instructions in
-       * https://cloud.google.com/resource-manager/docs/creating-managing-organization
+       * https://cloud.google.com/resource-manager/docs/creating-managing-organization.
        * </pre>
        *
        * <code>repeated string include_org_ids = 2;</code>
@@ -1030,12 +1030,12 @@ public Builder setIncludeOrgIds(int index, java.lang.String value) {
        * <pre>
        * Data Catalog tries to automatically choose the right corpus of data to
        * search through. You can ensure an organization is included by adding it
-       * to "include_org_ids". You can ensure a project's org is included with
-       * "include_project_ids". You must specify at least one organization
-       * using "include_org_ids" or "include_project_ids" in all search requests.
+       * to `include_org_ids`. You can ensure a project's org is included with
+       * `include_project_ids`. You must specify at least one organization
+       * using `include_org_ids` or `include_project_ids` in all search requests.
        * List of organization IDs to search within. To find your organization ID,
        * follow instructions in
-       * https://cloud.google.com/resource-manager/docs/creating-managing-organization
+       * https://cloud.google.com/resource-manager/docs/creating-managing-organization.
        * </pre>
        *
        * <code>repeated string include_org_ids = 2;</code>
@@ -1055,12 +1055,12 @@ public Builder addIncludeOrgIds(java.lang.String value) {
        * <pre>
        * Data Catalog tries to automatically choose the right corpus of data to
        * search through. You can ensure an organization is included by adding it
-       * to "include_org_ids". You can ensure a project's org is included with
-       * "include_project_ids". You must specify at least one organization
-       * using "include_org_ids" or "include_project_ids" in all search requests.
+       * to `include_org_ids`. You can ensure a project's org is included with
+       * `include_project_ids`. You must specify at least one organization
+       * using `include_org_ids` or `include_project_ids` in all search requests.
        * List of organization IDs to search within. To find your organization ID,
        * follow instructions in
-       * https://cloud.google.com/resource-manager/docs/creating-managing-organization
+       * https://cloud.google.com/resource-manager/docs/creating-managing-organization.
        * </pre>
        *
        * <code>repeated string include_org_ids = 2;</code>
@@ -1077,12 +1077,12 @@ public Builder addAllIncludeOrgIds(java.lang.Iterable<java.lang.String> values)
        * <pre>
        * Data Catalog tries to automatically choose the right corpus of data to
        * search through. You can ensure an organization is included by adding it
-       * to "include_org_ids". You can ensure a project's org is included with
-       * "include_project_ids". You must specify at least one organization
-       * using "include_org_ids" or "include_project_ids" in all search requests.
+       * to `include_org_ids`. You can ensure a project's org is included with
+       * `include_project_ids`. You must specify at least one organization
+       * using `include_org_ids` or `include_project_ids` in all search requests.
        * List of organization IDs to search within. To find your organization ID,
        * follow instructions in
-       * https://cloud.google.com/resource-manager/docs/creating-managing-organization
+       * https://cloud.google.com/resource-manager/docs/creating-managing-organization.
        * </pre>
        *
        * <code>repeated string include_org_ids = 2;</code>
@@ -1099,12 +1099,12 @@ public Builder clearIncludeOrgIds() {
        * <pre>
        * Data Catalog tries to automatically choose the right corpus of data to
        * search through. You can ensure an organization is included by adding it
-       * to "include_org_ids". You can ensure a project's org is included with
-       * "include_project_ids". You must specify at least one organization
-       * using "include_org_ids" or "include_project_ids" in all search requests.
+       * to `include_org_ids`. You can ensure a project's org is included with
+       * `include_project_ids`. You must specify at least one organization
+       * using `include_org_ids` or `include_project_ids` in all search requests.
        * List of organization IDs to search within. To find your organization ID,
        * follow instructions in
-       * https://cloud.google.com/resource-manager/docs/creating-managing-organization
+       * https://cloud.google.com/resource-manager/docs/creating-managing-organization.
        * </pre>
        *
        * <code>repeated string include_org_ids = 2;</code>
@@ -1135,7 +1135,7 @@ private void ensureIncludeProjectIdsIsMutable() {
        * <pre>
        * List of project IDs to search within. To learn more about the
        * distinction between project names/IDs/numbers, go to
-       * https://cloud.google.com/docs/overview/#projects
+       * https://cloud.google.com/docs/overview/#projects.
        * </pre>
        *
        * <code>repeated string include_project_ids = 3;</code>
@@ -1149,7 +1149,7 @@ public com.google.protobuf.ProtocolStringList getIncludeProjectIdsList() {
        * <pre>
        * List of project IDs to search within. To learn more about the
        * distinction between project names/IDs/numbers, go to
-       * https://cloud.google.com/docs/overview/#projects
+       * https://cloud.google.com/docs/overview/#projects.
        * </pre>
        *
        * <code>repeated string include_project_ids = 3;</code>
@@ -1163,7 +1163,7 @@ public int getIncludeProjectIdsCount() {
        * <pre>
        * List of project IDs to search within. To learn more about the
        * distinction between project names/IDs/numbers, go to
-       * https://cloud.google.com/docs/overview/#projects
+       * https://cloud.google.com/docs/overview/#projects.
        * </pre>
        *
        * <code>repeated string include_project_ids = 3;</code>
@@ -1177,7 +1177,7 @@ public java.lang.String getIncludeProjectIds(int index) {
        * <pre>
        * List of project IDs to search within. To learn more about the
        * distinction between project names/IDs/numbers, go to
-       * https://cloud.google.com/docs/overview/#projects
+       * https://cloud.google.com/docs/overview/#projects.
        * </pre>
        *
        * <code>repeated string include_project_ids = 3;</code>
@@ -1191,7 +1191,7 @@ public com.google.protobuf.ByteString getIncludeProjectIdsBytes(int index) {
        * <pre>
        * List of project IDs to search within. To learn more about the
        * distinction between project names/IDs/numbers, go to
-       * https://cloud.google.com/docs/overview/#projects
+       * https://cloud.google.com/docs/overview/#projects.
        * </pre>
        *
        * <code>repeated string include_project_ids = 3;</code>
@@ -1211,7 +1211,7 @@ public Builder setIncludeProjectIds(int index, java.lang.String value) {
        * <pre>
        * List of project IDs to search within. To learn more about the
        * distinction between project names/IDs/numbers, go to
-       * https://cloud.google.com/docs/overview/#projects
+       * https://cloud.google.com/docs/overview/#projects.
        * </pre>
        *
        * <code>repeated string include_project_ids = 3;</code>
@@ -1231,7 +1231,7 @@ public Builder addIncludeProjectIds(java.lang.String value) {
        * <pre>
        * List of project IDs to search within. To learn more about the
        * distinction between project names/IDs/numbers, go to
-       * https://cloud.google.com/docs/overview/#projects
+       * https://cloud.google.com/docs/overview/#projects.
        * </pre>
        *
        * <code>repeated string include_project_ids = 3;</code>
@@ -1248,7 +1248,7 @@ public Builder addAllIncludeProjectIds(java.lang.Iterable<java.lang.String> valu
        * <pre>
        * List of project IDs to search within. To learn more about the
        * distinction between project names/IDs/numbers, go to
-       * https://cloud.google.com/docs/overview/#projects
+       * https://cloud.google.com/docs/overview/#projects.
        * </pre>
        *
        * <code>repeated string include_project_ids = 3;</code>
@@ -1265,7 +1265,7 @@ public Builder clearIncludeProjectIds() {
        * <pre>
        * List of project IDs to search within. To learn more about the
        * distinction between project names/IDs/numbers, go to
-       * https://cloud.google.com/docs/overview/#projects
+       * https://cloud.google.com/docs/overview/#projects.
        * </pre>
        *
        * <code>repeated string include_project_ids = 3;</code>
@@ -1286,7 +1286,7 @@ public Builder addIncludeProjectIdsBytes(com.google.protobuf.ByteString value) {
        *
        *
        * <pre>
-       * If true, include Google Cloud Platform (GCP) public datasets in the
+       * If `true`, include Google Cloud Platform (GCP) public datasets in the
        * search results. Info on GCP public datasets is available at
        * https://cloud.google.com/public-datasets/. By default, GCP public
        * datasets are excluded.
@@ -1301,7 +1301,7 @@ public boolean getIncludeGcpPublicDatasets() {
        *
        *
        * <pre>
-       * If true, include Google Cloud Platform (GCP) public datasets in the
+       * If `true`, include Google Cloud Platform (GCP) public datasets in the
        * search results. Info on GCP public datasets is available at
        * https://cloud.google.com/public-datasets/. By default, GCP public
        * datasets are excluded.
@@ -1319,7 +1319,7 @@ public Builder setIncludeGcpPublicDatasets(boolean value) {
        *
        *
        * <pre>
-       * If true, include Google Cloud Platform (GCP) public datasets in the
+       * If `true`, include Google Cloud Platform (GCP) public datasets in the
        * search results. Info on GCP public datasets is available at
        * https://cloud.google.com/public-datasets/. By default, GCP public
        * datasets are excluded.
@@ -1395,7 +1395,9 @@ public com.google.cloud.datacatalog.SearchCatalogRequest.Scope getDefaultInstanc
    * Required. The scope of this search request.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.SearchCatalogRequest.Scope scope = 6;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.SearchCatalogRequest.Scope scope = 6 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   public boolean hasScope() {
     return scope_ != null;
@@ -1407,7 +1409,9 @@ public boolean hasScope() {
    * Required. The scope of this search request.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.SearchCatalogRequest.Scope scope = 6;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.SearchCatalogRequest.Scope scope = 6 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   public com.google.cloud.datacatalog.SearchCatalogRequest.Scope getScope() {
     return scope_ == null
@@ -1421,7 +1425,9 @@ public com.google.cloud.datacatalog.SearchCatalogRequest.Scope getScope() {
    * Required. The scope of this search request.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.SearchCatalogRequest.Scope scope = 6;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.SearchCatalogRequest.Scope scope = 6 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   public com.google.cloud.datacatalog.SearchCatalogRequest.ScopeOrBuilder getScopeOrBuilder() {
     return getScope();
@@ -1444,7 +1450,7 @@ public com.google.cloud.datacatalog.SearchCatalogRequest.ScopeOrBuilder getScope
    * Syntax](/data-catalog/docs/how-to/search-reference) for more information.
    * </pre>
    *
-   * <code>string query = 1;</code>
+   * <code>string query = 1 [(.google.api.field_behavior) = REQUIRED];</code>
    */
   public java.lang.String getQuery() {
     java.lang.Object ref = query_;
@@ -1472,7 +1478,7 @@ public java.lang.String getQuery() {
    * Syntax](/data-catalog/docs/how-to/search-reference) for more information.
    * </pre>
    *
-   * <code>string query = 1;</code>
+   * <code>string query = 1 [(.google.api.field_behavior) = REQUIRED];</code>
    */
   public com.google.protobuf.ByteString getQueryBytes() {
     java.lang.Object ref = query_;
@@ -1509,11 +1515,11 @@ public int getPageSize() {
    *
    * <pre>
    * Optional pagination token returned in an earlier
-   * [SearchCatalogResponse.next_page_token][google.cloud.datacatalog.v1beta1.DataCatalog.SearchCatalogResponse.next_page_token];
+   * [SearchCatalogResponse.next_page_token][google.cloud.datacatalog.v1beta1.SearchCatalogResponse.next_page_token], which
    * indicates that this is a continuation of a prior
-   * [SearchCatalog][google.cloud.datacatalog.v1beta1.DataCatalog.SearchCatalog]
-   * call, and that the system should return the next page of data. If empty
-   * then the first page is returned.
+   * [SearchCatalogRequest][google.cloud.datacatalog.v1beta1.DataCatalog.SearchCatalog]
+   * call, and that the system should return the next page of data. If empty,
+   * the first page is returned.
    * </pre>
    *
    * <code>string page_token = 3;</code>
@@ -1534,11 +1540,11 @@ public java.lang.String getPageToken() {
    *
    * <pre>
    * Optional pagination token returned in an earlier
-   * [SearchCatalogResponse.next_page_token][google.cloud.datacatalog.v1beta1.DataCatalog.SearchCatalogResponse.next_page_token];
+   * [SearchCatalogResponse.next_page_token][google.cloud.datacatalog.v1beta1.SearchCatalogResponse.next_page_token], which
    * indicates that this is a continuation of a prior
-   * [SearchCatalog][google.cloud.datacatalog.v1beta1.DataCatalog.SearchCatalog]
-   * call, and that the system should return the next page of data. If empty
-   * then the first page is returned.
+   * [SearchCatalogRequest][google.cloud.datacatalog.v1beta1.DataCatalog.SearchCatalog]
+   * call, and that the system should return the next page of data. If empty,
+   * the first page is returned.
    * </pre>
    *
    * <code>string page_token = 3;</code>
@@ -1563,13 +1569,12 @@ public com.google.protobuf.ByteString getPageTokenBytes() {
    * <pre>
    * Specifies the ordering of results, currently supported case-sensitive
    * choices are:
-   * &lt;ul&gt;
-   *   &lt;li&gt; relevance &lt;/li&gt;
-   *   &lt;li&gt; last_access_timestamp [asc|desc], defaults to descending if not
-   *   specified, &lt;/li&gt;
-   *   &lt;li&gt; last_modified_timestamp [asc|desc], defaults to descending if not
-   *   specified. &lt;/li&gt;
-   * &lt;/ul&gt;
+   *   * `relevance`, only supports desecending
+   *   * `last_access_timestamp [asc|desc]`, defaults to descending if not
+   *     specified
+   *   * `last_modified_timestamp [asc|desc]`, defaults to descending if not
+   *     specified
+   * If not specified, defaults to `relevance` descending.
    * </pre>
    *
    * <code>string order_by = 5;</code>
@@ -1591,13 +1596,12 @@ public java.lang.String getOrderBy() {
    * <pre>
    * Specifies the ordering of results, currently supported case-sensitive
    * choices are:
-   * &lt;ul&gt;
-   *   &lt;li&gt; relevance &lt;/li&gt;
-   *   &lt;li&gt; last_access_timestamp [asc|desc], defaults to descending if not
-   *   specified, &lt;/li&gt;
-   *   &lt;li&gt; last_modified_timestamp [asc|desc], defaults to descending if not
-   *   specified. &lt;/li&gt;
-   * &lt;/ul&gt;
+   *   * `relevance`, only supports desecending
+   *   * `last_access_timestamp [asc|desc]`, defaults to descending if not
+   *     specified
+   *   * `last_modified_timestamp [asc|desc]`, defaults to descending if not
+   *     specified
+   * If not specified, defaults to `relevance` descending.
    * </pre>
    *
    * <code>string order_by = 5;</code>
@@ -2021,7 +2025,9 @@ public Builder mergeFrom(
      * Required. The scope of this search request.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.SearchCatalogRequest.Scope scope = 6;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.SearchCatalogRequest.Scope scope = 6 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public boolean hasScope() {
       return scopeBuilder_ != null || scope_ != null;
@@ -2033,7 +2039,9 @@ public boolean hasScope() {
      * Required. The scope of this search request.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.SearchCatalogRequest.Scope scope = 6;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.SearchCatalogRequest.Scope scope = 6 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public com.google.cloud.datacatalog.SearchCatalogRequest.Scope getScope() {
       if (scopeBuilder_ == null) {
@@ -2051,7 +2059,9 @@ public com.google.cloud.datacatalog.SearchCatalogRequest.Scope getScope() {
      * Required. The scope of this search request.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.SearchCatalogRequest.Scope scope = 6;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.SearchCatalogRequest.Scope scope = 6 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder setScope(com.google.cloud.datacatalog.SearchCatalogRequest.Scope value) {
       if (scopeBuilder_ == null) {
@@ -2073,7 +2083,9 @@ public Builder setScope(com.google.cloud.datacatalog.SearchCatalogRequest.Scope
      * Required. The scope of this search request.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.SearchCatalogRequest.Scope scope = 6;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.SearchCatalogRequest.Scope scope = 6 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder setScope(
         com.google.cloud.datacatalog.SearchCatalogRequest.Scope.Builder builderForValue) {
@@ -2093,7 +2105,9 @@ public Builder setScope(
      * Required. The scope of this search request.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.SearchCatalogRequest.Scope scope = 6;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.SearchCatalogRequest.Scope scope = 6 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder mergeScope(com.google.cloud.datacatalog.SearchCatalogRequest.Scope value) {
       if (scopeBuilder_ == null) {
@@ -2119,7 +2133,9 @@ public Builder mergeScope(com.google.cloud.datacatalog.SearchCatalogRequest.Scop
      * Required. The scope of this search request.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.SearchCatalogRequest.Scope scope = 6;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.SearchCatalogRequest.Scope scope = 6 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder clearScope() {
       if (scopeBuilder_ == null) {
@@ -2139,7 +2155,9 @@ public Builder clearScope() {
      * Required. The scope of this search request.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.SearchCatalogRequest.Scope scope = 6;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.SearchCatalogRequest.Scope scope = 6 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public com.google.cloud.datacatalog.SearchCatalogRequest.Scope.Builder getScopeBuilder() {
 
@@ -2153,7 +2171,9 @@ public com.google.cloud.datacatalog.SearchCatalogRequest.Scope.Builder getScopeB
      * Required. The scope of this search request.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.SearchCatalogRequest.Scope scope = 6;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.SearchCatalogRequest.Scope scope = 6 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public com.google.cloud.datacatalog.SearchCatalogRequest.ScopeOrBuilder getScopeOrBuilder() {
       if (scopeBuilder_ != null) {
@@ -2171,7 +2191,9 @@ public com.google.cloud.datacatalog.SearchCatalogRequest.ScopeOrBuilder getScope
      * Required. The scope of this search request.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.SearchCatalogRequest.Scope scope = 6;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.SearchCatalogRequest.Scope scope = 6 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     private com.google.protobuf.SingleFieldBuilderV3<
             com.google.cloud.datacatalog.SearchCatalogRequest.Scope,
@@ -2206,7 +2228,7 @@ public com.google.cloud.datacatalog.SearchCatalogRequest.ScopeOrBuilder getScope
      * Syntax](/data-catalog/docs/how-to/search-reference) for more information.
      * </pre>
      *
-     * <code>string query = 1;</code>
+     * <code>string query = 1 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public java.lang.String getQuery() {
       java.lang.Object ref = query_;
@@ -2234,7 +2256,7 @@ public java.lang.String getQuery() {
      * Syntax](/data-catalog/docs/how-to/search-reference) for more information.
      * </pre>
      *
-     * <code>string query = 1;</code>
+     * <code>string query = 1 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public com.google.protobuf.ByteString getQueryBytes() {
       java.lang.Object ref = query_;
@@ -2262,7 +2284,7 @@ public com.google.protobuf.ByteString getQueryBytes() {
      * Syntax](/data-catalog/docs/how-to/search-reference) for more information.
      * </pre>
      *
-     * <code>string query = 1;</code>
+     * <code>string query = 1 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public Builder setQuery(java.lang.String value) {
       if (value == null) {
@@ -2288,7 +2310,7 @@ public Builder setQuery(java.lang.String value) {
      * Syntax](/data-catalog/docs/how-to/search-reference) for more information.
      * </pre>
      *
-     * <code>string query = 1;</code>
+     * <code>string query = 1 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public Builder clearQuery() {
 
@@ -2311,7 +2333,7 @@ public Builder clearQuery() {
      * Syntax](/data-catalog/docs/how-to/search-reference) for more information.
      * </pre>
      *
-     * <code>string query = 1;</code>
+     * <code>string query = 1 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public Builder setQueryBytes(com.google.protobuf.ByteString value) {
       if (value == null) {
@@ -2377,11 +2399,11 @@ public Builder clearPageSize() {
      *
      * <pre>
      * Optional pagination token returned in an earlier
-     * [SearchCatalogResponse.next_page_token][google.cloud.datacatalog.v1beta1.DataCatalog.SearchCatalogResponse.next_page_token];
+     * [SearchCatalogResponse.next_page_token][google.cloud.datacatalog.v1beta1.SearchCatalogResponse.next_page_token], which
      * indicates that this is a continuation of a prior
-     * [SearchCatalog][google.cloud.datacatalog.v1beta1.DataCatalog.SearchCatalog]
-     * call, and that the system should return the next page of data. If empty
-     * then the first page is returned.
+     * [SearchCatalogRequest][google.cloud.datacatalog.v1beta1.DataCatalog.SearchCatalog]
+     * call, and that the system should return the next page of data. If empty,
+     * the first page is returned.
      * </pre>
      *
      * <code>string page_token = 3;</code>
@@ -2402,11 +2424,11 @@ public java.lang.String getPageToken() {
      *
      * <pre>
      * Optional pagination token returned in an earlier
-     * [SearchCatalogResponse.next_page_token][google.cloud.datacatalog.v1beta1.DataCatalog.SearchCatalogResponse.next_page_token];
+     * [SearchCatalogResponse.next_page_token][google.cloud.datacatalog.v1beta1.SearchCatalogResponse.next_page_token], which
      * indicates that this is a continuation of a prior
-     * [SearchCatalog][google.cloud.datacatalog.v1beta1.DataCatalog.SearchCatalog]
-     * call, and that the system should return the next page of data. If empty
-     * then the first page is returned.
+     * [SearchCatalogRequest][google.cloud.datacatalog.v1beta1.DataCatalog.SearchCatalog]
+     * call, and that the system should return the next page of data. If empty,
+     * the first page is returned.
      * </pre>
      *
      * <code>string page_token = 3;</code>
@@ -2427,11 +2449,11 @@ public com.google.protobuf.ByteString getPageTokenBytes() {
      *
      * <pre>
      * Optional pagination token returned in an earlier
-     * [SearchCatalogResponse.next_page_token][google.cloud.datacatalog.v1beta1.DataCatalog.SearchCatalogResponse.next_page_token];
+     * [SearchCatalogResponse.next_page_token][google.cloud.datacatalog.v1beta1.SearchCatalogResponse.next_page_token], which
      * indicates that this is a continuation of a prior
-     * [SearchCatalog][google.cloud.datacatalog.v1beta1.DataCatalog.SearchCatalog]
-     * call, and that the system should return the next page of data. If empty
-     * then the first page is returned.
+     * [SearchCatalogRequest][google.cloud.datacatalog.v1beta1.DataCatalog.SearchCatalog]
+     * call, and that the system should return the next page of data. If empty,
+     * the first page is returned.
      * </pre>
      *
      * <code>string page_token = 3;</code>
@@ -2450,11 +2472,11 @@ public Builder setPageToken(java.lang.String value) {
      *
      * <pre>
      * Optional pagination token returned in an earlier
-     * [SearchCatalogResponse.next_page_token][google.cloud.datacatalog.v1beta1.DataCatalog.SearchCatalogResponse.next_page_token];
+     * [SearchCatalogResponse.next_page_token][google.cloud.datacatalog.v1beta1.SearchCatalogResponse.next_page_token], which
      * indicates that this is a continuation of a prior
-     * [SearchCatalog][google.cloud.datacatalog.v1beta1.DataCatalog.SearchCatalog]
-     * call, and that the system should return the next page of data. If empty
-     * then the first page is returned.
+     * [SearchCatalogRequest][google.cloud.datacatalog.v1beta1.DataCatalog.SearchCatalog]
+     * call, and that the system should return the next page of data. If empty,
+     * the first page is returned.
      * </pre>
      *
      * <code>string page_token = 3;</code>
@@ -2470,11 +2492,11 @@ public Builder clearPageToken() {
      *
      * <pre>
      * Optional pagination token returned in an earlier
-     * [SearchCatalogResponse.next_page_token][google.cloud.datacatalog.v1beta1.DataCatalog.SearchCatalogResponse.next_page_token];
+     * [SearchCatalogResponse.next_page_token][google.cloud.datacatalog.v1beta1.SearchCatalogResponse.next_page_token], which
      * indicates that this is a continuation of a prior
-     * [SearchCatalog][google.cloud.datacatalog.v1beta1.DataCatalog.SearchCatalog]
-     * call, and that the system should return the next page of data. If empty
-     * then the first page is returned.
+     * [SearchCatalogRequest][google.cloud.datacatalog.v1beta1.DataCatalog.SearchCatalog]
+     * call, and that the system should return the next page of data. If empty,
+     * the first page is returned.
      * </pre>
      *
      * <code>string page_token = 3;</code>
@@ -2497,13 +2519,12 @@ public Builder setPageTokenBytes(com.google.protobuf.ByteString value) {
      * <pre>
      * Specifies the ordering of results, currently supported case-sensitive
      * choices are:
-     * &lt;ul&gt;
-     *   &lt;li&gt; relevance &lt;/li&gt;
-     *   &lt;li&gt; last_access_timestamp [asc|desc], defaults to descending if not
-     *   specified, &lt;/li&gt;
-     *   &lt;li&gt; last_modified_timestamp [asc|desc], defaults to descending if not
-     *   specified. &lt;/li&gt;
-     * &lt;/ul&gt;
+     *   * `relevance`, only supports desecending
+     *   * `last_access_timestamp [asc|desc]`, defaults to descending if not
+     *     specified
+     *   * `last_modified_timestamp [asc|desc]`, defaults to descending if not
+     *     specified
+     * If not specified, defaults to `relevance` descending.
      * </pre>
      *
      * <code>string order_by = 5;</code>
@@ -2525,13 +2546,12 @@ public java.lang.String getOrderBy() {
      * <pre>
      * Specifies the ordering of results, currently supported case-sensitive
      * choices are:
-     * &lt;ul&gt;
-     *   &lt;li&gt; relevance &lt;/li&gt;
-     *   &lt;li&gt; last_access_timestamp [asc|desc], defaults to descending if not
-     *   specified, &lt;/li&gt;
-     *   &lt;li&gt; last_modified_timestamp [asc|desc], defaults to descending if not
-     *   specified. &lt;/li&gt;
-     * &lt;/ul&gt;
+     *   * `relevance`, only supports desecending
+     *   * `last_access_timestamp [asc|desc]`, defaults to descending if not
+     *     specified
+     *   * `last_modified_timestamp [asc|desc]`, defaults to descending if not
+     *     specified
+     * If not specified, defaults to `relevance` descending.
      * </pre>
      *
      * <code>string order_by = 5;</code>
@@ -2553,13 +2573,12 @@ public com.google.protobuf.ByteString getOrderByBytes() {
      * <pre>
      * Specifies the ordering of results, currently supported case-sensitive
      * choices are:
-     * &lt;ul&gt;
-     *   &lt;li&gt; relevance &lt;/li&gt;
-     *   &lt;li&gt; last_access_timestamp [asc|desc], defaults to descending if not
-     *   specified, &lt;/li&gt;
-     *   &lt;li&gt; last_modified_timestamp [asc|desc], defaults to descending if not
-     *   specified. &lt;/li&gt;
-     * &lt;/ul&gt;
+     *   * `relevance`, only supports desecending
+     *   * `last_access_timestamp [asc|desc]`, defaults to descending if not
+     *     specified
+     *   * `last_modified_timestamp [asc|desc]`, defaults to descending if not
+     *     specified
+     * If not specified, defaults to `relevance` descending.
      * </pre>
      *
      * <code>string order_by = 5;</code>
@@ -2579,13 +2598,12 @@ public Builder setOrderBy(java.lang.String value) {
      * <pre>
      * Specifies the ordering of results, currently supported case-sensitive
      * choices are:
-     * &lt;ul&gt;
-     *   &lt;li&gt; relevance &lt;/li&gt;
-     *   &lt;li&gt; last_access_timestamp [asc|desc], defaults to descending if not
-     *   specified, &lt;/li&gt;
-     *   &lt;li&gt; last_modified_timestamp [asc|desc], defaults to descending if not
-     *   specified. &lt;/li&gt;
-     * &lt;/ul&gt;
+     *   * `relevance`, only supports desecending
+     *   * `last_access_timestamp [asc|desc]`, defaults to descending if not
+     *     specified
+     *   * `last_modified_timestamp [asc|desc]`, defaults to descending if not
+     *     specified
+     * If not specified, defaults to `relevance` descending.
      * </pre>
      *
      * <code>string order_by = 5;</code>
@@ -2602,13 +2620,12 @@ public Builder clearOrderBy() {
      * <pre>
      * Specifies the ordering of results, currently supported case-sensitive
      * choices are:
-     * &lt;ul&gt;
-     *   &lt;li&gt; relevance &lt;/li&gt;
-     *   &lt;li&gt; last_access_timestamp [asc|desc], defaults to descending if not
-     *   specified, &lt;/li&gt;
-     *   &lt;li&gt; last_modified_timestamp [asc|desc], defaults to descending if not
-     *   specified. &lt;/li&gt;
-     * &lt;/ul&gt;
+     *   * `relevance`, only supports desecending
+     *   * `last_access_timestamp [asc|desc]`, defaults to descending if not
+     *     specified
+     *   * `last_modified_timestamp [asc|desc]`, defaults to descending if not
+     *     specified
+     * If not specified, defaults to `relevance` descending.
      * </pre>
      *
      * <code>string order_by = 5;</code>
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/SearchCatalogRequestOrBuilder.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/SearchCatalogRequestOrBuilder.java
index 2e4920d97159..7c5211e3e752 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/SearchCatalogRequestOrBuilder.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/SearchCatalogRequestOrBuilder.java
@@ -15,7 +15,9 @@ public interface SearchCatalogRequestOrBuilder
    * Required. The scope of this search request.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.SearchCatalogRequest.Scope scope = 6;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.SearchCatalogRequest.Scope scope = 6 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   boolean hasScope();
   /**
@@ -25,7 +27,9 @@ public interface SearchCatalogRequestOrBuilder
    * Required. The scope of this search request.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.SearchCatalogRequest.Scope scope = 6;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.SearchCatalogRequest.Scope scope = 6 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   com.google.cloud.datacatalog.SearchCatalogRequest.Scope getScope();
   /**
@@ -35,7 +39,9 @@ public interface SearchCatalogRequestOrBuilder
    * Required. The scope of this search request.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.SearchCatalogRequest.Scope scope = 6;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.SearchCatalogRequest.Scope scope = 6 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   com.google.cloud.datacatalog.SearchCatalogRequest.ScopeOrBuilder getScopeOrBuilder();
 
@@ -54,7 +60,7 @@ public interface SearchCatalogRequestOrBuilder
    * Syntax](/data-catalog/docs/how-to/search-reference) for more information.
    * </pre>
    *
-   * <code>string query = 1;</code>
+   * <code>string query = 1 [(.google.api.field_behavior) = REQUIRED];</code>
    */
   java.lang.String getQuery();
   /**
@@ -72,7 +78,7 @@ public interface SearchCatalogRequestOrBuilder
    * Syntax](/data-catalog/docs/how-to/search-reference) for more information.
    * </pre>
    *
-   * <code>string query = 1;</code>
+   * <code>string query = 1 [(.google.api.field_behavior) = REQUIRED];</code>
    */
   com.google.protobuf.ByteString getQueryBytes();
 
@@ -93,11 +99,11 @@ public interface SearchCatalogRequestOrBuilder
    *
    * <pre>
    * Optional pagination token returned in an earlier
-   * [SearchCatalogResponse.next_page_token][google.cloud.datacatalog.v1beta1.DataCatalog.SearchCatalogResponse.next_page_token];
+   * [SearchCatalogResponse.next_page_token][google.cloud.datacatalog.v1beta1.SearchCatalogResponse.next_page_token], which
    * indicates that this is a continuation of a prior
-   * [SearchCatalog][google.cloud.datacatalog.v1beta1.DataCatalog.SearchCatalog]
-   * call, and that the system should return the next page of data. If empty
-   * then the first page is returned.
+   * [SearchCatalogRequest][google.cloud.datacatalog.v1beta1.DataCatalog.SearchCatalog]
+   * call, and that the system should return the next page of data. If empty,
+   * the first page is returned.
    * </pre>
    *
    * <code>string page_token = 3;</code>
@@ -108,11 +114,11 @@ public interface SearchCatalogRequestOrBuilder
    *
    * <pre>
    * Optional pagination token returned in an earlier
-   * [SearchCatalogResponse.next_page_token][google.cloud.datacatalog.v1beta1.DataCatalog.SearchCatalogResponse.next_page_token];
+   * [SearchCatalogResponse.next_page_token][google.cloud.datacatalog.v1beta1.SearchCatalogResponse.next_page_token], which
    * indicates that this is a continuation of a prior
-   * [SearchCatalog][google.cloud.datacatalog.v1beta1.DataCatalog.SearchCatalog]
-   * call, and that the system should return the next page of data. If empty
-   * then the first page is returned.
+   * [SearchCatalogRequest][google.cloud.datacatalog.v1beta1.DataCatalog.SearchCatalog]
+   * call, and that the system should return the next page of data. If empty,
+   * the first page is returned.
    * </pre>
    *
    * <code>string page_token = 3;</code>
@@ -125,13 +131,12 @@ public interface SearchCatalogRequestOrBuilder
    * <pre>
    * Specifies the ordering of results, currently supported case-sensitive
    * choices are:
-   * &lt;ul&gt;
-   *   &lt;li&gt; relevance &lt;/li&gt;
-   *   &lt;li&gt; last_access_timestamp [asc|desc], defaults to descending if not
-   *   specified, &lt;/li&gt;
-   *   &lt;li&gt; last_modified_timestamp [asc|desc], defaults to descending if not
-   *   specified. &lt;/li&gt;
-   * &lt;/ul&gt;
+   *   * `relevance`, only supports desecending
+   *   * `last_access_timestamp [asc|desc]`, defaults to descending if not
+   *     specified
+   *   * `last_modified_timestamp [asc|desc]`, defaults to descending if not
+   *     specified
+   * If not specified, defaults to `relevance` descending.
    * </pre>
    *
    * <code>string order_by = 5;</code>
@@ -143,13 +148,12 @@ public interface SearchCatalogRequestOrBuilder
    * <pre>
    * Specifies the ordering of results, currently supported case-sensitive
    * choices are:
-   * &lt;ul&gt;
-   *   &lt;li&gt; relevance &lt;/li&gt;
-   *   &lt;li&gt; last_access_timestamp [asc|desc], defaults to descending if not
-   *   specified, &lt;/li&gt;
-   *   &lt;li&gt; last_modified_timestamp [asc|desc], defaults to descending if not
-   *   specified. &lt;/li&gt;
-   * &lt;/ul&gt;
+   *   * `relevance`, only supports desecending
+   *   * `last_access_timestamp [asc|desc]`, defaults to descending if not
+   *     specified
+   *   * `last_modified_timestamp [asc|desc]`, defaults to descending if not
+   *     specified
+   * If not specified, defaults to `relevance` descending.
    * </pre>
    *
    * <code>string order_by = 5;</code>
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/SearchCatalogResponse.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/SearchCatalogResponse.java
index 94ce5b2d9a10..5ef67f743a2e 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/SearchCatalogResponse.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/SearchCatalogResponse.java
@@ -116,7 +116,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    *
    *
    * <pre>
-   * Search results in descending order of relevance.
+   * Search results.
    * </pre>
    *
    * <code>repeated .google.cloud.datacatalog.v1beta1.SearchCatalogResult results = 1;</code>
@@ -128,7 +128,7 @@ public java.util.List<com.google.cloud.datacatalog.SearchCatalogResult> getResul
    *
    *
    * <pre>
-   * Search results in descending order of relevance.
+   * Search results.
    * </pre>
    *
    * <code>repeated .google.cloud.datacatalog.v1beta1.SearchCatalogResult results = 1;</code>
@@ -141,7 +141,7 @@ public java.util.List<com.google.cloud.datacatalog.SearchCatalogResult> getResul
    *
    *
    * <pre>
-   * Search results in descending order of relevance.
+   * Search results.
    * </pre>
    *
    * <code>repeated .google.cloud.datacatalog.v1beta1.SearchCatalogResult results = 1;</code>
@@ -153,7 +153,7 @@ public int getResultsCount() {
    *
    *
    * <pre>
-   * Search results in descending order of relevance.
+   * Search results.
    * </pre>
    *
    * <code>repeated .google.cloud.datacatalog.v1beta1.SearchCatalogResult results = 1;</code>
@@ -165,7 +165,7 @@ public com.google.cloud.datacatalog.SearchCatalogResult getResults(int index) {
    *
    *
    * <pre>
-   * Search results in descending order of relevance.
+   * Search results.
    * </pre>
    *
    * <code>repeated .google.cloud.datacatalog.v1beta1.SearchCatalogResult results = 1;</code>
@@ -617,7 +617,7 @@ private void ensureResultsIsMutable() {
      *
      *
      * <pre>
-     * Search results in descending order of relevance.
+     * Search results.
      * </pre>
      *
      * <code>repeated .google.cloud.datacatalog.v1beta1.SearchCatalogResult results = 1;</code>
@@ -633,7 +633,7 @@ public java.util.List<com.google.cloud.datacatalog.SearchCatalogResult> getResul
      *
      *
      * <pre>
-     * Search results in descending order of relevance.
+     * Search results.
      * </pre>
      *
      * <code>repeated .google.cloud.datacatalog.v1beta1.SearchCatalogResult results = 1;</code>
@@ -649,7 +649,7 @@ public int getResultsCount() {
      *
      *
      * <pre>
-     * Search results in descending order of relevance.
+     * Search results.
      * </pre>
      *
      * <code>repeated .google.cloud.datacatalog.v1beta1.SearchCatalogResult results = 1;</code>
@@ -665,7 +665,7 @@ public com.google.cloud.datacatalog.SearchCatalogResult getResults(int index) {
      *
      *
      * <pre>
-     * Search results in descending order of relevance.
+     * Search results.
      * </pre>
      *
      * <code>repeated .google.cloud.datacatalog.v1beta1.SearchCatalogResult results = 1;</code>
@@ -687,7 +687,7 @@ public Builder setResults(int index, com.google.cloud.datacatalog.SearchCatalogR
      *
      *
      * <pre>
-     * Search results in descending order of relevance.
+     * Search results.
      * </pre>
      *
      * <code>repeated .google.cloud.datacatalog.v1beta1.SearchCatalogResult results = 1;</code>
@@ -707,7 +707,7 @@ public Builder setResults(
      *
      *
      * <pre>
-     * Search results in descending order of relevance.
+     * Search results.
      * </pre>
      *
      * <code>repeated .google.cloud.datacatalog.v1beta1.SearchCatalogResult results = 1;</code>
@@ -729,7 +729,7 @@ public Builder addResults(com.google.cloud.datacatalog.SearchCatalogResult value
      *
      *
      * <pre>
-     * Search results in descending order of relevance.
+     * Search results.
      * </pre>
      *
      * <code>repeated .google.cloud.datacatalog.v1beta1.SearchCatalogResult results = 1;</code>
@@ -751,7 +751,7 @@ public Builder addResults(int index, com.google.cloud.datacatalog.SearchCatalogR
      *
      *
      * <pre>
-     * Search results in descending order of relevance.
+     * Search results.
      * </pre>
      *
      * <code>repeated .google.cloud.datacatalog.v1beta1.SearchCatalogResult results = 1;</code>
@@ -771,7 +771,7 @@ public Builder addResults(
      *
      *
      * <pre>
-     * Search results in descending order of relevance.
+     * Search results.
      * </pre>
      *
      * <code>repeated .google.cloud.datacatalog.v1beta1.SearchCatalogResult results = 1;</code>
@@ -791,7 +791,7 @@ public Builder addResults(
      *
      *
      * <pre>
-     * Search results in descending order of relevance.
+     * Search results.
      * </pre>
      *
      * <code>repeated .google.cloud.datacatalog.v1beta1.SearchCatalogResult results = 1;</code>
@@ -811,7 +811,7 @@ public Builder addAllResults(
      *
      *
      * <pre>
-     * Search results in descending order of relevance.
+     * Search results.
      * </pre>
      *
      * <code>repeated .google.cloud.datacatalog.v1beta1.SearchCatalogResult results = 1;</code>
@@ -830,7 +830,7 @@ public Builder clearResults() {
      *
      *
      * <pre>
-     * Search results in descending order of relevance.
+     * Search results.
      * </pre>
      *
      * <code>repeated .google.cloud.datacatalog.v1beta1.SearchCatalogResult results = 1;</code>
@@ -849,7 +849,7 @@ public Builder removeResults(int index) {
      *
      *
      * <pre>
-     * Search results in descending order of relevance.
+     * Search results.
      * </pre>
      *
      * <code>repeated .google.cloud.datacatalog.v1beta1.SearchCatalogResult results = 1;</code>
@@ -861,7 +861,7 @@ public com.google.cloud.datacatalog.SearchCatalogResult.Builder getResultsBuilde
      *
      *
      * <pre>
-     * Search results in descending order of relevance.
+     * Search results.
      * </pre>
      *
      * <code>repeated .google.cloud.datacatalog.v1beta1.SearchCatalogResult results = 1;</code>
@@ -878,7 +878,7 @@ public com.google.cloud.datacatalog.SearchCatalogResultOrBuilder getResultsOrBui
      *
      *
      * <pre>
-     * Search results in descending order of relevance.
+     * Search results.
      * </pre>
      *
      * <code>repeated .google.cloud.datacatalog.v1beta1.SearchCatalogResult results = 1;</code>
@@ -895,7 +895,7 @@ public com.google.cloud.datacatalog.SearchCatalogResultOrBuilder getResultsOrBui
      *
      *
      * <pre>
-     * Search results in descending order of relevance.
+     * Search results.
      * </pre>
      *
      * <code>repeated .google.cloud.datacatalog.v1beta1.SearchCatalogResult results = 1;</code>
@@ -908,7 +908,7 @@ public com.google.cloud.datacatalog.SearchCatalogResult.Builder addResultsBuilde
      *
      *
      * <pre>
-     * Search results in descending order of relevance.
+     * Search results.
      * </pre>
      *
      * <code>repeated .google.cloud.datacatalog.v1beta1.SearchCatalogResult results = 1;</code>
@@ -921,7 +921,7 @@ public com.google.cloud.datacatalog.SearchCatalogResult.Builder addResultsBuilde
      *
      *
      * <pre>
-     * Search results in descending order of relevance.
+     * Search results.
      * </pre>
      *
      * <code>repeated .google.cloud.datacatalog.v1beta1.SearchCatalogResult results = 1;</code>
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/SearchCatalogResponseOrBuilder.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/SearchCatalogResponseOrBuilder.java
index e1adcee2d82a..56e2349f95c6 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/SearchCatalogResponseOrBuilder.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/SearchCatalogResponseOrBuilder.java
@@ -12,7 +12,7 @@ public interface SearchCatalogResponseOrBuilder
    *
    *
    * <pre>
-   * Search results in descending order of relevance.
+   * Search results.
    * </pre>
    *
    * <code>repeated .google.cloud.datacatalog.v1beta1.SearchCatalogResult results = 1;</code>
@@ -22,7 +22,7 @@ public interface SearchCatalogResponseOrBuilder
    *
    *
    * <pre>
-   * Search results in descending order of relevance.
+   * Search results.
    * </pre>
    *
    * <code>repeated .google.cloud.datacatalog.v1beta1.SearchCatalogResult results = 1;</code>
@@ -32,7 +32,7 @@ public interface SearchCatalogResponseOrBuilder
    *
    *
    * <pre>
-   * Search results in descending order of relevance.
+   * Search results.
    * </pre>
    *
    * <code>repeated .google.cloud.datacatalog.v1beta1.SearchCatalogResult results = 1;</code>
@@ -42,7 +42,7 @@ public interface SearchCatalogResponseOrBuilder
    *
    *
    * <pre>
-   * Search results in descending order of relevance.
+   * Search results.
    * </pre>
    *
    * <code>repeated .google.cloud.datacatalog.v1beta1.SearchCatalogResult results = 1;</code>
@@ -53,7 +53,7 @@ public interface SearchCatalogResponseOrBuilder
    *
    *
    * <pre>
-   * Search results in descending order of relevance.
+   * Search results.
    * </pre>
    *
    * <code>repeated .google.cloud.datacatalog.v1beta1.SearchCatalogResult results = 1;</code>
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/SearchCatalogResult.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/SearchCatalogResult.java
index 74963d8f1497..10ae4ef79a2f 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/SearchCatalogResult.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/SearchCatalogResult.java
@@ -156,8 +156,8 @@ public com.google.cloud.datacatalog.SearchResultType getSearchResultType() {
    * <pre>
    * Sub-type of the search result. This is a dot-delimited description of the
    * resource's full type, and is the same as the value callers would provide in
-   * the "type" search facet.  Examples: "entry.table", "entry.dataStream",
-   * "tagTemplate"
+   * the "type" search facet.  Examples: `entry.table`, `entry.dataStream`,
+   * `tagTemplate`.
    * </pre>
    *
    * <code>string search_result_subtype = 2;</code>
@@ -179,8 +179,8 @@ public java.lang.String getSearchResultSubtype() {
    * <pre>
    * Sub-type of the search result. This is a dot-delimited description of the
    * resource's full type, and is the same as the value callers would provide in
-   * the "type" search facet.  Examples: "entry.table", "entry.dataStream",
-   * "tagTemplate"
+   * the "type" search facet.  Examples: `entry.table`, `entry.dataStream`,
+   * `tagTemplate`.
    * </pre>
    *
    * <code>string search_result_subtype = 2;</code>
@@ -205,8 +205,8 @@ public com.google.protobuf.ByteString getSearchResultSubtypeBytes() {
    * <pre>
    * The relative resource name of the resource in URL format.
    * Examples:
-   * "projects/{project_id}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}".
-   * "projects/{project_id}/tagTemplates/{tag_template_id}".
+   *  * `projects/{project_id}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}`
+   *  * `projects/{project_id}/tagTemplates/{tag_template_id}`
    * </pre>
    *
    * <code>string relative_resource_name = 3;</code>
@@ -228,8 +228,8 @@ public java.lang.String getRelativeResourceName() {
    * <pre>
    * The relative resource name of the resource in URL format.
    * Examples:
-   * "projects/{project_id}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}".
-   * "projects/{project_id}/tagTemplates/{tag_template_id}".
+   *  * `projects/{project_id}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}`
+   *  * `projects/{project_id}/tagTemplates/{tag_template_id}`
    * </pre>
    *
    * <code>string relative_resource_name = 3;</code>
@@ -253,9 +253,9 @@ public com.google.protobuf.ByteString getRelativeResourceNameBytes() {
    *
    * <pre>
    * The full name of the cloud resource the entry belongs to. See:
-   * https://cloud.google.com/apis/design/resource_names#full_resource_name
+   * https://cloud.google.com/apis/design/resource_names#full_resource_name.
    * Example:
-   * "//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId".
+   *  * `//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId`
    * </pre>
    *
    * <code>string linked_resource = 4;</code>
@@ -276,9 +276,9 @@ public java.lang.String getLinkedResource() {
    *
    * <pre>
    * The full name of the cloud resource the entry belongs to. See:
-   * https://cloud.google.com/apis/design/resource_names#full_resource_name
+   * https://cloud.google.com/apis/design/resource_names#full_resource_name.
    * Example:
-   * "//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId".
+   *  * `//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId`
    * </pre>
    *
    * <code>string linked_resource = 4;</code>
@@ -752,8 +752,8 @@ public Builder clearSearchResultType() {
      * <pre>
      * Sub-type of the search result. This is a dot-delimited description of the
      * resource's full type, and is the same as the value callers would provide in
-     * the "type" search facet.  Examples: "entry.table", "entry.dataStream",
-     * "tagTemplate"
+     * the "type" search facet.  Examples: `entry.table`, `entry.dataStream`,
+     * `tagTemplate`.
      * </pre>
      *
      * <code>string search_result_subtype = 2;</code>
@@ -775,8 +775,8 @@ public java.lang.String getSearchResultSubtype() {
      * <pre>
      * Sub-type of the search result. This is a dot-delimited description of the
      * resource's full type, and is the same as the value callers would provide in
-     * the "type" search facet.  Examples: "entry.table", "entry.dataStream",
-     * "tagTemplate"
+     * the "type" search facet.  Examples: `entry.table`, `entry.dataStream`,
+     * `tagTemplate`.
      * </pre>
      *
      * <code>string search_result_subtype = 2;</code>
@@ -798,8 +798,8 @@ public com.google.protobuf.ByteString getSearchResultSubtypeBytes() {
      * <pre>
      * Sub-type of the search result. This is a dot-delimited description of the
      * resource's full type, and is the same as the value callers would provide in
-     * the "type" search facet.  Examples: "entry.table", "entry.dataStream",
-     * "tagTemplate"
+     * the "type" search facet.  Examples: `entry.table`, `entry.dataStream`,
+     * `tagTemplate`.
      * </pre>
      *
      * <code>string search_result_subtype = 2;</code>
@@ -819,8 +819,8 @@ public Builder setSearchResultSubtype(java.lang.String value) {
      * <pre>
      * Sub-type of the search result. This is a dot-delimited description of the
      * resource's full type, and is the same as the value callers would provide in
-     * the "type" search facet.  Examples: "entry.table", "entry.dataStream",
-     * "tagTemplate"
+     * the "type" search facet.  Examples: `entry.table`, `entry.dataStream`,
+     * `tagTemplate`.
      * </pre>
      *
      * <code>string search_result_subtype = 2;</code>
@@ -837,8 +837,8 @@ public Builder clearSearchResultSubtype() {
      * <pre>
      * Sub-type of the search result. This is a dot-delimited description of the
      * resource's full type, and is the same as the value callers would provide in
-     * the "type" search facet.  Examples: "entry.table", "entry.dataStream",
-     * "tagTemplate"
+     * the "type" search facet.  Examples: `entry.table`, `entry.dataStream`,
+     * `tagTemplate`.
      * </pre>
      *
      * <code>string search_result_subtype = 2;</code>
@@ -861,8 +861,8 @@ public Builder setSearchResultSubtypeBytes(com.google.protobuf.ByteString value)
      * <pre>
      * The relative resource name of the resource in URL format.
      * Examples:
-     * "projects/{project_id}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}".
-     * "projects/{project_id}/tagTemplates/{tag_template_id}".
+     *  * `projects/{project_id}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}`
+     *  * `projects/{project_id}/tagTemplates/{tag_template_id}`
      * </pre>
      *
      * <code>string relative_resource_name = 3;</code>
@@ -884,8 +884,8 @@ public java.lang.String getRelativeResourceName() {
      * <pre>
      * The relative resource name of the resource in URL format.
      * Examples:
-     * "projects/{project_id}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}".
-     * "projects/{project_id}/tagTemplates/{tag_template_id}".
+     *  * `projects/{project_id}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}`
+     *  * `projects/{project_id}/tagTemplates/{tag_template_id}`
      * </pre>
      *
      * <code>string relative_resource_name = 3;</code>
@@ -907,8 +907,8 @@ public com.google.protobuf.ByteString getRelativeResourceNameBytes() {
      * <pre>
      * The relative resource name of the resource in URL format.
      * Examples:
-     * "projects/{project_id}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}".
-     * "projects/{project_id}/tagTemplates/{tag_template_id}".
+     *  * `projects/{project_id}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}`
+     *  * `projects/{project_id}/tagTemplates/{tag_template_id}`
      * </pre>
      *
      * <code>string relative_resource_name = 3;</code>
@@ -928,8 +928,8 @@ public Builder setRelativeResourceName(java.lang.String value) {
      * <pre>
      * The relative resource name of the resource in URL format.
      * Examples:
-     * "projects/{project_id}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}".
-     * "projects/{project_id}/tagTemplates/{tag_template_id}".
+     *  * `projects/{project_id}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}`
+     *  * `projects/{project_id}/tagTemplates/{tag_template_id}`
      * </pre>
      *
      * <code>string relative_resource_name = 3;</code>
@@ -946,8 +946,8 @@ public Builder clearRelativeResourceName() {
      * <pre>
      * The relative resource name of the resource in URL format.
      * Examples:
-     * "projects/{project_id}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}".
-     * "projects/{project_id}/tagTemplates/{tag_template_id}".
+     *  * `projects/{project_id}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}`
+     *  * `projects/{project_id}/tagTemplates/{tag_template_id}`
      * </pre>
      *
      * <code>string relative_resource_name = 3;</code>
@@ -969,9 +969,9 @@ public Builder setRelativeResourceNameBytes(com.google.protobuf.ByteString value
      *
      * <pre>
      * The full name of the cloud resource the entry belongs to. See:
-     * https://cloud.google.com/apis/design/resource_names#full_resource_name
+     * https://cloud.google.com/apis/design/resource_names#full_resource_name.
      * Example:
-     * "//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId".
+     *  * `//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId`
      * </pre>
      *
      * <code>string linked_resource = 4;</code>
@@ -992,9 +992,9 @@ public java.lang.String getLinkedResource() {
      *
      * <pre>
      * The full name of the cloud resource the entry belongs to. See:
-     * https://cloud.google.com/apis/design/resource_names#full_resource_name
+     * https://cloud.google.com/apis/design/resource_names#full_resource_name.
      * Example:
-     * "//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId".
+     *  * `//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId`
      * </pre>
      *
      * <code>string linked_resource = 4;</code>
@@ -1015,9 +1015,9 @@ public com.google.protobuf.ByteString getLinkedResourceBytes() {
      *
      * <pre>
      * The full name of the cloud resource the entry belongs to. See:
-     * https://cloud.google.com/apis/design/resource_names#full_resource_name
+     * https://cloud.google.com/apis/design/resource_names#full_resource_name.
      * Example:
-     * "//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId".
+     *  * `//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId`
      * </pre>
      *
      * <code>string linked_resource = 4;</code>
@@ -1036,9 +1036,9 @@ public Builder setLinkedResource(java.lang.String value) {
      *
      * <pre>
      * The full name of the cloud resource the entry belongs to. See:
-     * https://cloud.google.com/apis/design/resource_names#full_resource_name
+     * https://cloud.google.com/apis/design/resource_names#full_resource_name.
      * Example:
-     * "//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId".
+     *  * `//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId`
      * </pre>
      *
      * <code>string linked_resource = 4;</code>
@@ -1054,9 +1054,9 @@ public Builder clearLinkedResource() {
      *
      * <pre>
      * The full name of the cloud resource the entry belongs to. See:
-     * https://cloud.google.com/apis/design/resource_names#full_resource_name
+     * https://cloud.google.com/apis/design/resource_names#full_resource_name.
      * Example:
-     * "//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId".
+     *  * `//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId`
      * </pre>
      *
      * <code>string linked_resource = 4;</code>
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/SearchCatalogResultOrBuilder.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/SearchCatalogResultOrBuilder.java
index 05b00e730fa6..124c152b6935 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/SearchCatalogResultOrBuilder.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/SearchCatalogResultOrBuilder.java
@@ -37,8 +37,8 @@ public interface SearchCatalogResultOrBuilder
    * <pre>
    * Sub-type of the search result. This is a dot-delimited description of the
    * resource's full type, and is the same as the value callers would provide in
-   * the "type" search facet.  Examples: "entry.table", "entry.dataStream",
-   * "tagTemplate"
+   * the "type" search facet.  Examples: `entry.table`, `entry.dataStream`,
+   * `tagTemplate`.
    * </pre>
    *
    * <code>string search_result_subtype = 2;</code>
@@ -50,8 +50,8 @@ public interface SearchCatalogResultOrBuilder
    * <pre>
    * Sub-type of the search result. This is a dot-delimited description of the
    * resource's full type, and is the same as the value callers would provide in
-   * the "type" search facet.  Examples: "entry.table", "entry.dataStream",
-   * "tagTemplate"
+   * the "type" search facet.  Examples: `entry.table`, `entry.dataStream`,
+   * `tagTemplate`.
    * </pre>
    *
    * <code>string search_result_subtype = 2;</code>
@@ -64,8 +64,8 @@ public interface SearchCatalogResultOrBuilder
    * <pre>
    * The relative resource name of the resource in URL format.
    * Examples:
-   * "projects/{project_id}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}".
-   * "projects/{project_id}/tagTemplates/{tag_template_id}".
+   *  * `projects/{project_id}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}`
+   *  * `projects/{project_id}/tagTemplates/{tag_template_id}`
    * </pre>
    *
    * <code>string relative_resource_name = 3;</code>
@@ -77,8 +77,8 @@ public interface SearchCatalogResultOrBuilder
    * <pre>
    * The relative resource name of the resource in URL format.
    * Examples:
-   * "projects/{project_id}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}".
-   * "projects/{project_id}/tagTemplates/{tag_template_id}".
+   *  * `projects/{project_id}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}`
+   *  * `projects/{project_id}/tagTemplates/{tag_template_id}`
    * </pre>
    *
    * <code>string relative_resource_name = 3;</code>
@@ -90,9 +90,9 @@ public interface SearchCatalogResultOrBuilder
    *
    * <pre>
    * The full name of the cloud resource the entry belongs to. See:
-   * https://cloud.google.com/apis/design/resource_names#full_resource_name
+   * https://cloud.google.com/apis/design/resource_names#full_resource_name.
    * Example:
-   * "//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId".
+   *  * `//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId`
    * </pre>
    *
    * <code>string linked_resource = 4;</code>
@@ -103,9 +103,9 @@ public interface SearchCatalogResultOrBuilder
    *
    * <pre>
    * The full name of the cloud resource the entry belongs to. See:
-   * https://cloud.google.com/apis/design/resource_names#full_resource_name
+   * https://cloud.google.com/apis/design/resource_names#full_resource_name.
    * Example:
-   * "//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId".
+   *  * `//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId`
    * </pre>
    *
    * <code>string linked_resource = 4;</code>
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/SystemTimestamps.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/SystemTimestamps.java
index f0338ed22131..89b6f15f145a 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/SystemTimestamps.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/SystemTimestamps.java
@@ -133,7 +133,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    *
    *
    * <pre>
-   * Output only. The creation time of the resource within the given system.
+   * The creation time of the resource within the given system.
    * </pre>
    *
    * <code>.google.protobuf.Timestamp create_time = 1;</code>
@@ -145,7 +145,7 @@ public boolean hasCreateTime() {
    *
    *
    * <pre>
-   * Output only. The creation time of the resource within the given system.
+   * The creation time of the resource within the given system.
    * </pre>
    *
    * <code>.google.protobuf.Timestamp create_time = 1;</code>
@@ -157,7 +157,7 @@ public com.google.protobuf.Timestamp getCreateTime() {
    *
    *
    * <pre>
-   * Output only. The creation time of the resource within the given system.
+   * The creation time of the resource within the given system.
    * </pre>
    *
    * <code>.google.protobuf.Timestamp create_time = 1;</code>
@@ -172,8 +172,7 @@ public com.google.protobuf.TimestampOrBuilder getCreateTimeOrBuilder() {
    *
    *
    * <pre>
-   * Output only. The last-modified time of the resource within the given
-   * system.
+   * The last-modified time of the resource within the given system.
    * </pre>
    *
    * <code>.google.protobuf.Timestamp update_time = 2;</code>
@@ -185,8 +184,7 @@ public boolean hasUpdateTime() {
    *
    *
    * <pre>
-   * Output only. The last-modified time of the resource within the given
-   * system.
+   * The last-modified time of the resource within the given system.
    * </pre>
    *
    * <code>.google.protobuf.Timestamp update_time = 2;</code>
@@ -198,8 +196,7 @@ public com.google.protobuf.Timestamp getUpdateTime() {
    *
    *
    * <pre>
-   * Output only. The last-modified time of the resource within the given
-   * system.
+   * The last-modified time of the resource within the given system.
    * </pre>
    *
    * <code>.google.protobuf.Timestamp update_time = 2;</code>
@@ -215,9 +212,11 @@ public com.google.protobuf.TimestampOrBuilder getUpdateTimeOrBuilder() {
    *
    * <pre>
    * Output only. The expiration time of the resource within the given system.
+   * Currently only apllicable to BigQuery resources.
    * </pre>
    *
-   * <code>.google.protobuf.Timestamp expire_time = 3;</code>
+   * <code>.google.protobuf.Timestamp expire_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+   * </code>
    */
   public boolean hasExpireTime() {
     return expireTime_ != null;
@@ -227,9 +226,11 @@ public boolean hasExpireTime() {
    *
    * <pre>
    * Output only. The expiration time of the resource within the given system.
+   * Currently only apllicable to BigQuery resources.
    * </pre>
    *
-   * <code>.google.protobuf.Timestamp expire_time = 3;</code>
+   * <code>.google.protobuf.Timestamp expire_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+   * </code>
    */
   public com.google.protobuf.Timestamp getExpireTime() {
     return expireTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : expireTime_;
@@ -239,9 +240,11 @@ public com.google.protobuf.Timestamp getExpireTime() {
    *
    * <pre>
    * Output only. The expiration time of the resource within the given system.
+   * Currently only apllicable to BigQuery resources.
    * </pre>
    *
-   * <code>.google.protobuf.Timestamp expire_time = 3;</code>
+   * <code>.google.protobuf.Timestamp expire_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+   * </code>
    */
   public com.google.protobuf.TimestampOrBuilder getExpireTimeOrBuilder() {
     return getExpireTime();
@@ -641,7 +644,7 @@ public Builder mergeFrom(
      *
      *
      * <pre>
-     * Output only. The creation time of the resource within the given system.
+     * The creation time of the resource within the given system.
      * </pre>
      *
      * <code>.google.protobuf.Timestamp create_time = 1;</code>
@@ -653,7 +656,7 @@ public boolean hasCreateTime() {
      *
      *
      * <pre>
-     * Output only. The creation time of the resource within the given system.
+     * The creation time of the resource within the given system.
      * </pre>
      *
      * <code>.google.protobuf.Timestamp create_time = 1;</code>
@@ -671,7 +674,7 @@ public com.google.protobuf.Timestamp getCreateTime() {
      *
      *
      * <pre>
-     * Output only. The creation time of the resource within the given system.
+     * The creation time of the resource within the given system.
      * </pre>
      *
      * <code>.google.protobuf.Timestamp create_time = 1;</code>
@@ -693,7 +696,7 @@ public Builder setCreateTime(com.google.protobuf.Timestamp value) {
      *
      *
      * <pre>
-     * Output only. The creation time of the resource within the given system.
+     * The creation time of the resource within the given system.
      * </pre>
      *
      * <code>.google.protobuf.Timestamp create_time = 1;</code>
@@ -712,7 +715,7 @@ public Builder setCreateTime(com.google.protobuf.Timestamp.Builder builderForVal
      *
      *
      * <pre>
-     * Output only. The creation time of the resource within the given system.
+     * The creation time of the resource within the given system.
      * </pre>
      *
      * <code>.google.protobuf.Timestamp create_time = 1;</code>
@@ -736,7 +739,7 @@ public Builder mergeCreateTime(com.google.protobuf.Timestamp value) {
      *
      *
      * <pre>
-     * Output only. The creation time of the resource within the given system.
+     * The creation time of the resource within the given system.
      * </pre>
      *
      * <code>.google.protobuf.Timestamp create_time = 1;</code>
@@ -756,7 +759,7 @@ public Builder clearCreateTime() {
      *
      *
      * <pre>
-     * Output only. The creation time of the resource within the given system.
+     * The creation time of the resource within the given system.
      * </pre>
      *
      * <code>.google.protobuf.Timestamp create_time = 1;</code>
@@ -770,7 +773,7 @@ public com.google.protobuf.Timestamp.Builder getCreateTimeBuilder() {
      *
      *
      * <pre>
-     * Output only. The creation time of the resource within the given system.
+     * The creation time of the resource within the given system.
      * </pre>
      *
      * <code>.google.protobuf.Timestamp create_time = 1;</code>
@@ -788,7 +791,7 @@ public com.google.protobuf.TimestampOrBuilder getCreateTimeOrBuilder() {
      *
      *
      * <pre>
-     * Output only. The creation time of the resource within the given system.
+     * The creation time of the resource within the given system.
      * </pre>
      *
      * <code>.google.protobuf.Timestamp create_time = 1;</code>
@@ -820,8 +823,7 @@ public com.google.protobuf.TimestampOrBuilder getCreateTimeOrBuilder() {
      *
      *
      * <pre>
-     * Output only. The last-modified time of the resource within the given
-     * system.
+     * The last-modified time of the resource within the given system.
      * </pre>
      *
      * <code>.google.protobuf.Timestamp update_time = 2;</code>
@@ -833,8 +835,7 @@ public boolean hasUpdateTime() {
      *
      *
      * <pre>
-     * Output only. The last-modified time of the resource within the given
-     * system.
+     * The last-modified time of the resource within the given system.
      * </pre>
      *
      * <code>.google.protobuf.Timestamp update_time = 2;</code>
@@ -852,8 +853,7 @@ public com.google.protobuf.Timestamp getUpdateTime() {
      *
      *
      * <pre>
-     * Output only. The last-modified time of the resource within the given
-     * system.
+     * The last-modified time of the resource within the given system.
      * </pre>
      *
      * <code>.google.protobuf.Timestamp update_time = 2;</code>
@@ -875,8 +875,7 @@ public Builder setUpdateTime(com.google.protobuf.Timestamp value) {
      *
      *
      * <pre>
-     * Output only. The last-modified time of the resource within the given
-     * system.
+     * The last-modified time of the resource within the given system.
      * </pre>
      *
      * <code>.google.protobuf.Timestamp update_time = 2;</code>
@@ -895,8 +894,7 @@ public Builder setUpdateTime(com.google.protobuf.Timestamp.Builder builderForVal
      *
      *
      * <pre>
-     * Output only. The last-modified time of the resource within the given
-     * system.
+     * The last-modified time of the resource within the given system.
      * </pre>
      *
      * <code>.google.protobuf.Timestamp update_time = 2;</code>
@@ -920,8 +918,7 @@ public Builder mergeUpdateTime(com.google.protobuf.Timestamp value) {
      *
      *
      * <pre>
-     * Output only. The last-modified time of the resource within the given
-     * system.
+     * The last-modified time of the resource within the given system.
      * </pre>
      *
      * <code>.google.protobuf.Timestamp update_time = 2;</code>
@@ -941,8 +938,7 @@ public Builder clearUpdateTime() {
      *
      *
      * <pre>
-     * Output only. The last-modified time of the resource within the given
-     * system.
+     * The last-modified time of the resource within the given system.
      * </pre>
      *
      * <code>.google.protobuf.Timestamp update_time = 2;</code>
@@ -956,8 +952,7 @@ public com.google.protobuf.Timestamp.Builder getUpdateTimeBuilder() {
      *
      *
      * <pre>
-     * Output only. The last-modified time of the resource within the given
-     * system.
+     * The last-modified time of the resource within the given system.
      * </pre>
      *
      * <code>.google.protobuf.Timestamp update_time = 2;</code>
@@ -975,8 +970,7 @@ public com.google.protobuf.TimestampOrBuilder getUpdateTimeOrBuilder() {
      *
      *
      * <pre>
-     * Output only. The last-modified time of the resource within the given
-     * system.
+     * The last-modified time of the resource within the given system.
      * </pre>
      *
      * <code>.google.protobuf.Timestamp update_time = 2;</code>
@@ -1009,9 +1003,12 @@ public com.google.protobuf.TimestampOrBuilder getUpdateTimeOrBuilder() {
      *
      * <pre>
      * Output only. The expiration time of the resource within the given system.
+     * Currently only apllicable to BigQuery resources.
      * </pre>
      *
-     * <code>.google.protobuf.Timestamp expire_time = 3;</code>
+     * <code>
+     * .google.protobuf.Timestamp expire_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
      */
     public boolean hasExpireTime() {
       return expireTimeBuilder_ != null || expireTime_ != null;
@@ -1021,9 +1018,12 @@ public boolean hasExpireTime() {
      *
      * <pre>
      * Output only. The expiration time of the resource within the given system.
+     * Currently only apllicable to BigQuery resources.
      * </pre>
      *
-     * <code>.google.protobuf.Timestamp expire_time = 3;</code>
+     * <code>
+     * .google.protobuf.Timestamp expire_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
      */
     public com.google.protobuf.Timestamp getExpireTime() {
       if (expireTimeBuilder_ == null) {
@@ -1039,9 +1039,12 @@ public com.google.protobuf.Timestamp getExpireTime() {
      *
      * <pre>
      * Output only. The expiration time of the resource within the given system.
+     * Currently only apllicable to BigQuery resources.
      * </pre>
      *
-     * <code>.google.protobuf.Timestamp expire_time = 3;</code>
+     * <code>
+     * .google.protobuf.Timestamp expire_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
      */
     public Builder setExpireTime(com.google.protobuf.Timestamp value) {
       if (expireTimeBuilder_ == null) {
@@ -1061,9 +1064,12 @@ public Builder setExpireTime(com.google.protobuf.Timestamp value) {
      *
      * <pre>
      * Output only. The expiration time of the resource within the given system.
+     * Currently only apllicable to BigQuery resources.
      * </pre>
      *
-     * <code>.google.protobuf.Timestamp expire_time = 3;</code>
+     * <code>
+     * .google.protobuf.Timestamp expire_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
      */
     public Builder setExpireTime(com.google.protobuf.Timestamp.Builder builderForValue) {
       if (expireTimeBuilder_ == null) {
@@ -1080,9 +1086,12 @@ public Builder setExpireTime(com.google.protobuf.Timestamp.Builder builderForVal
      *
      * <pre>
      * Output only. The expiration time of the resource within the given system.
+     * Currently only apllicable to BigQuery resources.
      * </pre>
      *
-     * <code>.google.protobuf.Timestamp expire_time = 3;</code>
+     * <code>
+     * .google.protobuf.Timestamp expire_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
      */
     public Builder mergeExpireTime(com.google.protobuf.Timestamp value) {
       if (expireTimeBuilder_ == null) {
@@ -1104,9 +1113,12 @@ public Builder mergeExpireTime(com.google.protobuf.Timestamp value) {
      *
      * <pre>
      * Output only. The expiration time of the resource within the given system.
+     * Currently only apllicable to BigQuery resources.
      * </pre>
      *
-     * <code>.google.protobuf.Timestamp expire_time = 3;</code>
+     * <code>
+     * .google.protobuf.Timestamp expire_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
      */
     public Builder clearExpireTime() {
       if (expireTimeBuilder_ == null) {
@@ -1124,9 +1136,12 @@ public Builder clearExpireTime() {
      *
      * <pre>
      * Output only. The expiration time of the resource within the given system.
+     * Currently only apllicable to BigQuery resources.
      * </pre>
      *
-     * <code>.google.protobuf.Timestamp expire_time = 3;</code>
+     * <code>
+     * .google.protobuf.Timestamp expire_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
      */
     public com.google.protobuf.Timestamp.Builder getExpireTimeBuilder() {
 
@@ -1138,9 +1153,12 @@ public com.google.protobuf.Timestamp.Builder getExpireTimeBuilder() {
      *
      * <pre>
      * Output only. The expiration time of the resource within the given system.
+     * Currently only apllicable to BigQuery resources.
      * </pre>
      *
-     * <code>.google.protobuf.Timestamp expire_time = 3;</code>
+     * <code>
+     * .google.protobuf.Timestamp expire_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
      */
     public com.google.protobuf.TimestampOrBuilder getExpireTimeOrBuilder() {
       if (expireTimeBuilder_ != null) {
@@ -1156,9 +1174,12 @@ public com.google.protobuf.TimestampOrBuilder getExpireTimeOrBuilder() {
      *
      * <pre>
      * Output only. The expiration time of the resource within the given system.
+     * Currently only apllicable to BigQuery resources.
      * </pre>
      *
-     * <code>.google.protobuf.Timestamp expire_time = 3;</code>
+     * <code>
+     * .google.protobuf.Timestamp expire_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
      */
     private com.google.protobuf.SingleFieldBuilderV3<
             com.google.protobuf.Timestamp,
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/SystemTimestampsOrBuilder.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/SystemTimestampsOrBuilder.java
index adc123f38a5a..e4816642c27e 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/SystemTimestampsOrBuilder.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/SystemTimestampsOrBuilder.java
@@ -12,7 +12,7 @@ public interface SystemTimestampsOrBuilder
    *
    *
    * <pre>
-   * Output only. The creation time of the resource within the given system.
+   * The creation time of the resource within the given system.
    * </pre>
    *
    * <code>.google.protobuf.Timestamp create_time = 1;</code>
@@ -22,7 +22,7 @@ public interface SystemTimestampsOrBuilder
    *
    *
    * <pre>
-   * Output only. The creation time of the resource within the given system.
+   * The creation time of the resource within the given system.
    * </pre>
    *
    * <code>.google.protobuf.Timestamp create_time = 1;</code>
@@ -32,7 +32,7 @@ public interface SystemTimestampsOrBuilder
    *
    *
    * <pre>
-   * Output only. The creation time of the resource within the given system.
+   * The creation time of the resource within the given system.
    * </pre>
    *
    * <code>.google.protobuf.Timestamp create_time = 1;</code>
@@ -43,8 +43,7 @@ public interface SystemTimestampsOrBuilder
    *
    *
    * <pre>
-   * Output only. The last-modified time of the resource within the given
-   * system.
+   * The last-modified time of the resource within the given system.
    * </pre>
    *
    * <code>.google.protobuf.Timestamp update_time = 2;</code>
@@ -54,8 +53,7 @@ public interface SystemTimestampsOrBuilder
    *
    *
    * <pre>
-   * Output only. The last-modified time of the resource within the given
-   * system.
+   * The last-modified time of the resource within the given system.
    * </pre>
    *
    * <code>.google.protobuf.Timestamp update_time = 2;</code>
@@ -65,8 +63,7 @@ public interface SystemTimestampsOrBuilder
    *
    *
    * <pre>
-   * Output only. The last-modified time of the resource within the given
-   * system.
+   * The last-modified time of the resource within the given system.
    * </pre>
    *
    * <code>.google.protobuf.Timestamp update_time = 2;</code>
@@ -78,9 +75,11 @@ public interface SystemTimestampsOrBuilder
    *
    * <pre>
    * Output only. The expiration time of the resource within the given system.
+   * Currently only apllicable to BigQuery resources.
    * </pre>
    *
-   * <code>.google.protobuf.Timestamp expire_time = 3;</code>
+   * <code>.google.protobuf.Timestamp expire_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+   * </code>
    */
   boolean hasExpireTime();
   /**
@@ -88,9 +87,11 @@ public interface SystemTimestampsOrBuilder
    *
    * <pre>
    * Output only. The expiration time of the resource within the given system.
+   * Currently only apllicable to BigQuery resources.
    * </pre>
    *
-   * <code>.google.protobuf.Timestamp expire_time = 3;</code>
+   * <code>.google.protobuf.Timestamp expire_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+   * </code>
    */
   com.google.protobuf.Timestamp getExpireTime();
   /**
@@ -98,9 +99,11 @@ public interface SystemTimestampsOrBuilder
    *
    * <pre>
    * Output only. The expiration time of the resource within the given system.
+   * Currently only apllicable to BigQuery resources.
    * </pre>
    *
-   * <code>.google.protobuf.Timestamp expire_time = 3;</code>
+   * <code>.google.protobuf.Timestamp expire_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+   * </code>
    */
   com.google.protobuf.TimestampOrBuilder getExpireTimeOrBuilder();
 }
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/TableSpec.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/TableSpec.java
index 3bf09959b442..ce95b79effe1 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/TableSpec.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/TableSpec.java
@@ -97,15 +97,16 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    *
    *
    * <pre>
-   * Output only. If the table is a dated shard, i.e. with name pattern
-   * [prefix]YYYYMMDD, grouped_entry is the Data Catalog resource name of the
-   * date sharded grouped entry, e.g.
-   * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}
-   * /entries/{entry_id}.
-   * Otherwise, grouped_entry will be empty.
+   * Output only. If the table is a dated shard, i.e., with name pattern
+   * `[prefix]YYYYMMDD`, `grouped_entry` is the Data Catalog resource name of
+   * the date sharded grouped entry, for example,
+   * `projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}`.
+   * Otherwise, `grouped_entry` is empty.
    * </pre>
    *
-   * <code>string grouped_entry = 1;</code>
+   * <code>
+   * string grouped_entry = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   public java.lang.String getGroupedEntry() {
     java.lang.Object ref = groupedEntry_;
@@ -122,15 +123,16 @@ public java.lang.String getGroupedEntry() {
    *
    *
    * <pre>
-   * Output only. If the table is a dated shard, i.e. with name pattern
-   * [prefix]YYYYMMDD, grouped_entry is the Data Catalog resource name of the
-   * date sharded grouped entry, e.g.
-   * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}
-   * /entries/{entry_id}.
-   * Otherwise, grouped_entry will be empty.
+   * Output only. If the table is a dated shard, i.e., with name pattern
+   * `[prefix]YYYYMMDD`, `grouped_entry` is the Data Catalog resource name of
+   * the date sharded grouped entry, for example,
+   * `projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}`.
+   * Otherwise, `grouped_entry` is empty.
    * </pre>
    *
-   * <code>string grouped_entry = 1;</code>
+   * <code>
+   * string grouped_entry = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   public com.google.protobuf.ByteString getGroupedEntryBytes() {
     java.lang.Object ref = groupedEntry_;
@@ -464,15 +466,16 @@ public Builder mergeFrom(
      *
      *
      * <pre>
-     * Output only. If the table is a dated shard, i.e. with name pattern
-     * [prefix]YYYYMMDD, grouped_entry is the Data Catalog resource name of the
-     * date sharded grouped entry, e.g.
-     * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}
-     * /entries/{entry_id}.
-     * Otherwise, grouped_entry will be empty.
+     * Output only. If the table is a dated shard, i.e., with name pattern
+     * `[prefix]YYYYMMDD`, `grouped_entry` is the Data Catalog resource name of
+     * the date sharded grouped entry, for example,
+     * `projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}`.
+     * Otherwise, `grouped_entry` is empty.
      * </pre>
      *
-     * <code>string grouped_entry = 1;</code>
+     * <code>
+     * string grouped_entry = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public java.lang.String getGroupedEntry() {
       java.lang.Object ref = groupedEntry_;
@@ -489,15 +492,16 @@ public java.lang.String getGroupedEntry() {
      *
      *
      * <pre>
-     * Output only. If the table is a dated shard, i.e. with name pattern
-     * [prefix]YYYYMMDD, grouped_entry is the Data Catalog resource name of the
-     * date sharded grouped entry, e.g.
-     * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}
-     * /entries/{entry_id}.
-     * Otherwise, grouped_entry will be empty.
+     * Output only. If the table is a dated shard, i.e., with name pattern
+     * `[prefix]YYYYMMDD`, `grouped_entry` is the Data Catalog resource name of
+     * the date sharded grouped entry, for example,
+     * `projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}`.
+     * Otherwise, `grouped_entry` is empty.
      * </pre>
      *
-     * <code>string grouped_entry = 1;</code>
+     * <code>
+     * string grouped_entry = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public com.google.protobuf.ByteString getGroupedEntryBytes() {
       java.lang.Object ref = groupedEntry_;
@@ -514,15 +518,16 @@ public com.google.protobuf.ByteString getGroupedEntryBytes() {
      *
      *
      * <pre>
-     * Output only. If the table is a dated shard, i.e. with name pattern
-     * [prefix]YYYYMMDD, grouped_entry is the Data Catalog resource name of the
-     * date sharded grouped entry, e.g.
-     * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}
-     * /entries/{entry_id}.
-     * Otherwise, grouped_entry will be empty.
+     * Output only. If the table is a dated shard, i.e., with name pattern
+     * `[prefix]YYYYMMDD`, `grouped_entry` is the Data Catalog resource name of
+     * the date sharded grouped entry, for example,
+     * `projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}`.
+     * Otherwise, `grouped_entry` is empty.
      * </pre>
      *
-     * <code>string grouped_entry = 1;</code>
+     * <code>
+     * string grouped_entry = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public Builder setGroupedEntry(java.lang.String value) {
       if (value == null) {
@@ -537,15 +542,16 @@ public Builder setGroupedEntry(java.lang.String value) {
      *
      *
      * <pre>
-     * Output only. If the table is a dated shard, i.e. with name pattern
-     * [prefix]YYYYMMDD, grouped_entry is the Data Catalog resource name of the
-     * date sharded grouped entry, e.g.
-     * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}
-     * /entries/{entry_id}.
-     * Otherwise, grouped_entry will be empty.
+     * Output only. If the table is a dated shard, i.e., with name pattern
+     * `[prefix]YYYYMMDD`, `grouped_entry` is the Data Catalog resource name of
+     * the date sharded grouped entry, for example,
+     * `projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}`.
+     * Otherwise, `grouped_entry` is empty.
      * </pre>
      *
-     * <code>string grouped_entry = 1;</code>
+     * <code>
+     * string grouped_entry = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public Builder clearGroupedEntry() {
 
@@ -557,15 +563,16 @@ public Builder clearGroupedEntry() {
      *
      *
      * <pre>
-     * Output only. If the table is a dated shard, i.e. with name pattern
-     * [prefix]YYYYMMDD, grouped_entry is the Data Catalog resource name of the
-     * date sharded grouped entry, e.g.
-     * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}
-     * /entries/{entry_id}.
-     * Otherwise, grouped_entry will be empty.
+     * Output only. If the table is a dated shard, i.e., with name pattern
+     * `[prefix]YYYYMMDD`, `grouped_entry` is the Data Catalog resource name of
+     * the date sharded grouped entry, for example,
+     * `projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}`.
+     * Otherwise, `grouped_entry` is empty.
      * </pre>
      *
-     * <code>string grouped_entry = 1;</code>
+     * <code>
+     * string grouped_entry = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public Builder setGroupedEntryBytes(com.google.protobuf.ByteString value) {
       if (value == null) {
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/TableSpecOrBuilder.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/TableSpecOrBuilder.java
index 3b560578d030..16b36311f628 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/TableSpecOrBuilder.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/TableSpecOrBuilder.java
@@ -12,30 +12,32 @@ public interface TableSpecOrBuilder
    *
    *
    * <pre>
-   * Output only. If the table is a dated shard, i.e. with name pattern
-   * [prefix]YYYYMMDD, grouped_entry is the Data Catalog resource name of the
-   * date sharded grouped entry, e.g.
-   * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}
-   * /entries/{entry_id}.
-   * Otherwise, grouped_entry will be empty.
+   * Output only. If the table is a dated shard, i.e., with name pattern
+   * `[prefix]YYYYMMDD`, `grouped_entry` is the Data Catalog resource name of
+   * the date sharded grouped entry, for example,
+   * `projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}`.
+   * Otherwise, `grouped_entry` is empty.
    * </pre>
    *
-   * <code>string grouped_entry = 1;</code>
+   * <code>
+   * string grouped_entry = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   java.lang.String getGroupedEntry();
   /**
    *
    *
    * <pre>
-   * Output only. If the table is a dated shard, i.e. with name pattern
-   * [prefix]YYYYMMDD, grouped_entry is the Data Catalog resource name of the
-   * date sharded grouped entry, e.g.
-   * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}
-   * /entries/{entry_id}.
-   * Otherwise, grouped_entry will be empty.
+   * Output only. If the table is a dated shard, i.e., with name pattern
+   * `[prefix]YYYYMMDD`, `grouped_entry` is the Data Catalog resource name of
+   * the date sharded grouped entry, for example,
+   * `projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}`.
+   * Otherwise, `grouped_entry` is empty.
    * </pre>
    *
-   * <code>string grouped_entry = 1;</code>
+   * <code>
+   * string grouped_entry = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   com.google.protobuf.ByteString getGroupedEntryBytes();
 }
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/TableSpecOuterClass.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/TableSpecOuterClass.java
index a57cbab1334f..33bece16f77b 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/TableSpecOuterClass.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/TableSpecOuterClass.java
@@ -39,22 +39,26 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
     java.lang.String[] descriptorData = {
       "\n1google/cloud/datacatalog/v1beta1/table"
           + "_spec.proto\022 google.cloud.datacatalog.v1"
-          + "beta1\"\362\001\n\021BigQueryTableSpec\022L\n\021table_sou"
-          + "rce_type\030\001 \001(\01621.google.cloud.datacatalo"
-          + "g.v1beta1.TableSourceType\022?\n\tview_spec\030\002"
-          + " \001(\0132*.google.cloud.datacatalog.v1beta1."
-          + "ViewSpecH\000\022A\n\ntable_spec\030\003 \001(\0132+.google."
-          + "cloud.datacatalog.v1beta1.TableSpecH\000B\013\n"
-          + "\ttype_spec\"\036\n\010ViewSpec\022\022\n\nview_query\030\001 \001"
-          + "(\t\"\"\n\tTableSpec\022\025\n\rgrouped_entry\030\001 \001(\t\"U"
-          + "\n\027BigQueryDateShardedSpec\022\017\n\007dataset\030\001 \001"
-          + "(\t\022\024\n\014table_prefix\030\002 \001(\t\022\023\n\013shard_count\030"
-          + "\003 \001(\003*[\n\017TableSourceType\022!\n\035TABLE_SOURCE"
-          + "_TYPE_UNSPECIFIED\020\000\022\021\n\rBIGQUERY_VIEW\020\002\022\022"
-          + "\n\016BIGQUERY_TABLE\020\005Bp\n\034com.google.cloud.d"
-          + "atacatalogP\001ZKgoogle.golang.org/genproto"
-          + "/googleapis/cloud/datacatalog/v1beta1;da"
-          + "tacatalog\370\001\001b\006proto3"
+          + "beta1\032\037google/api/field_behavior.proto\032\031"
+          + "google/api/resource.proto\"\367\001\n\021BigQueryTa"
+          + "bleSpec\022Q\n\021table_source_type\030\001 \001(\01621.goo"
+          + "gle.cloud.datacatalog.v1beta1.TableSourc"
+          + "eTypeB\003\340A\003\022?\n\tview_spec\030\002 \001(\0132*.google.c"
+          + "loud.datacatalog.v1beta1.ViewSpecH\000\022A\n\nt"
+          + "able_spec\030\003 \001(\0132+.google.cloud.datacatal"
+          + "og.v1beta1.TableSpecH\000B\013\n\ttype_spec\"#\n\010V"
+          + "iewSpec\022\027\n\nview_query\030\001 \001(\tB\003\340A\002\"L\n\tTabl"
+          + "eSpec\022?\n\rgrouped_entry\030\001 \001(\tB(\340A\003\372A\"\n da"
+          + "tacatalog.googleapis.com/Entry\"\177\n\027BigQue"
+          + "ryDateShardedSpec\0229\n\007dataset\030\001 \001(\tB(\340A\003\372"
+          + "A\"\n datacatalog.googleapis.com/Entry\022\024\n\014"
+          + "table_prefix\030\002 \001(\t\022\023\n\013shard_count\030\003 \001(\003*"
+          + "[\n\017TableSourceType\022!\n\035TABLE_SOURCE_TYPE_"
+          + "UNSPECIFIED\020\000\022\021\n\rBIGQUERY_VIEW\020\002\022\022\n\016BIGQ"
+          + "UERY_TABLE\020\005Bp\n\034com.google.cloud.datacat"
+          + "alogP\001ZKgoogle.golang.org/genproto/googl"
+          + "eapis/cloud/datacatalog/v1beta1;datacata"
+          + "log\370\001\001b\006proto3"
     };
     com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
         new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
@@ -65,7 +69,12 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors(
           }
         };
     com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
-        descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] {}, assigner);
+        descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          com.google.api.FieldBehaviorProto.getDescriptor(),
+          com.google.api.ResourceProto.getDescriptor(),
+        },
+        assigner);
     internal_static_google_cloud_datacatalog_v1beta1_BigQueryTableSpec_descriptor =
         getDescriptor().getMessageTypes().get(0);
     internal_static_google_cloud_datacatalog_v1beta1_BigQueryTableSpec_fieldAccessorTable =
@@ -98,6 +107,14 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors(
             new java.lang.String[] {
               "Dataset", "TablePrefix", "ShardCount",
             });
+    com.google.protobuf.ExtensionRegistry registry =
+        com.google.protobuf.ExtensionRegistry.newInstance();
+    registry.add(com.google.api.FieldBehaviorProto.fieldBehavior);
+    registry.add(com.google.api.ResourceProto.resourceReference);
+    com.google.protobuf.Descriptors.FileDescriptor.internalUpdateFileDescriptor(
+        descriptor, registry);
+    com.google.api.FieldBehaviorProto.getDescriptor();
+    com.google.api.ResourceProto.getDescriptor();
   }
 
   // @@protoc_insertion_point(outer_class_scope)
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/Tag.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/Tag.java
index 09b1801eb8bd..2b36c492424f 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/Tag.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/Tag.java
@@ -186,10 +186,10 @@ public ScopeCase getScopeCase() {
    * <pre>
    * Required when used in
    * [UpdateTagRequest][google.cloud.datacatalog.v1beta1.UpdateTagRequest]. The
-   * resource name of the tag in URL format. For example,
-   * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}",
-   * where tag_id is a system-generated identifier. Note that this Tag may not
-   * actually be stored in the location in this name.
+   * resource name of the tag in URL format. Example:
+   * * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}
+   * where `tag_id` is a system-generated identifier.
+   * Note that this Tag may not actually be stored in the location in this name.
    * </pre>
    *
    * <code>string name = 1;</code>
@@ -211,10 +211,10 @@ public java.lang.String getName() {
    * <pre>
    * Required when used in
    * [UpdateTagRequest][google.cloud.datacatalog.v1beta1.UpdateTagRequest]. The
-   * resource name of the tag in URL format. For example,
-   * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}",
-   * where tag_id is a system-generated identifier. Note that this Tag may not
-   * actually be stored in the location in this name.
+   * resource name of the tag in URL format. Example:
+   * * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}
+   * where `tag_id` is a system-generated identifier.
+   * Note that this Tag may not actually be stored in the location in this name.
    * </pre>
    *
    * <code>string name = 1;</code>
@@ -237,13 +237,13 @@ public com.google.protobuf.ByteString getNameBytes() {
    *
    *
    * <pre>
-   * Required. The resource name of the tag template that this tag uses. For
-   * example,
-   * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}.
+   * Required. The resource name of the tag template that this tag uses.
+   * Example:
+   * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
    * This field cannot be modified after creation.
    * </pre>
    *
-   * <code>string template = 2;</code>
+   * <code>string template = 2 [(.google.api.field_behavior) = REQUIRED];</code>
    */
   public java.lang.String getTemplate() {
     java.lang.Object ref = template_;
@@ -260,13 +260,13 @@ public java.lang.String getTemplate() {
    *
    *
    * <pre>
-   * Required. The resource name of the tag template that this tag uses. For
-   * example,
-   * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}.
+   * Required. The resource name of the tag template that this tag uses.
+   * Example:
+   * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
    * This field cannot be modified after creation.
    * </pre>
    *
-   * <code>string template = 2;</code>
+   * <code>string template = 2 [(.google.api.field_behavior) = REQUIRED];</code>
    */
   public com.google.protobuf.ByteString getTemplateBytes() {
     java.lang.Object ref = template_;
@@ -289,7 +289,7 @@ public com.google.protobuf.ByteString getTemplateBytes() {
    * Output only. The display name of the tag template.
    * </pre>
    *
-   * <code>string template_display_name = 5;</code>
+   * <code>string template_display_name = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
    */
   public java.lang.String getTemplateDisplayName() {
     java.lang.Object ref = templateDisplayName_;
@@ -309,7 +309,7 @@ public java.lang.String getTemplateDisplayName() {
    * Output only. The display name of the tag template.
    * </pre>
    *
-   * <code>string template_display_name = 5;</code>
+   * <code>string template_display_name = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
    */
   public com.google.protobuf.ByteString getTemplateDisplayNameBytes() {
     java.lang.Object ref = templateDisplayName_;
@@ -330,8 +330,9 @@ public com.google.protobuf.ByteString getTemplateDisplayNameBytes() {
    * <pre>
    * Resources like Entry can have schemas associated with them. This scope
    * allows users to attach tags to an individual column based on that schema.
-   * For attaching a tag to a nested column, use '.' to separate the column
-   * names: "outer_column.inner_column".
+   * For attaching a tag to a nested column, use `.` to separate the column
+   * names. Example:
+   * * `outer_column.inner_column`
    * </pre>
    *
    * <code>string column = 4;</code>
@@ -358,8 +359,9 @@ public java.lang.String getColumn() {
    * <pre>
    * Resources like Entry can have schemas associated with them. This scope
    * allows users to attach tags to an individual column based on that schema.
-   * For attaching a tag to a nested column, use '.' to separate the column
-   * names: "outer_column.inner_column".
+   * For attaching a tag to a nested column, use `.` to separate the column
+   * names. Example:
+   * * `outer_column.inner_column`
    * </pre>
    *
    * <code>string column = 4;</code>
@@ -415,12 +417,14 @@ public int getFieldsCount() {
    *
    *
    * <pre>
-   * Required. This maps the id of a tag field to the value of &amp; additional
+   * Required. This maps the ID of a tag field to the value of and additional
    * information about that field. Valid field IDs are defined by the tag's
    * template. A tag must have at least 1 field and at most 500 fields.
    * </pre>
    *
-   * <code>map&lt;string, .google.cloud.datacatalog.v1beta1.TagField&gt; fields = 3;</code>
+   * <code>
+   * map&lt;string, .google.cloud.datacatalog.v1beta1.TagField&gt; fields = 3 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   public boolean containsFields(java.lang.String key) {
     if (key == null) {
@@ -437,12 +441,14 @@ public java.util.Map<java.lang.String, com.google.cloud.datacatalog.TagField> ge
    *
    *
    * <pre>
-   * Required. This maps the id of a tag field to the value of &amp; additional
+   * Required. This maps the ID of a tag field to the value of and additional
    * information about that field. Valid field IDs are defined by the tag's
    * template. A tag must have at least 1 field and at most 500 fields.
    * </pre>
    *
-   * <code>map&lt;string, .google.cloud.datacatalog.v1beta1.TagField&gt; fields = 3;</code>
+   * <code>
+   * map&lt;string, .google.cloud.datacatalog.v1beta1.TagField&gt; fields = 3 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   public java.util.Map<java.lang.String, com.google.cloud.datacatalog.TagField> getFieldsMap() {
     return internalGetFields().getMap();
@@ -451,12 +457,14 @@ public java.util.Map<java.lang.String, com.google.cloud.datacatalog.TagField> ge
    *
    *
    * <pre>
-   * Required. This maps the id of a tag field to the value of &amp; additional
+   * Required. This maps the ID of a tag field to the value of and additional
    * information about that field. Valid field IDs are defined by the tag's
    * template. A tag must have at least 1 field and at most 500 fields.
    * </pre>
    *
-   * <code>map&lt;string, .google.cloud.datacatalog.v1beta1.TagField&gt; fields = 3;</code>
+   * <code>
+   * map&lt;string, .google.cloud.datacatalog.v1beta1.TagField&gt; fields = 3 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   public com.google.cloud.datacatalog.TagField getFieldsOrDefault(
       java.lang.String key, com.google.cloud.datacatalog.TagField defaultValue) {
@@ -471,12 +479,14 @@ public com.google.cloud.datacatalog.TagField getFieldsOrDefault(
    *
    *
    * <pre>
-   * Required. This maps the id of a tag field to the value of &amp; additional
+   * Required. This maps the ID of a tag field to the value of and additional
    * information about that field. Valid field IDs are defined by the tag's
    * template. A tag must have at least 1 field and at most 500 fields.
    * </pre>
    *
-   * <code>map&lt;string, .google.cloud.datacatalog.v1beta1.TagField&gt; fields = 3;</code>
+   * <code>
+   * map&lt;string, .google.cloud.datacatalog.v1beta1.TagField&gt; fields = 3 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   public com.google.cloud.datacatalog.TagField getFieldsOrThrow(java.lang.String key) {
     if (key == null) {
@@ -945,10 +955,10 @@ public Builder clearScope() {
      * <pre>
      * Required when used in
      * [UpdateTagRequest][google.cloud.datacatalog.v1beta1.UpdateTagRequest]. The
-     * resource name of the tag in URL format. For example,
-     * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}",
-     * where tag_id is a system-generated identifier. Note that this Tag may not
-     * actually be stored in the location in this name.
+     * resource name of the tag in URL format. Example:
+     * * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}
+     * where `tag_id` is a system-generated identifier.
+     * Note that this Tag may not actually be stored in the location in this name.
      * </pre>
      *
      * <code>string name = 1;</code>
@@ -970,10 +980,10 @@ public java.lang.String getName() {
      * <pre>
      * Required when used in
      * [UpdateTagRequest][google.cloud.datacatalog.v1beta1.UpdateTagRequest]. The
-     * resource name of the tag in URL format. For example,
-     * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}",
-     * where tag_id is a system-generated identifier. Note that this Tag may not
-     * actually be stored in the location in this name.
+     * resource name of the tag in URL format. Example:
+     * * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}
+     * where `tag_id` is a system-generated identifier.
+     * Note that this Tag may not actually be stored in the location in this name.
      * </pre>
      *
      * <code>string name = 1;</code>
@@ -995,10 +1005,10 @@ public com.google.protobuf.ByteString getNameBytes() {
      * <pre>
      * Required when used in
      * [UpdateTagRequest][google.cloud.datacatalog.v1beta1.UpdateTagRequest]. The
-     * resource name of the tag in URL format. For example,
-     * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}",
-     * where tag_id is a system-generated identifier. Note that this Tag may not
-     * actually be stored in the location in this name.
+     * resource name of the tag in URL format. Example:
+     * * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}
+     * where `tag_id` is a system-generated identifier.
+     * Note that this Tag may not actually be stored in the location in this name.
      * </pre>
      *
      * <code>string name = 1;</code>
@@ -1018,10 +1028,10 @@ public Builder setName(java.lang.String value) {
      * <pre>
      * Required when used in
      * [UpdateTagRequest][google.cloud.datacatalog.v1beta1.UpdateTagRequest]. The
-     * resource name of the tag in URL format. For example,
-     * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}",
-     * where tag_id is a system-generated identifier. Note that this Tag may not
-     * actually be stored in the location in this name.
+     * resource name of the tag in URL format. Example:
+     * * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}
+     * where `tag_id` is a system-generated identifier.
+     * Note that this Tag may not actually be stored in the location in this name.
      * </pre>
      *
      * <code>string name = 1;</code>
@@ -1038,10 +1048,10 @@ public Builder clearName() {
      * <pre>
      * Required when used in
      * [UpdateTagRequest][google.cloud.datacatalog.v1beta1.UpdateTagRequest]. The
-     * resource name of the tag in URL format. For example,
-     * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}",
-     * where tag_id is a system-generated identifier. Note that this Tag may not
-     * actually be stored in the location in this name.
+     * resource name of the tag in URL format. Example:
+     * * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}
+     * where `tag_id` is a system-generated identifier.
+     * Note that this Tag may not actually be stored in the location in this name.
      * </pre>
      *
      * <code>string name = 1;</code>
@@ -1062,13 +1072,13 @@ public Builder setNameBytes(com.google.protobuf.ByteString value) {
      *
      *
      * <pre>
-     * Required. The resource name of the tag template that this tag uses. For
-     * example,
-     * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}.
+     * Required. The resource name of the tag template that this tag uses.
+     * Example:
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
      * This field cannot be modified after creation.
      * </pre>
      *
-     * <code>string template = 2;</code>
+     * <code>string template = 2 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public java.lang.String getTemplate() {
       java.lang.Object ref = template_;
@@ -1085,13 +1095,13 @@ public java.lang.String getTemplate() {
      *
      *
      * <pre>
-     * Required. The resource name of the tag template that this tag uses. For
-     * example,
-     * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}.
+     * Required. The resource name of the tag template that this tag uses.
+     * Example:
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
      * This field cannot be modified after creation.
      * </pre>
      *
-     * <code>string template = 2;</code>
+     * <code>string template = 2 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public com.google.protobuf.ByteString getTemplateBytes() {
       java.lang.Object ref = template_;
@@ -1108,13 +1118,13 @@ public com.google.protobuf.ByteString getTemplateBytes() {
      *
      *
      * <pre>
-     * Required. The resource name of the tag template that this tag uses. For
-     * example,
-     * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}.
+     * Required. The resource name of the tag template that this tag uses.
+     * Example:
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
      * This field cannot be modified after creation.
      * </pre>
      *
-     * <code>string template = 2;</code>
+     * <code>string template = 2 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public Builder setTemplate(java.lang.String value) {
       if (value == null) {
@@ -1129,13 +1139,13 @@ public Builder setTemplate(java.lang.String value) {
      *
      *
      * <pre>
-     * Required. The resource name of the tag template that this tag uses. For
-     * example,
-     * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}.
+     * Required. The resource name of the tag template that this tag uses.
+     * Example:
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
      * This field cannot be modified after creation.
      * </pre>
      *
-     * <code>string template = 2;</code>
+     * <code>string template = 2 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public Builder clearTemplate() {
 
@@ -1147,13 +1157,13 @@ public Builder clearTemplate() {
      *
      *
      * <pre>
-     * Required. The resource name of the tag template that this tag uses. For
-     * example,
-     * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}.
+     * Required. The resource name of the tag template that this tag uses.
+     * Example:
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
      * This field cannot be modified after creation.
      * </pre>
      *
-     * <code>string template = 2;</code>
+     * <code>string template = 2 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public Builder setTemplateBytes(com.google.protobuf.ByteString value) {
       if (value == null) {
@@ -1174,7 +1184,7 @@ public Builder setTemplateBytes(com.google.protobuf.ByteString value) {
      * Output only. The display name of the tag template.
      * </pre>
      *
-     * <code>string template_display_name = 5;</code>
+     * <code>string template_display_name = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
      */
     public java.lang.String getTemplateDisplayName() {
       java.lang.Object ref = templateDisplayName_;
@@ -1194,7 +1204,7 @@ public java.lang.String getTemplateDisplayName() {
      * Output only. The display name of the tag template.
      * </pre>
      *
-     * <code>string template_display_name = 5;</code>
+     * <code>string template_display_name = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
      */
     public com.google.protobuf.ByteString getTemplateDisplayNameBytes() {
       java.lang.Object ref = templateDisplayName_;
@@ -1214,7 +1224,7 @@ public com.google.protobuf.ByteString getTemplateDisplayNameBytes() {
      * Output only. The display name of the tag template.
      * </pre>
      *
-     * <code>string template_display_name = 5;</code>
+     * <code>string template_display_name = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
      */
     public Builder setTemplateDisplayName(java.lang.String value) {
       if (value == null) {
@@ -1232,7 +1242,7 @@ public Builder setTemplateDisplayName(java.lang.String value) {
      * Output only. The display name of the tag template.
      * </pre>
      *
-     * <code>string template_display_name = 5;</code>
+     * <code>string template_display_name = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
      */
     public Builder clearTemplateDisplayName() {
 
@@ -1247,7 +1257,7 @@ public Builder clearTemplateDisplayName() {
      * Output only. The display name of the tag template.
      * </pre>
      *
-     * <code>string template_display_name = 5;</code>
+     * <code>string template_display_name = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
      */
     public Builder setTemplateDisplayNameBytes(com.google.protobuf.ByteString value) {
       if (value == null) {
@@ -1266,8 +1276,9 @@ public Builder setTemplateDisplayNameBytes(com.google.protobuf.ByteString value)
      * <pre>
      * Resources like Entry can have schemas associated with them. This scope
      * allows users to attach tags to an individual column based on that schema.
-     * For attaching a tag to a nested column, use '.' to separate the column
-     * names: "outer_column.inner_column".
+     * For attaching a tag to a nested column, use `.` to separate the column
+     * names. Example:
+     * * `outer_column.inner_column`
      * </pre>
      *
      * <code>string column = 4;</code>
@@ -1294,8 +1305,9 @@ public java.lang.String getColumn() {
      * <pre>
      * Resources like Entry can have schemas associated with them. This scope
      * allows users to attach tags to an individual column based on that schema.
-     * For attaching a tag to a nested column, use '.' to separate the column
-     * names: "outer_column.inner_column".
+     * For attaching a tag to a nested column, use `.` to separate the column
+     * names. Example:
+     * * `outer_column.inner_column`
      * </pre>
      *
      * <code>string column = 4;</code>
@@ -1322,8 +1334,9 @@ public com.google.protobuf.ByteString getColumnBytes() {
      * <pre>
      * Resources like Entry can have schemas associated with them. This scope
      * allows users to attach tags to an individual column based on that schema.
-     * For attaching a tag to a nested column, use '.' to separate the column
-     * names: "outer_column.inner_column".
+     * For attaching a tag to a nested column, use `.` to separate the column
+     * names. Example:
+     * * `outer_column.inner_column`
      * </pre>
      *
      * <code>string column = 4;</code>
@@ -1343,8 +1356,9 @@ public Builder setColumn(java.lang.String value) {
      * <pre>
      * Resources like Entry can have schemas associated with them. This scope
      * allows users to attach tags to an individual column based on that schema.
-     * For attaching a tag to a nested column, use '.' to separate the column
-     * names: "outer_column.inner_column".
+     * For attaching a tag to a nested column, use `.` to separate the column
+     * names. Example:
+     * * `outer_column.inner_column`
      * </pre>
      *
      * <code>string column = 4;</code>
@@ -1363,8 +1377,9 @@ public Builder clearColumn() {
      * <pre>
      * Resources like Entry can have schemas associated with them. This scope
      * allows users to attach tags to an individual column based on that schema.
-     * For attaching a tag to a nested column, use '.' to separate the column
-     * names: "outer_column.inner_column".
+     * For attaching a tag to a nested column, use `.` to separate the column
+     * names. Example:
+     * * `outer_column.inner_column`
      * </pre>
      *
      * <code>string column = 4;</code>
@@ -1411,12 +1426,14 @@ public int getFieldsCount() {
      *
      *
      * <pre>
-     * Required. This maps the id of a tag field to the value of &amp; additional
+     * Required. This maps the ID of a tag field to the value of and additional
      * information about that field. Valid field IDs are defined by the tag's
      * template. A tag must have at least 1 field and at most 500 fields.
      * </pre>
      *
-     * <code>map&lt;string, .google.cloud.datacatalog.v1beta1.TagField&gt; fields = 3;</code>
+     * <code>
+     * map&lt;string, .google.cloud.datacatalog.v1beta1.TagField&gt; fields = 3 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public boolean containsFields(java.lang.String key) {
       if (key == null) {
@@ -1433,12 +1450,14 @@ public java.util.Map<java.lang.String, com.google.cloud.datacatalog.TagField> ge
      *
      *
      * <pre>
-     * Required. This maps the id of a tag field to the value of &amp; additional
+     * Required. This maps the ID of a tag field to the value of and additional
      * information about that field. Valid field IDs are defined by the tag's
      * template. A tag must have at least 1 field and at most 500 fields.
      * </pre>
      *
-     * <code>map&lt;string, .google.cloud.datacatalog.v1beta1.TagField&gt; fields = 3;</code>
+     * <code>
+     * map&lt;string, .google.cloud.datacatalog.v1beta1.TagField&gt; fields = 3 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public java.util.Map<java.lang.String, com.google.cloud.datacatalog.TagField> getFieldsMap() {
       return internalGetFields().getMap();
@@ -1447,12 +1466,14 @@ public java.util.Map<java.lang.String, com.google.cloud.datacatalog.TagField> ge
      *
      *
      * <pre>
-     * Required. This maps the id of a tag field to the value of &amp; additional
+     * Required. This maps the ID of a tag field to the value of and additional
      * information about that field. Valid field IDs are defined by the tag's
      * template. A tag must have at least 1 field and at most 500 fields.
      * </pre>
      *
-     * <code>map&lt;string, .google.cloud.datacatalog.v1beta1.TagField&gt; fields = 3;</code>
+     * <code>
+     * map&lt;string, .google.cloud.datacatalog.v1beta1.TagField&gt; fields = 3 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public com.google.cloud.datacatalog.TagField getFieldsOrDefault(
         java.lang.String key, com.google.cloud.datacatalog.TagField defaultValue) {
@@ -1467,12 +1488,14 @@ public com.google.cloud.datacatalog.TagField getFieldsOrDefault(
      *
      *
      * <pre>
-     * Required. This maps the id of a tag field to the value of &amp; additional
+     * Required. This maps the ID of a tag field to the value of and additional
      * information about that field. Valid field IDs are defined by the tag's
      * template. A tag must have at least 1 field and at most 500 fields.
      * </pre>
      *
-     * <code>map&lt;string, .google.cloud.datacatalog.v1beta1.TagField&gt; fields = 3;</code>
+     * <code>
+     * map&lt;string, .google.cloud.datacatalog.v1beta1.TagField&gt; fields = 3 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public com.google.cloud.datacatalog.TagField getFieldsOrThrow(java.lang.String key) {
       if (key == null) {
@@ -1494,12 +1517,14 @@ public Builder clearFields() {
      *
      *
      * <pre>
-     * Required. This maps the id of a tag field to the value of &amp; additional
+     * Required. This maps the ID of a tag field to the value of and additional
      * information about that field. Valid field IDs are defined by the tag's
      * template. A tag must have at least 1 field and at most 500 fields.
      * </pre>
      *
-     * <code>map&lt;string, .google.cloud.datacatalog.v1beta1.TagField&gt; fields = 3;</code>
+     * <code>
+     * map&lt;string, .google.cloud.datacatalog.v1beta1.TagField&gt; fields = 3 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder removeFields(java.lang.String key) {
       if (key == null) {
@@ -1518,12 +1543,14 @@ public Builder removeFields(java.lang.String key) {
      *
      *
      * <pre>
-     * Required. This maps the id of a tag field to the value of &amp; additional
+     * Required. This maps the ID of a tag field to the value of and additional
      * information about that field. Valid field IDs are defined by the tag's
      * template. A tag must have at least 1 field and at most 500 fields.
      * </pre>
      *
-     * <code>map&lt;string, .google.cloud.datacatalog.v1beta1.TagField&gt; fields = 3;</code>
+     * <code>
+     * map&lt;string, .google.cloud.datacatalog.v1beta1.TagField&gt; fields = 3 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder putFields(java.lang.String key, com.google.cloud.datacatalog.TagField value) {
       if (key == null) {
@@ -1539,12 +1566,14 @@ public Builder putFields(java.lang.String key, com.google.cloud.datacatalog.TagF
      *
      *
      * <pre>
-     * Required. This maps the id of a tag field to the value of &amp; additional
+     * Required. This maps the ID of a tag field to the value of and additional
      * information about that field. Valid field IDs are defined by the tag's
      * template. A tag must have at least 1 field and at most 500 fields.
      * </pre>
      *
-     * <code>map&lt;string, .google.cloud.datacatalog.v1beta1.TagField&gt; fields = 3;</code>
+     * <code>
+     * map&lt;string, .google.cloud.datacatalog.v1beta1.TagField&gt; fields = 3 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder putAllFields(
         java.util.Map<java.lang.String, com.google.cloud.datacatalog.TagField> values) {
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/TagField.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/TagField.java
index 161e04b17b6e..62012da63cca 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/TagField.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/TagField.java
@@ -824,7 +824,7 @@ public KindCase getKindCase() {
    * Output only. The display name of this field.
    * </pre>
    *
-   * <code>string display_name = 1;</code>
+   * <code>string display_name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
    */
   public java.lang.String getDisplayName() {
     java.lang.Object ref = displayName_;
@@ -844,7 +844,7 @@ public java.lang.String getDisplayName() {
    * Output only. The display name of this field.
    * </pre>
    *
-   * <code>string display_name = 1;</code>
+   * <code>string display_name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
    */
   public com.google.protobuf.ByteString getDisplayNameBytes() {
     java.lang.Object ref = displayName_;
@@ -1517,7 +1517,7 @@ public Builder clearKind() {
      * Output only. The display name of this field.
      * </pre>
      *
-     * <code>string display_name = 1;</code>
+     * <code>string display_name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
      */
     public java.lang.String getDisplayName() {
       java.lang.Object ref = displayName_;
@@ -1537,7 +1537,7 @@ public java.lang.String getDisplayName() {
      * Output only. The display name of this field.
      * </pre>
      *
-     * <code>string display_name = 1;</code>
+     * <code>string display_name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
      */
     public com.google.protobuf.ByteString getDisplayNameBytes() {
       java.lang.Object ref = displayName_;
@@ -1557,7 +1557,7 @@ public com.google.protobuf.ByteString getDisplayNameBytes() {
      * Output only. The display name of this field.
      * </pre>
      *
-     * <code>string display_name = 1;</code>
+     * <code>string display_name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
      */
     public Builder setDisplayName(java.lang.String value) {
       if (value == null) {
@@ -1575,7 +1575,7 @@ public Builder setDisplayName(java.lang.String value) {
      * Output only. The display name of this field.
      * </pre>
      *
-     * <code>string display_name = 1;</code>
+     * <code>string display_name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
      */
     public Builder clearDisplayName() {
 
@@ -1590,7 +1590,7 @@ public Builder clearDisplayName() {
      * Output only. The display name of this field.
      * </pre>
      *
-     * <code>string display_name = 1;</code>
+     * <code>string display_name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
      */
     public Builder setDisplayNameBytes(com.google.protobuf.ByteString value) {
       if (value == null) {
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/TagFieldOrBuilder.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/TagFieldOrBuilder.java
index 0784a1def874..0642304aa0da 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/TagFieldOrBuilder.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/TagFieldOrBuilder.java
@@ -15,7 +15,7 @@ public interface TagFieldOrBuilder
    * Output only. The display name of this field.
    * </pre>
    *
-   * <code>string display_name = 1;</code>
+   * <code>string display_name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
    */
   java.lang.String getDisplayName();
   /**
@@ -25,7 +25,7 @@ public interface TagFieldOrBuilder
    * Output only. The display name of this field.
    * </pre>
    *
-   * <code>string display_name = 1;</code>
+   * <code>string display_name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
    */
   com.google.protobuf.ByteString getDisplayNameBytes();
 
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/TagOrBuilder.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/TagOrBuilder.java
index 73be78558004..b1a60b0cebc1 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/TagOrBuilder.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/TagOrBuilder.java
@@ -14,10 +14,10 @@ public interface TagOrBuilder
    * <pre>
    * Required when used in
    * [UpdateTagRequest][google.cloud.datacatalog.v1beta1.UpdateTagRequest]. The
-   * resource name of the tag in URL format. For example,
-   * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}",
-   * where tag_id is a system-generated identifier. Note that this Tag may not
-   * actually be stored in the location in this name.
+   * resource name of the tag in URL format. Example:
+   * * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}
+   * where `tag_id` is a system-generated identifier.
+   * Note that this Tag may not actually be stored in the location in this name.
    * </pre>
    *
    * <code>string name = 1;</code>
@@ -29,10 +29,10 @@ public interface TagOrBuilder
    * <pre>
    * Required when used in
    * [UpdateTagRequest][google.cloud.datacatalog.v1beta1.UpdateTagRequest]. The
-   * resource name of the tag in URL format. For example,
-   * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}",
-   * where tag_id is a system-generated identifier. Note that this Tag may not
-   * actually be stored in the location in this name.
+   * resource name of the tag in URL format. Example:
+   * * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}
+   * where `tag_id` is a system-generated identifier.
+   * Note that this Tag may not actually be stored in the location in this name.
    * </pre>
    *
    * <code>string name = 1;</code>
@@ -43,26 +43,26 @@ public interface TagOrBuilder
    *
    *
    * <pre>
-   * Required. The resource name of the tag template that this tag uses. For
-   * example,
-   * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}.
+   * Required. The resource name of the tag template that this tag uses.
+   * Example:
+   * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
    * This field cannot be modified after creation.
    * </pre>
    *
-   * <code>string template = 2;</code>
+   * <code>string template = 2 [(.google.api.field_behavior) = REQUIRED];</code>
    */
   java.lang.String getTemplate();
   /**
    *
    *
    * <pre>
-   * Required. The resource name of the tag template that this tag uses. For
-   * example,
-   * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}.
+   * Required. The resource name of the tag template that this tag uses.
+   * Example:
+   * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
    * This field cannot be modified after creation.
    * </pre>
    *
-   * <code>string template = 2;</code>
+   * <code>string template = 2 [(.google.api.field_behavior) = REQUIRED];</code>
    */
   com.google.protobuf.ByteString getTemplateBytes();
 
@@ -73,7 +73,7 @@ public interface TagOrBuilder
    * Output only. The display name of the tag template.
    * </pre>
    *
-   * <code>string template_display_name = 5;</code>
+   * <code>string template_display_name = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
    */
   java.lang.String getTemplateDisplayName();
   /**
@@ -83,7 +83,7 @@ public interface TagOrBuilder
    * Output only. The display name of the tag template.
    * </pre>
    *
-   * <code>string template_display_name = 5;</code>
+   * <code>string template_display_name = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
    */
   com.google.protobuf.ByteString getTemplateDisplayNameBytes();
 
@@ -93,8 +93,9 @@ public interface TagOrBuilder
    * <pre>
    * Resources like Entry can have schemas associated with them. This scope
    * allows users to attach tags to an individual column based on that schema.
-   * For attaching a tag to a nested column, use '.' to separate the column
-   * names: "outer_column.inner_column".
+   * For attaching a tag to a nested column, use `.` to separate the column
+   * names. Example:
+   * * `outer_column.inner_column`
    * </pre>
    *
    * <code>string column = 4;</code>
@@ -106,8 +107,9 @@ public interface TagOrBuilder
    * <pre>
    * Resources like Entry can have schemas associated with them. This scope
    * allows users to attach tags to an individual column based on that schema.
-   * For attaching a tag to a nested column, use '.' to separate the column
-   * names: "outer_column.inner_column".
+   * For attaching a tag to a nested column, use `.` to separate the column
+   * names. Example:
+   * * `outer_column.inner_column`
    * </pre>
    *
    * <code>string column = 4;</code>
@@ -118,24 +120,28 @@ public interface TagOrBuilder
    *
    *
    * <pre>
-   * Required. This maps the id of a tag field to the value of &amp; additional
+   * Required. This maps the ID of a tag field to the value of and additional
    * information about that field. Valid field IDs are defined by the tag's
    * template. A tag must have at least 1 field and at most 500 fields.
    * </pre>
    *
-   * <code>map&lt;string, .google.cloud.datacatalog.v1beta1.TagField&gt; fields = 3;</code>
+   * <code>
+   * map&lt;string, .google.cloud.datacatalog.v1beta1.TagField&gt; fields = 3 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   int getFieldsCount();
   /**
    *
    *
    * <pre>
-   * Required. This maps the id of a tag field to the value of &amp; additional
+   * Required. This maps the ID of a tag field to the value of and additional
    * information about that field. Valid field IDs are defined by the tag's
    * template. A tag must have at least 1 field and at most 500 fields.
    * </pre>
    *
-   * <code>map&lt;string, .google.cloud.datacatalog.v1beta1.TagField&gt; fields = 3;</code>
+   * <code>
+   * map&lt;string, .google.cloud.datacatalog.v1beta1.TagField&gt; fields = 3 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   boolean containsFields(java.lang.String key);
   /** Use {@link #getFieldsMap()} instead. */
@@ -145,24 +151,28 @@ public interface TagOrBuilder
    *
    *
    * <pre>
-   * Required. This maps the id of a tag field to the value of &amp; additional
+   * Required. This maps the ID of a tag field to the value of and additional
    * information about that field. Valid field IDs are defined by the tag's
    * template. A tag must have at least 1 field and at most 500 fields.
    * </pre>
    *
-   * <code>map&lt;string, .google.cloud.datacatalog.v1beta1.TagField&gt; fields = 3;</code>
+   * <code>
+   * map&lt;string, .google.cloud.datacatalog.v1beta1.TagField&gt; fields = 3 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   java.util.Map<java.lang.String, com.google.cloud.datacatalog.TagField> getFieldsMap();
   /**
    *
    *
    * <pre>
-   * Required. This maps the id of a tag field to the value of &amp; additional
+   * Required. This maps the ID of a tag field to the value of and additional
    * information about that field. Valid field IDs are defined by the tag's
    * template. A tag must have at least 1 field and at most 500 fields.
    * </pre>
    *
-   * <code>map&lt;string, .google.cloud.datacatalog.v1beta1.TagField&gt; fields = 3;</code>
+   * <code>
+   * map&lt;string, .google.cloud.datacatalog.v1beta1.TagField&gt; fields = 3 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   com.google.cloud.datacatalog.TagField getFieldsOrDefault(
       java.lang.String key, com.google.cloud.datacatalog.TagField defaultValue);
@@ -170,12 +180,14 @@ com.google.cloud.datacatalog.TagField getFieldsOrDefault(
    *
    *
    * <pre>
-   * Required. This maps the id of a tag field to the value of &amp; additional
+   * Required. This maps the ID of a tag field to the value of and additional
    * information about that field. Valid field IDs are defined by the tag's
    * template. A tag must have at least 1 field and at most 500 fields.
    * </pre>
    *
-   * <code>map&lt;string, .google.cloud.datacatalog.v1beta1.TagField&gt; fields = 3;</code>
+   * <code>
+   * map&lt;string, .google.cloud.datacatalog.v1beta1.TagField&gt; fields = 3 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   com.google.cloud.datacatalog.TagField getFieldsOrThrow(java.lang.String key);
 
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/TagTemplate.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/TagTemplate.java
index 69d9f5eafe79..a121ab303cc9 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/TagTemplate.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/TagTemplate.java
@@ -7,7 +7,7 @@
  *
  *
  * <pre>
- * Tag templates defines the schema of the tags used to attach to Data Catalog
+ * A tag template defines the schema of the tags used to attach to Data Catalog
  * resources. It defines the mapping of accepted field names and types that can
  * be used within the tag. The tag template also controls the access to the tag.
  * </pre>
@@ -137,8 +137,8 @@ protected com.google.protobuf.MapField internalGetMapField(int number) {
    * <pre>
    * Required when used in
    * [UpdateTagTemplateRequest][google.cloud.datacatalog.v1beta1.UpdateTagTemplateRequest].
-   * The resource name of the tag template in URL format. For example,
-   * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}.
+   * The resource name of the tag template in URL format. Example:
+   * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
    * Note that this TagTemplate and its child resources may not actually be
    * stored in the location in this name.
    * </pre>
@@ -162,8 +162,8 @@ public java.lang.String getName() {
    * <pre>
    * Required when used in
    * [UpdateTagTemplateRequest][google.cloud.datacatalog.v1beta1.UpdateTagTemplateRequest].
-   * The resource name of the tag template in URL format. For example,
-   * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}.
+   * The resource name of the tag template in URL format. Example:
+   * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
    * Note that this TagTemplate and its child resources may not actually be
    * stored in the location in this name.
    * </pre>
@@ -188,8 +188,7 @@ public com.google.protobuf.ByteString getNameBytes() {
    *
    *
    * <pre>
-   * Optional. The display name for this template. Default value is an empty
-   * string.
+   * Optional. The display name for this template. Defaults to an empty string.
    * </pre>
    *
    * <code>string display_name = 2;</code>
@@ -209,8 +208,7 @@ public java.lang.String getDisplayName() {
    *
    *
    * <pre>
-   * Optional. The display name for this template. Default value is an empty
-   * string.
+   * Optional. The display name for this template. Defaults to an empty string.
    * </pre>
    *
    * <code>string display_name = 2;</code>
@@ -264,16 +262,18 @@ public int getFieldsCount() {
    *
    *
    * <pre>
-   * Required. Map of tag template field ids to the settings for the field.
+   * Required. Map of tag template field IDs to the settings for the field.
    * This map is an exhaustive list of the allowed fields. This map must contain
    * at least one field and at most 500 fields.
    * The keys to this map are tag template field IDs. Field IDs can contain
    * letters (both uppercase and lowercase), numbers (0-9) and underscores (_).
-   * Field IDs must be at least 1 character long and at most 64 characters long.
-   * Field IDs must start with a letter or underscore.
+   * Field IDs must be at least 1 character long and at most
+   * 64 characters long. Field IDs must start with a letter or underscore.
    * </pre>
    *
-   * <code>map&lt;string, .google.cloud.datacatalog.v1beta1.TagTemplateField&gt; fields = 3;</code>
+   * <code>
+   * map&lt;string, .google.cloud.datacatalog.v1beta1.TagTemplateField&gt; fields = 3 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   public boolean containsFields(java.lang.String key) {
     if (key == null) {
@@ -291,16 +291,18 @@ public boolean containsFields(java.lang.String key) {
    *
    *
    * <pre>
-   * Required. Map of tag template field ids to the settings for the field.
+   * Required. Map of tag template field IDs to the settings for the field.
    * This map is an exhaustive list of the allowed fields. This map must contain
    * at least one field and at most 500 fields.
    * The keys to this map are tag template field IDs. Field IDs can contain
    * letters (both uppercase and lowercase), numbers (0-9) and underscores (_).
-   * Field IDs must be at least 1 character long and at most 64 characters long.
-   * Field IDs must start with a letter or underscore.
+   * Field IDs must be at least 1 character long and at most
+   * 64 characters long. Field IDs must start with a letter or underscore.
    * </pre>
    *
-   * <code>map&lt;string, .google.cloud.datacatalog.v1beta1.TagTemplateField&gt; fields = 3;</code>
+   * <code>
+   * map&lt;string, .google.cloud.datacatalog.v1beta1.TagTemplateField&gt; fields = 3 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   public java.util.Map<java.lang.String, com.google.cloud.datacatalog.TagTemplateField>
       getFieldsMap() {
@@ -310,16 +312,18 @@ public boolean containsFields(java.lang.String key) {
    *
    *
    * <pre>
-   * Required. Map of tag template field ids to the settings for the field.
+   * Required. Map of tag template field IDs to the settings for the field.
    * This map is an exhaustive list of the allowed fields. This map must contain
    * at least one field and at most 500 fields.
    * The keys to this map are tag template field IDs. Field IDs can contain
    * letters (both uppercase and lowercase), numbers (0-9) and underscores (_).
-   * Field IDs must be at least 1 character long and at most 64 characters long.
-   * Field IDs must start with a letter or underscore.
+   * Field IDs must be at least 1 character long and at most
+   * 64 characters long. Field IDs must start with a letter or underscore.
    * </pre>
    *
-   * <code>map&lt;string, .google.cloud.datacatalog.v1beta1.TagTemplateField&gt; fields = 3;</code>
+   * <code>
+   * map&lt;string, .google.cloud.datacatalog.v1beta1.TagTemplateField&gt; fields = 3 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   public com.google.cloud.datacatalog.TagTemplateField getFieldsOrDefault(
       java.lang.String key, com.google.cloud.datacatalog.TagTemplateField defaultValue) {
@@ -334,16 +338,18 @@ public com.google.cloud.datacatalog.TagTemplateField getFieldsOrDefault(
    *
    *
    * <pre>
-   * Required. Map of tag template field ids to the settings for the field.
+   * Required. Map of tag template field IDs to the settings for the field.
    * This map is an exhaustive list of the allowed fields. This map must contain
    * at least one field and at most 500 fields.
    * The keys to this map are tag template field IDs. Field IDs can contain
    * letters (both uppercase and lowercase), numbers (0-9) and underscores (_).
-   * Field IDs must be at least 1 character long and at most 64 characters long.
-   * Field IDs must start with a letter or underscore.
+   * Field IDs must be at least 1 character long and at most
+   * 64 characters long. Field IDs must start with a letter or underscore.
    * </pre>
    *
-   * <code>map&lt;string, .google.cloud.datacatalog.v1beta1.TagTemplateField&gt; fields = 3;</code>
+   * <code>
+   * map&lt;string, .google.cloud.datacatalog.v1beta1.TagTemplateField&gt; fields = 3 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   public com.google.cloud.datacatalog.TagTemplateField getFieldsOrThrow(java.lang.String key) {
     if (key == null) {
@@ -546,7 +552,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * Tag templates defines the schema of the tags used to attach to Data Catalog
+   * A tag template defines the schema of the tags used to attach to Data Catalog
    * resources. It defines the mapping of accepted field names and types that can
    * be used within the tag. The tag template also controls the access to the tag.
    * </pre>
@@ -744,8 +750,8 @@ public Builder mergeFrom(
      * <pre>
      * Required when used in
      * [UpdateTagTemplateRequest][google.cloud.datacatalog.v1beta1.UpdateTagTemplateRequest].
-     * The resource name of the tag template in URL format. For example,
-     * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}.
+     * The resource name of the tag template in URL format. Example:
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
      * Note that this TagTemplate and its child resources may not actually be
      * stored in the location in this name.
      * </pre>
@@ -769,8 +775,8 @@ public java.lang.String getName() {
      * <pre>
      * Required when used in
      * [UpdateTagTemplateRequest][google.cloud.datacatalog.v1beta1.UpdateTagTemplateRequest].
-     * The resource name of the tag template in URL format. For example,
-     * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}.
+     * The resource name of the tag template in URL format. Example:
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
      * Note that this TagTemplate and its child resources may not actually be
      * stored in the location in this name.
      * </pre>
@@ -794,8 +800,8 @@ public com.google.protobuf.ByteString getNameBytes() {
      * <pre>
      * Required when used in
      * [UpdateTagTemplateRequest][google.cloud.datacatalog.v1beta1.UpdateTagTemplateRequest].
-     * The resource name of the tag template in URL format. For example,
-     * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}.
+     * The resource name of the tag template in URL format. Example:
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
      * Note that this TagTemplate and its child resources may not actually be
      * stored in the location in this name.
      * </pre>
@@ -817,8 +823,8 @@ public Builder setName(java.lang.String value) {
      * <pre>
      * Required when used in
      * [UpdateTagTemplateRequest][google.cloud.datacatalog.v1beta1.UpdateTagTemplateRequest].
-     * The resource name of the tag template in URL format. For example,
-     * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}.
+     * The resource name of the tag template in URL format. Example:
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
      * Note that this TagTemplate and its child resources may not actually be
      * stored in the location in this name.
      * </pre>
@@ -837,8 +843,8 @@ public Builder clearName() {
      * <pre>
      * Required when used in
      * [UpdateTagTemplateRequest][google.cloud.datacatalog.v1beta1.UpdateTagTemplateRequest].
-     * The resource name of the tag template in URL format. For example,
-     * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}.
+     * The resource name of the tag template in URL format. Example:
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
      * Note that this TagTemplate and its child resources may not actually be
      * stored in the location in this name.
      * </pre>
@@ -861,8 +867,7 @@ public Builder setNameBytes(com.google.protobuf.ByteString value) {
      *
      *
      * <pre>
-     * Optional. The display name for this template. Default value is an empty
-     * string.
+     * Optional. The display name for this template. Defaults to an empty string.
      * </pre>
      *
      * <code>string display_name = 2;</code>
@@ -882,8 +887,7 @@ public java.lang.String getDisplayName() {
      *
      *
      * <pre>
-     * Optional. The display name for this template. Default value is an empty
-     * string.
+     * Optional. The display name for this template. Defaults to an empty string.
      * </pre>
      *
      * <code>string display_name = 2;</code>
@@ -903,8 +907,7 @@ public com.google.protobuf.ByteString getDisplayNameBytes() {
      *
      *
      * <pre>
-     * Optional. The display name for this template. Default value is an empty
-     * string.
+     * Optional. The display name for this template. Defaults to an empty string.
      * </pre>
      *
      * <code>string display_name = 2;</code>
@@ -922,8 +925,7 @@ public Builder setDisplayName(java.lang.String value) {
      *
      *
      * <pre>
-     * Optional. The display name for this template. Default value is an empty
-     * string.
+     * Optional. The display name for this template. Defaults to an empty string.
      * </pre>
      *
      * <code>string display_name = 2;</code>
@@ -938,8 +940,7 @@ public Builder clearDisplayName() {
      *
      *
      * <pre>
-     * Optional. The display name for this template. Default value is an empty
-     * string.
+     * Optional. The display name for this template. Defaults to an empty string.
      * </pre>
      *
      * <code>string display_name = 2;</code>
@@ -989,16 +990,17 @@ public int getFieldsCount() {
      *
      *
      * <pre>
-     * Required. Map of tag template field ids to the settings for the field.
+     * Required. Map of tag template field IDs to the settings for the field.
      * This map is an exhaustive list of the allowed fields. This map must contain
      * at least one field and at most 500 fields.
      * The keys to this map are tag template field IDs. Field IDs can contain
      * letters (both uppercase and lowercase), numbers (0-9) and underscores (_).
-     * Field IDs must be at least 1 character long and at most 64 characters long.
-     * Field IDs must start with a letter or underscore.
+     * Field IDs must be at least 1 character long and at most
+     * 64 characters long. Field IDs must start with a letter or underscore.
      * </pre>
      *
-     * <code>map&lt;string, .google.cloud.datacatalog.v1beta1.TagTemplateField&gt; fields = 3;
+     * <code>
+     * map&lt;string, .google.cloud.datacatalog.v1beta1.TagTemplateField&gt; fields = 3 [(.google.api.field_behavior) = REQUIRED];
      * </code>
      */
     public boolean containsFields(java.lang.String key) {
@@ -1017,16 +1019,17 @@ public boolean containsFields(java.lang.String key) {
      *
      *
      * <pre>
-     * Required. Map of tag template field ids to the settings for the field.
+     * Required. Map of tag template field IDs to the settings for the field.
      * This map is an exhaustive list of the allowed fields. This map must contain
      * at least one field and at most 500 fields.
      * The keys to this map are tag template field IDs. Field IDs can contain
      * letters (both uppercase and lowercase), numbers (0-9) and underscores (_).
-     * Field IDs must be at least 1 character long and at most 64 characters long.
-     * Field IDs must start with a letter or underscore.
+     * Field IDs must be at least 1 character long and at most
+     * 64 characters long. Field IDs must start with a letter or underscore.
      * </pre>
      *
-     * <code>map&lt;string, .google.cloud.datacatalog.v1beta1.TagTemplateField&gt; fields = 3;
+     * <code>
+     * map&lt;string, .google.cloud.datacatalog.v1beta1.TagTemplateField&gt; fields = 3 [(.google.api.field_behavior) = REQUIRED];
      * </code>
      */
     public java.util.Map<java.lang.String, com.google.cloud.datacatalog.TagTemplateField>
@@ -1037,16 +1040,17 @@ public boolean containsFields(java.lang.String key) {
      *
      *
      * <pre>
-     * Required. Map of tag template field ids to the settings for the field.
+     * Required. Map of tag template field IDs to the settings for the field.
      * This map is an exhaustive list of the allowed fields. This map must contain
      * at least one field and at most 500 fields.
      * The keys to this map are tag template field IDs. Field IDs can contain
      * letters (both uppercase and lowercase), numbers (0-9) and underscores (_).
-     * Field IDs must be at least 1 character long and at most 64 characters long.
-     * Field IDs must start with a letter or underscore.
+     * Field IDs must be at least 1 character long and at most
+     * 64 characters long. Field IDs must start with a letter or underscore.
      * </pre>
      *
-     * <code>map&lt;string, .google.cloud.datacatalog.v1beta1.TagTemplateField&gt; fields = 3;
+     * <code>
+     * map&lt;string, .google.cloud.datacatalog.v1beta1.TagTemplateField&gt; fields = 3 [(.google.api.field_behavior) = REQUIRED];
      * </code>
      */
     public com.google.cloud.datacatalog.TagTemplateField getFieldsOrDefault(
@@ -1062,16 +1066,17 @@ public com.google.cloud.datacatalog.TagTemplateField getFieldsOrDefault(
      *
      *
      * <pre>
-     * Required. Map of tag template field ids to the settings for the field.
+     * Required. Map of tag template field IDs to the settings for the field.
      * This map is an exhaustive list of the allowed fields. This map must contain
      * at least one field and at most 500 fields.
      * The keys to this map are tag template field IDs. Field IDs can contain
      * letters (both uppercase and lowercase), numbers (0-9) and underscores (_).
-     * Field IDs must be at least 1 character long and at most 64 characters long.
-     * Field IDs must start with a letter or underscore.
+     * Field IDs must be at least 1 character long and at most
+     * 64 characters long. Field IDs must start with a letter or underscore.
      * </pre>
      *
-     * <code>map&lt;string, .google.cloud.datacatalog.v1beta1.TagTemplateField&gt; fields = 3;
+     * <code>
+     * map&lt;string, .google.cloud.datacatalog.v1beta1.TagTemplateField&gt; fields = 3 [(.google.api.field_behavior) = REQUIRED];
      * </code>
      */
     public com.google.cloud.datacatalog.TagTemplateField getFieldsOrThrow(java.lang.String key) {
@@ -1094,16 +1099,17 @@ public Builder clearFields() {
      *
      *
      * <pre>
-     * Required. Map of tag template field ids to the settings for the field.
+     * Required. Map of tag template field IDs to the settings for the field.
      * This map is an exhaustive list of the allowed fields. This map must contain
      * at least one field and at most 500 fields.
      * The keys to this map are tag template field IDs. Field IDs can contain
      * letters (both uppercase and lowercase), numbers (0-9) and underscores (_).
-     * Field IDs must be at least 1 character long and at most 64 characters long.
-     * Field IDs must start with a letter or underscore.
+     * Field IDs must be at least 1 character long and at most
+     * 64 characters long. Field IDs must start with a letter or underscore.
      * </pre>
      *
-     * <code>map&lt;string, .google.cloud.datacatalog.v1beta1.TagTemplateField&gt; fields = 3;
+     * <code>
+     * map&lt;string, .google.cloud.datacatalog.v1beta1.TagTemplateField&gt; fields = 3 [(.google.api.field_behavior) = REQUIRED];
      * </code>
      */
     public Builder removeFields(java.lang.String key) {
@@ -1123,16 +1129,17 @@ public Builder removeFields(java.lang.String key) {
      *
      *
      * <pre>
-     * Required. Map of tag template field ids to the settings for the field.
+     * Required. Map of tag template field IDs to the settings for the field.
      * This map is an exhaustive list of the allowed fields. This map must contain
      * at least one field and at most 500 fields.
      * The keys to this map are tag template field IDs. Field IDs can contain
      * letters (both uppercase and lowercase), numbers (0-9) and underscores (_).
-     * Field IDs must be at least 1 character long and at most 64 characters long.
-     * Field IDs must start with a letter or underscore.
+     * Field IDs must be at least 1 character long and at most
+     * 64 characters long. Field IDs must start with a letter or underscore.
      * </pre>
      *
-     * <code>map&lt;string, .google.cloud.datacatalog.v1beta1.TagTemplateField&gt; fields = 3;
+     * <code>
+     * map&lt;string, .google.cloud.datacatalog.v1beta1.TagTemplateField&gt; fields = 3 [(.google.api.field_behavior) = REQUIRED];
      * </code>
      */
     public Builder putFields(
@@ -1150,16 +1157,17 @@ public Builder putFields(
      *
      *
      * <pre>
-     * Required. Map of tag template field ids to the settings for the field.
+     * Required. Map of tag template field IDs to the settings for the field.
      * This map is an exhaustive list of the allowed fields. This map must contain
      * at least one field and at most 500 fields.
      * The keys to this map are tag template field IDs. Field IDs can contain
      * letters (both uppercase and lowercase), numbers (0-9) and underscores (_).
-     * Field IDs must be at least 1 character long and at most 64 characters long.
-     * Field IDs must start with a letter or underscore.
+     * Field IDs must be at least 1 character long and at most
+     * 64 characters long. Field IDs must start with a letter or underscore.
      * </pre>
      *
-     * <code>map&lt;string, .google.cloud.datacatalog.v1beta1.TagTemplateField&gt; fields = 3;
+     * <code>
+     * map&lt;string, .google.cloud.datacatalog.v1beta1.TagTemplateField&gt; fields = 3 [(.google.api.field_behavior) = REQUIRED];
      * </code>
      */
     public Builder putAllFields(
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/TagTemplateField.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/TagTemplateField.java
index b47300dcdd3c..9857a2186504 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/TagTemplateField.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/TagTemplateField.java
@@ -23,6 +23,7 @@ private TagTemplateField(com.google.protobuf.GeneratedMessageV3.Builder<?> build
   }
 
   private TagTemplateField() {
+    name_ = "";
     displayName_ = "";
   }
 
@@ -71,6 +72,13 @@ private TagTemplateField(
                 type_ = subBuilder.buildPartial();
               }
 
+              break;
+            }
+          case 50:
+            {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              name_ = s;
               break;
             }
           default:
@@ -107,14 +115,64 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
             com.google.cloud.datacatalog.TagTemplateField.Builder.class);
   }
 
+  public static final int NAME_FIELD_NUMBER = 6;
+  private volatile java.lang.Object name_;
+  /**
+   *
+   *
+   * <pre>
+   * Output only. The resource name of the tag template field in URL format.
+   * Example:
+   * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template}/fields/{field}
+   * Note that this TagTemplateField may not actually be stored in the location
+   * in this name.
+   * </pre>
+   *
+   * <code>string name = 6;</code>
+   */
+  public java.lang.String getName() {
+    java.lang.Object ref = name_;
+    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();
+      name_ = s;
+      return s;
+    }
+  }
+  /**
+   *
+   *
+   * <pre>
+   * Output only. The resource name of the tag template field in URL format.
+   * Example:
+   * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template}/fields/{field}
+   * Note that this TagTemplateField may not actually be stored in the location
+   * in this name.
+   * </pre>
+   *
+   * <code>string name = 6;</code>
+   */
+  public com.google.protobuf.ByteString getNameBytes() {
+    java.lang.Object ref = name_;
+    if (ref instanceof java.lang.String) {
+      com.google.protobuf.ByteString b =
+          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+      name_ = b;
+      return b;
+    } else {
+      return (com.google.protobuf.ByteString) ref;
+    }
+  }
+
   public static final int DISPLAY_NAME_FIELD_NUMBER = 1;
   private volatile java.lang.Object displayName_;
   /**
    *
    *
    * <pre>
-   * Optional. The display name for this field. Default value is an empty
-   * string.
+   * Optional. The display name for this field. Defaults to an empty string.
    * </pre>
    *
    * <code>string display_name = 1;</code>
@@ -134,8 +192,7 @@ public java.lang.String getDisplayName() {
    *
    *
    * <pre>
-   * Optional. The display name for this field. Default value is an empty
-   * string.
+   * Optional. The display name for this field. Defaults to an empty string.
    * </pre>
    *
    * <code>string display_name = 1;</code>
@@ -161,7 +218,9 @@ public com.google.protobuf.ByteString getDisplayNameBytes() {
    * Required. The type of value this tag field can contain.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.FieldType type = 2;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.FieldType type = 2 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   public boolean hasType() {
     return type_ != null;
@@ -173,7 +232,9 @@ public boolean hasType() {
    * Required. The type of value this tag field can contain.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.FieldType type = 2;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.FieldType type = 2 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   public com.google.cloud.datacatalog.FieldType getType() {
     return type_ == null ? com.google.cloud.datacatalog.FieldType.getDefaultInstance() : type_;
@@ -185,7 +246,9 @@ public com.google.cloud.datacatalog.FieldType getType() {
    * Required. The type of value this tag field can contain.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.FieldType type = 2;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.FieldType type = 2 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   public com.google.cloud.datacatalog.FieldTypeOrBuilder getTypeOrBuilder() {
     return getType();
@@ -211,6 +274,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
     if (type_ != null) {
       output.writeMessage(2, getType());
     }
+    if (!getNameBytes().isEmpty()) {
+      com.google.protobuf.GeneratedMessageV3.writeString(output, 6, name_);
+    }
     unknownFields.writeTo(output);
   }
 
@@ -226,6 +292,9 @@ public int getSerializedSize() {
     if (type_ != null) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getType());
     }
+    if (!getNameBytes().isEmpty()) {
+      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, name_);
+    }
     size += unknownFields.getSerializedSize();
     memoizedSize = size;
     return size;
@@ -242,6 +311,7 @@ public boolean equals(final java.lang.Object obj) {
     com.google.cloud.datacatalog.TagTemplateField other =
         (com.google.cloud.datacatalog.TagTemplateField) obj;
 
+    if (!getName().equals(other.getName())) return false;
     if (!getDisplayName().equals(other.getDisplayName())) return false;
     if (hasType() != other.hasType()) return false;
     if (hasType()) {
@@ -258,6 +328,8 @@ public int hashCode() {
     }
     int hash = 41;
     hash = (19 * hash) + getDescriptor().hashCode();
+    hash = (37 * hash) + NAME_FIELD_NUMBER;
+    hash = (53 * hash) + getName().hashCode();
     hash = (37 * hash) + DISPLAY_NAME_FIELD_NUMBER;
     hash = (53 * hash) + getDisplayName().hashCode();
     if (hasType()) {
@@ -409,6 +481,8 @@ private void maybeForceBuilderInitialization() {
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      name_ = "";
+
       displayName_ = "";
 
       if (typeBuilder_ == null) {
@@ -444,6 +518,7 @@ public com.google.cloud.datacatalog.TagTemplateField build() {
     public com.google.cloud.datacatalog.TagTemplateField buildPartial() {
       com.google.cloud.datacatalog.TagTemplateField result =
           new com.google.cloud.datacatalog.TagTemplateField(this);
+      result.name_ = name_;
       result.displayName_ = displayName_;
       if (typeBuilder_ == null) {
         result.type_ = type_;
@@ -499,6 +574,10 @@ public Builder mergeFrom(com.google.protobuf.Message other) {
 
     public Builder mergeFrom(com.google.cloud.datacatalog.TagTemplateField other) {
       if (other == com.google.cloud.datacatalog.TagTemplateField.getDefaultInstance()) return this;
+      if (!other.getName().isEmpty()) {
+        name_ = other.name_;
+        onChanged();
+      }
       if (!other.getDisplayName().isEmpty()) {
         displayName_ = other.displayName_;
         onChanged();
@@ -535,13 +614,126 @@ public Builder mergeFrom(
       return this;
     }
 
+    private java.lang.Object name_ = "";
+    /**
+     *
+     *
+     * <pre>
+     * Output only. The resource name of the tag template field in URL format.
+     * Example:
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template}/fields/{field}
+     * Note that this TagTemplateField may not actually be stored in the location
+     * in this name.
+     * </pre>
+     *
+     * <code>string name = 6;</code>
+     */
+    public java.lang.String getName() {
+      java.lang.Object ref = name_;
+      if (!(ref instanceof java.lang.String)) {
+        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        name_ = s;
+        return s;
+      } else {
+        return (java.lang.String) ref;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Output only. The resource name of the tag template field in URL format.
+     * Example:
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template}/fields/{field}
+     * Note that this TagTemplateField may not actually be stored in the location
+     * in this name.
+     * </pre>
+     *
+     * <code>string name = 6;</code>
+     */
+    public com.google.protobuf.ByteString getNameBytes() {
+      java.lang.Object ref = name_;
+      if (ref instanceof String) {
+        com.google.protobuf.ByteString b =
+            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+        name_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Output only. The resource name of the tag template field in URL format.
+     * Example:
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template}/fields/{field}
+     * Note that this TagTemplateField may not actually be stored in the location
+     * in this name.
+     * </pre>
+     *
+     * <code>string name = 6;</code>
+     */
+    public Builder setName(java.lang.String value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+
+      name_ = value;
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Output only. The resource name of the tag template field in URL format.
+     * Example:
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template}/fields/{field}
+     * Note that this TagTemplateField may not actually be stored in the location
+     * in this name.
+     * </pre>
+     *
+     * <code>string name = 6;</code>
+     */
+    public Builder clearName() {
+
+      name_ = getDefaultInstance().getName();
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Output only. The resource name of the tag template field in URL format.
+     * Example:
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template}/fields/{field}
+     * Note that this TagTemplateField may not actually be stored in the location
+     * in this name.
+     * </pre>
+     *
+     * <code>string name = 6;</code>
+     */
+    public Builder setNameBytes(com.google.protobuf.ByteString value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+      checkByteStringIsUtf8(value);
+
+      name_ = value;
+      onChanged();
+      return this;
+    }
+
     private java.lang.Object displayName_ = "";
     /**
      *
      *
      * <pre>
-     * Optional. The display name for this field. Default value is an empty
-     * string.
+     * Optional. The display name for this field. Defaults to an empty string.
      * </pre>
      *
      * <code>string display_name = 1;</code>
@@ -561,8 +753,7 @@ public java.lang.String getDisplayName() {
      *
      *
      * <pre>
-     * Optional. The display name for this field. Default value is an empty
-     * string.
+     * Optional. The display name for this field. Defaults to an empty string.
      * </pre>
      *
      * <code>string display_name = 1;</code>
@@ -582,8 +773,7 @@ public com.google.protobuf.ByteString getDisplayNameBytes() {
      *
      *
      * <pre>
-     * Optional. The display name for this field. Default value is an empty
-     * string.
+     * Optional. The display name for this field. Defaults to an empty string.
      * </pre>
      *
      * <code>string display_name = 1;</code>
@@ -601,8 +791,7 @@ public Builder setDisplayName(java.lang.String value) {
      *
      *
      * <pre>
-     * Optional. The display name for this field. Default value is an empty
-     * string.
+     * Optional. The display name for this field. Defaults to an empty string.
      * </pre>
      *
      * <code>string display_name = 1;</code>
@@ -617,8 +806,7 @@ public Builder clearDisplayName() {
      *
      *
      * <pre>
-     * Optional. The display name for this field. Default value is an empty
-     * string.
+     * Optional. The display name for this field. Defaults to an empty string.
      * </pre>
      *
      * <code>string display_name = 1;</code>
@@ -647,7 +835,9 @@ public Builder setDisplayNameBytes(com.google.protobuf.ByteString value) {
      * Required. The type of value this tag field can contain.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.FieldType type = 2;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.FieldType type = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public boolean hasType() {
       return typeBuilder_ != null || type_ != null;
@@ -659,7 +849,9 @@ public boolean hasType() {
      * Required. The type of value this tag field can contain.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.FieldType type = 2;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.FieldType type = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public com.google.cloud.datacatalog.FieldType getType() {
       if (typeBuilder_ == null) {
@@ -675,7 +867,9 @@ public com.google.cloud.datacatalog.FieldType getType() {
      * Required. The type of value this tag field can contain.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.FieldType type = 2;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.FieldType type = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder setType(com.google.cloud.datacatalog.FieldType value) {
       if (typeBuilder_ == null) {
@@ -697,7 +891,9 @@ public Builder setType(com.google.cloud.datacatalog.FieldType value) {
      * Required. The type of value this tag field can contain.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.FieldType type = 2;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.FieldType type = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder setType(com.google.cloud.datacatalog.FieldType.Builder builderForValue) {
       if (typeBuilder_ == null) {
@@ -716,7 +912,9 @@ public Builder setType(com.google.cloud.datacatalog.FieldType.Builder builderFor
      * Required. The type of value this tag field can contain.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.FieldType type = 2;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.FieldType type = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder mergeType(com.google.cloud.datacatalog.FieldType value) {
       if (typeBuilder_ == null) {
@@ -742,7 +940,9 @@ public Builder mergeType(com.google.cloud.datacatalog.FieldType value) {
      * Required. The type of value this tag field can contain.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.FieldType type = 2;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.FieldType type = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder clearType() {
       if (typeBuilder_ == null) {
@@ -762,7 +962,9 @@ public Builder clearType() {
      * Required. The type of value this tag field can contain.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.FieldType type = 2;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.FieldType type = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public com.google.cloud.datacatalog.FieldType.Builder getTypeBuilder() {
 
@@ -776,7 +978,9 @@ public com.google.cloud.datacatalog.FieldType.Builder getTypeBuilder() {
      * Required. The type of value this tag field can contain.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.FieldType type = 2;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.FieldType type = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public com.google.cloud.datacatalog.FieldTypeOrBuilder getTypeOrBuilder() {
       if (typeBuilder_ != null) {
@@ -792,7 +996,9 @@ public com.google.cloud.datacatalog.FieldTypeOrBuilder getTypeOrBuilder() {
      * Required. The type of value this tag field can contain.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.FieldType type = 2;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.FieldType type = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     private com.google.protobuf.SingleFieldBuilderV3<
             com.google.cloud.datacatalog.FieldType,
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/TagTemplateFieldOrBuilder.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/TagTemplateFieldOrBuilder.java
index 2b504374e8d1..968b57730a34 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/TagTemplateFieldOrBuilder.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/TagTemplateFieldOrBuilder.java
@@ -12,8 +12,36 @@ public interface TagTemplateFieldOrBuilder
    *
    *
    * <pre>
-   * Optional. The display name for this field. Default value is an empty
-   * string.
+   * Output only. The resource name of the tag template field in URL format.
+   * Example:
+   * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template}/fields/{field}
+   * Note that this TagTemplateField may not actually be stored in the location
+   * in this name.
+   * </pre>
+   *
+   * <code>string name = 6;</code>
+   */
+  java.lang.String getName();
+  /**
+   *
+   *
+   * <pre>
+   * Output only. The resource name of the tag template field in URL format.
+   * Example:
+   * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template}/fields/{field}
+   * Note that this TagTemplateField may not actually be stored in the location
+   * in this name.
+   * </pre>
+   *
+   * <code>string name = 6;</code>
+   */
+  com.google.protobuf.ByteString getNameBytes();
+
+  /**
+   *
+   *
+   * <pre>
+   * Optional. The display name for this field. Defaults to an empty string.
    * </pre>
    *
    * <code>string display_name = 1;</code>
@@ -23,8 +51,7 @@ public interface TagTemplateFieldOrBuilder
    *
    *
    * <pre>
-   * Optional. The display name for this field. Default value is an empty
-   * string.
+   * Optional. The display name for this field. Defaults to an empty string.
    * </pre>
    *
    * <code>string display_name = 1;</code>
@@ -38,7 +65,9 @@ public interface TagTemplateFieldOrBuilder
    * Required. The type of value this tag field can contain.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.FieldType type = 2;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.FieldType type = 2 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   boolean hasType();
   /**
@@ -48,7 +77,9 @@ public interface TagTemplateFieldOrBuilder
    * Required. The type of value this tag field can contain.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.FieldType type = 2;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.FieldType type = 2 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   com.google.cloud.datacatalog.FieldType getType();
   /**
@@ -58,7 +89,9 @@ public interface TagTemplateFieldOrBuilder
    * Required. The type of value this tag field can contain.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.FieldType type = 2;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.FieldType type = 2 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   com.google.cloud.datacatalog.FieldTypeOrBuilder getTypeOrBuilder();
 }
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/TagTemplateOrBuilder.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/TagTemplateOrBuilder.java
index 1b774e0b1011..6e3f96ac5319 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/TagTemplateOrBuilder.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/TagTemplateOrBuilder.java
@@ -14,8 +14,8 @@ public interface TagTemplateOrBuilder
    * <pre>
    * Required when used in
    * [UpdateTagTemplateRequest][google.cloud.datacatalog.v1beta1.UpdateTagTemplateRequest].
-   * The resource name of the tag template in URL format. For example,
-   * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}.
+   * The resource name of the tag template in URL format. Example:
+   * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
    * Note that this TagTemplate and its child resources may not actually be
    * stored in the location in this name.
    * </pre>
@@ -29,8 +29,8 @@ public interface TagTemplateOrBuilder
    * <pre>
    * Required when used in
    * [UpdateTagTemplateRequest][google.cloud.datacatalog.v1beta1.UpdateTagTemplateRequest].
-   * The resource name of the tag template in URL format. For example,
-   * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}.
+   * The resource name of the tag template in URL format. Example:
+   * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
    * Note that this TagTemplate and its child resources may not actually be
    * stored in the location in this name.
    * </pre>
@@ -43,8 +43,7 @@ public interface TagTemplateOrBuilder
    *
    *
    * <pre>
-   * Optional. The display name for this template. Default value is an empty
-   * string.
+   * Optional. The display name for this template. Defaults to an empty string.
    * </pre>
    *
    * <code>string display_name = 2;</code>
@@ -54,8 +53,7 @@ public interface TagTemplateOrBuilder
    *
    *
    * <pre>
-   * Optional. The display name for this template. Default value is an empty
-   * string.
+   * Optional. The display name for this template. Defaults to an empty string.
    * </pre>
    *
    * <code>string display_name = 2;</code>
@@ -66,32 +64,36 @@ public interface TagTemplateOrBuilder
    *
    *
    * <pre>
-   * Required. Map of tag template field ids to the settings for the field.
+   * Required. Map of tag template field IDs to the settings for the field.
    * This map is an exhaustive list of the allowed fields. This map must contain
    * at least one field and at most 500 fields.
    * The keys to this map are tag template field IDs. Field IDs can contain
    * letters (both uppercase and lowercase), numbers (0-9) and underscores (_).
-   * Field IDs must be at least 1 character long and at most 64 characters long.
-   * Field IDs must start with a letter or underscore.
+   * Field IDs must be at least 1 character long and at most
+   * 64 characters long. Field IDs must start with a letter or underscore.
    * </pre>
    *
-   * <code>map&lt;string, .google.cloud.datacatalog.v1beta1.TagTemplateField&gt; fields = 3;</code>
+   * <code>
+   * map&lt;string, .google.cloud.datacatalog.v1beta1.TagTemplateField&gt; fields = 3 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   int getFieldsCount();
   /**
    *
    *
    * <pre>
-   * Required. Map of tag template field ids to the settings for the field.
+   * Required. Map of tag template field IDs to the settings for the field.
    * This map is an exhaustive list of the allowed fields. This map must contain
    * at least one field and at most 500 fields.
    * The keys to this map are tag template field IDs. Field IDs can contain
    * letters (both uppercase and lowercase), numbers (0-9) and underscores (_).
-   * Field IDs must be at least 1 character long and at most 64 characters long.
-   * Field IDs must start with a letter or underscore.
+   * Field IDs must be at least 1 character long and at most
+   * 64 characters long. Field IDs must start with a letter or underscore.
    * </pre>
    *
-   * <code>map&lt;string, .google.cloud.datacatalog.v1beta1.TagTemplateField&gt; fields = 3;</code>
+   * <code>
+   * map&lt;string, .google.cloud.datacatalog.v1beta1.TagTemplateField&gt; fields = 3 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   boolean containsFields(java.lang.String key);
   /** Use {@link #getFieldsMap()} instead. */
@@ -101,32 +103,36 @@ public interface TagTemplateOrBuilder
    *
    *
    * <pre>
-   * Required. Map of tag template field ids to the settings for the field.
+   * Required. Map of tag template field IDs to the settings for the field.
    * This map is an exhaustive list of the allowed fields. This map must contain
    * at least one field and at most 500 fields.
    * The keys to this map are tag template field IDs. Field IDs can contain
    * letters (both uppercase and lowercase), numbers (0-9) and underscores (_).
-   * Field IDs must be at least 1 character long and at most 64 characters long.
-   * Field IDs must start with a letter or underscore.
+   * Field IDs must be at least 1 character long and at most
+   * 64 characters long. Field IDs must start with a letter or underscore.
    * </pre>
    *
-   * <code>map&lt;string, .google.cloud.datacatalog.v1beta1.TagTemplateField&gt; fields = 3;</code>
+   * <code>
+   * map&lt;string, .google.cloud.datacatalog.v1beta1.TagTemplateField&gt; fields = 3 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   java.util.Map<java.lang.String, com.google.cloud.datacatalog.TagTemplateField> getFieldsMap();
   /**
    *
    *
    * <pre>
-   * Required. Map of tag template field ids to the settings for the field.
+   * Required. Map of tag template field IDs to the settings for the field.
    * This map is an exhaustive list of the allowed fields. This map must contain
    * at least one field and at most 500 fields.
    * The keys to this map are tag template field IDs. Field IDs can contain
    * letters (both uppercase and lowercase), numbers (0-9) and underscores (_).
-   * Field IDs must be at least 1 character long and at most 64 characters long.
-   * Field IDs must start with a letter or underscore.
+   * Field IDs must be at least 1 character long and at most
+   * 64 characters long. Field IDs must start with a letter or underscore.
    * </pre>
    *
-   * <code>map&lt;string, .google.cloud.datacatalog.v1beta1.TagTemplateField&gt; fields = 3;</code>
+   * <code>
+   * map&lt;string, .google.cloud.datacatalog.v1beta1.TagTemplateField&gt; fields = 3 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   com.google.cloud.datacatalog.TagTemplateField getFieldsOrDefault(
       java.lang.String key, com.google.cloud.datacatalog.TagTemplateField defaultValue);
@@ -134,16 +140,18 @@ com.google.cloud.datacatalog.TagTemplateField getFieldsOrDefault(
    *
    *
    * <pre>
-   * Required. Map of tag template field ids to the settings for the field.
+   * Required. Map of tag template field IDs to the settings for the field.
    * This map is an exhaustive list of the allowed fields. This map must contain
    * at least one field and at most 500 fields.
    * The keys to this map are tag template field IDs. Field IDs can contain
    * letters (both uppercase and lowercase), numbers (0-9) and underscores (_).
-   * Field IDs must be at least 1 character long and at most 64 characters long.
-   * Field IDs must start with a letter or underscore.
+   * Field IDs must be at least 1 character long and at most
+   * 64 characters long. Field IDs must start with a letter or underscore.
    * </pre>
    *
-   * <code>map&lt;string, .google.cloud.datacatalog.v1beta1.TagTemplateField&gt; fields = 3;</code>
+   * <code>
+   * map&lt;string, .google.cloud.datacatalog.v1beta1.TagTemplateField&gt; fields = 3 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   com.google.cloud.datacatalog.TagTemplateField getFieldsOrThrow(java.lang.String key);
 }
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/Tags.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/Tags.java
index 01a63d69a87c..be65d5026128 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/Tags.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/Tags.java
@@ -63,42 +63,55 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
     java.lang.String[] descriptorData = {
       "\n+google/cloud/datacatalog/v1beta1/tags."
           + "proto\022 google.cloud.datacatalog.v1beta1\032"
-          + "\037google/protobuf/timestamp.proto\"\375\001\n\003Tag"
-          + "\022\014\n\004name\030\001 \001(\t\022\020\n\010template\030\002 \001(\t\022\035\n\025temp"
-          + "late_display_name\030\005 \001(\t\022\020\n\006column\030\004 \001(\tH"
-          + "\000\022A\n\006fields\030\003 \003(\01321.google.cloud.datacat"
-          + "alog.v1beta1.Tag.FieldsEntry\032Y\n\013FieldsEn"
-          + "try\022\013\n\003key\030\001 \001(\t\0229\n\005value\030\002 \001(\0132*.google"
-          + ".cloud.datacatalog.v1beta1.TagField:\0028\001B"
-          + "\007\n\005scope\"\224\002\n\010TagField\022\024\n\014display_name\030\001 "
-          + "\001(\t\022\026\n\014double_value\030\002 \001(\001H\000\022\026\n\014string_va"
-          + "lue\030\003 \001(\tH\000\022\024\n\nbool_value\030\004 \001(\010H\000\0225\n\017tim"
-          + "estamp_value\030\005 \001(\0132\032.google.protobuf.Tim"
-          + "estampH\000\022J\n\nenum_value\030\006 \001(\01324.google.cl"
-          + "oud.datacatalog.v1beta1.TagField.EnumVal"
-          + "ueH\000\032!\n\tEnumValue\022\024\n\014display_name\030\001 \001(\tB"
-          + "\006\n\004kind\"\337\001\n\013TagTemplate\022\014\n\004name\030\001 \001(\t\022\024\n"
-          + "\014display_name\030\002 \001(\t\022I\n\006fields\030\003 \003(\01329.go"
-          + "ogle.cloud.datacatalog.v1beta1.TagTempla"
-          + "te.FieldsEntry\032a\n\013FieldsEntry\022\013\n\003key\030\001 \001"
-          + "(\t\022A\n\005value\030\002 \001(\01322.google.cloud.datacat"
-          + "alog.v1beta1.TagTemplateField:\0028\001\"c\n\020Tag"
-          + "TemplateField\022\024\n\014display_name\030\001 \001(\t\0229\n\004t"
-          + "ype\030\002 \001(\0132+.google.cloud.datacatalog.v1b"
-          + "eta1.FieldType\"\242\003\n\tFieldType\022S\n\016primitiv"
-          + "e_type\030\001 \001(\01629.google.cloud.datacatalog."
-          + "v1beta1.FieldType.PrimitiveTypeH\000\022I\n\tenu"
-          + "m_type\030\002 \001(\01324.google.cloud.datacatalog."
-          + "v1beta1.FieldType.EnumTypeH\000\032\205\001\n\010EnumTyp"
-          + "e\022V\n\016allowed_values\030\001 \003(\0132>.google.cloud"
-          + ".datacatalog.v1beta1.FieldType.EnumType."
-          + "EnumValue\032!\n\tEnumValue\022\024\n\014display_name\030\001"
-          + " \001(\t\"`\n\rPrimitiveType\022\036\n\032PRIMITIVE_TYPE_"
-          + "UNSPECIFIED\020\000\022\n\n\006DOUBLE\020\001\022\n\n\006STRING\020\002\022\010\n"
-          + "\004BOOL\020\003\022\r\n\tTIMESTAMP\020\004B\013\n\ttype_declBp\n\034c"
-          + "om.google.cloud.datacatalogP\001ZKgoogle.go"
-          + "lang.org/genproto/googleapis/cloud/datac"
-          + "atalog/v1beta1;datacatalog\370\001\001b\006proto3"
+          + "\037google/api/field_behavior.proto\032\031google"
+          + "/api/resource.proto\032\037google/protobuf/tim"
+          + "estamp.proto\"\220\003\n\003Tag\022\014\n\004name\030\001 \001(\t\022\025\n\010te"
+          + "mplate\030\002 \001(\tB\003\340A\002\022\"\n\025template_display_na"
+          + "me\030\005 \001(\tB\003\340A\003\022\020\n\006column\030\004 \001(\tH\000\022F\n\006field"
+          + "s\030\003 \003(\01321.google.cloud.datacatalog.v1bet"
+          + "a1.Tag.FieldsEntryB\003\340A\002\032Y\n\013FieldsEntry\022\013"
+          + "\n\003key\030\001 \001(\t\0229\n\005value\030\002 \001(\0132*.google.clou"
+          + "d.datacatalog.v1beta1.TagField:\0028\001:\201\001\352A~"
+          + "\n\036datacatalog.googleapis.com/Tag\022\\projec"
+          + "ts/{project}/locations/{location}/entryG"
+          + "roups/{entry_group}/entries/{entry}/tags"
+          + "/{tag}B\007\n\005scope\"\231\002\n\010TagField\022\031\n\014display_"
+          + "name\030\001 \001(\tB\003\340A\003\022\026\n\014double_value\030\002 \001(\001H\000\022"
+          + "\026\n\014string_value\030\003 \001(\tH\000\022\024\n\nbool_value\030\004 "
+          + "\001(\010H\000\0225\n\017timestamp_value\030\005 \001(\0132\032.google."
+          + "protobuf.TimestampH\000\022J\n\nenum_value\030\006 \001(\013"
+          + "24.google.cloud.datacatalog.v1beta1.TagF"
+          + "ield.EnumValueH\000\032!\n\tEnumValue\022\024\n\014display"
+          + "_name\030\001 \001(\tB\006\n\004kind\"\326\002\n\013TagTemplate\022\014\n\004n"
+          + "ame\030\001 \001(\t\022\024\n\014display_name\030\002 \001(\t\022N\n\006field"
+          + "s\030\003 \003(\01329.google.cloud.datacatalog.v1bet"
+          + "a1.TagTemplate.FieldsEntryB\003\340A\002\032a\n\013Field"
+          + "sEntry\022\013\n\003key\030\001 \001(\t\022A\n\005value\030\002 \001(\01322.goo"
+          + "gle.cloud.datacatalog.v1beta1.TagTemplat"
+          + "eField:\0028\001:p\352Am\n&datacatalog.googleapis."
+          + "com/TagTemplate\022Cprojects/{project}/loca"
+          + "tions/{location}/tagTemplates/{tag_templ"
+          + "ate}\"\376\001\n\020TagTemplateField\022\014\n\004name\030\006 \001(\t\022"
+          + "\024\n\014display_name\030\001 \001(\t\022>\n\004type\030\002 \001(\0132+.go"
+          + "ogle.cloud.datacatalog.v1beta1.FieldType"
+          + "B\003\340A\002:\205\001\352A\201\001\n+datacatalog.googleapis.com"
+          + "/TagTemplateField\022Rprojects/{project}/lo"
+          + "cations/{location}/tagTemplates/{tag_tem"
+          + "plate}/fields/{field}\"\247\003\n\tFieldType\022S\n\016p"
+          + "rimitive_type\030\001 \001(\01629.google.cloud.datac"
+          + "atalog.v1beta1.FieldType.PrimitiveTypeH\000"
+          + "\022I\n\tenum_type\030\002 \001(\01324.google.cloud.datac"
+          + "atalog.v1beta1.FieldType.EnumTypeH\000\032\212\001\n\010"
+          + "EnumType\022V\n\016allowed_values\030\001 \003(\0132>.googl"
+          + "e.cloud.datacatalog.v1beta1.FieldType.En"
+          + "umType.EnumValue\032&\n\tEnumValue\022\031\n\014display"
+          + "_name\030\001 \001(\tB\003\340A\002\"`\n\rPrimitiveType\022\036\n\032PRI"
+          + "MITIVE_TYPE_UNSPECIFIED\020\000\022\n\n\006DOUBLE\020\001\022\n\n"
+          + "\006STRING\020\002\022\010\n\004BOOL\020\003\022\r\n\tTIMESTAMP\020\004B\013\n\tty"
+          + "pe_declBp\n\034com.google.cloud.datacatalogP"
+          + "\001ZKgoogle.golang.org/genproto/googleapis"
+          + "/cloud/datacatalog/v1beta1;datacatalog\370\001"
+          + "\001b\006proto3"
     };
     com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
         new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
@@ -111,6 +124,8 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors(
     com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
         descriptorData,
         new com.google.protobuf.Descriptors.FileDescriptor[] {
+          com.google.api.FieldBehaviorProto.getDescriptor(),
+          com.google.api.ResourceProto.getDescriptor(),
           com.google.protobuf.TimestampProto.getDescriptor(),
         },
         assigner);
@@ -178,7 +193,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors(
         new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
             internal_static_google_cloud_datacatalog_v1beta1_TagTemplateField_descriptor,
             new java.lang.String[] {
-              "DisplayName", "Type",
+              "Name", "DisplayName", "Type",
             });
     internal_static_google_cloud_datacatalog_v1beta1_FieldType_descriptor =
         getDescriptor().getMessageTypes().get(4);
@@ -208,6 +223,14 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors(
             new java.lang.String[] {
               "DisplayName",
             });
+    com.google.protobuf.ExtensionRegistry registry =
+        com.google.protobuf.ExtensionRegistry.newInstance();
+    registry.add(com.google.api.FieldBehaviorProto.fieldBehavior);
+    registry.add(com.google.api.ResourceProto.resource);
+    com.google.protobuf.Descriptors.FileDescriptor.internalUpdateFileDescriptor(
+        descriptor, registry);
+    com.google.api.FieldBehaviorProto.getDescriptor();
+    com.google.api.ResourceProto.getDescriptor();
     com.google.protobuf.TimestampProto.getDescriptor();
   }
 
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/Timestamps.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/Timestamps.java
index 5a24b90395df..ef38ce17c789 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/Timestamps.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/Timestamps.java
@@ -27,15 +27,16 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
     java.lang.String[] descriptorData = {
       "\n1google/cloud/datacatalog/v1beta1/times"
           + "tamps.proto\022 google.cloud.datacatalog.v1"
-          + "beta1\032\037google/protobuf/timestamp.proto\"\245"
-          + "\001\n\020SystemTimestamps\022/\n\013create_time\030\001 \001(\013"
-          + "2\032.google.protobuf.Timestamp\022/\n\013update_t"
-          + "ime\030\002 \001(\0132\032.google.protobuf.Timestamp\022/\n"
-          + "\013expire_time\030\003 \001(\0132\032.google.protobuf.Tim"
-          + "estampBp\n\034com.google.cloud.datacatalogP\001"
-          + "ZKgoogle.golang.org/genproto/googleapis/"
-          + "cloud/datacatalog/v1beta1;datacatalog\370\001\001"
-          + "b\006proto3"
+          + "beta1\032\037google/api/field_behavior.proto\032\037"
+          + "google/protobuf/timestamp.proto\"\252\001\n\020Syst"
+          + "emTimestamps\022/\n\013create_time\030\001 \001(\0132\032.goog"
+          + "le.protobuf.Timestamp\022/\n\013update_time\030\002 \001"
+          + "(\0132\032.google.protobuf.Timestamp\0224\n\013expire"
+          + "_time\030\003 \001(\0132\032.google.protobuf.TimestampB"
+          + "\003\340A\003Bp\n\034com.google.cloud.datacatalogP\001ZK"
+          + "google.golang.org/genproto/googleapis/cl"
+          + "oud/datacatalog/v1beta1;datacatalog\370\001\001b\006"
+          + "proto3"
     };
     com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
         new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
@@ -48,6 +49,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors(
     com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
         descriptorData,
         new com.google.protobuf.Descriptors.FileDescriptor[] {
+          com.google.api.FieldBehaviorProto.getDescriptor(),
           com.google.protobuf.TimestampProto.getDescriptor(),
         },
         assigner);
@@ -59,6 +61,12 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors(
             new java.lang.String[] {
               "CreateTime", "UpdateTime", "ExpireTime",
             });
+    com.google.protobuf.ExtensionRegistry registry =
+        com.google.protobuf.ExtensionRegistry.newInstance();
+    registry.add(com.google.api.FieldBehaviorProto.fieldBehavior);
+    com.google.protobuf.Descriptors.FileDescriptor.internalUpdateFileDescriptor(
+        descriptor, registry);
+    com.google.api.FieldBehaviorProto.getDescriptor();
     com.google.protobuf.TimestampProto.getDescriptor();
   }
 
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/UpdateEntryRequest.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/UpdateEntryRequest.java
index 12769c94e479..7112ca533148 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/UpdateEntryRequest.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/UpdateEntryRequest.java
@@ -119,10 +119,12 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    *
    *
    * <pre>
-   * Required. The updated Entry.
+   * Required. The updated entry.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.Entry entry = 1;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.Entry entry = 1 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   public boolean hasEntry() {
     return entry_ != null;
@@ -131,10 +133,12 @@ public boolean hasEntry() {
    *
    *
    * <pre>
-   * Required. The updated Entry.
+   * Required. The updated entry.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.Entry entry = 1;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.Entry entry = 1 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   public com.google.cloud.datacatalog.Entry getEntry() {
     return entry_ == null ? com.google.cloud.datacatalog.Entry.getDefaultInstance() : entry_;
@@ -143,10 +147,12 @@ public com.google.cloud.datacatalog.Entry getEntry() {
    *
    *
    * <pre>
-   * Required. The updated Entry.
+   * Required. The updated entry.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.Entry entry = 1;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.Entry entry = 1 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   public com.google.cloud.datacatalog.EntryOrBuilder getEntryOrBuilder() {
     return getEntry();
@@ -158,14 +164,9 @@ public com.google.cloud.datacatalog.EntryOrBuilder getEntryOrBuilder() {
    *
    *
    * <pre>
-   * Optional. The fields to update on the entry.  If absent or empty, all
+   * Optional. The fields to update on the entry. If absent or empty, all
    * modifiable fields are updated.
-   * Modifiable fields in synced entries:
-   * 1. schema (Pub/Sub topics only)
-   * Modifiable fields in native entries:
-   * 1. display_name
-   * 2. description
-   * 3. schema
+   * Currently only `schema` field in Cloud Pub/Sub topic entries is modifiable.
    * </pre>
    *
    * <code>.google.protobuf.FieldMask update_mask = 2;</code>
@@ -177,14 +178,9 @@ public boolean hasUpdateMask() {
    *
    *
    * <pre>
-   * Optional. The fields to update on the entry.  If absent or empty, all
+   * Optional. The fields to update on the entry. If absent or empty, all
    * modifiable fields are updated.
-   * Modifiable fields in synced entries:
-   * 1. schema (Pub/Sub topics only)
-   * Modifiable fields in native entries:
-   * 1. display_name
-   * 2. description
-   * 3. schema
+   * Currently only `schema` field in Cloud Pub/Sub topic entries is modifiable.
    * </pre>
    *
    * <code>.google.protobuf.FieldMask update_mask = 2;</code>
@@ -196,14 +192,9 @@ public com.google.protobuf.FieldMask getUpdateMask() {
    *
    *
    * <pre>
-   * Optional. The fields to update on the entry.  If absent or empty, all
+   * Optional. The fields to update on the entry. If absent or empty, all
    * modifiable fields are updated.
-   * Modifiable fields in synced entries:
-   * 1. schema (Pub/Sub topics only)
-   * Modifiable fields in native entries:
-   * 1. display_name
-   * 2. description
-   * 3. schema
+   * Currently only `schema` field in Cloud Pub/Sub topic entries is modifiable.
    * </pre>
    *
    * <code>.google.protobuf.FieldMask update_mask = 2;</code>
@@ -580,10 +571,12 @@ public Builder mergeFrom(
      *
      *
      * <pre>
-     * Required. The updated Entry.
+     * Required. The updated entry.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.Entry entry = 1;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.Entry entry = 1 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public boolean hasEntry() {
       return entryBuilder_ != null || entry_ != null;
@@ -592,10 +585,12 @@ public boolean hasEntry() {
      *
      *
      * <pre>
-     * Required. The updated Entry.
+     * Required. The updated entry.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.Entry entry = 1;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.Entry entry = 1 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public com.google.cloud.datacatalog.Entry getEntry() {
       if (entryBuilder_ == null) {
@@ -608,10 +603,12 @@ public com.google.cloud.datacatalog.Entry getEntry() {
      *
      *
      * <pre>
-     * Required. The updated Entry.
+     * Required. The updated entry.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.Entry entry = 1;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.Entry entry = 1 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder setEntry(com.google.cloud.datacatalog.Entry value) {
       if (entryBuilder_ == null) {
@@ -630,10 +627,12 @@ public Builder setEntry(com.google.cloud.datacatalog.Entry value) {
      *
      *
      * <pre>
-     * Required. The updated Entry.
+     * Required. The updated entry.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.Entry entry = 1;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.Entry entry = 1 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder setEntry(com.google.cloud.datacatalog.Entry.Builder builderForValue) {
       if (entryBuilder_ == null) {
@@ -649,10 +648,12 @@ public Builder setEntry(com.google.cloud.datacatalog.Entry.Builder builderForVal
      *
      *
      * <pre>
-     * Required. The updated Entry.
+     * Required. The updated entry.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.Entry entry = 1;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.Entry entry = 1 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder mergeEntry(com.google.cloud.datacatalog.Entry value) {
       if (entryBuilder_ == null) {
@@ -673,10 +674,12 @@ public Builder mergeEntry(com.google.cloud.datacatalog.Entry value) {
      *
      *
      * <pre>
-     * Required. The updated Entry.
+     * Required. The updated entry.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.Entry entry = 1;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.Entry entry = 1 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder clearEntry() {
       if (entryBuilder_ == null) {
@@ -693,10 +696,12 @@ public Builder clearEntry() {
      *
      *
      * <pre>
-     * Required. The updated Entry.
+     * Required. The updated entry.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.Entry entry = 1;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.Entry entry = 1 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public com.google.cloud.datacatalog.Entry.Builder getEntryBuilder() {
 
@@ -707,10 +712,12 @@ public com.google.cloud.datacatalog.Entry.Builder getEntryBuilder() {
      *
      *
      * <pre>
-     * Required. The updated Entry.
+     * Required. The updated entry.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.Entry entry = 1;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.Entry entry = 1 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public com.google.cloud.datacatalog.EntryOrBuilder getEntryOrBuilder() {
       if (entryBuilder_ != null) {
@@ -723,10 +730,12 @@ public com.google.cloud.datacatalog.EntryOrBuilder getEntryOrBuilder() {
      *
      *
      * <pre>
-     * Required. The updated Entry.
+     * Required. The updated entry.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.Entry entry = 1;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.Entry entry = 1 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     private com.google.protobuf.SingleFieldBuilderV3<
             com.google.cloud.datacatalog.Entry,
@@ -755,14 +764,9 @@ public com.google.cloud.datacatalog.EntryOrBuilder getEntryOrBuilder() {
      *
      *
      * <pre>
-     * Optional. The fields to update on the entry.  If absent or empty, all
+     * Optional. The fields to update on the entry. If absent or empty, all
      * modifiable fields are updated.
-     * Modifiable fields in synced entries:
-     * 1. schema (Pub/Sub topics only)
-     * Modifiable fields in native entries:
-     * 1. display_name
-     * 2. description
-     * 3. schema
+     * Currently only `schema` field in Cloud Pub/Sub topic entries is modifiable.
      * </pre>
      *
      * <code>.google.protobuf.FieldMask update_mask = 2;</code>
@@ -774,14 +778,9 @@ public boolean hasUpdateMask() {
      *
      *
      * <pre>
-     * Optional. The fields to update on the entry.  If absent or empty, all
+     * Optional. The fields to update on the entry. If absent or empty, all
      * modifiable fields are updated.
-     * Modifiable fields in synced entries:
-     * 1. schema (Pub/Sub topics only)
-     * Modifiable fields in native entries:
-     * 1. display_name
-     * 2. description
-     * 3. schema
+     * Currently only `schema` field in Cloud Pub/Sub topic entries is modifiable.
      * </pre>
      *
      * <code>.google.protobuf.FieldMask update_mask = 2;</code>
@@ -799,14 +798,9 @@ public com.google.protobuf.FieldMask getUpdateMask() {
      *
      *
      * <pre>
-     * Optional. The fields to update on the entry.  If absent or empty, all
+     * Optional. The fields to update on the entry. If absent or empty, all
      * modifiable fields are updated.
-     * Modifiable fields in synced entries:
-     * 1. schema (Pub/Sub topics only)
-     * Modifiable fields in native entries:
-     * 1. display_name
-     * 2. description
-     * 3. schema
+     * Currently only `schema` field in Cloud Pub/Sub topic entries is modifiable.
      * </pre>
      *
      * <code>.google.protobuf.FieldMask update_mask = 2;</code>
@@ -828,14 +822,9 @@ public Builder setUpdateMask(com.google.protobuf.FieldMask value) {
      *
      *
      * <pre>
-     * Optional. The fields to update on the entry.  If absent or empty, all
+     * Optional. The fields to update on the entry. If absent or empty, all
      * modifiable fields are updated.
-     * Modifiable fields in synced entries:
-     * 1. schema (Pub/Sub topics only)
-     * Modifiable fields in native entries:
-     * 1. display_name
-     * 2. description
-     * 3. schema
+     * Currently only `schema` field in Cloud Pub/Sub topic entries is modifiable.
      * </pre>
      *
      * <code>.google.protobuf.FieldMask update_mask = 2;</code>
@@ -854,14 +843,9 @@ public Builder setUpdateMask(com.google.protobuf.FieldMask.Builder builderForVal
      *
      *
      * <pre>
-     * Optional. The fields to update on the entry.  If absent or empty, all
+     * Optional. The fields to update on the entry. If absent or empty, all
      * modifiable fields are updated.
-     * Modifiable fields in synced entries:
-     * 1. schema (Pub/Sub topics only)
-     * Modifiable fields in native entries:
-     * 1. display_name
-     * 2. description
-     * 3. schema
+     * Currently only `schema` field in Cloud Pub/Sub topic entries is modifiable.
      * </pre>
      *
      * <code>.google.protobuf.FieldMask update_mask = 2;</code>
@@ -885,14 +869,9 @@ public Builder mergeUpdateMask(com.google.protobuf.FieldMask value) {
      *
      *
      * <pre>
-     * Optional. The fields to update on the entry.  If absent or empty, all
+     * Optional. The fields to update on the entry. If absent or empty, all
      * modifiable fields are updated.
-     * Modifiable fields in synced entries:
-     * 1. schema (Pub/Sub topics only)
-     * Modifiable fields in native entries:
-     * 1. display_name
-     * 2. description
-     * 3. schema
+     * Currently only `schema` field in Cloud Pub/Sub topic entries is modifiable.
      * </pre>
      *
      * <code>.google.protobuf.FieldMask update_mask = 2;</code>
@@ -912,14 +891,9 @@ public Builder clearUpdateMask() {
      *
      *
      * <pre>
-     * Optional. The fields to update on the entry.  If absent or empty, all
+     * Optional. The fields to update on the entry. If absent or empty, all
      * modifiable fields are updated.
-     * Modifiable fields in synced entries:
-     * 1. schema (Pub/Sub topics only)
-     * Modifiable fields in native entries:
-     * 1. display_name
-     * 2. description
-     * 3. schema
+     * Currently only `schema` field in Cloud Pub/Sub topic entries is modifiable.
      * </pre>
      *
      * <code>.google.protobuf.FieldMask update_mask = 2;</code>
@@ -933,14 +907,9 @@ public com.google.protobuf.FieldMask.Builder getUpdateMaskBuilder() {
      *
      *
      * <pre>
-     * Optional. The fields to update on the entry.  If absent or empty, all
+     * Optional. The fields to update on the entry. If absent or empty, all
      * modifiable fields are updated.
-     * Modifiable fields in synced entries:
-     * 1. schema (Pub/Sub topics only)
-     * Modifiable fields in native entries:
-     * 1. display_name
-     * 2. description
-     * 3. schema
+     * Currently only `schema` field in Cloud Pub/Sub topic entries is modifiable.
      * </pre>
      *
      * <code>.google.protobuf.FieldMask update_mask = 2;</code>
@@ -958,14 +927,9 @@ public com.google.protobuf.FieldMaskOrBuilder getUpdateMaskOrBuilder() {
      *
      *
      * <pre>
-     * Optional. The fields to update on the entry.  If absent or empty, all
+     * Optional. The fields to update on the entry. If absent or empty, all
      * modifiable fields are updated.
-     * Modifiable fields in synced entries:
-     * 1. schema (Pub/Sub topics only)
-     * Modifiable fields in native entries:
-     * 1. display_name
-     * 2. description
-     * 3. schema
+     * Currently only `schema` field in Cloud Pub/Sub topic entries is modifiable.
      * </pre>
      *
      * <code>.google.protobuf.FieldMask update_mask = 2;</code>
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/UpdateEntryRequestOrBuilder.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/UpdateEntryRequestOrBuilder.java
index a2aaff468861..4ba22df8ce35 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/UpdateEntryRequestOrBuilder.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/UpdateEntryRequestOrBuilder.java
@@ -12,30 +12,36 @@ public interface UpdateEntryRequestOrBuilder
    *
    *
    * <pre>
-   * Required. The updated Entry.
+   * Required. The updated entry.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.Entry entry = 1;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.Entry entry = 1 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   boolean hasEntry();
   /**
    *
    *
    * <pre>
-   * Required. The updated Entry.
+   * Required. The updated entry.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.Entry entry = 1;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.Entry entry = 1 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   com.google.cloud.datacatalog.Entry getEntry();
   /**
    *
    *
    * <pre>
-   * Required. The updated Entry.
+   * Required. The updated entry.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.Entry entry = 1;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.Entry entry = 1 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   com.google.cloud.datacatalog.EntryOrBuilder getEntryOrBuilder();
 
@@ -43,14 +49,9 @@ public interface UpdateEntryRequestOrBuilder
    *
    *
    * <pre>
-   * Optional. The fields to update on the entry.  If absent or empty, all
+   * Optional. The fields to update on the entry. If absent or empty, all
    * modifiable fields are updated.
-   * Modifiable fields in synced entries:
-   * 1. schema (Pub/Sub topics only)
-   * Modifiable fields in native entries:
-   * 1. display_name
-   * 2. description
-   * 3. schema
+   * Currently only `schema` field in Cloud Pub/Sub topic entries is modifiable.
    * </pre>
    *
    * <code>.google.protobuf.FieldMask update_mask = 2;</code>
@@ -60,14 +61,9 @@ public interface UpdateEntryRequestOrBuilder
    *
    *
    * <pre>
-   * Optional. The fields to update on the entry.  If absent or empty, all
+   * Optional. The fields to update on the entry. If absent or empty, all
    * modifiable fields are updated.
-   * Modifiable fields in synced entries:
-   * 1. schema (Pub/Sub topics only)
-   * Modifiable fields in native entries:
-   * 1. display_name
-   * 2. description
-   * 3. schema
+   * Currently only `schema` field in Cloud Pub/Sub topic entries is modifiable.
    * </pre>
    *
    * <code>.google.protobuf.FieldMask update_mask = 2;</code>
@@ -77,14 +73,9 @@ public interface UpdateEntryRequestOrBuilder
    *
    *
    * <pre>
-   * Optional. The fields to update on the entry.  If absent or empty, all
+   * Optional. The fields to update on the entry. If absent or empty, all
    * modifiable fields are updated.
-   * Modifiable fields in synced entries:
-   * 1. schema (Pub/Sub topics only)
-   * Modifiable fields in native entries:
-   * 1. display_name
-   * 2. description
-   * 3. schema
+   * Currently only `schema` field in Cloud Pub/Sub topic entries is modifiable.
    * </pre>
    *
    * <code>.google.protobuf.FieldMask update_mask = 2;</code>
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/UpdateTagRequest.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/UpdateTagRequest.java
index 212329456cdf..3fbdd9ce0cce 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/UpdateTagRequest.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/UpdateTagRequest.java
@@ -122,7 +122,8 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    * Required. The updated tag.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.Tag tag = 1;</code>
+   * <code>.google.cloud.datacatalog.v1beta1.Tag tag = 1 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   public boolean hasTag() {
     return tag_ != null;
@@ -134,7 +135,8 @@ public boolean hasTag() {
    * Required. The updated tag.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.Tag tag = 1;</code>
+   * <code>.google.cloud.datacatalog.v1beta1.Tag tag = 1 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   public com.google.cloud.datacatalog.Tag getTag() {
     return tag_ == null ? com.google.cloud.datacatalog.Tag.getDefaultInstance() : tag_;
@@ -146,7 +148,8 @@ public com.google.cloud.datacatalog.Tag getTag() {
    * Required. The updated tag.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.Tag tag = 1;</code>
+   * <code>.google.cloud.datacatalog.v1beta1.Tag tag = 1 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   public com.google.cloud.datacatalog.TagOrBuilder getTagOrBuilder() {
     return getTag();
@@ -158,7 +161,7 @@ public com.google.cloud.datacatalog.TagOrBuilder getTagOrBuilder() {
    *
    *
    * <pre>
-   * Optional. The fields to update on the Tag.  If absent or empty, all
+   * Optional. The fields to update on the Tag. If absent or empty, all
    * modifiable fields are updated. Currently the only modifiable field is the
    * field `fields`.
    * </pre>
@@ -172,7 +175,7 @@ public boolean hasUpdateMask() {
    *
    *
    * <pre>
-   * Optional. The fields to update on the Tag.  If absent or empty, all
+   * Optional. The fields to update on the Tag. If absent or empty, all
    * modifiable fields are updated. Currently the only modifiable field is the
    * field `fields`.
    * </pre>
@@ -186,7 +189,7 @@ public com.google.protobuf.FieldMask getUpdateMask() {
    *
    *
    * <pre>
-   * Optional. The fields to update on the Tag.  If absent or empty, all
+   * Optional. The fields to update on the Tag. If absent or empty, all
    * modifiable fields are updated. Currently the only modifiable field is the
    * field `fields`.
    * </pre>
@@ -567,7 +570,9 @@ public Builder mergeFrom(
      * Required. The updated tag.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.Tag tag = 1;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.Tag tag = 1 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public boolean hasTag() {
       return tagBuilder_ != null || tag_ != null;
@@ -579,7 +584,9 @@ public boolean hasTag() {
      * Required. The updated tag.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.Tag tag = 1;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.Tag tag = 1 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public com.google.cloud.datacatalog.Tag getTag() {
       if (tagBuilder_ == null) {
@@ -595,7 +602,9 @@ public com.google.cloud.datacatalog.Tag getTag() {
      * Required. The updated tag.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.Tag tag = 1;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.Tag tag = 1 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder setTag(com.google.cloud.datacatalog.Tag value) {
       if (tagBuilder_ == null) {
@@ -617,7 +626,9 @@ public Builder setTag(com.google.cloud.datacatalog.Tag value) {
      * Required. The updated tag.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.Tag tag = 1;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.Tag tag = 1 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder setTag(com.google.cloud.datacatalog.Tag.Builder builderForValue) {
       if (tagBuilder_ == null) {
@@ -636,7 +647,9 @@ public Builder setTag(com.google.cloud.datacatalog.Tag.Builder builderForValue)
      * Required. The updated tag.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.Tag tag = 1;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.Tag tag = 1 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder mergeTag(com.google.cloud.datacatalog.Tag value) {
       if (tagBuilder_ == null) {
@@ -659,7 +672,9 @@ public Builder mergeTag(com.google.cloud.datacatalog.Tag value) {
      * Required. The updated tag.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.Tag tag = 1;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.Tag tag = 1 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder clearTag() {
       if (tagBuilder_ == null) {
@@ -679,7 +694,9 @@ public Builder clearTag() {
      * Required. The updated tag.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.Tag tag = 1;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.Tag tag = 1 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public com.google.cloud.datacatalog.Tag.Builder getTagBuilder() {
 
@@ -693,7 +710,9 @@ public com.google.cloud.datacatalog.Tag.Builder getTagBuilder() {
      * Required. The updated tag.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.Tag tag = 1;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.Tag tag = 1 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public com.google.cloud.datacatalog.TagOrBuilder getTagOrBuilder() {
       if (tagBuilder_ != null) {
@@ -709,7 +728,9 @@ public com.google.cloud.datacatalog.TagOrBuilder getTagOrBuilder() {
      * Required. The updated tag.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.Tag tag = 1;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.Tag tag = 1 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     private com.google.protobuf.SingleFieldBuilderV3<
             com.google.cloud.datacatalog.Tag,
@@ -738,7 +759,7 @@ public com.google.cloud.datacatalog.TagOrBuilder getTagOrBuilder() {
      *
      *
      * <pre>
-     * Optional. The fields to update on the Tag.  If absent or empty, all
+     * Optional. The fields to update on the Tag. If absent or empty, all
      * modifiable fields are updated. Currently the only modifiable field is the
      * field `fields`.
      * </pre>
@@ -752,7 +773,7 @@ public boolean hasUpdateMask() {
      *
      *
      * <pre>
-     * Optional. The fields to update on the Tag.  If absent or empty, all
+     * Optional. The fields to update on the Tag. If absent or empty, all
      * modifiable fields are updated. Currently the only modifiable field is the
      * field `fields`.
      * </pre>
@@ -772,7 +793,7 @@ public com.google.protobuf.FieldMask getUpdateMask() {
      *
      *
      * <pre>
-     * Optional. The fields to update on the Tag.  If absent or empty, all
+     * Optional. The fields to update on the Tag. If absent or empty, all
      * modifiable fields are updated. Currently the only modifiable field is the
      * field `fields`.
      * </pre>
@@ -796,7 +817,7 @@ public Builder setUpdateMask(com.google.protobuf.FieldMask value) {
      *
      *
      * <pre>
-     * Optional. The fields to update on the Tag.  If absent or empty, all
+     * Optional. The fields to update on the Tag. If absent or empty, all
      * modifiable fields are updated. Currently the only modifiable field is the
      * field `fields`.
      * </pre>
@@ -817,7 +838,7 @@ public Builder setUpdateMask(com.google.protobuf.FieldMask.Builder builderForVal
      *
      *
      * <pre>
-     * Optional. The fields to update on the Tag.  If absent or empty, all
+     * Optional. The fields to update on the Tag. If absent or empty, all
      * modifiable fields are updated. Currently the only modifiable field is the
      * field `fields`.
      * </pre>
@@ -843,7 +864,7 @@ public Builder mergeUpdateMask(com.google.protobuf.FieldMask value) {
      *
      *
      * <pre>
-     * Optional. The fields to update on the Tag.  If absent or empty, all
+     * Optional. The fields to update on the Tag. If absent or empty, all
      * modifiable fields are updated. Currently the only modifiable field is the
      * field `fields`.
      * </pre>
@@ -865,7 +886,7 @@ public Builder clearUpdateMask() {
      *
      *
      * <pre>
-     * Optional. The fields to update on the Tag.  If absent or empty, all
+     * Optional. The fields to update on the Tag. If absent or empty, all
      * modifiable fields are updated. Currently the only modifiable field is the
      * field `fields`.
      * </pre>
@@ -881,7 +902,7 @@ public com.google.protobuf.FieldMask.Builder getUpdateMaskBuilder() {
      *
      *
      * <pre>
-     * Optional. The fields to update on the Tag.  If absent or empty, all
+     * Optional. The fields to update on the Tag. If absent or empty, all
      * modifiable fields are updated. Currently the only modifiable field is the
      * field `fields`.
      * </pre>
@@ -901,7 +922,7 @@ public com.google.protobuf.FieldMaskOrBuilder getUpdateMaskOrBuilder() {
      *
      *
      * <pre>
-     * Optional. The fields to update on the Tag.  If absent or empty, all
+     * Optional. The fields to update on the Tag. If absent or empty, all
      * modifiable fields are updated. Currently the only modifiable field is the
      * field `fields`.
      * </pre>
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/UpdateTagRequestOrBuilder.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/UpdateTagRequestOrBuilder.java
index 6d74c1115110..57259d1d7e3b 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/UpdateTagRequestOrBuilder.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/UpdateTagRequestOrBuilder.java
@@ -15,7 +15,8 @@ public interface UpdateTagRequestOrBuilder
    * Required. The updated tag.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.Tag tag = 1;</code>
+   * <code>.google.cloud.datacatalog.v1beta1.Tag tag = 1 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   boolean hasTag();
   /**
@@ -25,7 +26,8 @@ public interface UpdateTagRequestOrBuilder
    * Required. The updated tag.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.Tag tag = 1;</code>
+   * <code>.google.cloud.datacatalog.v1beta1.Tag tag = 1 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   com.google.cloud.datacatalog.Tag getTag();
   /**
@@ -35,7 +37,8 @@ public interface UpdateTagRequestOrBuilder
    * Required. The updated tag.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.Tag tag = 1;</code>
+   * <code>.google.cloud.datacatalog.v1beta1.Tag tag = 1 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   com.google.cloud.datacatalog.TagOrBuilder getTagOrBuilder();
 
@@ -43,7 +46,7 @@ public interface UpdateTagRequestOrBuilder
    *
    *
    * <pre>
-   * Optional. The fields to update on the Tag.  If absent or empty, all
+   * Optional. The fields to update on the Tag. If absent or empty, all
    * modifiable fields are updated. Currently the only modifiable field is the
    * field `fields`.
    * </pre>
@@ -55,7 +58,7 @@ public interface UpdateTagRequestOrBuilder
    *
    *
    * <pre>
-   * Optional. The fields to update on the Tag.  If absent or empty, all
+   * Optional. The fields to update on the Tag. If absent or empty, all
    * modifiable fields are updated. Currently the only modifiable field is the
    * field `fields`.
    * </pre>
@@ -67,7 +70,7 @@ public interface UpdateTagRequestOrBuilder
    *
    *
    * <pre>
-   * Optional. The fields to update on the Tag.  If absent or empty, all
+   * Optional. The fields to update on the Tag. If absent or empty, all
    * modifiable fields are updated. Currently the only modifiable field is the
    * field `fields`.
    * </pre>
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/UpdateTagTemplateFieldRequest.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/UpdateTagTemplateFieldRequest.java
index 50e12f7004ea..58f51d53153f 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/UpdateTagTemplateFieldRequest.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/UpdateTagTemplateFieldRequest.java
@@ -129,11 +129,13 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    *
    *
    * <pre>
-   * Required. The name of the tag template field. For example,
-   * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}".
+   * Required. The name of the tag template field. Example:
+   * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}
    * </pre>
    *
-   * <code>string name = 1;</code>
+   * <code>
+   * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   public java.lang.String getName() {
     java.lang.Object ref = name_;
@@ -150,11 +152,13 @@ public java.lang.String getName() {
    *
    *
    * <pre>
-   * Required. The name of the tag template field. For example,
-   * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}".
+   * Required. The name of the tag template field. Example:
+   * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}
    * </pre>
    *
-   * <code>string name = 1;</code>
+   * <code>
+   * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   public com.google.protobuf.ByteString getNameBytes() {
     java.lang.Object ref = name_;
@@ -177,7 +181,9 @@ public com.google.protobuf.ByteString getNameBytes() {
    * Required. The template to update.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 2;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 2 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   public boolean hasTagTemplateField() {
     return tagTemplateField_ != null;
@@ -189,7 +195,9 @@ public boolean hasTagTemplateField() {
    * Required. The template to update.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 2;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 2 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   public com.google.cloud.datacatalog.TagTemplateField getTagTemplateField() {
     return tagTemplateField_ == null
@@ -203,7 +211,9 @@ public com.google.cloud.datacatalog.TagTemplateField getTagTemplateField() {
    * Required. The template to update.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 2;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 2 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   public com.google.cloud.datacatalog.TagTemplateFieldOrBuilder getTagTemplateFieldOrBuilder() {
     return getTagTemplateField();
@@ -215,11 +225,12 @@ public com.google.cloud.datacatalog.TagTemplateFieldOrBuilder getTagTemplateFiel
    *
    *
    * <pre>
-   * Optional. The field mask specifies the parts of the template to overwrite.
+   * Optional. The field mask specifies the parts of the template to be updated.
    * Allowed fields:
-   *   * display_name
-   *   * type.enum_type
-   * If update_mask is omitted, all of the allowed fields above will be updated.
+   *   * `display_name`
+   *   * `type.enum_type`
+   * If `update_mask` is not set or empty, all of the allowed fields above will
+   * be updated.
    * When updating an enum type, the provided values will be merged with the
    * existing values. Therefore, enum values can only be added, existing enum
    * values cannot be deleted nor renamed.
@@ -234,11 +245,12 @@ public boolean hasUpdateMask() {
    *
    *
    * <pre>
-   * Optional. The field mask specifies the parts of the template to overwrite.
+   * Optional. The field mask specifies the parts of the template to be updated.
    * Allowed fields:
-   *   * display_name
-   *   * type.enum_type
-   * If update_mask is omitted, all of the allowed fields above will be updated.
+   *   * `display_name`
+   *   * `type.enum_type`
+   * If `update_mask` is not set or empty, all of the allowed fields above will
+   * be updated.
    * When updating an enum type, the provided values will be merged with the
    * existing values. Therefore, enum values can only be added, existing enum
    * values cannot be deleted nor renamed.
@@ -253,11 +265,12 @@ public com.google.protobuf.FieldMask getUpdateMask() {
    *
    *
    * <pre>
-   * Optional. The field mask specifies the parts of the template to overwrite.
+   * Optional. The field mask specifies the parts of the template to be updated.
    * Allowed fields:
-   *   * display_name
-   *   * type.enum_type
-   * If update_mask is omitted, all of the allowed fields above will be updated.
+   *   * `display_name`
+   *   * `type.enum_type`
+   * If `update_mask` is not set or empty, all of the allowed fields above will
+   * be updated.
    * When updating an enum type, the provided values will be merged with the
    * existing values. Therefore, enum values can only be added, existing enum
    * values cannot be deleted nor renamed.
@@ -650,11 +663,13 @@ public Builder mergeFrom(
      *
      *
      * <pre>
-     * Required. The name of the tag template field. For example,
-     * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}".
+     * Required. The name of the tag template field. Example:
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}
      * </pre>
      *
-     * <code>string name = 1;</code>
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public java.lang.String getName() {
       java.lang.Object ref = name_;
@@ -671,11 +686,13 @@ public java.lang.String getName() {
      *
      *
      * <pre>
-     * Required. The name of the tag template field. For example,
-     * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}".
+     * Required. The name of the tag template field. Example:
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}
      * </pre>
      *
-     * <code>string name = 1;</code>
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public com.google.protobuf.ByteString getNameBytes() {
       java.lang.Object ref = name_;
@@ -692,11 +709,13 @@ public com.google.protobuf.ByteString getNameBytes() {
      *
      *
      * <pre>
-     * Required. The name of the tag template field. For example,
-     * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}".
+     * Required. The name of the tag template field. Example:
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}
      * </pre>
      *
-     * <code>string name = 1;</code>
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public Builder setName(java.lang.String value) {
       if (value == null) {
@@ -711,11 +730,13 @@ public Builder setName(java.lang.String value) {
      *
      *
      * <pre>
-     * Required. The name of the tag template field. For example,
-     * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}".
+     * Required. The name of the tag template field. Example:
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}
      * </pre>
      *
-     * <code>string name = 1;</code>
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public Builder clearName() {
 
@@ -727,11 +748,13 @@ public Builder clearName() {
      *
      *
      * <pre>
-     * Required. The name of the tag template field. For example,
-     * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}".
+     * Required. The name of the tag template field. Example:
+     * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}
      * </pre>
      *
-     * <code>string name = 1;</code>
+     * <code>
+     * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
      */
     public Builder setNameBytes(com.google.protobuf.ByteString value) {
       if (value == null) {
@@ -757,7 +780,9 @@ public Builder setNameBytes(com.google.protobuf.ByteString value) {
      * Required. The template to update.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 2;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public boolean hasTagTemplateField() {
       return tagTemplateFieldBuilder_ != null || tagTemplateField_ != null;
@@ -769,7 +794,9 @@ public boolean hasTagTemplateField() {
      * Required. The template to update.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 2;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public com.google.cloud.datacatalog.TagTemplateField getTagTemplateField() {
       if (tagTemplateFieldBuilder_ == null) {
@@ -787,7 +814,9 @@ public com.google.cloud.datacatalog.TagTemplateField getTagTemplateField() {
      * Required. The template to update.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 2;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder setTagTemplateField(com.google.cloud.datacatalog.TagTemplateField value) {
       if (tagTemplateFieldBuilder_ == null) {
@@ -809,7 +838,9 @@ public Builder setTagTemplateField(com.google.cloud.datacatalog.TagTemplateField
      * Required. The template to update.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 2;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder setTagTemplateField(
         com.google.cloud.datacatalog.TagTemplateField.Builder builderForValue) {
@@ -829,7 +860,9 @@ public Builder setTagTemplateField(
      * Required. The template to update.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 2;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder mergeTagTemplateField(com.google.cloud.datacatalog.TagTemplateField value) {
       if (tagTemplateFieldBuilder_ == null) {
@@ -855,7 +888,9 @@ public Builder mergeTagTemplateField(com.google.cloud.datacatalog.TagTemplateFie
      * Required. The template to update.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 2;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder clearTagTemplateField() {
       if (tagTemplateFieldBuilder_ == null) {
@@ -875,7 +910,9 @@ public Builder clearTagTemplateField() {
      * Required. The template to update.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 2;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public com.google.cloud.datacatalog.TagTemplateField.Builder getTagTemplateFieldBuilder() {
 
@@ -889,7 +926,9 @@ public com.google.cloud.datacatalog.TagTemplateField.Builder getTagTemplateField
      * Required. The template to update.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 2;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public com.google.cloud.datacatalog.TagTemplateFieldOrBuilder getTagTemplateFieldOrBuilder() {
       if (tagTemplateFieldBuilder_ != null) {
@@ -907,7 +946,9 @@ public com.google.cloud.datacatalog.TagTemplateFieldOrBuilder getTagTemplateFiel
      * Required. The template to update.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 2;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 2 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     private com.google.protobuf.SingleFieldBuilderV3<
             com.google.cloud.datacatalog.TagTemplateField,
@@ -936,11 +977,12 @@ public com.google.cloud.datacatalog.TagTemplateFieldOrBuilder getTagTemplateFiel
      *
      *
      * <pre>
-     * Optional. The field mask specifies the parts of the template to overwrite.
+     * Optional. The field mask specifies the parts of the template to be updated.
      * Allowed fields:
-     *   * display_name
-     *   * type.enum_type
-     * If update_mask is omitted, all of the allowed fields above will be updated.
+     *   * `display_name`
+     *   * `type.enum_type`
+     * If `update_mask` is not set or empty, all of the allowed fields above will
+     * be updated.
      * When updating an enum type, the provided values will be merged with the
      * existing values. Therefore, enum values can only be added, existing enum
      * values cannot be deleted nor renamed.
@@ -955,11 +997,12 @@ public boolean hasUpdateMask() {
      *
      *
      * <pre>
-     * Optional. The field mask specifies the parts of the template to overwrite.
+     * Optional. The field mask specifies the parts of the template to be updated.
      * Allowed fields:
-     *   * display_name
-     *   * type.enum_type
-     * If update_mask is omitted, all of the allowed fields above will be updated.
+     *   * `display_name`
+     *   * `type.enum_type`
+     * If `update_mask` is not set or empty, all of the allowed fields above will
+     * be updated.
      * When updating an enum type, the provided values will be merged with the
      * existing values. Therefore, enum values can only be added, existing enum
      * values cannot be deleted nor renamed.
@@ -980,11 +1023,12 @@ public com.google.protobuf.FieldMask getUpdateMask() {
      *
      *
      * <pre>
-     * Optional. The field mask specifies the parts of the template to overwrite.
+     * Optional. The field mask specifies the parts of the template to be updated.
      * Allowed fields:
-     *   * display_name
-     *   * type.enum_type
-     * If update_mask is omitted, all of the allowed fields above will be updated.
+     *   * `display_name`
+     *   * `type.enum_type`
+     * If `update_mask` is not set or empty, all of the allowed fields above will
+     * be updated.
      * When updating an enum type, the provided values will be merged with the
      * existing values. Therefore, enum values can only be added, existing enum
      * values cannot be deleted nor renamed.
@@ -1009,11 +1053,12 @@ public Builder setUpdateMask(com.google.protobuf.FieldMask value) {
      *
      *
      * <pre>
-     * Optional. The field mask specifies the parts of the template to overwrite.
+     * Optional. The field mask specifies the parts of the template to be updated.
      * Allowed fields:
-     *   * display_name
-     *   * type.enum_type
-     * If update_mask is omitted, all of the allowed fields above will be updated.
+     *   * `display_name`
+     *   * `type.enum_type`
+     * If `update_mask` is not set or empty, all of the allowed fields above will
+     * be updated.
      * When updating an enum type, the provided values will be merged with the
      * existing values. Therefore, enum values can only be added, existing enum
      * values cannot be deleted nor renamed.
@@ -1035,11 +1080,12 @@ public Builder setUpdateMask(com.google.protobuf.FieldMask.Builder builderForVal
      *
      *
      * <pre>
-     * Optional. The field mask specifies the parts of the template to overwrite.
+     * Optional. The field mask specifies the parts of the template to be updated.
      * Allowed fields:
-     *   * display_name
-     *   * type.enum_type
-     * If update_mask is omitted, all of the allowed fields above will be updated.
+     *   * `display_name`
+     *   * `type.enum_type`
+     * If `update_mask` is not set or empty, all of the allowed fields above will
+     * be updated.
      * When updating an enum type, the provided values will be merged with the
      * existing values. Therefore, enum values can only be added, existing enum
      * values cannot be deleted nor renamed.
@@ -1066,11 +1112,12 @@ public Builder mergeUpdateMask(com.google.protobuf.FieldMask value) {
      *
      *
      * <pre>
-     * Optional. The field mask specifies the parts of the template to overwrite.
+     * Optional. The field mask specifies the parts of the template to be updated.
      * Allowed fields:
-     *   * display_name
-     *   * type.enum_type
-     * If update_mask is omitted, all of the allowed fields above will be updated.
+     *   * `display_name`
+     *   * `type.enum_type`
+     * If `update_mask` is not set or empty, all of the allowed fields above will
+     * be updated.
      * When updating an enum type, the provided values will be merged with the
      * existing values. Therefore, enum values can only be added, existing enum
      * values cannot be deleted nor renamed.
@@ -1093,11 +1140,12 @@ public Builder clearUpdateMask() {
      *
      *
      * <pre>
-     * Optional. The field mask specifies the parts of the template to overwrite.
+     * Optional. The field mask specifies the parts of the template to be updated.
      * Allowed fields:
-     *   * display_name
-     *   * type.enum_type
-     * If update_mask is omitted, all of the allowed fields above will be updated.
+     *   * `display_name`
+     *   * `type.enum_type`
+     * If `update_mask` is not set or empty, all of the allowed fields above will
+     * be updated.
      * When updating an enum type, the provided values will be merged with the
      * existing values. Therefore, enum values can only be added, existing enum
      * values cannot be deleted nor renamed.
@@ -1114,11 +1162,12 @@ public com.google.protobuf.FieldMask.Builder getUpdateMaskBuilder() {
      *
      *
      * <pre>
-     * Optional. The field mask specifies the parts of the template to overwrite.
+     * Optional. The field mask specifies the parts of the template to be updated.
      * Allowed fields:
-     *   * display_name
-     *   * type.enum_type
-     * If update_mask is omitted, all of the allowed fields above will be updated.
+     *   * `display_name`
+     *   * `type.enum_type`
+     * If `update_mask` is not set or empty, all of the allowed fields above will
+     * be updated.
      * When updating an enum type, the provided values will be merged with the
      * existing values. Therefore, enum values can only be added, existing enum
      * values cannot be deleted nor renamed.
@@ -1139,11 +1188,12 @@ public com.google.protobuf.FieldMaskOrBuilder getUpdateMaskOrBuilder() {
      *
      *
      * <pre>
-     * Optional. The field mask specifies the parts of the template to overwrite.
+     * Optional. The field mask specifies the parts of the template to be updated.
      * Allowed fields:
-     *   * display_name
-     *   * type.enum_type
-     * If update_mask is omitted, all of the allowed fields above will be updated.
+     *   * `display_name`
+     *   * `type.enum_type`
+     * If `update_mask` is not set or empty, all of the allowed fields above will
+     * be updated.
      * When updating an enum type, the provided values will be merged with the
      * existing values. Therefore, enum values can only be added, existing enum
      * values cannot be deleted nor renamed.
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/UpdateTagTemplateFieldRequestOrBuilder.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/UpdateTagTemplateFieldRequestOrBuilder.java
index 882ba79a619d..5d3e3de4fb5b 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/UpdateTagTemplateFieldRequestOrBuilder.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/UpdateTagTemplateFieldRequestOrBuilder.java
@@ -12,22 +12,26 @@ public interface UpdateTagTemplateFieldRequestOrBuilder
    *
    *
    * <pre>
-   * Required. The name of the tag template field. For example,
-   * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}".
+   * Required. The name of the tag template field. Example:
+   * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}
    * </pre>
    *
-   * <code>string name = 1;</code>
+   * <code>
+   * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   java.lang.String getName();
   /**
    *
    *
    * <pre>
-   * Required. The name of the tag template field. For example,
-   * "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}".
+   * Required. The name of the tag template field. Example:
+   * * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}
    * </pre>
    *
-   * <code>string name = 1;</code>
+   * <code>
+   * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
    */
   com.google.protobuf.ByteString getNameBytes();
 
@@ -38,7 +42,9 @@ public interface UpdateTagTemplateFieldRequestOrBuilder
    * Required. The template to update.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 2;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 2 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   boolean hasTagTemplateField();
   /**
@@ -48,7 +54,9 @@ public interface UpdateTagTemplateFieldRequestOrBuilder
    * Required. The template to update.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 2;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 2 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   com.google.cloud.datacatalog.TagTemplateField getTagTemplateField();
   /**
@@ -58,7 +66,9 @@ public interface UpdateTagTemplateFieldRequestOrBuilder
    * Required. The template to update.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 2;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.TagTemplateField tag_template_field = 2 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   com.google.cloud.datacatalog.TagTemplateFieldOrBuilder getTagTemplateFieldOrBuilder();
 
@@ -66,11 +76,12 @@ public interface UpdateTagTemplateFieldRequestOrBuilder
    *
    *
    * <pre>
-   * Optional. The field mask specifies the parts of the template to overwrite.
+   * Optional. The field mask specifies the parts of the template to be updated.
    * Allowed fields:
-   *   * display_name
-   *   * type.enum_type
-   * If update_mask is omitted, all of the allowed fields above will be updated.
+   *   * `display_name`
+   *   * `type.enum_type`
+   * If `update_mask` is not set or empty, all of the allowed fields above will
+   * be updated.
    * When updating an enum type, the provided values will be merged with the
    * existing values. Therefore, enum values can only be added, existing enum
    * values cannot be deleted nor renamed.
@@ -83,11 +94,12 @@ public interface UpdateTagTemplateFieldRequestOrBuilder
    *
    *
    * <pre>
-   * Optional. The field mask specifies the parts of the template to overwrite.
+   * Optional. The field mask specifies the parts of the template to be updated.
    * Allowed fields:
-   *   * display_name
-   *   * type.enum_type
-   * If update_mask is omitted, all of the allowed fields above will be updated.
+   *   * `display_name`
+   *   * `type.enum_type`
+   * If `update_mask` is not set or empty, all of the allowed fields above will
+   * be updated.
    * When updating an enum type, the provided values will be merged with the
    * existing values. Therefore, enum values can only be added, existing enum
    * values cannot be deleted nor renamed.
@@ -100,11 +112,12 @@ public interface UpdateTagTemplateFieldRequestOrBuilder
    *
    *
    * <pre>
-   * Optional. The field mask specifies the parts of the template to overwrite.
+   * Optional. The field mask specifies the parts of the template to be updated.
    * Allowed fields:
-   *   * display_name
-   *   * type.enum_type
-   * If update_mask is omitted, all of the allowed fields above will be updated.
+   *   * `display_name`
+   *   * `type.enum_type`
+   * If `update_mask` is not set or empty, all of the allowed fields above will
+   * be updated.
    * When updating an enum type, the provided values will be merged with the
    * existing values. Therefore, enum values can only be added, existing enum
    * values cannot be deleted nor renamed.
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/UpdateTagTemplateRequest.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/UpdateTagTemplateRequest.java
index 31940c206498..dfefdbb92d31 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/UpdateTagTemplateRequest.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/UpdateTagTemplateRequest.java
@@ -123,7 +123,9 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    * Required. The template to update.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 1;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 1 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   public boolean hasTagTemplate() {
     return tagTemplate_ != null;
@@ -135,7 +137,9 @@ public boolean hasTagTemplate() {
    * Required. The template to update.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 1;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 1 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   public com.google.cloud.datacatalog.TagTemplate getTagTemplate() {
     return tagTemplate_ == null
@@ -149,7 +153,9 @@ public com.google.cloud.datacatalog.TagTemplate getTagTemplate() {
    * Required. The template to update.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 1;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 1 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   public com.google.cloud.datacatalog.TagTemplateOrBuilder getTagTemplateOrBuilder() {
     return getTagTemplate();
@@ -163,8 +169,8 @@ public com.google.cloud.datacatalog.TagTemplateOrBuilder getTagTemplateOrBuilder
    * <pre>
    * Optional. The field mask specifies the parts of the template to overwrite.
    * Allowed fields:
-   *   * display_name
-   * If update_mask is omitted, all of the allowed fields above will be updated.
+   *   * `display_name`
+   * If absent or empty, all of the allowed fields above will be updated.
    * </pre>
    *
    * <code>.google.protobuf.FieldMask update_mask = 2;</code>
@@ -178,8 +184,8 @@ public boolean hasUpdateMask() {
    * <pre>
    * Optional. The field mask specifies the parts of the template to overwrite.
    * Allowed fields:
-   *   * display_name
-   * If update_mask is omitted, all of the allowed fields above will be updated.
+   *   * `display_name`
+   * If absent or empty, all of the allowed fields above will be updated.
    * </pre>
    *
    * <code>.google.protobuf.FieldMask update_mask = 2;</code>
@@ -193,8 +199,8 @@ public com.google.protobuf.FieldMask getUpdateMask() {
    * <pre>
    * Optional. The field mask specifies the parts of the template to overwrite.
    * Allowed fields:
-   *   * display_name
-   * If update_mask is omitted, all of the allowed fields above will be updated.
+   *   * `display_name`
+   * If absent or empty, all of the allowed fields above will be updated.
    * </pre>
    *
    * <code>.google.protobuf.FieldMask update_mask = 2;</code>
@@ -576,7 +582,9 @@ public Builder mergeFrom(
      * Required. The template to update.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 1;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 1 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public boolean hasTagTemplate() {
       return tagTemplateBuilder_ != null || tagTemplate_ != null;
@@ -588,7 +596,9 @@ public boolean hasTagTemplate() {
      * Required. The template to update.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 1;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 1 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public com.google.cloud.datacatalog.TagTemplate getTagTemplate() {
       if (tagTemplateBuilder_ == null) {
@@ -606,7 +616,9 @@ public com.google.cloud.datacatalog.TagTemplate getTagTemplate() {
      * Required. The template to update.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 1;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 1 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder setTagTemplate(com.google.cloud.datacatalog.TagTemplate value) {
       if (tagTemplateBuilder_ == null) {
@@ -628,7 +640,9 @@ public Builder setTagTemplate(com.google.cloud.datacatalog.TagTemplate value) {
      * Required. The template to update.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 1;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 1 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder setTagTemplate(
         com.google.cloud.datacatalog.TagTemplate.Builder builderForValue) {
@@ -648,7 +662,9 @@ public Builder setTagTemplate(
      * Required. The template to update.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 1;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 1 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder mergeTagTemplate(com.google.cloud.datacatalog.TagTemplate value) {
       if (tagTemplateBuilder_ == null) {
@@ -674,7 +690,9 @@ public Builder mergeTagTemplate(com.google.cloud.datacatalog.TagTemplate value)
      * Required. The template to update.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 1;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 1 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public Builder clearTagTemplate() {
       if (tagTemplateBuilder_ == null) {
@@ -694,7 +712,9 @@ public Builder clearTagTemplate() {
      * Required. The template to update.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 1;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 1 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public com.google.cloud.datacatalog.TagTemplate.Builder getTagTemplateBuilder() {
 
@@ -708,7 +728,9 @@ public com.google.cloud.datacatalog.TagTemplate.Builder getTagTemplateBuilder()
      * Required. The template to update.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 1;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 1 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     public com.google.cloud.datacatalog.TagTemplateOrBuilder getTagTemplateOrBuilder() {
       if (tagTemplateBuilder_ != null) {
@@ -726,7 +748,9 @@ public com.google.cloud.datacatalog.TagTemplateOrBuilder getTagTemplateOrBuilder
      * Required. The template to update.
      * </pre>
      *
-     * <code>.google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 1;</code>
+     * <code>
+     * .google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 1 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
      */
     private com.google.protobuf.SingleFieldBuilderV3<
             com.google.cloud.datacatalog.TagTemplate,
@@ -757,8 +781,8 @@ public com.google.cloud.datacatalog.TagTemplateOrBuilder getTagTemplateOrBuilder
      * <pre>
      * Optional. The field mask specifies the parts of the template to overwrite.
      * Allowed fields:
-     *   * display_name
-     * If update_mask is omitted, all of the allowed fields above will be updated.
+     *   * `display_name`
+     * If absent or empty, all of the allowed fields above will be updated.
      * </pre>
      *
      * <code>.google.protobuf.FieldMask update_mask = 2;</code>
@@ -772,8 +796,8 @@ public boolean hasUpdateMask() {
      * <pre>
      * Optional. The field mask specifies the parts of the template to overwrite.
      * Allowed fields:
-     *   * display_name
-     * If update_mask is omitted, all of the allowed fields above will be updated.
+     *   * `display_name`
+     * If absent or empty, all of the allowed fields above will be updated.
      * </pre>
      *
      * <code>.google.protobuf.FieldMask update_mask = 2;</code>
@@ -793,8 +817,8 @@ public com.google.protobuf.FieldMask getUpdateMask() {
      * <pre>
      * Optional. The field mask specifies the parts of the template to overwrite.
      * Allowed fields:
-     *   * display_name
-     * If update_mask is omitted, all of the allowed fields above will be updated.
+     *   * `display_name`
+     * If absent or empty, all of the allowed fields above will be updated.
      * </pre>
      *
      * <code>.google.protobuf.FieldMask update_mask = 2;</code>
@@ -818,8 +842,8 @@ public Builder setUpdateMask(com.google.protobuf.FieldMask value) {
      * <pre>
      * Optional. The field mask specifies the parts of the template to overwrite.
      * Allowed fields:
-     *   * display_name
-     * If update_mask is omitted, all of the allowed fields above will be updated.
+     *   * `display_name`
+     * If absent or empty, all of the allowed fields above will be updated.
      * </pre>
      *
      * <code>.google.protobuf.FieldMask update_mask = 2;</code>
@@ -840,8 +864,8 @@ public Builder setUpdateMask(com.google.protobuf.FieldMask.Builder builderForVal
      * <pre>
      * Optional. The field mask specifies the parts of the template to overwrite.
      * Allowed fields:
-     *   * display_name
-     * If update_mask is omitted, all of the allowed fields above will be updated.
+     *   * `display_name`
+     * If absent or empty, all of the allowed fields above will be updated.
      * </pre>
      *
      * <code>.google.protobuf.FieldMask update_mask = 2;</code>
@@ -867,8 +891,8 @@ public Builder mergeUpdateMask(com.google.protobuf.FieldMask value) {
      * <pre>
      * Optional. The field mask specifies the parts of the template to overwrite.
      * Allowed fields:
-     *   * display_name
-     * If update_mask is omitted, all of the allowed fields above will be updated.
+     *   * `display_name`
+     * If absent or empty, all of the allowed fields above will be updated.
      * </pre>
      *
      * <code>.google.protobuf.FieldMask update_mask = 2;</code>
@@ -890,8 +914,8 @@ public Builder clearUpdateMask() {
      * <pre>
      * Optional. The field mask specifies the parts of the template to overwrite.
      * Allowed fields:
-     *   * display_name
-     * If update_mask is omitted, all of the allowed fields above will be updated.
+     *   * `display_name`
+     * If absent or empty, all of the allowed fields above will be updated.
      * </pre>
      *
      * <code>.google.protobuf.FieldMask update_mask = 2;</code>
@@ -907,8 +931,8 @@ public com.google.protobuf.FieldMask.Builder getUpdateMaskBuilder() {
      * <pre>
      * Optional. The field mask specifies the parts of the template to overwrite.
      * Allowed fields:
-     *   * display_name
-     * If update_mask is omitted, all of the allowed fields above will be updated.
+     *   * `display_name`
+     * If absent or empty, all of the allowed fields above will be updated.
      * </pre>
      *
      * <code>.google.protobuf.FieldMask update_mask = 2;</code>
@@ -928,8 +952,8 @@ public com.google.protobuf.FieldMaskOrBuilder getUpdateMaskOrBuilder() {
      * <pre>
      * Optional. The field mask specifies the parts of the template to overwrite.
      * Allowed fields:
-     *   * display_name
-     * If update_mask is omitted, all of the allowed fields above will be updated.
+     *   * `display_name`
+     * If absent or empty, all of the allowed fields above will be updated.
      * </pre>
      *
      * <code>.google.protobuf.FieldMask update_mask = 2;</code>
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/UpdateTagTemplateRequestOrBuilder.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/UpdateTagTemplateRequestOrBuilder.java
index 897b71e6b39f..bd50412cddf0 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/UpdateTagTemplateRequestOrBuilder.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/UpdateTagTemplateRequestOrBuilder.java
@@ -15,7 +15,9 @@ public interface UpdateTagTemplateRequestOrBuilder
    * Required. The template to update.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 1;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 1 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   boolean hasTagTemplate();
   /**
@@ -25,7 +27,9 @@ public interface UpdateTagTemplateRequestOrBuilder
    * Required. The template to update.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 1;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 1 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   com.google.cloud.datacatalog.TagTemplate getTagTemplate();
   /**
@@ -35,7 +39,9 @@ public interface UpdateTagTemplateRequestOrBuilder
    * Required. The template to update.
    * </pre>
    *
-   * <code>.google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 1;</code>
+   * <code>
+   * .google.cloud.datacatalog.v1beta1.TagTemplate tag_template = 1 [(.google.api.field_behavior) = REQUIRED];
+   * </code>
    */
   com.google.cloud.datacatalog.TagTemplateOrBuilder getTagTemplateOrBuilder();
 
@@ -45,8 +51,8 @@ public interface UpdateTagTemplateRequestOrBuilder
    * <pre>
    * Optional. The field mask specifies the parts of the template to overwrite.
    * Allowed fields:
-   *   * display_name
-   * If update_mask is omitted, all of the allowed fields above will be updated.
+   *   * `display_name`
+   * If absent or empty, all of the allowed fields above will be updated.
    * </pre>
    *
    * <code>.google.protobuf.FieldMask update_mask = 2;</code>
@@ -58,8 +64,8 @@ public interface UpdateTagTemplateRequestOrBuilder
    * <pre>
    * Optional. The field mask specifies the parts of the template to overwrite.
    * Allowed fields:
-   *   * display_name
-   * If update_mask is omitted, all of the allowed fields above will be updated.
+   *   * `display_name`
+   * If absent or empty, all of the allowed fields above will be updated.
    * </pre>
    *
    * <code>.google.protobuf.FieldMask update_mask = 2;</code>
@@ -71,8 +77,8 @@ public interface UpdateTagTemplateRequestOrBuilder
    * <pre>
    * Optional. The field mask specifies the parts of the template to overwrite.
    * Allowed fields:
-   *   * display_name
-   * If update_mask is omitted, all of the allowed fields above will be updated.
+   *   * `display_name`
+   * If absent or empty, all of the allowed fields above will be updated.
    * </pre>
    *
    * <code>.google.protobuf.FieldMask update_mask = 2;</code>
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/ViewSpec.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/ViewSpec.java
index b838cdf3c76b..ee186594842c 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/ViewSpec.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/ViewSpec.java
@@ -97,10 +97,10 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    *
    *
    * <pre>
-   * Output only. The query that defines the table view.
+   * Required. Output only. The query that defines the table view.
    * </pre>
    *
-   * <code>string view_query = 1;</code>
+   * <code>string view_query = 1 [(.google.api.field_behavior) = REQUIRED];</code>
    */
   public java.lang.String getViewQuery() {
     java.lang.Object ref = viewQuery_;
@@ -117,10 +117,10 @@ public java.lang.String getViewQuery() {
    *
    *
    * <pre>
-   * Output only. The query that defines the table view.
+   * Required. Output only. The query that defines the table view.
    * </pre>
    *
-   * <code>string view_query = 1;</code>
+   * <code>string view_query = 1 [(.google.api.field_behavior) = REQUIRED];</code>
    */
   public com.google.protobuf.ByteString getViewQueryBytes() {
     java.lang.Object ref = viewQuery_;
@@ -453,10 +453,10 @@ public Builder mergeFrom(
      *
      *
      * <pre>
-     * Output only. The query that defines the table view.
+     * Required. Output only. The query that defines the table view.
      * </pre>
      *
-     * <code>string view_query = 1;</code>
+     * <code>string view_query = 1 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public java.lang.String getViewQuery() {
       java.lang.Object ref = viewQuery_;
@@ -473,10 +473,10 @@ public java.lang.String getViewQuery() {
      *
      *
      * <pre>
-     * Output only. The query that defines the table view.
+     * Required. Output only. The query that defines the table view.
      * </pre>
      *
-     * <code>string view_query = 1;</code>
+     * <code>string view_query = 1 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public com.google.protobuf.ByteString getViewQueryBytes() {
       java.lang.Object ref = viewQuery_;
@@ -493,10 +493,10 @@ public com.google.protobuf.ByteString getViewQueryBytes() {
      *
      *
      * <pre>
-     * Output only. The query that defines the table view.
+     * Required. Output only. The query that defines the table view.
      * </pre>
      *
-     * <code>string view_query = 1;</code>
+     * <code>string view_query = 1 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public Builder setViewQuery(java.lang.String value) {
       if (value == null) {
@@ -511,10 +511,10 @@ public Builder setViewQuery(java.lang.String value) {
      *
      *
      * <pre>
-     * Output only. The query that defines the table view.
+     * Required. Output only. The query that defines the table view.
      * </pre>
      *
-     * <code>string view_query = 1;</code>
+     * <code>string view_query = 1 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public Builder clearViewQuery() {
 
@@ -526,10 +526,10 @@ public Builder clearViewQuery() {
      *
      *
      * <pre>
-     * Output only. The query that defines the table view.
+     * Required. Output only. The query that defines the table view.
      * </pre>
      *
-     * <code>string view_query = 1;</code>
+     * <code>string view_query = 1 [(.google.api.field_behavior) = REQUIRED];</code>
      */
     public Builder setViewQueryBytes(com.google.protobuf.ByteString value) {
       if (value == null) {
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/ViewSpecOrBuilder.java b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/ViewSpecOrBuilder.java
index c4ec4db0b05c..1783a5b4733c 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/ViewSpecOrBuilder.java
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/java/com/google/cloud/datacatalog/ViewSpecOrBuilder.java
@@ -12,20 +12,20 @@ public interface ViewSpecOrBuilder
    *
    *
    * <pre>
-   * Output only. The query that defines the table view.
+   * Required. Output only. The query that defines the table view.
    * </pre>
    *
-   * <code>string view_query = 1;</code>
+   * <code>string view_query = 1 [(.google.api.field_behavior) = REQUIRED];</code>
    */
   java.lang.String getViewQuery();
   /**
    *
    *
    * <pre>
-   * Output only. The query that defines the table view.
+   * Required. Output only. The query that defines the table view.
    * </pre>
    *
-   * <code>string view_query = 1;</code>
+   * <code>string view_query = 1 [(.google.api.field_behavior) = REQUIRED];</code>
    */
   com.google.protobuf.ByteString getViewQueryBytes();
 }
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/proto/google/cloud/datacatalog/v1beta1/datacatalog.proto b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/proto/google/cloud/datacatalog/v1beta1/datacatalog.proto
index e89e7ad62671..7abd9eae48d9 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/proto/google/cloud/datacatalog/v1beta1/datacatalog.proto
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/proto/google/cloud/datacatalog/v1beta1/datacatalog.proto
@@ -18,6 +18,10 @@ syntax = "proto3";
 package google.cloud.datacatalog.v1beta1;
 
 import "google/api/annotations.proto";
+import "google/api/client.proto";
+import "google/api/field_behavior.proto";
+import "google/api/resource.proto";
+import "google/cloud/datacatalog/v1beta1/gcs_fileset_spec.proto";
 import "google/cloud/datacatalog/v1beta1/schema.proto";
 import "google/cloud/datacatalog/v1beta1/search.proto";
 import "google/cloud/datacatalog/v1beta1/table_spec.proto";
@@ -27,7 +31,6 @@ import "google/iam/v1/iam_policy.proto";
 import "google/iam/v1/policy.proto";
 import "google/protobuf/empty.proto";
 import "google/protobuf/field_mask.proto";
-import "google/api/client.proto";
 
 option cc_enable_arenas = true;
 option go_package = "google.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog";
@@ -46,7 +49,7 @@ service DataCatalog {
   // This is a custom method
   // (https://cloud.google.com/apis/design/custom_methods) and does not return
   // the complete resource, only the resource identifier and high level
-  // fields. Clients can subsequentally call Get methods.
+  // fields. Clients can subsequentally call `Get` methods.
   //
   // Note that searches do not have full recall. There may be results that match
   // your query but are not returned, even in subsequent pages of results. These
@@ -60,14 +63,82 @@ service DataCatalog {
       post: "/v1beta1/catalog:search"
       body: "*"
     };
+    option (google.api.method_signature) = "scope,query,order_by";
+  }
+
+  // Alpha feature.
+  // Creates an EntryGroup.
+  // The user should enable the Data Catalog API in the project identified by
+  // the `parent` parameter (see [Data Catalog Resource Project]
+  // (/data-catalog/docs/concepts/resource-project) for more information).
+  rpc CreateEntryGroup(CreateEntryGroupRequest) returns (EntryGroup) {
+    option (google.api.http) = {
+      post: "/v1beta1/{parent=projects/*/locations/*}/entryGroups"
+      body: "entry_group"
+    };
+    option (google.api.method_signature) = "parent,entry_group_id,entry_group";
+  }
+
+  // Alpha feature.
+  // Gets an EntryGroup.
+  rpc GetEntryGroup(GetEntryGroupRequest) returns (EntryGroup) {
+    option (google.api.http) = {
+      get: "/v1beta1/{name=projects/*/locations/*/entryGroups/*}"
+    };
+    option (google.api.method_signature) = "name";
+    option (google.api.method_signature) = "name,read_mask";
+  }
+
+  // Alpha feature.
+  // Deletes an EntryGroup. Only entry groups that do not contain entries can be
+  // deleted. The user should enable the Data Catalog API in the project
+  // identified by the `name` parameter (see [Data Catalog Resource Project]
+  // (/data-catalog/docs/concepts/resource-project) for more information).
+  rpc DeleteEntryGroup(DeleteEntryGroupRequest) returns (google.protobuf.Empty) {
+    option (google.api.http) = {
+      delete: "/v1beta1/{name=projects/*/locations/*/entryGroups/*}"
+    };
+    option (google.api.method_signature) = "name";
+  }
+
+  // Alpha feature.
+  // Creates an entry. Currently only entries of 'FILESET' type can be created.
+  // The user should enable the Data Catalog API in the project identified by
+  // the `parent` parameter (see [Data Catalog Resource Project]
+  // (/data-catalog/docs/concepts/resource-project) for more information).
+  rpc CreateEntry(CreateEntryRequest) returns (Entry) {
+    option (google.api.http) = {
+      post: "/v1beta1/{parent=projects/*/locations/*/entryGroups/*}/entries"
+      body: "entry"
+    };
+    option (google.api.method_signature) = "parent,entry_id,entry";
   }
 
   // Updates an existing entry.
+  // The user should enable the Data Catalog API in the project identified by
+  // the `entry.name` parameter (see [Data Catalog Resource Project]
+  // (/data-catalog/docs/concepts/resource-project) for more information).
   rpc UpdateEntry(UpdateEntryRequest) returns (Entry) {
     option (google.api.http) = {
       patch: "/v1beta1/{entry.name=projects/*/locations/*/entryGroups/*/entries/*}"
       body: "entry"
     };
+    option (google.api.method_signature) = "entry";
+    option (google.api.method_signature) = "entry,update_mask";
+  }
+
+  // Alpha feature.
+  // Deletes an existing entry. Only entries created through
+  // [CreateEntry][google.cloud.datacatalog.v1beta1.DataCatalog.CreateEntry]
+  // method can be deleted.
+  // The user should enable the Data Catalog API in the project identified by
+  // the `name` parameter (see [Data Catalog Resource Project]
+  // (/data-catalog/docs/concepts/resource-project) for more information).
+  rpc DeleteEntry(DeleteEntryRequest) returns (google.protobuf.Empty) {
+    option (google.api.http) = {
+      delete: "/v1beta1/{name=projects/*/locations/*/entryGroups/*/entries/*}"
+    };
+    option (google.api.method_signature) = "name";
   }
 
   // Gets an entry.
@@ -75,6 +146,7 @@ service DataCatalog {
     option (google.api.http) = {
       get: "/v1beta1/{name=projects/*/locations/*/entryGroups/*/entries/*}"
     };
+    option (google.api.method_signature) = "name";
   }
 
   // Get an entry by target resource name. This method allows clients to use
@@ -86,12 +158,16 @@ service DataCatalog {
     };
   }
 
-  // Creates a tag template.
+  // Creates a tag template. The user should enable the Data Catalog API in
+  // the project identified by the `parent` parameter (see [Data Catalog
+  // Resource Project](/data-catalog/docs/concepts/resource-project) for more
+  // information).
   rpc CreateTagTemplate(CreateTagTemplateRequest) returns (TagTemplate) {
     option (google.api.http) = {
       post: "/v1beta1/{parent=projects/*/locations/*}/tagTemplates"
       body: "tag_template"
     };
+    option (google.api.method_signature) = "parent,tag_template_id,tag_template";
   }
 
   // Gets a tag template.
@@ -99,63 +175,97 @@ service DataCatalog {
     option (google.api.http) = {
       get: "/v1beta1/{name=projects/*/locations/*/tagTemplates/*}"
     };
+    option (google.api.method_signature) = "name";
   }
 
   // Updates a tag template. This method cannot be used to update the fields of
   // a template. The tag template fields are represented as separate resources
   // and should be updated using their own create/update/delete methods.
+  // The user should enable the Data Catalog API in the project identified by
+  // the `tag_template.name` parameter (see [Data Catalog Resource Project]
+  // (/data-catalog/docs/concepts/resource-project) for more information).
   rpc UpdateTagTemplate(UpdateTagTemplateRequest) returns (TagTemplate) {
     option (google.api.http) = {
       patch: "/v1beta1/{tag_template.name=projects/*/locations/*/tagTemplates/*}"
       body: "tag_template"
     };
+    option (google.api.method_signature) = "tag_template";
+    option (google.api.method_signature) = "tag_template,update_mask";
   }
 
   // Deletes a tag template and all tags using the template.
+  // The user should enable the Data Catalog API in the project identified by
+  // the `name` parameter (see [Data Catalog Resource Project]
+  // (/data-catalog/docs/concepts/resource-project) for more information).
   rpc DeleteTagTemplate(DeleteTagTemplateRequest) returns (google.protobuf.Empty) {
     option (google.api.http) = {
       delete: "/v1beta1/{name=projects/*/locations/*/tagTemplates/*}"
     };
+    option (google.api.method_signature) = "name,force";
   }
 
-  // Creates a field in a tag template.
+  // Creates a field in a tag template. The user should enable the Data Catalog
+  // API in the project identified by the `parent` parameter (see
+  // [Data Catalog Resource
+  // Project](/data-catalog/docs/concepts/resource-project) for more
+  // information).
   rpc CreateTagTemplateField(CreateTagTemplateFieldRequest) returns (TagTemplateField) {
     option (google.api.http) = {
       post: "/v1beta1/{parent=projects/*/locations/*/tagTemplates/*}/fields"
       body: "tag_template_field"
     };
+    option (google.api.method_signature) = "parent,tag_template_field_id,tag_template_field";
   }
 
   // Updates a field in a tag template. This method cannot be used to update the
-  // field type.
+  // field type. The user should enable the Data Catalog API in the project
+  // identified by the `name` parameter (see [Data Catalog Resource Project]
+  // (/data-catalog/docs/concepts/resource-project) for more information).
   rpc UpdateTagTemplateField(UpdateTagTemplateFieldRequest) returns (TagTemplateField) {
     option (google.api.http) = {
       patch: "/v1beta1/{name=projects/*/locations/*/tagTemplates/*/fields/*}"
       body: "tag_template_field"
     };
+    option (google.api.method_signature) = "name,tag_template_field";
+    option (google.api.method_signature) = "name,tag_template_field,update_mask";
   }
 
-  // Renames a field in a tag template.
+  // Renames a field in a tag template. The user should enable the Data Catalog
+  // API in the project identified by the `name` parameter (see [Data Catalog
+  // Resource Project](/data-catalog/docs/concepts/resource-project) for more
+  // information).
   rpc RenameTagTemplateField(RenameTagTemplateFieldRequest) returns (TagTemplateField) {
     option (google.api.http) = {
       post: "/v1beta1/{name=projects/*/locations/*/tagTemplates/*/fields/*}:rename"
       body: "*"
     };
+    option (google.api.method_signature) = "name,new_tag_template_field_id";
   }
 
   // Deletes a field in a tag template and all uses of that field.
+  // The user should enable the Data Catalog API in the project identified by
+  // the `name` parameter (see [Data Catalog Resource Project]
+  // (/data-catalog/docs/concepts/resource-project) for more information).
   rpc DeleteTagTemplateField(DeleteTagTemplateFieldRequest) returns (google.protobuf.Empty) {
     option (google.api.http) = {
       delete: "/v1beta1/{name=projects/*/locations/*/tagTemplates/*/fields/*}"
     };
+    option (google.api.method_signature) = "name,force";
   }
 
   // Creates a tag on an [Entry][google.cloud.datacatalog.v1beta1.Entry].
+  // Note: The project identified by the `parent` parameter for the
+  // [tag](/data-catalog/docs/reference/rest/v1beta1/projects.locations.entryGroups.entries.tags/create#path-parameters)
+  // and the
+  // [tag
+  // template](/data-catalog/docs/reference/rest/v1beta1/projects.locations.tagTemplates/create#path-parameters)
+  // used to create the tag must be from the same organization.
   rpc CreateTag(CreateTagRequest) returns (Tag) {
     option (google.api.http) = {
       post: "/v1beta1/{parent=projects/*/locations/*/entryGroups/*/entries/*}/tags"
       body: "tag"
     };
+    option (google.api.method_signature) = "parent,tag";
   }
 
   // Updates an existing tag.
@@ -164,6 +274,8 @@ service DataCatalog {
       patch: "/v1beta1/{tag.name=projects/*/locations/*/entryGroups/*/entries/*/tags/*}"
       body: "tag"
     };
+    option (google.api.method_signature) = "tag";
+    option (google.api.method_signature) = "tag,update_mask";
   }
 
   // Deletes a tag.
@@ -171,6 +283,7 @@ service DataCatalog {
     option (google.api.http) = {
       delete: "/v1beta1/{name=projects/*/locations/*/entryGroups/*/entries/*/tags/*}"
     };
+    option (google.api.method_signature) = "name";
   }
 
   // Lists the tags on an [Entry][google.cloud.datacatalog.v1beta1.Entry].
@@ -178,22 +291,36 @@ service DataCatalog {
     option (google.api.http) = {
       get: "/v1beta1/{parent=projects/*/locations/*/entryGroups/*/entries/*}/tags"
     };
+    option (google.api.method_signature) = "parent";
   }
 
   // Sets the access control policy for a resource. Replaces any existing
   // policy.
   // Supported resources are:
   //   - Tag templates.
+  //   - Entries.
+  //   - Entry groups.
   // Note, this method cannot be used to manage policies for BigQuery, Cloud
   // Pub/Sub and any external Google Cloud Platform resources synced to Cloud
   // Data Catalog.
   //
   // Callers must have following Google IAM permission
-  // `datacatalog.tagTemplates.setIamPolicy` to set policies on tag templates.
+  //   - `datacatalog.tagTemplates.setIamPolicy` to set policies on tag
+  //     templates.
+  //   - `datacatalog.entries.setIamPolicy` to set policies on entries.
+  //   - `datacatalog.entryGroups.setIamPolicy` to set policies on entry groups.
   rpc SetIamPolicy(google.iam.v1.SetIamPolicyRequest) returns (google.iam.v1.Policy) {
     option (google.api.http) = {
       post: "/v1beta1/{resource=projects/*/locations/*/tagTemplates/*}:setIamPolicy"
       body: "*"
+      additional_bindings {
+        post: "/v1beta1/{resource=projects/*/locations/*/entryGroups/*}:setIamPolicy"
+        body: "*"
+      }
+      additional_bindings {
+        post: "/v1beta1/{resource=projects/*/locations/*/entryGroups/*/entries/*}:setIamPolicy"
+        body: "*"
+      }
     };
   }
 
@@ -203,16 +330,29 @@ service DataCatalog {
   //
   // Supported resources are:
   //   - Tag templates.
+  //   - Entries.
+  //   - Entry groups.
   // Note, this method cannot be used to manage policies for BigQuery, Cloud
   // Pub/Sub and any external Google Cloud Platform resources synced to Cloud
   // Data Catalog.
   //
   // Callers must have following Google IAM permission
-  // `datacatalog.tagTemplates.getIamPolicy` to get policies on tag templates.
+  //   - `datacatalog.tagTemplates.getIamPolicy` to get policies on tag
+  //     templates.
+  //   - `datacatalog.entries.getIamPolicy` to get policies on entries.
+  //   - `datacatalog.entryGroups.getIamPolicy` to get policies on entry groups.
   rpc GetIamPolicy(google.iam.v1.GetIamPolicyRequest) returns (google.iam.v1.Policy) {
     option (google.api.http) = {
       post: "/v1beta1/{resource=projects/*/locations/*/tagTemplates/*}:getIamPolicy"
       body: "*"
+      additional_bindings {
+        post: "/v1beta1/{resource=projects/*/locations/*/entryGroups/*}:getIamPolicy"
+        body: "*"
+      }
+      additional_bindings {
+        post: "/v1beta1/{resource=projects/*/locations/*/entryGroups/*/entries/*}:getIamPolicy"
+        body: "*"
+      }
     };
   }
 
@@ -220,8 +360,10 @@ service DataCatalog {
   // If the resource does not exist, an empty set of permissions is returned
   // (We don't return a `NOT_FOUND` error).
   //
-  // Supported resource are:
-  //   - tag templates.
+  // Supported resources are:
+  //   - Tag templates.
+  //   - Entries.
+  //   - Entry groups.
   // Note, this method cannot be used to manage policies for BigQuery, Cloud
   // Pub/Sub and any external Google Cloud Platform resources synced to Cloud
   // Data Catalog.
@@ -232,6 +374,14 @@ service DataCatalog {
     option (google.api.http) = {
       post: "/v1beta1/{resource=projects/*/locations/*/tagTemplates/*}:testIamPermissions"
       body: "*"
+      additional_bindings {
+        post: "/v1beta1/{resource=projects/*/locations/*/entryGroups/*}:testIamPermissions"
+        body: "*"
+      }
+      additional_bindings {
+        post: "/v1beta1/{resource=projects/*/locations/*/entryGroups/*/entries/*}:testIamPermissions"
+        body: "*"
+      }
     };
   }
 }
@@ -242,21 +392,21 @@ message SearchCatalogRequest {
   message Scope {
     // Data Catalog tries to automatically choose the right corpus of data to
     // search through. You can ensure an organization is included by adding it
-    // to "include_org_ids". You can ensure a project's org is included with
-    // "include_project_ids". You must specify at least one organization
-    // using "include_org_ids" or "include_project_ids" in all search requests.
+    // to `include_org_ids`. You can ensure a project's org is included with
+    // `include_project_ids`. You must specify at least one organization
+    // using `include_org_ids` or `include_project_ids` in all search requests.
     //
     // List of organization IDs to search within. To find your organization ID,
     // follow instructions in
-    // https://cloud.google.com/resource-manager/docs/creating-managing-organization
+    // https://cloud.google.com/resource-manager/docs/creating-managing-organization.
     repeated string include_org_ids = 2;
 
     // List of project IDs to search within. To learn more about the
     // distinction between project names/IDs/numbers, go to
-    // https://cloud.google.com/docs/overview/#projects
+    // https://cloud.google.com/docs/overview/#projects.
     repeated string include_project_ids = 3;
 
-    // If true, include Google Cloud Platform (GCP) public datasets in the
+    // If `true`, include Google Cloud Platform (GCP) public datasets in the
     // search results. Info on GCP public datasets is available at
     // https://cloud.google.com/public-datasets/. By default, GCP public
     // datasets are excluded.
@@ -264,7 +414,7 @@ message SearchCatalogRequest {
   }
 
   // Required. The scope of this search request.
-  Scope scope = 6;
+  Scope scope = 6 [(google.api.field_behavior) = REQUIRED];
 
   // Required. The query string in search query syntax. The query must be
   // non-empty.
@@ -278,69 +428,163 @@ message SearchCatalogRequest {
   // Note: Query tokens need to have a minimum of 3 characters for substring
   // matching to work correctly. See [Data Catalog Search
   // Syntax](/data-catalog/docs/how-to/search-reference) for more information.
-  string query = 1;
+  string query = 1 [(google.api.field_behavior) = REQUIRED];
 
   // Number of results in the search page. If <=0 then defaults to 10. Max limit
   // for page_size is 1000. Throws an invalid argument for page_size > 1000.
   int32 page_size = 2;
 
   // Optional pagination token returned in an earlier
-  // [SearchCatalogResponse.next_page_token][google.cloud.datacatalog.v1beta1.DataCatalog.SearchCatalogResponse.next_page_token];
+  // [SearchCatalogResponse.next_page_token][google.cloud.datacatalog.v1beta1.SearchCatalogResponse.next_page_token], which
   // indicates that this is a continuation of a prior
-  // [SearchCatalog][google.cloud.datacatalog.v1beta1.DataCatalog.SearchCatalog]
-  // call, and that the system should return the next page of data. If empty
-  // then the first page is returned.
+  // [SearchCatalogRequest][google.cloud.datacatalog.v1beta1.DataCatalog.SearchCatalog]
+  // call, and that the system should return the next page of data. If empty,
+  // the first page is returned.
   string page_token = 3;
 
   // Specifies the ordering of results, currently supported case-sensitive
   // choices are:
-  // <ul>
-  //   <li> relevance </li>
-  //   <li> last_access_timestamp [asc|desc], defaults to descending if not
-  //   specified, </li>
-  //   <li> last_modified_timestamp [asc|desc], defaults to descending if not
-  //   specified. </li>
-  // </ul>
+  //
+  //   * `relevance`, only supports desecending
+  //   * `last_access_timestamp [asc|desc]`, defaults to descending if not
+  //     specified
+  //   * `last_modified_timestamp [asc|desc]`, defaults to descending if not
+  //     specified
+  //
+  // If not specified, defaults to `relevance` descending.
   string order_by = 5;
 }
 
 // Response message for
 // [SearchCatalog][google.cloud.datacatalog.v1beta1.DataCatalog.SearchCatalog].
 message SearchCatalogResponse {
-  // Search results in descending order of relevance.
+  // Search results.
   repeated SearchCatalogResult results = 1;
 
   // The token that can be used to retrieve the next page of results.
   string next_page_token = 3;
 }
 
+// Request message for
+// [CreateEntryGroup][google.cloud.datacatalog.v1beta1.DataCatalog.CreateEntryGroup].
+message CreateEntryGroupRequest {
+  // Required. The name of the project this entry group is in. Example:
+  //
+  // * projects/{project_id}/locations/{location}
+  //
+  // Note that this EntryGroup and its child resources may not actually be
+  // stored in the location in this name.
+  string parent = 1 [
+    (google.api.field_behavior) = REQUIRED,
+    (google.api.resource_reference) = {
+      child_type: "datacatalog.googleapis.com/EntryGroup"
+    }
+  ];
+
+  // Required. The id of the entry group to create.
+  string entry_group_id = 3 [(google.api.field_behavior) = REQUIRED];
+
+  // Optional. The entry group to create. Defaults to an empty entry group.
+  EntryGroup entry_group = 2;
+}
+
+// Request message for
+// [GetEntryGroup][google.cloud.datacatalog.v1beta1.DataCatalog.GetEntryGroup].
+message GetEntryGroupRequest {
+  // Required. The name of the entry group. For example,
+  // `projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}`.
+  string name = 1 [
+    (google.api.field_behavior) = REQUIRED,
+    (google.api.resource_reference) = {
+      type: "datacatalog.googleapis.com/EntryGroup"
+    }
+  ];
+
+  // Optional. The fields to return. If not set or empty, all fields are
+  // returned.
+  google.protobuf.FieldMask read_mask = 2;
+}
+
+// Request message for
+// [DeleteEntryGroup][google.cloud.datacatalog.v1beta1.DataCatalog.DeleteEntryGroup].
+message DeleteEntryGroupRequest {
+  // Required. The name of the entry group. For example,
+  // `projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}`.
+  string name = 1 [
+    (google.api.field_behavior) = REQUIRED,
+    (google.api.resource_reference) = {
+      type: "datacatalog.googleapis.com/EntryGroup"
+    }
+  ];
+}
+
+// Request message for
+// [CreateEntry][google.cloud.datacatalog.v1beta1.DataCatalog.CreateEntry].
+message CreateEntryRequest {
+  // Required. The name of the entry group this entry is in. Example:
+  //
+  // * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}
+  //
+  // Note that this Entry and its child resources may not actually be stored in
+  // the location in this name.
+  string parent = 1 [
+    (google.api.field_behavior) = REQUIRED,
+    (google.api.resource_reference) = {
+      type: "datacatalog.googleapis.com/EntryGroup"
+    }
+  ];
+
+  // Required. The id of the entry to create.
+  string entry_id = 3 [(google.api.field_behavior) = REQUIRED];
+
+  // Required. The entry to create.
+  Entry entry = 2 [(google.api.field_behavior) = REQUIRED];
+}
+
 // Request message for
 // [UpdateEntry][google.cloud.datacatalog.v1beta1.DataCatalog.UpdateEntry].
 message UpdateEntryRequest {
-  // Required. The updated Entry.
-  Entry entry = 1;
+  // Required. The updated entry.
+  Entry entry = 1 [(google.api.field_behavior) = REQUIRED];
 
-  // Optional. The fields to update on the entry.  If absent or empty, all
+  // Optional. The fields to update on the entry. If absent or empty, all
   // modifiable fields are updated.
   //
-  // Modifiable fields in synced entries:
-  //
-  // 1. schema (Pub/Sub topics only)
-  //
-  // Modifiable fields in native entries:
-  //
-  // 1. display_name
-  // 2. description
-  // 3. schema
+  // Currently only `schema` field in Cloud Pub/Sub topic entries is modifiable.
   google.protobuf.FieldMask update_mask = 2;
 }
 
+// Request message for
+// [DeleteEntry][google.cloud.datacatalog.v1beta1.DataCatalog.DeleteEntry].
+message DeleteEntryRequest {
+  // Required. The name of the entry. Example:
+  //
+  // * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
+  string name = 1 [
+    (google.api.field_behavior) = REQUIRED,
+    (google.api.resource_reference) = {
+      type: "datacatalog.googleapis.com/Entry"
+    }
+  ];
+}
+
 // Request message for
 // [GetEntry][google.cloud.datacatalog.v1beta1.DataCatalog.GetEntry].
 message GetEntryRequest {
-  // Required. The name of the entry. For example,
-  // "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}".
-  string name = 1;
+  // Required. The name of the entry. Example:
+  //
+  // * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
+  //
+  // Entry groups are logical groupings of entries. Currently, users cannot
+  // create/modify entry groups. They are created by Data Catalog; they include
+  // `@bigquery` for all BigQuery entries, and `@pubsub` for all Cloud Pub/Sub
+  // entries.
+  string name = 1 [
+    (google.api.field_behavior) = REQUIRED,
+    (google.api.resource_reference) = {
+      type: "datacatalog.googleapis.com/Entry"
+    }
+  ];
 }
 
 // Request message for
@@ -351,69 +595,86 @@ message LookupEntryRequest {
   oneof target_name {
     // The full name of the Google Cloud Platform resource the Data Catalog
     // entry represents. See:
-    // https://cloud.google.com/apis/design/resource_names#full_resource_name
+    // https://cloud.google.com/apis/design/resource_names#full_resource_name.
     // Full names are case-sensitive.
     //
     // Examples:
-    // "//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId".
-    // "//pubsub.googleapis.com/projects/projectId/topics/topicId"
+    //
+    //  * //bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId
+    //  * //pubsub.googleapis.com/projects/projectId/topics/topicId
     string linked_resource = 1;
 
     // The SQL name of the entry. SQL names are case-sensitive.
     //
     // Examples:
-    // <ul>
-    //   <li>cloud_pubsub.project_id.topic_id</li>
-    //   <li>pubsub.project_id.`topic.id.with.dots`</li>
-    //   <li>bigquery.project_id.dataset_id.table_id</li>
-    //   <li>datacatalog.project_id.location_id.entry_group_id.entry_id</li>
-    // </ul>
-    // *_ids shoud satisfy the standard SQL rules for identifiers.
-    // https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical
+    //
+    //   * `cloud_pubsub.project_id.topic_id`
+    //   * ``pubsub.project_id.`topic.id.with.dots` ``
+    //   * `bigquery.project_id.dataset_id.table_id`
+    //   * `datacatalog.project_id.location_id.entry_group_id.entry_id`
+    //
+    // `*_id`s shoud satisfy the standard SQL rules for identifiers.
+    // https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical.
     string sql_resource = 3;
   }
 }
 
 // Entry Metadata.
 // A Data Catalog Entry resource represents another resource in Google
-// Cloud Platform, such as a BigQuery Dataset or a Pub/Sub Topic. Clients can
-// use the `linked_resource` field in the Entry resource to refer to the
-// original resource id of the source system.
+// Cloud Platform, such as a BigQuery dataset or a Cloud Pub/Sub topic.
+// Clients can use the `linked_resource` field in the Entry resource to refer to
+// the original resource ID of the source system.
 //
 // An Entry resource contains resource details, such as its schema. An Entry can
 // also be used to attach flexible metadata, such as a
 // [Tag][google.cloud.datacatalog.v1beta1.Tag].
 message Entry {
+  option (google.api.resource) = {
+    type: "datacatalog.googleapis.com/Entry"
+    pattern: "projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}"
+  };
+
   // Required when used in
   // [UpdateEntryRequest][google.cloud.datacatalog.v1beta1.UpdateEntryRequest].
-  // The Data Catalog resource name of the entry in URL format. For example,
-  // "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}".
+  // The Data Catalog resource name of the entry in URL format. Example:
+  //
+  // * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
+  //
   // Note that this Entry and its child resources may not actually be stored in
   // the location in this name.
-  string name = 1;
+  string name = 1 [(google.api.resource_reference) = {
+                     type: "datacatalog.googleapis.com/EntryGroup"
+                   }];
 
-  // Output only. The full name of the cloud resource the entry belongs to. See:
-  // https://cloud.google.com/apis/design/resource_names#full_resource_name
+  // Output only. The resource this metadata entry refers to.
   //
-  // Data Catalog supports resources from select Google Cloud Platform systems.
-  // `linked_resource` is the full name of the Google Cloud Platform resource.
+  // For Google Cloud Platform resources, `linked_resource` is the [full name of
+  // the
+  // resource](https://cloud.google.com/apis/design/resource_names#full_resource_name).
   // For example, the `linked_resource` for a table resource from BigQuery is:
   //
-  // "//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId".
+  // * //bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId
   string linked_resource = 9;
 
-  // Required. Type of entry.
-  EntryType type = 2;
+  // Required. Entry type.
+  oneof entry_type {
+    // The type of the entry.
+    EntryType type = 2;
+  }
 
   // Optional. Type specification information.
   oneof type_spec {
+    // Specification that applies to a Cloud Storage fileset. This is only valid
+    // on entries of type FILESET.
+    GcsFilesetSpec gcs_fileset_spec = 6;
+
     // Specification that applies to a BigQuery table. This is only valid on
-    // entries of type TABLE.
+    // entries of type `TABLE`.
     BigQueryTableSpec bigquery_table_spec = 12;
 
     // Specification for a group of BigQuery tables with name pattern
-    // [prefix]YYYYMMDD. Context:
-    // https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding
+    // `[prefix]YYYYMMDD`. Context:
+    // https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding.
     BigQueryDateShardedSpec bigquery_date_sharded_spec = 15;
   }
 
@@ -430,86 +691,165 @@ message Entry {
   // to it.
   Schema schema = 5;
 
-  // Output only. Timestamps about the underlying Google Cloud Platform resource
-  // -- not about this Data Catalog Entry.
+  // Output only. Timestamps about the underlying Google Cloud Platform
+  // resource, not about this Data Catalog Entry.
   SystemTimestamps source_system_timestamps = 7;
 }
 
+// EntryGroup Metadata.
+// An EntryGroup resource represents a logical grouping of zero or more
+// Data Catalog [Entry][google.cloud.datacatalog.v1beta1.Entry] resources.
+message EntryGroup {
+  option (google.api.resource) = {
+    type: "datacatalog.googleapis.com/EntryGroup"
+    pattern: "projects/{project}/locations/{location}/entryGroups/{entry_group}"
+  };
+
+  // Required when used in
+  // [UpdateEntryGroupRequest][google.cloud.datacatalog.v1beta1.UpdateEntryGroupRequest].
+  // The resource name of the entry group in URL format. Example:
+  //
+  // * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}
+  //
+  // Note that this EntryGroup and its child resources may not actually be
+  // stored in the location in this name.
+  string name = 1;
+
+  // Optional. A short name to identify the entry group, for example,
+  // "analytics data - jan 2011". Default value is an empty string.
+  string display_name = 2;
+
+  // Optional. Entry group description, which can consist of several sentences
+  // or paragraphs that describe entry group contents. Default value is an empty
+  // string.
+  string description = 3;
+
+  // Output only. Timestamps about this EntryGroup. Default value is empty
+  // timestamps.
+  SystemTimestamps data_catalog_timestamps = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
+}
+
 // Request message for
 // [CreateTagTemplate][google.cloud.datacatalog.v1beta1.DataCatalog.CreateTagTemplate].
 message CreateTagTemplateRequest {
   // Required. The name of the project and the location this template is in.
-  // Example: "projects/{project_id}/locations/{location}". Note that this
+  // Example:
+  //
+  // * projects/{project_id}/locations/{location}
+  //
   // TagTemplate and its child resources may not actually be stored in the
   // location in this name.
-  string parent = 1;
+  string parent = 1 [
+    (google.api.field_behavior) = REQUIRED,
+    (google.api.resource_reference) = {
+      child_type: "datacatalog.googleapis.com/TagTemplate"
+    }
+  ];
 
   // Required. The id of the tag template to create.
-  string tag_template_id = 3;
+  string tag_template_id = 3 [(google.api.field_behavior) = REQUIRED];
 
   // Required. The tag template to create.
-  TagTemplate tag_template = 2;
+  TagTemplate tag_template = 2 [(google.api.field_behavior) = REQUIRED];
+}
+
+// Entry resources in Data Catalog can be of different types e.g. a BigQuery
+// Table entry is of type `TABLE`. This enum describes all the possible types
+// Data Catalog contains.
+enum EntryType {
+  // Default unknown type
+  ENTRY_TYPE_UNSPECIFIED = 0;
+
+  // Output only. The type of entry that has a GoogleSQL schema, including
+  // logical views.
+  TABLE = 2;
+
+  // Output only. An entry type which is used for streaming entries. Example:
+  // Cloud Pub/Sub topic.
+  DATA_STREAM = 3;
+
+  // An entry type which is a set of files or objects. Example: Cloud Storage
+  // fileset.
+  FILESET = 4;
 }
 
 // Request message for
 // [GetTagTemplate][google.cloud.datacatalog.v1beta1.DataCatalog.GetTagTemplate].
 message GetTagTemplateRequest {
-  // Required. The name of the tag template. For example,
-  // "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}".
-  string name = 1;
+  // Required. The name of the tag template. Example:
+  //
+  // * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
+  string name = 1 [
+    (google.api.field_behavior) = REQUIRED,
+    (google.api.resource_reference) = {
+      type: "datacatalog.googleapis.com/TagTemplate"
+    }
+  ];
 }
 
 // Request message for
 // [UpdateTagTemplate][google.cloud.datacatalog.v1beta1.DataCatalog.UpdateTagTemplate].
 message UpdateTagTemplateRequest {
   // Required. The template to update.
-  TagTemplate tag_template = 1;
+  TagTemplate tag_template = 1 [(google.api.field_behavior) = REQUIRED];
 
   // Optional. The field mask specifies the parts of the template to overwrite.
   //
   // Allowed fields:
   //
-  //   * display_name
+  //   * `display_name`
   //
-  // If update_mask is omitted, all of the allowed fields above will be updated.
+  // If absent or empty, all of the allowed fields above will be updated.
   google.protobuf.FieldMask update_mask = 2;
 }
 
 // Request message for
 // [DeleteTagTemplate][google.cloud.datacatalog.v1beta1.DataCatalog.DeleteTagTemplate].
 message DeleteTagTemplateRequest {
-  // Required. The name of the tag template to delete. For example,
-  // "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}".
-  string name = 1;
-
-  // Required. Currently, this field must always be set to <code>true</code>.
+  // Required. The name of the tag template to delete. Example:
+  //
+  // * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
+  string name = 1 [
+    (google.api.field_behavior) = REQUIRED,
+    (google.api.resource_reference) = {
+      type: "datacatalog.googleapis.com/TagTemplate"
+    }
+  ];
+
+  // Required. Currently, this field must always be set to `true`.
   // This confirms the deletion of any possible tags using this template.
-  // <code>force = false</code> will be supported in the future.
-  bool force = 2;
+  // `force = false` will be supported in the future.
+  bool force = 2 [(google.api.field_behavior) = REQUIRED];
 }
 
 // Request message for
 // [CreateTag][google.cloud.datacatalog.v1beta1.DataCatalog.CreateTag].
 message CreateTagRequest {
-  // Required.
-  // The name of the resource to attach this tag to. Tags can be attached to
-  // Entries. (example:
-  // "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}").
+  // Required. The name of the resource to attach this tag to. Tags can be attached to
+  // Entries. Example:
+  //
+  // * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
+  //
   // Note that this Tag and its child resources may not actually be stored in
   // the location in this name.
-  string parent = 1;
+  string parent = 1 [
+    (google.api.field_behavior) = REQUIRED,
+    (google.api.resource_reference) = {
+      type: "datacatalog.googleapis.com/Tag"
+    }
+  ];
 
   // Required. The tag to create.
-  Tag tag = 2;
+  Tag tag = 2 [(google.api.field_behavior) = REQUIRED];
 }
 
 // Request message for
 // [UpdateTag][google.cloud.datacatalog.v1beta1.DataCatalog.UpdateTag].
 message UpdateTagRequest {
   // Required. The updated tag.
-  Tag tag = 1;
+  Tag tag = 1 [(google.api.field_behavior) = REQUIRED];
 
-  // Optional. The fields to update on the Tag.  If absent or empty, all
+  // Optional. The fields to update on the Tag. If absent or empty, all
   // modifiable fields are updated. Currently the only modifiable field is the
   // field `fields`.
   google.protobuf.FieldMask update_mask = 2;
@@ -518,48 +858,68 @@ message UpdateTagRequest {
 // Request message for
 // [DeleteTag][google.cloud.datacatalog.v1beta1.DataCatalog.DeleteTag].
 message DeleteTagRequest {
-  // Required. The name of the tag to delete. For example,
-  // "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}".
-  string name = 1;
+  // Required. The name of the tag to delete. Example:
+  //
+  // * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}
+  string name = 1 [
+    (google.api.field_behavior) = REQUIRED,
+    (google.api.resource_reference) = {
+      child_type: "datacatalog.googleapis.com/Tag"
+    }
+  ];
 }
 
 // Request message for
 // [CreateTagTemplateField][google.cloud.datacatalog.v1beta1.DataCatalog.CreateTagTemplateField].
 message CreateTagTemplateFieldRequest {
   // Required. The name of the project this template is in. Example:
-  // "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}".
+  //
+  // * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
+  //
   // Note that this TagTemplateField may not actually be stored in the location
   // in this name.
-  string parent = 1;
-
-  // Required. The id of the tag template field to create.
+  string parent = 1 [
+    (google.api.field_behavior) = REQUIRED,
+    (google.api.resource_reference) = {
+      type: "datacatalog.googleapis.com/TagTemplate"
+    }
+  ];
+
+  // Required. The ID of the tag template field to create.
   // Field ids can contain letters (both uppercase and lowercase), numbers
-  // (0-9), underscores (_) and dashes (-). Field ids must be at least 1
-  // character long and at most 128 characters long. Field ids must also be
-  // unique to their template.
-  string tag_template_field_id = 2;
+  // (0-9), underscores (_) and dashes (-). Field IDs must be at least 1
+  // character long and at most 128 characters long. Field IDs must also be
+  // unique within their template.
+  string tag_template_field_id = 2 [(google.api.field_behavior) = REQUIRED];
 
   // Required. The tag template field to create.
-  TagTemplateField tag_template_field = 3;
+  TagTemplateField tag_template_field = 3 [(google.api.field_behavior) = REQUIRED];
 }
 
 // Request message for
 // [UpdateTagTemplateField][google.cloud.datacatalog.v1beta1.DataCatalog.UpdateTagTemplateField].
 message UpdateTagTemplateFieldRequest {
-  // Required. The name of the tag template field. For example,
-  // "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}".
-  string name = 1;
+  // Required. The name of the tag template field. Example:
+  //
+  // * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}
+  string name = 1 [
+    (google.api.field_behavior) = REQUIRED,
+    (google.api.resource_reference) = {
+      type: "datacatalog.googleapis.com/TagTemplateField"
+    }
+  ];
 
   // Required. The template to update.
-  TagTemplateField tag_template_field = 2;
+  TagTemplateField tag_template_field = 2 [(google.api.field_behavior) = REQUIRED];
 
-  // Optional. The field mask specifies the parts of the template to overwrite.
+  // Optional. The field mask specifies the parts of the template to be updated.
   // Allowed fields:
   //
-  //   * display_name
-  //   * type.enum_type
+  //   * `display_name`
+  //   * `type.enum_type`
   //
-  // If update_mask is omitted, all of the allowed fields above will be updated.
+  // If `update_mask` is not set or empty, all of the allowed fields above will
+  // be updated.
   //
   // When updating an enum type, the provided values will be merged with the
   // existing values. Therefore, enum values can only be added, existing enum
@@ -570,40 +930,38 @@ message UpdateTagTemplateFieldRequest {
 // Request message for
 // [RenameTagTemplateField][google.cloud.datacatalog.v1beta1.DataCatalog.RenameTagTemplateField].
 message RenameTagTemplateFieldRequest {
-  // Required. The name of the tag template. For example,
-  // "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}".
-  string name = 1;
+  // Required. The name of the tag template. Example:
+  //
+  // * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}
+  string name = 1 [
+    (google.api.field_behavior) = REQUIRED,
+    (google.api.resource_reference) = {
+      type: "datacatalog.googleapis.com/TagTemplateField"
+    }
+  ];
 
   // Required. The new ID of this tag template field. For example,
-  // "my_new_field".
-  string new_tag_template_field_id = 2;
-}
-
-// Entry resources in Data Catalog can be of different types e.g. BigQuery
-// Table entry is of type 'TABLE'. This enum describes all the possible types
-// Data Catalog contains.
-enum EntryType {
-  // Default unknown type
-  ENTRY_TYPE_UNSPECIFIED = 0;
-
-  // The type of entry that has a GoogleSQL schema, including logical views.
-  TABLE = 2;
-
-  // An entry type which is used for streaming entries. Example - Pub/Sub.
-  DATA_STREAM = 3;
+  // `my_new_field`.
+  string new_tag_template_field_id = 2 [(google.api.field_behavior) = REQUIRED];
 }
 
 // Request message for
 // [DeleteTagTemplateField][google.cloud.datacatalog.v1beta1.DataCatalog.DeleteTagTemplateField].
 message DeleteTagTemplateFieldRequest {
-  // Required. The name of the tag template field to delete. For example,
-  // "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}".
-  string name = 1;
-
-  // Required. Currently, this field must always be set to <code>true</code>.
+  // Required. The name of the tag template field to delete. Example:
+  //
+  // * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}
+  string name = 1 [
+    (google.api.field_behavior) = REQUIRED,
+    (google.api.resource_reference) = {
+      type: "datacatalog.googleapis.com/TagTemplateField"
+    }
+  ];
+
+  // Required. Currently, this field must always be set to `true`.
   // This confirms the deletion of this field from any tags using this field.
-  // <code>force = false</code> will be supported in the future.
-  bool force = 2;
+  // `force = false` will be supported in the future.
+  bool force = 2 [(google.api.field_behavior) = REQUIRED];
 }
 
 // Request message for
@@ -611,7 +969,12 @@ message DeleteTagTemplateFieldRequest {
 message ListTagsRequest {
   // Required. The name of the Data Catalog resource to list the tags of. The
   // resource could be an [Entry][google.cloud.datacatalog.v1beta1.Entry].
-  string parent = 1;
+  string parent = 1 [
+    (google.api.field_behavior) = REQUIRED,
+    (google.api.resource_reference) = {
+      child_type: "datacatalog.googleapis.com/Tag"
+    }
+  ];
 
   // Optional. The maximum number of tags to return. Default is 10. Max limit is
   // 1000.
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/proto/google/cloud/datacatalog/v1beta1/gcs_fileset_spec.proto b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/proto/google/cloud/datacatalog/v1beta1/gcs_fileset_spec.proto
new file mode 100644
index 000000000000..501446634f37
--- /dev/null
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/proto/google/cloud/datacatalog/v1beta1/gcs_fileset_spec.proto
@@ -0,0 +1,57 @@
+// Copyright 2019 Google LLC.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+syntax = "proto3";
+
+package google.cloud.datacatalog.v1beta1;
+
+import "google/api/field_behavior.proto";
+import "google/cloud/datacatalog/v1beta1/timestamps.proto";
+
+option cc_enable_arenas = true;
+option go_package = "google.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog";
+option java_multiple_files = true;
+option java_package = "com.google.cloud.datacatalog";
+
+// Describes a Cloud Storage fileset entry.
+message GcsFilesetSpec {
+  // Required. Patterns to identify a set of files in Google Cloud Storage.
+  //
+  // Examples of valid file_patterns:
+  //
+  //  * `gs://bucket_name/*`: matches all files in `bucket_name`
+  //  * `gs://bucket_name/file*`: matches files prefixed by `file` in
+  //                              `bucket_name`
+  //  * `gs://bucket_name/a/*/b`: matches all files in `bucket_name` that match
+  //                              `a/*/b` pattern, such as `a/c/b`, `a/d/b`
+  //  * `gs://another_bucket/a.txt`: matches `gs://another_bucket/a.txt`
+  repeated string file_patterns = 1 [(google.api.field_behavior) = REQUIRED];
+
+  // Output only. Sample files contained in this fileset, not all files contained in this
+  // fileset are represented here.
+  repeated GcsFileSpec sample_gcs_file_specs = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
+}
+
+// Specifications of a single file in GCS.
+message GcsFileSpec {
+  // Required. The full file path. Example: `gs://bucket_name/a/b.txt`.
+  string file_path = 1 [(google.api.field_behavior) = REQUIRED];
+
+  // Output only. Timestamps about the GCS file.
+  SystemTimestamps gcs_timestamps = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+  // Output only. The size of the file, in bytes.
+  int64 size_bytes = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
+}
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/proto/google/cloud/datacatalog/v1beta1/schema.proto b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/proto/google/cloud/datacatalog/v1beta1/schema.proto
index 839ef1d8ca50..7530f62661df 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/proto/google/cloud/datacatalog/v1beta1/schema.proto
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/proto/google/cloud/datacatalog/v1beta1/schema.proto
@@ -17,6 +17,8 @@ syntax = "proto3";
 
 package google.cloud.datacatalog.v1beta1;
 
+import "google/api/field_behavior.proto";
+
 option cc_enable_arenas = true;
 option go_package = "google.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog";
 option java_multiple_files = true;
@@ -26,24 +28,24 @@ option java_package = "com.google.cloud.datacatalog";
 message Schema {
   // Required. Schema of columns. A maximum of 10,000 columns and sub-columns
   // can be specified.
-  repeated ColumnSchema columns = 2;
+  repeated ColumnSchema columns = 2 [(google.api.field_behavior) = REQUIRED];
 }
 
 // Representation of a column within a schema. Columns could be nested inside
 // other columns.
 message ColumnSchema {
   // Required. Name of the column.
-  string column = 6;
+  string column = 6 [(google.api.field_behavior) = REQUIRED];
 
   // Required. Type of the column.
-  string type = 1;
+  string type = 1 [(google.api.field_behavior) = REQUIRED];
 
   // Optional. Description of the column. Default value is an empty string.
   string description = 2;
 
   // Optional. A column's mode indicates whether the values in this column are
-  // required, nullable, etc. Only 'NULLABLE', 'REQUIRED' and 'REPEATED' are
-  // supported. Default mode is 'NULLABLE'.
+  // required, nullable, etc. Only `NULLABLE`, `REQUIRED` and `REPEATED` are
+  // supported. Default mode is `NULLABLE`.
   string mode = 3;
 
   // Optional. Schema of sub-columns. A column can have zero or more
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/proto/google/cloud/datacatalog/v1beta1/search.proto b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/proto/google/cloud/datacatalog/v1beta1/search.proto
index 2a31dd94543a..30dd6fba3981 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/proto/google/cloud/datacatalog/v1beta1/search.proto
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/proto/google/cloud/datacatalog/v1beta1/search.proto
@@ -17,7 +17,6 @@ syntax = "proto3";
 
 package google.cloud.datacatalog.v1beta1;
 
-import "google/api/annotations.proto";
 import "google/protobuf/timestamp.proto";
 
 option cc_enable_arenas = true;
@@ -34,20 +33,22 @@ message SearchCatalogResult {
 
   // Sub-type of the search result. This is a dot-delimited description of the
   // resource's full type, and is the same as the value callers would provide in
-  // the "type" search facet.  Examples: "entry.table", "entry.dataStream",
-  // "tagTemplate"
+  // the "type" search facet.  Examples: `entry.table`, `entry.dataStream`,
+  // `tagTemplate`.
   string search_result_subtype = 2;
 
   // The relative resource name of the resource in URL format.
   // Examples:
-  // "projects/{project_id}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}".
-  // "projects/{project_id}/tagTemplates/{tag_template_id}".
+  //
+  //  * `projects/{project_id}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}`
+  //  * `projects/{project_id}/tagTemplates/{tag_template_id}`
   string relative_resource_name = 3;
 
   // The full name of the cloud resource the entry belongs to. See:
-  // https://cloud.google.com/apis/design/resource_names#full_resource_name
+  // https://cloud.google.com/apis/design/resource_names#full_resource_name.
   // Example:
-  // "//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId".
+  //
+  //  * `//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId`
   string linked_resource = 4;
 }
 
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/proto/google/cloud/datacatalog/v1beta1/table_spec.proto b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/proto/google/cloud/datacatalog/v1beta1/table_spec.proto
index 8e9547fea783..fec33ee3aac4 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/proto/google/cloud/datacatalog/v1beta1/table_spec.proto
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/proto/google/cloud/datacatalog/v1beta1/table_spec.proto
@@ -17,6 +17,9 @@ syntax = "proto3";
 
 package google.cloud.datacatalog.v1beta1;
 
+import "google/api/field_behavior.proto";
+import "google/api/resource.proto";
+
 option cc_enable_arenas = true;
 option go_package = "google.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog";
 option java_multiple_files = true;
@@ -25,16 +28,16 @@ option java_package = "com.google.cloud.datacatalog";
 // Describes a BigQuery table.
 message BigQueryTableSpec {
   // Output only. The table source type.
-  TableSourceType table_source_type = 1;
+  TableSourceType table_source_type = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
 
   // Output only.
   oneof type_spec {
     // Table view specification. This field should only be populated if
-    // table_source_type is BIGQUERY_VIEW.
+    // `table_source_type` is `BIGQUERY_VIEW`.
     ViewSpec view_spec = 2;
 
     // Spec of a BigQuery table. This field should only be populated if
-    // table_source_type is BIGQUERY_TABLE.
+    // `table_source_type` is `BIGQUERY_TABLE`.
     TableSpec table_spec = 3;
   }
 }
@@ -53,34 +56,42 @@ enum TableSourceType {
 
 // Table view specification.
 message ViewSpec {
-  // Output only. The query that defines the table view.
-  string view_query = 1;
+  // Required. Output only. The query that defines the table view.
+  string view_query = 1 [(google.api.field_behavior) = REQUIRED];
 }
 
 // Normal BigQuery table spec.
 message TableSpec {
-  // Output only. If the table is a dated shard, i.e. with name pattern
-  // [prefix]YYYYMMDD, grouped_entry is the Data Catalog resource name of the
-  // date sharded grouped entry, e.g.
-  // projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}
-  // /entries/{entry_id}.
-  // Otherwise, grouped_entry will be empty.
-  string grouped_entry = 1;
+  // Output only. If the table is a dated shard, i.e., with name pattern
+  // `[prefix]YYYYMMDD`, `grouped_entry` is the Data Catalog resource name of
+  // the date sharded grouped entry, for example,
+  // `projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}`.
+  // Otherwise, `grouped_entry` is empty.
+  string grouped_entry = 1 [
+    (google.api.field_behavior) = OUTPUT_ONLY,
+    (google.api.resource_reference) = {
+      type: "datacatalog.googleapis.com/Entry"
+    }
+  ];
 }
 
-// Spec for a group of BigQuery tables with name pattern [prefix]YYYYMMDD.
+// Spec for a group of BigQuery tables with name pattern `[prefix]YYYYMMDD`.
 // Context:
 // https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding
 message BigQueryDateShardedSpec {
   // Output only. The Data Catalog resource name of the dataset entry the
-  // current table belongs to, e.g.
-  // projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}
-  // /entries/{entry_id}
-  string dataset = 1;
+  // current table belongs to, for example,
+  // `projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}`.
+  string dataset = 1 [
+    (google.api.field_behavior) = OUTPUT_ONLY,
+    (google.api.resource_reference) = {
+      type: "datacatalog.googleapis.com/Entry"
+    }
+  ];
 
   // Output only. The table name prefix of the shards. The name of any given
-  // shard is [table_prefix]YYYYMMDD, e.g. for shard MyTable20180101, the
-  // table_prefix is "MyTable"
+  // shard is `[table_prefix]YYYYMMDD`, for example, for shard
+  // `MyTable20180101`, the `table_prefix` is `MyTable`.
   string table_prefix = 2;
 
   // Output only. Total number of shards.
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/proto/google/cloud/datacatalog/v1beta1/tags.proto b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/proto/google/cloud/datacatalog/v1beta1/tags.proto
index f01843c206e9..ea1e9f6b690c 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/proto/google/cloud/datacatalog/v1beta1/tags.proto
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/proto/google/cloud/datacatalog/v1beta1/tags.proto
@@ -17,6 +17,8 @@ syntax = "proto3";
 
 package google.cloud.datacatalog.v1beta1;
 
+import "google/api/field_behavior.proto";
+import "google/api/resource.proto";
 import "google/protobuf/timestamp.proto";
 
 option cc_enable_arenas = true;
@@ -27,22 +29,31 @@ option java_package = "com.google.cloud.datacatalog";
 // Tags are used to attach custom metadata to Data Catalog resources. Tags
 // conform to the specifications within their tag template.
 message Tag {
+  option (google.api.resource) = {
+    type: "datacatalog.googleapis.com/Tag"
+    pattern: "projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}/tags/{tag}"
+  };
+
   // Required when used in
   // [UpdateTagRequest][google.cloud.datacatalog.v1beta1.UpdateTagRequest]. The
-  // resource name of the tag in URL format. For example,
-  // projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}",
-  // where tag_id is a system-generated identifier. Note that this Tag may not
-  // actually be stored in the location in this name.
+  // resource name of the tag in URL format. Example:
+  //
+  // * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}
+  //
+  // where `tag_id` is a system-generated identifier.
+  // Note that this Tag may not actually be stored in the location in this name.
   string name = 1;
 
-  // Required. The resource name of the tag template that this tag uses. For
-  // example,
-  // projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}.
+  // Required. The resource name of the tag template that this tag uses.
+  // Example:
+  //
+  // * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
+  //
   // This field cannot be modified after creation.
-  string template = 2;
+  string template = 2 [(google.api.field_behavior) = REQUIRED];
 
   // Output only. The display name of the tag template.
-  string template_display_name = 5;
+  string template_display_name = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
 
   // Optional. The scope within the parent resource that this tag is attached
   // to. If not provided, the tag is attached to the parent resource itself.
@@ -52,15 +63,17 @@ message Tag {
     // Resources like Entry can have schemas associated with them. This scope
     // allows users to attach tags to an individual column based on that schema.
     //
-    // For attaching a tag to a nested column, use '.' to separate the column
-    // names: "outer_column.inner_column".
+    // For attaching a tag to a nested column, use `.` to separate the column
+    // names. Example:
+    //
+    // * `outer_column.inner_column`
     string column = 4;
   }
 
-  // Required. This maps the id of a tag field to the value of & additional
+  // Required. This maps the ID of a tag field to the value of and additional
   // information about that field. Valid field IDs are defined by the tag's
   // template. A tag must have at least 1 field and at most 500 fields.
-  map<string, TagField> fields = 3;
+  map<string, TagField> fields = 3 [(google.api.field_behavior) = REQUIRED];
 }
 
 // Contains the value and supporting information for a field within
@@ -73,7 +86,7 @@ message TagField {
   }
 
   // Output only. The display name of this field.
-  string display_name = 1;
+  string display_name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
 
   // Required. The value of this field.
   oneof kind {
@@ -95,41 +108,60 @@ message TagField {
   }
 }
 
-// Tag templates defines the schema of the tags used to attach to Data Catalog
+// A tag template defines the schema of the tags used to attach to Data Catalog
 // resources. It defines the mapping of accepted field names and types that can
 // be used within the tag. The tag template also controls the access to the tag.
 message TagTemplate {
+  option (google.api.resource) = {
+    type: "datacatalog.googleapis.com/TagTemplate"
+    pattern: "projects/{project}/locations/{location}/tagTemplates/{tag_template}"
+  };
+
   // Required when used in
   // [UpdateTagTemplateRequest][google.cloud.datacatalog.v1beta1.UpdateTagTemplateRequest].
-  // The resource name of the tag template in URL format. For example,
-  // projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}.
+  // The resource name of the tag template in URL format. Example:
+  //
+  // * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
+  //
   // Note that this TagTemplate and its child resources may not actually be
   // stored in the location in this name.
   string name = 1;
 
-  // Optional. The display name for this template. Default value is an empty
-  // string.
+  // Optional. The display name for this template. Defaults to an empty string.
   string display_name = 2;
 
-  // Required. Map of tag template field ids to the settings for the field.
+  // Required. Map of tag template field IDs to the settings for the field.
   // This map is an exhaustive list of the allowed fields. This map must contain
   // at least one field and at most 500 fields.
   //
   // The keys to this map are tag template field IDs. Field IDs can contain
   // letters (both uppercase and lowercase), numbers (0-9) and underscores (_).
-  // Field IDs must be at least 1 character long and at most 64 characters long.
-  // Field IDs must start with a letter or underscore.
-  map<string, TagTemplateField> fields = 3;
+  // Field IDs must be at least 1 character long and at most
+  // 64 characters long. Field IDs must start with a letter or underscore.
+  map<string, TagTemplateField> fields = 3 [(google.api.field_behavior) = REQUIRED];
 }
 
 // The template for an individual field within a tag template.
 message TagTemplateField {
-  // Optional. The display name for this field. Default value is an empty
-  // string.
+  option (google.api.resource) = {
+    type: "datacatalog.googleapis.com/TagTemplateField"
+    pattern: "projects/{project}/locations/{location}/tagTemplates/{tag_template}/fields/{field}"
+  };
+
+  // Output only. The resource name of the tag template field in URL format.
+  // Example:
+  //
+  // * projects/{project_id}/locations/{location}/tagTemplates/{tag_template}/fields/{field}
+  //
+  // Note that this TagTemplateField may not actually be stored in the location
+  // in this name.
+  string name = 6;
+
+  // Optional. The display name for this field. Defaults to an empty string.
   string display_name = 1;
 
   // Required. The type of value this tag field can contain.
-  FieldType type = 2;
+  FieldType type = 2 [(google.api.field_behavior) = REQUIRED];
 }
 
 message FieldType {
@@ -137,15 +169,15 @@ message FieldType {
     message EnumValue {
       // Required. The display name of the enum value. Must not be an empty
       // string.
-      string display_name = 1;
+      string display_name = 1 [(google.api.field_behavior) = REQUIRED];
     }
 
-    // Required. The set of allowed values for this enum. This set must not be
-    // empty, the display names of the values in this set must not be empty and
-    // the display names of the values must be case-insensitively unique within
-    // this set. Currently, enum values can only be added to the list of allowed
-    // values. Deletion and renaming of enum values are not supported. Can have
-    // up to 500 allowed values.
+    // Required on create; optional on update. The set of allowed values for
+    // this enum. This set must not be empty, the display names of the values in
+    // this set must not be empty and the display names of the values must be
+    // case-insensitively unique within this set. Currently, enum values can
+    // only be added to the list of allowed values. Deletion and renaming of
+    // enum values are not supported. Can have up to 500 allowed values.
     repeated EnumValue allowed_values = 1;
   }
 
diff --git a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/proto/google/cloud/datacatalog/v1beta1/timestamps.proto b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/proto/google/cloud/datacatalog/v1beta1/timestamps.proto
index bb048b915223..52d5f6ac63ec 100644
--- a/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/proto/google/cloud/datacatalog/v1beta1/timestamps.proto
+++ b/google-api-grpc/proto-google-cloud-datacatalog-v1beta1/src/main/proto/google/cloud/datacatalog/v1beta1/timestamps.proto
@@ -17,6 +17,7 @@ syntax = "proto3";
 
 package google.cloud.datacatalog.v1beta1;
 
+import "google/api/field_behavior.proto";
 import "google/protobuf/timestamp.proto";
 
 option cc_enable_arenas = true;
@@ -26,13 +27,13 @@ option java_package = "com.google.cloud.datacatalog";
 
 // Timestamps about this resource according to a particular system.
 message SystemTimestamps {
-  // Output only. The creation time of the resource within the given system.
+  // The creation time of the resource within the given system.
   google.protobuf.Timestamp create_time = 1;
 
-  // Output only. The last-modified time of the resource within the given
-  // system.
+  // The last-modified time of the resource within the given system.
   google.protobuf.Timestamp update_time = 2;
 
   // Output only. The expiration time of the resource within the given system.
-  google.protobuf.Timestamp expire_time = 3;
+  // Currently only apllicable to BigQuery resources.
+  google.protobuf.Timestamp expire_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
 }
diff --git a/google-cloud-clients/google-cloud-datacatalog/src/main/java/com/google/cloud/datacatalog/v1beta1/DataCatalogClient.java b/google-cloud-clients/google-cloud-datacatalog/src/main/java/com/google/cloud/datacatalog/v1beta1/DataCatalogClient.java
index 03f64623e7e2..be8970a8b8ef 100644
--- a/google-cloud-clients/google-cloud-datacatalog/src/main/java/com/google/cloud/datacatalog/v1beta1/DataCatalogClient.java
+++ b/google-cloud-clients/google-cloud-datacatalog/src/main/java/com/google/cloud/datacatalog/v1beta1/DataCatalogClient.java
@@ -26,13 +26,19 @@
 import com.google.api.gax.rpc.PageContext;
 import com.google.api.gax.rpc.UnaryCallable;
 import com.google.api.pathtemplate.PathTemplate;
+import com.google.cloud.datacatalog.CreateEntryGroupRequest;
+import com.google.cloud.datacatalog.CreateEntryRequest;
 import com.google.cloud.datacatalog.CreateTagRequest;
 import com.google.cloud.datacatalog.CreateTagTemplateFieldRequest;
 import com.google.cloud.datacatalog.CreateTagTemplateRequest;
+import com.google.cloud.datacatalog.DeleteEntryGroupRequest;
+import com.google.cloud.datacatalog.DeleteEntryRequest;
 import com.google.cloud.datacatalog.DeleteTagRequest;
 import com.google.cloud.datacatalog.DeleteTagTemplateFieldRequest;
 import com.google.cloud.datacatalog.DeleteTagTemplateRequest;
 import com.google.cloud.datacatalog.Entry;
+import com.google.cloud.datacatalog.EntryGroup;
+import com.google.cloud.datacatalog.GetEntryGroupRequest;
 import com.google.cloud.datacatalog.GetEntryRequest;
 import com.google.cloud.datacatalog.GetTagTemplateRequest;
 import com.google.cloud.datacatalog.ListTagsRequest;
@@ -53,6 +59,7 @@
 import com.google.cloud.datacatalog.v1beta1.stub.DataCatalogStubSettings;
 import com.google.common.util.concurrent.MoreExecutors;
 import com.google.iam.v1.GetIamPolicyRequest;
+import com.google.iam.v1.GetPolicyOptions;
 import com.google.iam.v1.Policy;
 import com.google.iam.v1.SetIamPolicyRequest;
 import com.google.iam.v1.TestIamPermissionsRequest;
@@ -75,9 +82,10 @@
  * <pre>
  * <code>
  * try (DataCatalogClient dataCatalogClient = DataCatalogClient.create()) {
- *   Entry entry = Entry.newBuilder().build();
- *   FieldMask updateMask = FieldMask.newBuilder().build();
- *   Entry response = dataCatalogClient.updateEntry(entry, updateMask);
+ *   String formattedParent = DataCatalogClient.formatLocationName("[PROJECT]", "[LOCATION]");
+ *   String entryGroupId = "";
+ *   EntryGroup entryGroup = EntryGroup.newBuilder().build();
+ *   EntryGroup response = dataCatalogClient.createEntryGroup(formattedParent, entryGroupId, entryGroup);
  * }
  * </code>
  * </pre>
@@ -142,6 +150,10 @@ public class DataCatalogClient implements BackgroundResource {
       PathTemplate.createWithoutUrlEncoding(
           "projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}");
 
+  private static final PathTemplate ENTRY_GROUP_PATH_TEMPLATE =
+      PathTemplate.createWithoutUrlEncoding(
+          "projects/{project}/locations/{location}/entryGroups/{entry_group}");
+
   private static final PathTemplate FIELD_PATH_TEMPLATE =
       PathTemplate.createWithoutUrlEncoding(
           "projects/{project}/locations/{location}/tagTemplates/{tag_template}/fields/{field}");
@@ -172,6 +184,20 @@ public static final String formatEntryName(
         "entry", entry);
   }
 
+  /**
+   * Formats a string containing the fully-qualified path to represent a entry_group resource.
+   *
+   * @deprecated Use the {@link EntryGroupName} class instead.
+   */
+  @Deprecated
+  public static final String formatEntryGroupName(
+      String project, String location, String entryGroup) {
+    return ENTRY_GROUP_PATH_TEMPLATE.instantiate(
+        "project", project,
+        "location", location,
+        "entry_group", entryGroup);
+  }
+
   /**
    * Formats a string containing the fully-qualified path to represent a field resource.
    *
@@ -269,6 +295,38 @@ public static final String parseEntryFromEntryName(String entryName) {
     return ENTRY_PATH_TEMPLATE.parse(entryName).get("entry");
   }
 
+  /**
+   * Parses the project from the given fully-qualified path which represents a entry_group resource.
+   *
+   * @deprecated Use the {@link EntryGroupName} class instead.
+   */
+  @Deprecated
+  public static final String parseProjectFromEntryGroupName(String entryGroupName) {
+    return ENTRY_GROUP_PATH_TEMPLATE.parse(entryGroupName).get("project");
+  }
+
+  /**
+   * Parses the location from the given fully-qualified path which represents a entry_group
+   * resource.
+   *
+   * @deprecated Use the {@link EntryGroupName} class instead.
+   */
+  @Deprecated
+  public static final String parseLocationFromEntryGroupName(String entryGroupName) {
+    return ENTRY_GROUP_PATH_TEMPLATE.parse(entryGroupName).get("location");
+  }
+
+  /**
+   * Parses the entry_group from the given fully-qualified path which represents a entry_group
+   * resource.
+   *
+   * @deprecated Use the {@link EntryGroupName} class instead.
+   */
+  @Deprecated
+  public static final String parseEntryGroupFromEntryGroupName(String entryGroupName) {
+    return ENTRY_GROUP_PATH_TEMPLATE.parse(entryGroupName).get("entry_group");
+  }
+
   /**
    * Parses the project from the given fully-qualified path which represents a field resource.
    *
@@ -465,7 +523,7 @@ public DataCatalogStub getStub() {
    *
    * <p>This is a custom method (https://cloud.google.com/apis/design/custom_methods) and does not
    * return the complete resource, only the resource identifier and high level fields. Clients can
-   * subsequentally call Get methods.
+   * subsequentally call `Get` methods.
    *
    * <p>Note that searches do not have full recall. There may be results that match your query but
    * are not returned, even in subsequent pages of results. These missing results may vary across
@@ -495,10 +553,11 @@ public DataCatalogStub getStub() {
    *     correctly. See [Data Catalog Search Syntax](/data-catalog/docs/how-to/search-reference) for
    *     more information.
    * @param orderBy Specifies the ordering of results, currently supported case-sensitive choices
-   *     are: &lt;ul&gt; &lt;li&gt; relevance &lt;/li&gt; &lt;li&gt; last_access_timestamp
-   *     [asc|desc], defaults to descending if not specified, &lt;/li&gt; &lt;li&gt;
-   *     last_modified_timestamp [asc|desc], defaults to descending if not specified. &lt;/li&gt;
-   *     &lt;/ul&gt;
+   *     are:
+   *     <p>&#42; `relevance`, only supports desecending &#42; `last_access_timestamp [asc|desc]`,
+   *     defaults to descending if not specified &#42; `last_modified_timestamp [asc|desc]`,
+   *     defaults to descending if not specified
+   *     <p>If not specified, defaults to `relevance` descending.
    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
    */
   public final SearchCatalogPagedResponse searchCatalog(
@@ -518,7 +577,7 @@ public final SearchCatalogPagedResponse searchCatalog(
    *
    * <p>This is a custom method (https://cloud.google.com/apis/design/custom_methods) and does not
    * return the complete resource, only the resource identifier and high level fields. Clients can
-   * subsequentally call Get methods.
+   * subsequentally call `Get` methods.
    *
    * <p>Note that searches do not have full recall. There may be results that match your query but
    * are not returned, even in subsequent pages of results. These missing results may vary across
@@ -533,9 +592,11 @@ public final SearchCatalogPagedResponse searchCatalog(
    * try (DataCatalogClient dataCatalogClient = DataCatalogClient.create()) {
    *   SearchCatalogRequest.Scope scope = SearchCatalogRequest.Scope.newBuilder().build();
    *   String query = "";
+   *   String orderBy = "";
    *   SearchCatalogRequest request = SearchCatalogRequest.newBuilder()
    *     .setScope(scope)
    *     .setQuery(query)
+   *     .setOrderBy(orderBy)
    *     .build();
    *   for (SearchCatalogResult element : dataCatalogClient.searchCatalog(request).iterateAll()) {
    *     // doThingsWith(element);
@@ -556,7 +617,7 @@ public final SearchCatalogPagedResponse searchCatalog(SearchCatalogRequest reque
    *
    * <p>This is a custom method (https://cloud.google.com/apis/design/custom_methods) and does not
    * return the complete resource, only the resource identifier and high level fields. Clients can
-   * subsequentally call Get methods.
+   * subsequentally call `Get` methods.
    *
    * <p>Note that searches do not have full recall. There may be results that match your query but
    * are not returned, even in subsequent pages of results. These missing results may vary across
@@ -571,9 +632,11 @@ public final SearchCatalogPagedResponse searchCatalog(SearchCatalogRequest reque
    * try (DataCatalogClient dataCatalogClient = DataCatalogClient.create()) {
    *   SearchCatalogRequest.Scope scope = SearchCatalogRequest.Scope.newBuilder().build();
    *   String query = "";
+   *   String orderBy = "";
    *   SearchCatalogRequest request = SearchCatalogRequest.newBuilder()
    *     .setScope(scope)
    *     .setQuery(query)
+   *     .setOrderBy(orderBy)
    *     .build();
    *   ApiFuture&lt;SearchCatalogPagedResponse&gt; future = dataCatalogClient.searchCatalogPagedCallable().futureCall(request);
    *   // Do something
@@ -594,7 +657,7 @@ public final SearchCatalogPagedResponse searchCatalog(SearchCatalogRequest reque
    *
    * <p>This is a custom method (https://cloud.google.com/apis/design/custom_methods) and does not
    * return the complete resource, only the resource identifier and high level fields. Clients can
-   * subsequentally call Get methods.
+   * subsequentally call `Get` methods.
    *
    * <p>Note that searches do not have full recall. There may be results that match your query but
    * are not returned, even in subsequent pages of results. These missing results may vary across
@@ -609,9 +672,11 @@ public final SearchCatalogPagedResponse searchCatalog(SearchCatalogRequest reque
    * try (DataCatalogClient dataCatalogClient = DataCatalogClient.create()) {
    *   SearchCatalogRequest.Scope scope = SearchCatalogRequest.Scope.newBuilder().build();
    *   String query = "";
+   *   String orderBy = "";
    *   SearchCatalogRequest request = SearchCatalogRequest.newBuilder()
    *     .setScope(scope)
    *     .setQuery(query)
+   *     .setOrderBy(orderBy)
    *     .build();
    *   while (true) {
    *     SearchCatalogResponse response = dataCatalogClient.searchCatalogCallable().call(request);
@@ -634,7 +699,347 @@ public final UnaryCallable<SearchCatalogRequest, SearchCatalogResponse> searchCa
 
   // AUTO-GENERATED DOCUMENTATION AND METHOD
   /**
-   * Updates an existing entry.
+   * Alpha feature. Creates an EntryGroup. The user should enable the Data Catalog API in the
+   * project identified by the `parent` parameter (see [Data Catalog Resource Project]
+   * (/data-catalog/docs/concepts/resource-project) for more information).
+   *
+   * <p>Sample code:
+   *
+   * <pre><code>
+   * try (DataCatalogClient dataCatalogClient = DataCatalogClient.create()) {
+   *   String formattedParent = DataCatalogClient.formatLocationName("[PROJECT]", "[LOCATION]");
+   *   String entryGroupId = "";
+   *   EntryGroup entryGroup = EntryGroup.newBuilder().build();
+   *   EntryGroup response = dataCatalogClient.createEntryGroup(formattedParent, entryGroupId, entryGroup);
+   * }
+   * </code></pre>
+   *
+   * @param parent Required. The name of the project this entry group is in. Example:
+   *     <p>&#42; projects/{project_id}/locations/{location}
+   *     <p>Note that this EntryGroup and its child resources may not actually be stored in the
+   *     location in this name.
+   * @param entryGroupId Required. The id of the entry group to create.
+   * @param entryGroup Optional. The entry group to create. Defaults to an empty entry group.
+   * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+   */
+  public final EntryGroup createEntryGroup(
+      String parent, String entryGroupId, EntryGroup entryGroup) {
+    LOCATION_PATH_TEMPLATE.validate(parent, "createEntryGroup");
+    CreateEntryGroupRequest request =
+        CreateEntryGroupRequest.newBuilder()
+            .setParent(parent)
+            .setEntryGroupId(entryGroupId)
+            .setEntryGroup(entryGroup)
+            .build();
+    return createEntryGroup(request);
+  }
+
+  // AUTO-GENERATED DOCUMENTATION AND METHOD
+  /**
+   * Alpha feature. Creates an EntryGroup. The user should enable the Data Catalog API in the
+   * project identified by the `parent` parameter (see [Data Catalog Resource Project]
+   * (/data-catalog/docs/concepts/resource-project) for more information).
+   *
+   * <p>Sample code:
+   *
+   * <pre><code>
+   * try (DataCatalogClient dataCatalogClient = DataCatalogClient.create()) {
+   *   String formattedParent = DataCatalogClient.formatLocationName("[PROJECT]", "[LOCATION]");
+   *   String entryGroupId = "";
+   *   EntryGroup entryGroup = EntryGroup.newBuilder().build();
+   *   CreateEntryGroupRequest request = CreateEntryGroupRequest.newBuilder()
+   *     .setParent(formattedParent)
+   *     .setEntryGroupId(entryGroupId)
+   *     .setEntryGroup(entryGroup)
+   *     .build();
+   *   EntryGroup response = dataCatalogClient.createEntryGroup(request);
+   * }
+   * </code></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 EntryGroup createEntryGroup(CreateEntryGroupRequest request) {
+    return createEntryGroupCallable().call(request);
+  }
+
+  // AUTO-GENERATED DOCUMENTATION AND METHOD
+  /**
+   * Alpha feature. Creates an EntryGroup. The user should enable the Data Catalog API in the
+   * project identified by the `parent` parameter (see [Data Catalog Resource Project]
+   * (/data-catalog/docs/concepts/resource-project) for more information).
+   *
+   * <p>Sample code:
+   *
+   * <pre><code>
+   * try (DataCatalogClient dataCatalogClient = DataCatalogClient.create()) {
+   *   String formattedParent = DataCatalogClient.formatLocationName("[PROJECT]", "[LOCATION]");
+   *   String entryGroupId = "";
+   *   EntryGroup entryGroup = EntryGroup.newBuilder().build();
+   *   CreateEntryGroupRequest request = CreateEntryGroupRequest.newBuilder()
+   *     .setParent(formattedParent)
+   *     .setEntryGroupId(entryGroupId)
+   *     .setEntryGroup(entryGroup)
+   *     .build();
+   *   ApiFuture&lt;EntryGroup&gt; future = dataCatalogClient.createEntryGroupCallable().futureCall(request);
+   *   // Do something
+   *   EntryGroup response = future.get();
+   * }
+   * </code></pre>
+   */
+  public final UnaryCallable<CreateEntryGroupRequest, EntryGroup> createEntryGroupCallable() {
+    return stub.createEntryGroupCallable();
+  }
+
+  // AUTO-GENERATED DOCUMENTATION AND METHOD
+  /**
+   * Alpha feature. Gets an EntryGroup.
+   *
+   * <p>Sample code:
+   *
+   * <pre><code>
+   * try (DataCatalogClient dataCatalogClient = DataCatalogClient.create()) {
+   *   String formattedName = DataCatalogClient.formatEntryGroupName("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]");
+   *   FieldMask readMask = FieldMask.newBuilder().build();
+   *   EntryGroup response = dataCatalogClient.getEntryGroup(formattedName, readMask);
+   * }
+   * </code></pre>
+   *
+   * @param name Required. The name of the entry group. For example,
+   *     `projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}`.
+   * @param readMask Optional. The fields to return. If not set or empty, all fields are returned.
+   * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+   */
+  public final EntryGroup getEntryGroup(String name, FieldMask readMask) {
+    ENTRY_GROUP_PATH_TEMPLATE.validate(name, "getEntryGroup");
+    GetEntryGroupRequest request =
+        GetEntryGroupRequest.newBuilder().setName(name).setReadMask(readMask).build();
+    return getEntryGroup(request);
+  }
+
+  // AUTO-GENERATED DOCUMENTATION AND METHOD
+  /**
+   * Alpha feature. Gets an EntryGroup.
+   *
+   * <p>Sample code:
+   *
+   * <pre><code>
+   * try (DataCatalogClient dataCatalogClient = DataCatalogClient.create()) {
+   *   String formattedName = DataCatalogClient.formatEntryGroupName("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]");
+   *   GetEntryGroupRequest request = GetEntryGroupRequest.newBuilder()
+   *     .setName(formattedName)
+   *     .build();
+   *   EntryGroup response = dataCatalogClient.getEntryGroup(request);
+   * }
+   * </code></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 EntryGroup getEntryGroup(GetEntryGroupRequest request) {
+    return getEntryGroupCallable().call(request);
+  }
+
+  // AUTO-GENERATED DOCUMENTATION AND METHOD
+  /**
+   * Alpha feature. Gets an EntryGroup.
+   *
+   * <p>Sample code:
+   *
+   * <pre><code>
+   * try (DataCatalogClient dataCatalogClient = DataCatalogClient.create()) {
+   *   String formattedName = DataCatalogClient.formatEntryGroupName("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]");
+   *   GetEntryGroupRequest request = GetEntryGroupRequest.newBuilder()
+   *     .setName(formattedName)
+   *     .build();
+   *   ApiFuture&lt;EntryGroup&gt; future = dataCatalogClient.getEntryGroupCallable().futureCall(request);
+   *   // Do something
+   *   EntryGroup response = future.get();
+   * }
+   * </code></pre>
+   */
+  public final UnaryCallable<GetEntryGroupRequest, EntryGroup> getEntryGroupCallable() {
+    return stub.getEntryGroupCallable();
+  }
+
+  // AUTO-GENERATED DOCUMENTATION AND METHOD
+  /**
+   * Alpha feature. Deletes an EntryGroup. Only entry groups that do not contain entries can be
+   * deleted. The user should enable the Data Catalog API in the project identified by the `name`
+   * parameter (see [Data Catalog Resource Project] (/data-catalog/docs/concepts/resource-project)
+   * for more information).
+   *
+   * <p>Sample code:
+   *
+   * <pre><code>
+   * try (DataCatalogClient dataCatalogClient = DataCatalogClient.create()) {
+   *   String formattedName = DataCatalogClient.formatEntryGroupName("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]");
+   *   dataCatalogClient.deleteEntryGroup(formattedName);
+   * }
+   * </code></pre>
+   *
+   * @param name Required. The name of the entry group. For example,
+   *     `projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}`.
+   * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+   */
+  public final void deleteEntryGroup(String name) {
+    ENTRY_GROUP_PATH_TEMPLATE.validate(name, "deleteEntryGroup");
+    DeleteEntryGroupRequest request = DeleteEntryGroupRequest.newBuilder().setName(name).build();
+    deleteEntryGroup(request);
+  }
+
+  // AUTO-GENERATED DOCUMENTATION AND METHOD
+  /**
+   * Alpha feature. Deletes an EntryGroup. Only entry groups that do not contain entries can be
+   * deleted. The user should enable the Data Catalog API in the project identified by the `name`
+   * parameter (see [Data Catalog Resource Project] (/data-catalog/docs/concepts/resource-project)
+   * for more information).
+   *
+   * <p>Sample code:
+   *
+   * <pre><code>
+   * try (DataCatalogClient dataCatalogClient = DataCatalogClient.create()) {
+   *   String formattedName = DataCatalogClient.formatEntryGroupName("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]");
+   *   DeleteEntryGroupRequest request = DeleteEntryGroupRequest.newBuilder()
+   *     .setName(formattedName)
+   *     .build();
+   *   dataCatalogClient.deleteEntryGroup(request);
+   * }
+   * </code></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 void deleteEntryGroup(DeleteEntryGroupRequest request) {
+    deleteEntryGroupCallable().call(request);
+  }
+
+  // AUTO-GENERATED DOCUMENTATION AND METHOD
+  /**
+   * Alpha feature. Deletes an EntryGroup. Only entry groups that do not contain entries can be
+   * deleted. The user should enable the Data Catalog API in the project identified by the `name`
+   * parameter (see [Data Catalog Resource Project] (/data-catalog/docs/concepts/resource-project)
+   * for more information).
+   *
+   * <p>Sample code:
+   *
+   * <pre><code>
+   * try (DataCatalogClient dataCatalogClient = DataCatalogClient.create()) {
+   *   String formattedName = DataCatalogClient.formatEntryGroupName("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]");
+   *   DeleteEntryGroupRequest request = DeleteEntryGroupRequest.newBuilder()
+   *     .setName(formattedName)
+   *     .build();
+   *   ApiFuture&lt;Void&gt; future = dataCatalogClient.deleteEntryGroupCallable().futureCall(request);
+   *   // Do something
+   *   future.get();
+   * }
+   * </code></pre>
+   */
+  public final UnaryCallable<DeleteEntryGroupRequest, Empty> deleteEntryGroupCallable() {
+    return stub.deleteEntryGroupCallable();
+  }
+
+  // AUTO-GENERATED DOCUMENTATION AND METHOD
+  /**
+   * Alpha feature. Creates an entry. Currently only entries of 'FILESET' type can be created. The
+   * user should enable the Data Catalog API in the project identified by the `parent` parameter
+   * (see [Data Catalog Resource Project] (/data-catalog/docs/concepts/resource-project) for more
+   * information).
+   *
+   * <p>Sample code:
+   *
+   * <pre><code>
+   * try (DataCatalogClient dataCatalogClient = DataCatalogClient.create()) {
+   *   String formattedParent = DataCatalogClient.formatEntryGroupName("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]");
+   *   String entryId = "";
+   *   Entry entry = Entry.newBuilder().build();
+   *   Entry response = dataCatalogClient.createEntry(formattedParent, entryId, entry);
+   * }
+   * </code></pre>
+   *
+   * @param parent Required. The name of the entry group this entry is in. Example:
+   *     <p>&#42; projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}
+   *     <p>Note that this Entry and its child resources may not actually be stored in the location
+   *     in this name.
+   * @param entryId Required. The id of the entry to create.
+   * @param entry Required. The entry to create.
+   * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+   */
+  public final Entry createEntry(String parent, String entryId, Entry entry) {
+    ENTRY_GROUP_PATH_TEMPLATE.validate(parent, "createEntry");
+    CreateEntryRequest request =
+        CreateEntryRequest.newBuilder()
+            .setParent(parent)
+            .setEntryId(entryId)
+            .setEntry(entry)
+            .build();
+    return createEntry(request);
+  }
+
+  // AUTO-GENERATED DOCUMENTATION AND METHOD
+  /**
+   * Alpha feature. Creates an entry. Currently only entries of 'FILESET' type can be created. The
+   * user should enable the Data Catalog API in the project identified by the `parent` parameter
+   * (see [Data Catalog Resource Project] (/data-catalog/docs/concepts/resource-project) for more
+   * information).
+   *
+   * <p>Sample code:
+   *
+   * <pre><code>
+   * try (DataCatalogClient dataCatalogClient = DataCatalogClient.create()) {
+   *   String formattedParent = DataCatalogClient.formatEntryGroupName("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]");
+   *   String entryId = "";
+   *   Entry entry = Entry.newBuilder().build();
+   *   CreateEntryRequest request = CreateEntryRequest.newBuilder()
+   *     .setParent(formattedParent)
+   *     .setEntryId(entryId)
+   *     .setEntry(entry)
+   *     .build();
+   *   Entry response = dataCatalogClient.createEntry(request);
+   * }
+   * </code></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 Entry createEntry(CreateEntryRequest request) {
+    return createEntryCallable().call(request);
+  }
+
+  // AUTO-GENERATED DOCUMENTATION AND METHOD
+  /**
+   * Alpha feature. Creates an entry. Currently only entries of 'FILESET' type can be created. The
+   * user should enable the Data Catalog API in the project identified by the `parent` parameter
+   * (see [Data Catalog Resource Project] (/data-catalog/docs/concepts/resource-project) for more
+   * information).
+   *
+   * <p>Sample code:
+   *
+   * <pre><code>
+   * try (DataCatalogClient dataCatalogClient = DataCatalogClient.create()) {
+   *   String formattedParent = DataCatalogClient.formatEntryGroupName("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]");
+   *   String entryId = "";
+   *   Entry entry = Entry.newBuilder().build();
+   *   CreateEntryRequest request = CreateEntryRequest.newBuilder()
+   *     .setParent(formattedParent)
+   *     .setEntryId(entryId)
+   *     .setEntry(entry)
+   *     .build();
+   *   ApiFuture&lt;Entry&gt; future = dataCatalogClient.createEntryCallable().futureCall(request);
+   *   // Do something
+   *   Entry response = future.get();
+   * }
+   * </code></pre>
+   */
+  public final UnaryCallable<CreateEntryRequest, Entry> createEntryCallable() {
+    return stub.createEntryCallable();
+  }
+
+  // AUTO-GENERATED DOCUMENTATION AND METHOD
+  /**
+   * Updates an existing entry. The user should enable the Data Catalog API in the project
+   * identified by the `entry.name` parameter (see [Data Catalog Resource Project]
+   * (/data-catalog/docs/concepts/resource-project) for more information).
    *
    * <p>Sample code:
    *
@@ -646,13 +1051,10 @@ public final UnaryCallable<SearchCatalogRequest, SearchCatalogResponse> searchCa
    * }
    * </code></pre>
    *
-   * @param entry Required. The updated Entry.
+   * @param entry Required. The updated entry.
    * @param updateMask Optional. The fields to update on the entry. If absent or empty, all
    *     modifiable fields are updated.
-   *     <p>Modifiable fields in synced entries:
-   *     <p>1. schema (Pub/Sub topics only)
-   *     <p>Modifiable fields in native entries:
-   *     <p>1. display_name 2. description 3. schema
+   *     <p>Currently only `schema` field in Cloud Pub/Sub topic entries is modifiable.
    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
    */
   public final Entry updateEntry(Entry entry, FieldMask updateMask) {
@@ -664,7 +1066,9 @@ public final Entry updateEntry(Entry entry, FieldMask updateMask) {
 
   // AUTO-GENERATED DOCUMENTATION AND METHOD
   /**
-   * Updates an existing entry.
+   * Updates an existing entry. The user should enable the Data Catalog API in the project
+   * identified by the `entry.name` parameter (see [Data Catalog Resource Project]
+   * (/data-catalog/docs/concepts/resource-project) for more information).
    *
    * <p>Sample code:
    *
@@ -687,7 +1091,9 @@ public final Entry updateEntry(UpdateEntryRequest request) {
 
   // AUTO-GENERATED DOCUMENTATION AND METHOD
   /**
-   * Updates an existing entry.
+   * Updates an existing entry. The user should enable the Data Catalog API in the project
+   * identified by the `entry.name` parameter (see [Data Catalog Resource Project]
+   * (/data-catalog/docs/concepts/resource-project) for more information).
    *
    * <p>Sample code:
    *
@@ -707,6 +1113,87 @@ public final UnaryCallable<UpdateEntryRequest, Entry> updateEntryCallable() {
     return stub.updateEntryCallable();
   }
 
+  // AUTO-GENERATED DOCUMENTATION AND METHOD
+  /**
+   * Alpha feature. Deletes an existing entry. Only entries created through
+   * [CreateEntry][google.cloud.datacatalog.v1beta1.DataCatalog.CreateEntry] method can be deleted.
+   * The user should enable the Data Catalog API in the project identified by the `name` parameter
+   * (see [Data Catalog Resource Project] (/data-catalog/docs/concepts/resource-project) for more
+   * information).
+   *
+   * <p>Sample code:
+   *
+   * <pre><code>
+   * try (DataCatalogClient dataCatalogClient = DataCatalogClient.create()) {
+   *   String formattedName = DataCatalogClient.formatEntryName("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]", "[ENTRY]");
+   *   dataCatalogClient.deleteEntry(formattedName);
+   * }
+   * </code></pre>
+   *
+   * @param name Required. The name of the entry. Example:
+   *     <p>&#42;
+   *     projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
+   * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+   */
+  public final void deleteEntry(String name) {
+    ENTRY_PATH_TEMPLATE.validate(name, "deleteEntry");
+    DeleteEntryRequest request = DeleteEntryRequest.newBuilder().setName(name).build();
+    deleteEntry(request);
+  }
+
+  // AUTO-GENERATED DOCUMENTATION AND METHOD
+  /**
+   * Alpha feature. Deletes an existing entry. Only entries created through
+   * [CreateEntry][google.cloud.datacatalog.v1beta1.DataCatalog.CreateEntry] method can be deleted.
+   * The user should enable the Data Catalog API in the project identified by the `name` parameter
+   * (see [Data Catalog Resource Project] (/data-catalog/docs/concepts/resource-project) for more
+   * information).
+   *
+   * <p>Sample code:
+   *
+   * <pre><code>
+   * try (DataCatalogClient dataCatalogClient = DataCatalogClient.create()) {
+   *   String formattedName = DataCatalogClient.formatEntryName("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]", "[ENTRY]");
+   *   DeleteEntryRequest request = DeleteEntryRequest.newBuilder()
+   *     .setName(formattedName)
+   *     .build();
+   *   dataCatalogClient.deleteEntry(request);
+   * }
+   * </code></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 void deleteEntry(DeleteEntryRequest request) {
+    deleteEntryCallable().call(request);
+  }
+
+  // AUTO-GENERATED DOCUMENTATION AND METHOD
+  /**
+   * Alpha feature. Deletes an existing entry. Only entries created through
+   * [CreateEntry][google.cloud.datacatalog.v1beta1.DataCatalog.CreateEntry] method can be deleted.
+   * The user should enable the Data Catalog API in the project identified by the `name` parameter
+   * (see [Data Catalog Resource Project] (/data-catalog/docs/concepts/resource-project) for more
+   * information).
+   *
+   * <p>Sample code:
+   *
+   * <pre><code>
+   * try (DataCatalogClient dataCatalogClient = DataCatalogClient.create()) {
+   *   String formattedName = DataCatalogClient.formatEntryName("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]", "[ENTRY]");
+   *   DeleteEntryRequest request = DeleteEntryRequest.newBuilder()
+   *     .setName(formattedName)
+   *     .build();
+   *   ApiFuture&lt;Void&gt; future = dataCatalogClient.deleteEntryCallable().futureCall(request);
+   *   // Do something
+   *   future.get();
+   * }
+   * </code></pre>
+   */
+  public final UnaryCallable<DeleteEntryRequest, Empty> deleteEntryCallable() {
+    return stub.deleteEntryCallable();
+  }
+
   // AUTO-GENERATED DOCUMENTATION AND METHOD
   /**
    * Gets an entry.
@@ -720,8 +1207,12 @@ public final UnaryCallable<UpdateEntryRequest, Entry> updateEntryCallable() {
    * }
    * </code></pre>
    *
-   * @param name Required. The name of the entry. For example,
-   *     "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}".
+   * @param name Required. The name of the entry. Example:
+   *     <p>&#42;
+   *     projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
+   *     <p>Entry groups are logical groupings of entries. Currently, users cannot create/modify
+   *     entry groups. They are created by Data Catalog; they include `{@literal @}bigquery` for all
+   *     BigQuery entries, and `{@literal @}pubsub` for all Cloud Pub/Sub entries.
    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
    */
   public final Entry getEntry(String name) {
@@ -818,7 +1309,9 @@ public final UnaryCallable<LookupEntryRequest, Entry> lookupEntryCallable() {
 
   // AUTO-GENERATED DOCUMENTATION AND METHOD
   /**
-   * Creates a tag template.
+   * Creates a tag template. The user should enable the Data Catalog API in the project identified
+   * by the `parent` parameter (see [Data Catalog Resource
+   * Project](/data-catalog/docs/concepts/resource-project) for more information).
    *
    * <p>Sample code:
    *
@@ -832,8 +1325,9 @@ public final UnaryCallable<LookupEntryRequest, Entry> lookupEntryCallable() {
    * </code></pre>
    *
    * @param parent Required. The name of the project and the location this template is in. Example:
-   *     "projects/{project_id}/locations/{location}". Note that this TagTemplate and its child
-   *     resources may not actually be stored in the location in this name.
+   *     <p>&#42; projects/{project_id}/locations/{location}
+   *     <p>TagTemplate and its child resources may not actually be stored in the location in this
+   *     name.
    * @param tagTemplateId Required. The id of the tag template to create.
    * @param tagTemplate Required. The tag template to create.
    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
@@ -852,7 +1346,9 @@ public final TagTemplate createTagTemplate(
 
   // AUTO-GENERATED DOCUMENTATION AND METHOD
   /**
-   * Creates a tag template.
+   * Creates a tag template. The user should enable the Data Catalog API in the project identified
+   * by the `parent` parameter (see [Data Catalog Resource
+   * Project](/data-catalog/docs/concepts/resource-project) for more information).
    *
    * <p>Sample code:
    *
@@ -879,7 +1375,9 @@ public final TagTemplate createTagTemplate(CreateTagTemplateRequest request) {
 
   // AUTO-GENERATED DOCUMENTATION AND METHOD
   /**
-   * Creates a tag template.
+   * Creates a tag template. The user should enable the Data Catalog API in the project identified
+   * by the `parent` parameter (see [Data Catalog Resource
+   * Project](/data-catalog/docs/concepts/resource-project) for more information).
    *
    * <p>Sample code:
    *
@@ -916,8 +1414,8 @@ public final UnaryCallable<CreateTagTemplateRequest, TagTemplate> createTagTempl
    * }
    * </code></pre>
    *
-   * @param name Required. The name of the tag template. For example,
-   *     "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}".
+   * @param name Required. The name of the tag template. Example:
+   *     <p>&#42; projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
    */
   public final TagTemplate getTagTemplate(String name) {
@@ -975,7 +1473,9 @@ public final UnaryCallable<GetTagTemplateRequest, TagTemplate> getTagTemplateCal
   /**
    * Updates a tag template. This method cannot be used to update the fields of a template. The tag
    * template fields are represented as separate resources and should be updated using their own
-   * create/update/delete methods.
+   * create/update/delete methods. The user should enable the Data Catalog API in the project
+   * identified by the `tag_template.name` parameter (see [Data Catalog Resource Project]
+   * (/data-catalog/docs/concepts/resource-project) for more information).
    *
    * <p>Sample code:
    *
@@ -990,8 +1490,8 @@ public final UnaryCallable<GetTagTemplateRequest, TagTemplate> getTagTemplateCal
    * @param tagTemplate Required. The template to update.
    * @param updateMask Optional. The field mask specifies the parts of the template to overwrite.
    *     <p>Allowed fields:
-   *     <p>&#42; display_name
-   *     <p>If update_mask is omitted, all of the allowed fields above will be updated.
+   *     <p>&#42; `display_name`
+   *     <p>If absent or empty, all of the allowed fields above will be updated.
    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
    */
   public final TagTemplate updateTagTemplate(TagTemplate tagTemplate, FieldMask updateMask) {
@@ -1008,7 +1508,9 @@ public final TagTemplate updateTagTemplate(TagTemplate tagTemplate, FieldMask up
   /**
    * Updates a tag template. This method cannot be used to update the fields of a template. The tag
    * template fields are represented as separate resources and should be updated using their own
-   * create/update/delete methods.
+   * create/update/delete methods. The user should enable the Data Catalog API in the project
+   * identified by the `tag_template.name` parameter (see [Data Catalog Resource Project]
+   * (/data-catalog/docs/concepts/resource-project) for more information).
    *
    * <p>Sample code:
    *
@@ -1033,7 +1535,9 @@ public final TagTemplate updateTagTemplate(UpdateTagTemplateRequest request) {
   /**
    * Updates a tag template. This method cannot be used to update the fields of a template. The tag
    * template fields are represented as separate resources and should be updated using their own
-   * create/update/delete methods.
+   * create/update/delete methods. The user should enable the Data Catalog API in the project
+   * identified by the `tag_template.name` parameter (see [Data Catalog Resource Project]
+   * (/data-catalog/docs/concepts/resource-project) for more information).
    *
    * <p>Sample code:
    *
@@ -1055,7 +1559,9 @@ public final UnaryCallable<UpdateTagTemplateRequest, TagTemplate> updateTagTempl
 
   // AUTO-GENERATED DOCUMENTATION AND METHOD
   /**
-   * Deletes a tag template and all tags using the template.
+   * Deletes a tag template and all tags using the template. The user should enable the Data Catalog
+   * API in the project identified by the `name` parameter (see [Data Catalog Resource Project]
+   * (/data-catalog/docs/concepts/resource-project) for more information).
    *
    * <p>Sample code:
    *
@@ -1067,11 +1573,11 @@ public final UnaryCallable<UpdateTagTemplateRequest, TagTemplate> updateTagTempl
    * }
    * </code></pre>
    *
-   * @param name Required. The name of the tag template to delete. For example,
-   *     "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}".
-   * @param force Required. Currently, this field must always be set to
-   *     &lt;code&gt;true&lt;/code&gt;. This confirms the deletion of any possible tags using this
-   *     template. &lt;code&gt;force = false&lt;/code&gt; will be supported in the future.
+   * @param name Required. The name of the tag template to delete. Example:
+   *     <p>&#42; projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
+   * @param force Required. Currently, this field must always be set to `true`. This confirms the
+   *     deletion of any possible tags using this template. `force = false` will be supported in the
+   *     future.
    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
    */
   public final void deleteTagTemplate(String name, boolean force) {
@@ -1083,7 +1589,9 @@ public final void deleteTagTemplate(String name, boolean force) {
 
   // AUTO-GENERATED DOCUMENTATION AND METHOD
   /**
-   * Deletes a tag template and all tags using the template.
+   * Deletes a tag template and all tags using the template. The user should enable the Data Catalog
+   * API in the project identified by the `name` parameter (see [Data Catalog Resource Project]
+   * (/data-catalog/docs/concepts/resource-project) for more information).
    *
    * <p>Sample code:
    *
@@ -1108,7 +1616,9 @@ public final void deleteTagTemplate(DeleteTagTemplateRequest request) {
 
   // AUTO-GENERATED DOCUMENTATION AND METHOD
   /**
-   * Deletes a tag template and all tags using the template.
+   * Deletes a tag template and all tags using the template. The user should enable the Data Catalog
+   * API in the project identified by the `name` parameter (see [Data Catalog Resource Project]
+   * (/data-catalog/docs/concepts/resource-project) for more information).
    *
    * <p>Sample code:
    *
@@ -1132,7 +1642,9 @@ public final UnaryCallable<DeleteTagTemplateRequest, Empty> deleteTagTemplateCal
 
   // AUTO-GENERATED DOCUMENTATION AND METHOD
   /**
-   * Creates a field in a tag template.
+   * Creates a field in a tag template. The user should enable the Data Catalog API in the project
+   * identified by the `parent` parameter (see [Data Catalog Resource
+   * Project](/data-catalog/docs/concepts/resource-project) for more information).
    *
    * <p>Sample code:
    *
@@ -1146,12 +1658,12 @@ public final UnaryCallable<DeleteTagTemplateRequest, Empty> deleteTagTemplateCal
    * </code></pre>
    *
    * @param parent Required. The name of the project this template is in. Example:
-   *     "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}". Note that this
-   *     TagTemplateField may not actually be stored in the location in this name.
-   * @param tagTemplateFieldId Required. The id of the tag template field to create. Field ids can
+   *     <p>&#42; projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
+   *     <p>Note that this TagTemplateField may not actually be stored in the location in this name.
+   * @param tagTemplateFieldId Required. The ID of the tag template field to create. Field ids can
    *     contain letters (both uppercase and lowercase), numbers (0-9), underscores (_) and dashes
-   *     (-). Field ids must be at least 1 character long and at most 128 characters long. Field ids
-   *     must also be unique to their template.
+   *     (-). Field IDs must be at least 1 character long and at most 128 characters long. Field IDs
+   *     must also be unique within their template.
    * @param tagTemplateField Required. The tag template field to create.
    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
    */
@@ -1169,7 +1681,9 @@ public final TagTemplateField createTagTemplateField(
 
   // AUTO-GENERATED DOCUMENTATION AND METHOD
   /**
-   * Creates a field in a tag template.
+   * Creates a field in a tag template. The user should enable the Data Catalog API in the project
+   * identified by the `parent` parameter (see [Data Catalog Resource
+   * Project](/data-catalog/docs/concepts/resource-project) for more information).
    *
    * <p>Sample code:
    *
@@ -1196,7 +1710,9 @@ public final TagTemplateField createTagTemplateField(CreateTagTemplateFieldReque
 
   // AUTO-GENERATED DOCUMENTATION AND METHOD
   /**
-   * Creates a field in a tag template.
+   * Creates a field in a tag template. The user should enable the Data Catalog API in the project
+   * identified by the `parent` parameter (see [Data Catalog Resource
+   * Project](/data-catalog/docs/concepts/resource-project) for more information).
    *
    * <p>Sample code:
    *
@@ -1223,7 +1739,10 @@ public final TagTemplateField createTagTemplateField(CreateTagTemplateFieldReque
 
   // AUTO-GENERATED DOCUMENTATION AND METHOD
   /**
-   * Updates a field in a tag template. This method cannot be used to update the field type.
+   * Updates a field in a tag template. This method cannot be used to update the field type. The
+   * user should enable the Data Catalog API in the project identified by the `name` parameter (see
+   * [Data Catalog Resource Project] (/data-catalog/docs/concepts/resource-project) for more
+   * information).
    *
    * <p>Sample code:
    *
@@ -1236,13 +1755,14 @@ public final TagTemplateField createTagTemplateField(CreateTagTemplateFieldReque
    * }
    * </code></pre>
    *
-   * @param name Required. The name of the tag template field. For example,
-   *     "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}".
+   * @param name Required. The name of the tag template field. Example:
+   *     <p>&#42;
+   *     projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}
    * @param tagTemplateField Required. The template to update.
-   * @param updateMask Optional. The field mask specifies the parts of the template to overwrite.
+   * @param updateMask Optional. The field mask specifies the parts of the template to be updated.
    *     Allowed fields:
-   *     <p>&#42; display_name &#42; type.enum_type
-   *     <p>If update_mask is omitted, all of the allowed fields above will be updated.
+   *     <p>&#42; `display_name` &#42; `type.enum_type`
+   *     <p>If `update_mask` is not set or empty, all of the allowed fields above will be updated.
    *     <p>When updating an enum type, the provided values will be merged with the existing values.
    *     Therefore, enum values can only be added, existing enum values cannot be deleted nor
    *     renamed.
@@ -1262,7 +1782,10 @@ public final TagTemplateField updateTagTemplateField(
 
   // AUTO-GENERATED DOCUMENTATION AND METHOD
   /**
-   * Updates a field in a tag template. This method cannot be used to update the field type.
+   * Updates a field in a tag template. This method cannot be used to update the field type. The
+   * user should enable the Data Catalog API in the project identified by the `name` parameter (see
+   * [Data Catalog Resource Project] (/data-catalog/docs/concepts/resource-project) for more
+   * information).
    *
    * <p>Sample code:
    *
@@ -1287,7 +1810,10 @@ public final TagTemplateField updateTagTemplateField(UpdateTagTemplateFieldReque
 
   // AUTO-GENERATED DOCUMENTATION AND METHOD
   /**
-   * Updates a field in a tag template. This method cannot be used to update the field type.
+   * Updates a field in a tag template. This method cannot be used to update the field type. The
+   * user should enable the Data Catalog API in the project identified by the `name` parameter (see
+   * [Data Catalog Resource Project] (/data-catalog/docs/concepts/resource-project) for more
+   * information).
    *
    * <p>Sample code:
    *
@@ -1312,7 +1838,9 @@ public final TagTemplateField updateTagTemplateField(UpdateTagTemplateFieldReque
 
   // AUTO-GENERATED DOCUMENTATION AND METHOD
   /**
-   * Renames a field in a tag template.
+   * Renames a field in a tag template. The user should enable the Data Catalog API in the project
+   * identified by the `name` parameter (see [Data Catalog Resource
+   * Project](/data-catalog/docs/concepts/resource-project) for more information).
    *
    * <p>Sample code:
    *
@@ -1324,10 +1852,11 @@ public final TagTemplateField updateTagTemplateField(UpdateTagTemplateFieldReque
    * }
    * </code></pre>
    *
-   * @param name Required. The name of the tag template. For example,
-   *     "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}".
+   * @param name Required. The name of the tag template. Example:
+   *     <p>&#42;
+   *     projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}
    * @param newTagTemplateFieldId Required. The new ID of this tag template field. For example,
-   *     "my_new_field".
+   *     `my_new_field`.
    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
    */
   public final TagTemplateField renameTagTemplateField(String name, String newTagTemplateFieldId) {
@@ -1342,7 +1871,9 @@ public final TagTemplateField renameTagTemplateField(String name, String newTagT
 
   // AUTO-GENERATED DOCUMENTATION AND METHOD
   /**
-   * Renames a field in a tag template.
+   * Renames a field in a tag template. The user should enable the Data Catalog API in the project
+   * identified by the `name` parameter (see [Data Catalog Resource
+   * Project](/data-catalog/docs/concepts/resource-project) for more information).
    *
    * <p>Sample code:
    *
@@ -1367,7 +1898,9 @@ public final TagTemplateField renameTagTemplateField(RenameTagTemplateFieldReque
 
   // AUTO-GENERATED DOCUMENTATION AND METHOD
   /**
-   * Renames a field in a tag template.
+   * Renames a field in a tag template. The user should enable the Data Catalog API in the project
+   * identified by the `name` parameter (see [Data Catalog Resource
+   * Project](/data-catalog/docs/concepts/resource-project) for more information).
    *
    * <p>Sample code:
    *
@@ -1392,7 +1925,9 @@ public final TagTemplateField renameTagTemplateField(RenameTagTemplateFieldReque
 
   // AUTO-GENERATED DOCUMENTATION AND METHOD
   /**
-   * Deletes a field in a tag template and all uses of that field.
+   * Deletes a field in a tag template and all uses of that field. The user should enable the Data
+   * Catalog API in the project identified by the `name` parameter (see [Data Catalog Resource
+   * Project] (/data-catalog/docs/concepts/resource-project) for more information).
    *
    * <p>Sample code:
    *
@@ -1404,11 +1939,12 @@ public final TagTemplateField renameTagTemplateField(RenameTagTemplateFieldReque
    * }
    * </code></pre>
    *
-   * @param name Required. The name of the tag template field to delete. For example,
-   *     "projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}".
-   * @param force Required. Currently, this field must always be set to
-   *     &lt;code&gt;true&lt;/code&gt;. This confirms the deletion of this field from any tags using
-   *     this field. &lt;code&gt;force = false&lt;/code&gt; will be supported in the future.
+   * @param name Required. The name of the tag template field to delete. Example:
+   *     <p>&#42;
+   *     projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}
+   * @param force Required. Currently, this field must always be set to `true`. This confirms the
+   *     deletion of this field from any tags using this field. `force = false` will be supported in
+   *     the future.
    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
    */
   public final void deleteTagTemplateField(String name, boolean force) {
@@ -1420,7 +1956,9 @@ public final void deleteTagTemplateField(String name, boolean force) {
 
   // AUTO-GENERATED DOCUMENTATION AND METHOD
   /**
-   * Deletes a field in a tag template and all uses of that field.
+   * Deletes a field in a tag template and all uses of that field. The user should enable the Data
+   * Catalog API in the project identified by the `name` parameter (see [Data Catalog Resource
+   * Project] (/data-catalog/docs/concepts/resource-project) for more information).
    *
    * <p>Sample code:
    *
@@ -1445,7 +1983,9 @@ public final void deleteTagTemplateField(DeleteTagTemplateFieldRequest request)
 
   // AUTO-GENERATED DOCUMENTATION AND METHOD
   /**
-   * Deletes a field in a tag template and all uses of that field.
+   * Deletes a field in a tag template and all uses of that field. The user should enable the Data
+   * Catalog API in the project identified by the `name` parameter (see [Data Catalog Resource
+   * Project] (/data-catalog/docs/concepts/resource-project) for more information).
    *
    * <p>Sample code:
    *
@@ -1470,7 +2010,12 @@ public final void deleteTagTemplateField(DeleteTagTemplateFieldRequest request)
 
   // AUTO-GENERATED DOCUMENTATION AND METHOD
   /**
-   * Creates a tag on an [Entry][google.cloud.datacatalog.v1beta1.Entry].
+   * Creates a tag on an [Entry][google.cloud.datacatalog.v1beta1.Entry]. Note: The project
+   * identified by the `parent` parameter for the
+   * [tag](/data-catalog/docs/reference/rest/v1beta1/projects.locations.entryGroups.entries.tags/create#path-parameters)
+   * and the [tag
+   * template](/data-catalog/docs/reference/rest/v1beta1/projects.locations.tagTemplates/create#path-parameters)
+   * used to create the tag must be from the same organization.
    *
    * <p>Sample code:
    *
@@ -1483,9 +2028,10 @@ public final void deleteTagTemplateField(DeleteTagTemplateFieldRequest request)
    * </code></pre>
    *
    * @param parent Required. The name of the resource to attach this tag to. Tags can be attached to
-   *     Entries. (example:
-   *     "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}").
-   *     Note that this Tag and its child resources may not actually be stored in the location in
+   *     Entries. Example:
+   *     <p>&#42;
+   *     projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
+   *     <p>Note that this Tag and its child resources may not actually be stored in the location in
    *     this name.
    * @param tag Required. The tag to create.
    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
@@ -1498,7 +2044,12 @@ public final Tag createTag(String parent, Tag tag) {
 
   // AUTO-GENERATED DOCUMENTATION AND METHOD
   /**
-   * Creates a tag on an [Entry][google.cloud.datacatalog.v1beta1.Entry].
+   * Creates a tag on an [Entry][google.cloud.datacatalog.v1beta1.Entry]. Note: The project
+   * identified by the `parent` parameter for the
+   * [tag](/data-catalog/docs/reference/rest/v1beta1/projects.locations.entryGroups.entries.tags/create#path-parameters)
+   * and the [tag
+   * template](/data-catalog/docs/reference/rest/v1beta1/projects.locations.tagTemplates/create#path-parameters)
+   * used to create the tag must be from the same organization.
    *
    * <p>Sample code:
    *
@@ -1523,7 +2074,12 @@ public final Tag createTag(CreateTagRequest request) {
 
   // AUTO-GENERATED DOCUMENTATION AND METHOD
   /**
-   * Creates a tag on an [Entry][google.cloud.datacatalog.v1beta1.Entry].
+   * Creates a tag on an [Entry][google.cloud.datacatalog.v1beta1.Entry]. Note: The project
+   * identified by the `parent` parameter for the
+   * [tag](/data-catalog/docs/reference/rest/v1beta1/projects.locations.entryGroups.entries.tags/create#path-parameters)
+   * and the [tag
+   * template](/data-catalog/docs/reference/rest/v1beta1/projects.locations.tagTemplates/create#path-parameters)
+   * used to create the tag must be from the same organization.
    *
    * <p>Sample code:
    *
@@ -1629,8 +2185,9 @@ public final UnaryCallable<UpdateTagRequest, Tag> updateTagCallable() {
    * }
    * </code></pre>
    *
-   * @param name Required. The name of the tag to delete. For example,
-   *     "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}".
+   * @param name Required. The name of the tag to delete. Example:
+   *     <p>&#42;
+   *     projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}
    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
    */
   public final void deleteTag(String name) {
@@ -1792,12 +2349,13 @@ public final UnaryCallable<ListTagsRequest, ListTagsResponse> listTagsCallable()
   // AUTO-GENERATED DOCUMENTATION AND METHOD
   /**
    * Sets the access control policy for a resource. Replaces any existing policy. Supported
-   * resources are: - Tag templates. Note, this method cannot be used to manage policies for
-   * BigQuery, Cloud Pub/Sub and any external Google Cloud Platform resources synced to Cloud Data
-   * Catalog.
+   * resources are: - Tag templates. - Entries. - Entry groups. Note, this method cannot be used to
+   * manage policies for BigQuery, Cloud Pub/Sub and any external Google Cloud Platform resources
+   * synced to Cloud Data Catalog.
    *
-   * <p>Callers must have following Google IAM permission `datacatalog.tagTemplates.setIamPolicy` to
-   * set policies on tag templates.
+   * <p>Callers must have following Google IAM permission - `datacatalog.tagTemplates.setIamPolicy`
+   * to set policies on tag templates. - `datacatalog.entries.setIamPolicy` to set policies on
+   * entries. - `datacatalog.entryGroups.setIamPolicy` to set policies on entry groups.
    *
    * <p>Sample code:
    *
@@ -1826,12 +2384,13 @@ public final Policy setIamPolicy(String resource, Policy policy) {
   // AUTO-GENERATED DOCUMENTATION AND METHOD
   /**
    * Sets the access control policy for a resource. Replaces any existing policy. Supported
-   * resources are: - Tag templates. Note, this method cannot be used to manage policies for
-   * BigQuery, Cloud Pub/Sub and any external Google Cloud Platform resources synced to Cloud Data
-   * Catalog.
+   * resources are: - Tag templates. - Entries. - Entry groups. Note, this method cannot be used to
+   * manage policies for BigQuery, Cloud Pub/Sub and any external Google Cloud Platform resources
+   * synced to Cloud Data Catalog.
    *
-   * <p>Callers must have following Google IAM permission `datacatalog.tagTemplates.setIamPolicy` to
-   * set policies on tag templates.
+   * <p>Callers must have following Google IAM permission - `datacatalog.tagTemplates.setIamPolicy`
+   * to set policies on tag templates. - `datacatalog.entries.setIamPolicy` to set policies on
+   * entries. - `datacatalog.entryGroups.setIamPolicy` to set policies on entry groups.
    *
    * <p>Sample code:
    *
@@ -1857,12 +2416,13 @@ public final Policy setIamPolicy(SetIamPolicyRequest request) {
   // AUTO-GENERATED DOCUMENTATION AND METHOD
   /**
    * Sets the access control policy for a resource. Replaces any existing policy. Supported
-   * resources are: - Tag templates. Note, this method cannot be used to manage policies for
-   * BigQuery, Cloud Pub/Sub and any external Google Cloud Platform resources synced to Cloud Data
-   * Catalog.
+   * resources are: - Tag templates. - Entries. - Entry groups. Note, this method cannot be used to
+   * manage policies for BigQuery, Cloud Pub/Sub and any external Google Cloud Platform resources
+   * synced to Cloud Data Catalog.
    *
-   * <p>Callers must have following Google IAM permission `datacatalog.tagTemplates.setIamPolicy` to
-   * set policies on tag templates.
+   * <p>Callers must have following Google IAM permission - `datacatalog.tagTemplates.setIamPolicy`
+   * to set policies on tag templates. - `datacatalog.entries.setIamPolicy` to set policies on
+   * entries. - `datacatalog.entryGroups.setIamPolicy` to set policies on entry groups.
    *
    * <p>Sample code:
    *
@@ -1890,29 +2450,34 @@ public final UnaryCallable<SetIamPolicyRequest, Policy> setIamPolicyCallable() {
    * does not exist. An empty policy is returned if the resource exists but does not have a policy
    * set on it.
    *
-   * <p>Supported resources are: - Tag templates. Note, this method cannot be used to manage
-   * policies for BigQuery, Cloud Pub/Sub and any external Google Cloud Platform resources synced to
-   * Cloud Data Catalog.
+   * <p>Supported resources are: - Tag templates. - Entries. - Entry groups. Note, this method
+   * cannot be used to manage policies for BigQuery, Cloud Pub/Sub and any external Google Cloud
+   * Platform resources synced to Cloud Data Catalog.
    *
-   * <p>Callers must have following Google IAM permission `datacatalog.tagTemplates.getIamPolicy` to
-   * get policies on tag templates.
+   * <p>Callers must have following Google IAM permission - `datacatalog.tagTemplates.getIamPolicy`
+   * to get policies on tag templates. - `datacatalog.entries.getIamPolicy` to get policies on
+   * entries. - `datacatalog.entryGroups.getIamPolicy` to get policies on entry groups.
    *
    * <p>Sample code:
    *
    * <pre><code>
    * try (DataCatalogClient dataCatalogClient = DataCatalogClient.create()) {
    *   String formattedResource = DataCatalogClient.formatTagTemplateName("[PROJECT]", "[LOCATION]", "[TAG_TEMPLATE]");
-   *   Policy response = dataCatalogClient.getIamPolicy(formattedResource);
+   *   GetPolicyOptions options = GetPolicyOptions.newBuilder().build();
+   *   Policy response = dataCatalogClient.getIamPolicy(formattedResource, options);
    * }
    * </code></pre>
    *
    * @param resource REQUIRED: The resource for which the policy is being requested. See the
    *     operation documentation for the appropriate value for this field.
+   * @param options OPTIONAL: A `GetPolicyOptions` object for specifying options to `GetIamPolicy`.
+   *     This field is only used by Cloud IAM.
    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
    */
-  public final Policy getIamPolicy(String resource) {
+  public final Policy getIamPolicy(String resource, GetPolicyOptions options) {
     TAG_TEMPLATE_PATH_TEMPLATE.validate(resource, "getIamPolicy");
-    GetIamPolicyRequest request = GetIamPolicyRequest.newBuilder().setResource(resource).build();
+    GetIamPolicyRequest request =
+        GetIamPolicyRequest.newBuilder().setResource(resource).setOptions(options).build();
     return getIamPolicy(request);
   }
 
@@ -1922,12 +2487,13 @@ public final Policy getIamPolicy(String resource) {
    * does not exist. An empty policy is returned if the resource exists but does not have a policy
    * set on it.
    *
-   * <p>Supported resources are: - Tag templates. Note, this method cannot be used to manage
-   * policies for BigQuery, Cloud Pub/Sub and any external Google Cloud Platform resources synced to
-   * Cloud Data Catalog.
+   * <p>Supported resources are: - Tag templates. - Entries. - Entry groups. Note, this method
+   * cannot be used to manage policies for BigQuery, Cloud Pub/Sub and any external Google Cloud
+   * Platform resources synced to Cloud Data Catalog.
    *
-   * <p>Callers must have following Google IAM permission `datacatalog.tagTemplates.getIamPolicy` to
-   * get policies on tag templates.
+   * <p>Callers must have following Google IAM permission - `datacatalog.tagTemplates.getIamPolicy`
+   * to get policies on tag templates. - `datacatalog.entries.getIamPolicy` to get policies on
+   * entries. - `datacatalog.entryGroups.getIamPolicy` to get policies on entry groups.
    *
    * <p>Sample code:
    *
@@ -1954,12 +2520,13 @@ public final Policy getIamPolicy(GetIamPolicyRequest request) {
    * does not exist. An empty policy is returned if the resource exists but does not have a policy
    * set on it.
    *
-   * <p>Supported resources are: - Tag templates. Note, this method cannot be used to manage
-   * policies for BigQuery, Cloud Pub/Sub and any external Google Cloud Platform resources synced to
-   * Cloud Data Catalog.
+   * <p>Supported resources are: - Tag templates. - Entries. - Entry groups. Note, this method
+   * cannot be used to manage policies for BigQuery, Cloud Pub/Sub and any external Google Cloud
+   * Platform resources synced to Cloud Data Catalog.
    *
-   * <p>Callers must have following Google IAM permission `datacatalog.tagTemplates.getIamPolicy` to
-   * get policies on tag templates.
+   * <p>Callers must have following Google IAM permission - `datacatalog.tagTemplates.getIamPolicy`
+   * to get policies on tag templates. - `datacatalog.entries.getIamPolicy` to get policies on
+   * entries. - `datacatalog.entryGroups.getIamPolicy` to get policies on entry groups.
    *
    * <p>Sample code:
    *
@@ -1984,9 +2551,9 @@ public final UnaryCallable<GetIamPolicyRequest, Policy> getIamPolicyCallable() {
    * Returns the caller's permissions on a resource. If the resource does not exist, an empty set of
    * permissions is returned (We don't return a `NOT_FOUND` error).
    *
-   * <p>Supported resource are: - tag templates. Note, this method cannot be used to manage policies
-   * for BigQuery, Cloud Pub/Sub and any external Google Cloud Platform resources synced to Cloud
-   * Data Catalog.
+   * <p>Supported resources are: - Tag templates. - Entries. - Entry groups. Note, this method
+   * cannot be used to manage policies for BigQuery, Cloud Pub/Sub and any external Google Cloud
+   * Platform resources synced to Cloud Data Catalog.
    *
    * <p>A caller is not required to have Google IAM permission to make this request.
    *
@@ -2023,9 +2590,9 @@ public final TestIamPermissionsResponse testIamPermissions(
    * Returns the caller's permissions on a resource. If the resource does not exist, an empty set of
    * permissions is returned (We don't return a `NOT_FOUND` error).
    *
-   * <p>Supported resource are: - tag templates. Note, this method cannot be used to manage policies
-   * for BigQuery, Cloud Pub/Sub and any external Google Cloud Platform resources synced to Cloud
-   * Data Catalog.
+   * <p>Supported resources are: - Tag templates. - Entries. - Entry groups. Note, this method
+   * cannot be used to manage policies for BigQuery, Cloud Pub/Sub and any external Google Cloud
+   * Platform resources synced to Cloud Data Catalog.
    *
    * <p>A caller is not required to have Google IAM permission to make this request.
    *
@@ -2055,9 +2622,9 @@ public final TestIamPermissionsResponse testIamPermissions(TestIamPermissionsReq
    * Returns the caller's permissions on a resource. If the resource does not exist, an empty set of
    * permissions is returned (We don't return a `NOT_FOUND` error).
    *
-   * <p>Supported resource are: - tag templates. Note, this method cannot be used to manage policies
-   * for BigQuery, Cloud Pub/Sub and any external Google Cloud Platform resources synced to Cloud
-   * Data Catalog.
+   * <p>Supported resources are: - Tag templates. - Entries. - Entry groups. Note, this method
+   * cannot be used to manage policies for BigQuery, Cloud Pub/Sub and any external Google Cloud
+   * Platform resources synced to Cloud Data Catalog.
    *
    * <p>A caller is not required to have Google IAM permission to make this request.
    *
diff --git a/google-cloud-clients/google-cloud-datacatalog/src/main/java/com/google/cloud/datacatalog/v1beta1/DataCatalogSettings.java b/google-cloud-clients/google-cloud-datacatalog/src/main/java/com/google/cloud/datacatalog/v1beta1/DataCatalogSettings.java
index 300e167ea37e..95567f6cccbb 100644
--- a/google-cloud-clients/google-cloud-datacatalog/src/main/java/com/google/cloud/datacatalog/v1beta1/DataCatalogSettings.java
+++ b/google-cloud-clients/google-cloud-datacatalog/src/main/java/com/google/cloud/datacatalog/v1beta1/DataCatalogSettings.java
@@ -29,13 +29,19 @@
 import com.google.api.gax.rpc.PagedCallSettings;
 import com.google.api.gax.rpc.TransportChannelProvider;
 import com.google.api.gax.rpc.UnaryCallSettings;
+import com.google.cloud.datacatalog.CreateEntryGroupRequest;
+import com.google.cloud.datacatalog.CreateEntryRequest;
 import com.google.cloud.datacatalog.CreateTagRequest;
 import com.google.cloud.datacatalog.CreateTagTemplateFieldRequest;
 import com.google.cloud.datacatalog.CreateTagTemplateRequest;
+import com.google.cloud.datacatalog.DeleteEntryGroupRequest;
+import com.google.cloud.datacatalog.DeleteEntryRequest;
 import com.google.cloud.datacatalog.DeleteTagRequest;
 import com.google.cloud.datacatalog.DeleteTagTemplateFieldRequest;
 import com.google.cloud.datacatalog.DeleteTagTemplateRequest;
 import com.google.cloud.datacatalog.Entry;
+import com.google.cloud.datacatalog.EntryGroup;
+import com.google.cloud.datacatalog.GetEntryGroupRequest;
 import com.google.cloud.datacatalog.GetEntryRequest;
 import com.google.cloud.datacatalog.GetTagTemplateRequest;
 import com.google.cloud.datacatalog.ListTagsRequest;
@@ -77,13 +83,13 @@
  * <p>The builder of this class is recursive, so contained classes are themselves builders. When
  * build() is called, the tree of builders is called to create the complete settings object.
  *
- * <p>For example, to set the total timeout of updateEntry to 30 seconds:
+ * <p>For example, to set the total timeout of createEntryGroup to 30 seconds:
  *
  * <pre>
  * <code>
  * DataCatalogSettings.Builder dataCatalogSettingsBuilder =
  *     DataCatalogSettings.newBuilder();
- * dataCatalogSettingsBuilder.updateEntrySettings().getRetrySettings().toBuilder()
+ * dataCatalogSettingsBuilder.createEntryGroupSettings().getRetrySettings().toBuilder()
  *     .setTotalTimeout(Duration.ofSeconds(30));
  * DataCatalogSettings dataCatalogSettings = dataCatalogSettingsBuilder.build();
  * </code>
@@ -98,11 +104,36 @@ public class DataCatalogSettings extends ClientSettings<DataCatalogSettings> {
     return ((DataCatalogStubSettings) getStubSettings()).searchCatalogSettings();
   }
 
+  /** Returns the object with the settings used for calls to createEntryGroup. */
+  public UnaryCallSettings<CreateEntryGroupRequest, EntryGroup> createEntryGroupSettings() {
+    return ((DataCatalogStubSettings) getStubSettings()).createEntryGroupSettings();
+  }
+
+  /** Returns the object with the settings used for calls to getEntryGroup. */
+  public UnaryCallSettings<GetEntryGroupRequest, EntryGroup> getEntryGroupSettings() {
+    return ((DataCatalogStubSettings) getStubSettings()).getEntryGroupSettings();
+  }
+
+  /** Returns the object with the settings used for calls to deleteEntryGroup. */
+  public UnaryCallSettings<DeleteEntryGroupRequest, Empty> deleteEntryGroupSettings() {
+    return ((DataCatalogStubSettings) getStubSettings()).deleteEntryGroupSettings();
+  }
+
+  /** Returns the object with the settings used for calls to createEntry. */
+  public UnaryCallSettings<CreateEntryRequest, Entry> createEntrySettings() {
+    return ((DataCatalogStubSettings) getStubSettings()).createEntrySettings();
+  }
+
   /** Returns the object with the settings used for calls to updateEntry. */
   public UnaryCallSettings<UpdateEntryRequest, Entry> updateEntrySettings() {
     return ((DataCatalogStubSettings) getStubSettings()).updateEntrySettings();
   }
 
+  /** Returns the object with the settings used for calls to deleteEntry. */
+  public UnaryCallSettings<DeleteEntryRequest, Empty> deleteEntrySettings() {
+    return ((DataCatalogStubSettings) getStubSettings()).deleteEntrySettings();
+  }
+
   /** Returns the object with the settings used for calls to getEntry. */
   public UnaryCallSettings<GetEntryRequest, Entry> getEntrySettings() {
     return ((DataCatalogStubSettings) getStubSettings()).getEntrySettings();
@@ -296,11 +327,37 @@ public Builder applyToAllUnaryMethods(
       return getStubSettingsBuilder().searchCatalogSettings();
     }
 
+    /** Returns the builder for the settings used for calls to createEntryGroup. */
+    public UnaryCallSettings.Builder<CreateEntryGroupRequest, EntryGroup>
+        createEntryGroupSettings() {
+      return getStubSettingsBuilder().createEntryGroupSettings();
+    }
+
+    /** Returns the builder for the settings used for calls to getEntryGroup. */
+    public UnaryCallSettings.Builder<GetEntryGroupRequest, EntryGroup> getEntryGroupSettings() {
+      return getStubSettingsBuilder().getEntryGroupSettings();
+    }
+
+    /** Returns the builder for the settings used for calls to deleteEntryGroup. */
+    public UnaryCallSettings.Builder<DeleteEntryGroupRequest, Empty> deleteEntryGroupSettings() {
+      return getStubSettingsBuilder().deleteEntryGroupSettings();
+    }
+
+    /** Returns the builder for the settings used for calls to createEntry. */
+    public UnaryCallSettings.Builder<CreateEntryRequest, Entry> createEntrySettings() {
+      return getStubSettingsBuilder().createEntrySettings();
+    }
+
     /** Returns the builder for the settings used for calls to updateEntry. */
     public UnaryCallSettings.Builder<UpdateEntryRequest, Entry> updateEntrySettings() {
       return getStubSettingsBuilder().updateEntrySettings();
     }
 
+    /** Returns the builder for the settings used for calls to deleteEntry. */
+    public UnaryCallSettings.Builder<DeleteEntryRequest, Empty> deleteEntrySettings() {
+      return getStubSettingsBuilder().deleteEntrySettings();
+    }
+
     /** Returns the builder for the settings used for calls to getEntry. */
     public UnaryCallSettings.Builder<GetEntryRequest, Entry> getEntrySettings() {
       return getStubSettingsBuilder().getEntrySettings();
diff --git a/google-cloud-clients/google-cloud-datacatalog/src/main/java/com/google/cloud/datacatalog/v1beta1/package-info.java b/google-cloud-clients/google-cloud-datacatalog/src/main/java/com/google/cloud/datacatalog/v1beta1/package-info.java
index 1901fb683173..4f9360d9cc7a 100644
--- a/google-cloud-clients/google-cloud-datacatalog/src/main/java/com/google/cloud/datacatalog/v1beta1/package-info.java
+++ b/google-cloud-clients/google-cloud-datacatalog/src/main/java/com/google/cloud/datacatalog/v1beta1/package-info.java
@@ -29,9 +29,10 @@
  * <pre>
  * <code>
  * try (DataCatalogClient dataCatalogClient = DataCatalogClient.create()) {
- *   Entry entry = Entry.newBuilder().build();
- *   FieldMask updateMask = FieldMask.newBuilder().build();
- *   Entry response = dataCatalogClient.updateEntry(entry, updateMask);
+ *   String formattedParent = DataCatalogClient.formatLocationName("[PROJECT]", "[LOCATION]");
+ *   String entryGroupId = "";
+ *   EntryGroup entryGroup = EntryGroup.newBuilder().build();
+ *   EntryGroup response = dataCatalogClient.createEntryGroup(formattedParent, entryGroupId, entryGroup);
  * }
  * </code>
  * </pre>
diff --git a/google-cloud-clients/google-cloud-datacatalog/src/main/java/com/google/cloud/datacatalog/v1beta1/stub/DataCatalogStub.java b/google-cloud-clients/google-cloud-datacatalog/src/main/java/com/google/cloud/datacatalog/v1beta1/stub/DataCatalogStub.java
index cf3cb1e7825c..bd52a2f3a637 100644
--- a/google-cloud-clients/google-cloud-datacatalog/src/main/java/com/google/cloud/datacatalog/v1beta1/stub/DataCatalogStub.java
+++ b/google-cloud-clients/google-cloud-datacatalog/src/main/java/com/google/cloud/datacatalog/v1beta1/stub/DataCatalogStub.java
@@ -21,13 +21,19 @@
 import com.google.api.core.BetaApi;
 import com.google.api.gax.core.BackgroundResource;
 import com.google.api.gax.rpc.UnaryCallable;
+import com.google.cloud.datacatalog.CreateEntryGroupRequest;
+import com.google.cloud.datacatalog.CreateEntryRequest;
 import com.google.cloud.datacatalog.CreateTagRequest;
 import com.google.cloud.datacatalog.CreateTagTemplateFieldRequest;
 import com.google.cloud.datacatalog.CreateTagTemplateRequest;
+import com.google.cloud.datacatalog.DeleteEntryGroupRequest;
+import com.google.cloud.datacatalog.DeleteEntryRequest;
 import com.google.cloud.datacatalog.DeleteTagRequest;
 import com.google.cloud.datacatalog.DeleteTagTemplateFieldRequest;
 import com.google.cloud.datacatalog.DeleteTagTemplateRequest;
 import com.google.cloud.datacatalog.Entry;
+import com.google.cloud.datacatalog.EntryGroup;
+import com.google.cloud.datacatalog.GetEntryGroupRequest;
 import com.google.cloud.datacatalog.GetEntryRequest;
 import com.google.cloud.datacatalog.GetTagTemplateRequest;
 import com.google.cloud.datacatalog.ListTagsRequest;
@@ -70,10 +76,30 @@ public UnaryCallable<SearchCatalogRequest, SearchCatalogResponse> searchCatalogC
     throw new UnsupportedOperationException("Not implemented: searchCatalogCallable()");
   }
 
+  public UnaryCallable<CreateEntryGroupRequest, EntryGroup> createEntryGroupCallable() {
+    throw new UnsupportedOperationException("Not implemented: createEntryGroupCallable()");
+  }
+
+  public UnaryCallable<GetEntryGroupRequest, EntryGroup> getEntryGroupCallable() {
+    throw new UnsupportedOperationException("Not implemented: getEntryGroupCallable()");
+  }
+
+  public UnaryCallable<DeleteEntryGroupRequest, Empty> deleteEntryGroupCallable() {
+    throw new UnsupportedOperationException("Not implemented: deleteEntryGroupCallable()");
+  }
+
+  public UnaryCallable<CreateEntryRequest, Entry> createEntryCallable() {
+    throw new UnsupportedOperationException("Not implemented: createEntryCallable()");
+  }
+
   public UnaryCallable<UpdateEntryRequest, Entry> updateEntryCallable() {
     throw new UnsupportedOperationException("Not implemented: updateEntryCallable()");
   }
 
+  public UnaryCallable<DeleteEntryRequest, Empty> deleteEntryCallable() {
+    throw new UnsupportedOperationException("Not implemented: deleteEntryCallable()");
+  }
+
   public UnaryCallable<GetEntryRequest, Entry> getEntryCallable() {
     throw new UnsupportedOperationException("Not implemented: getEntryCallable()");
   }
diff --git a/google-cloud-clients/google-cloud-datacatalog/src/main/java/com/google/cloud/datacatalog/v1beta1/stub/DataCatalogStubSettings.java b/google-cloud-clients/google-cloud-datacatalog/src/main/java/com/google/cloud/datacatalog/v1beta1/stub/DataCatalogStubSettings.java
index 33aa49cb6df1..3f2b02788028 100644
--- a/google-cloud-clients/google-cloud-datacatalog/src/main/java/com/google/cloud/datacatalog/v1beta1/stub/DataCatalogStubSettings.java
+++ b/google-cloud-clients/google-cloud-datacatalog/src/main/java/com/google/cloud/datacatalog/v1beta1/stub/DataCatalogStubSettings.java
@@ -40,13 +40,19 @@
 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.datacatalog.CreateEntryGroupRequest;
+import com.google.cloud.datacatalog.CreateEntryRequest;
 import com.google.cloud.datacatalog.CreateTagRequest;
 import com.google.cloud.datacatalog.CreateTagTemplateFieldRequest;
 import com.google.cloud.datacatalog.CreateTagTemplateRequest;
+import com.google.cloud.datacatalog.DeleteEntryGroupRequest;
+import com.google.cloud.datacatalog.DeleteEntryRequest;
 import com.google.cloud.datacatalog.DeleteTagRequest;
 import com.google.cloud.datacatalog.DeleteTagTemplateFieldRequest;
 import com.google.cloud.datacatalog.DeleteTagTemplateRequest;
 import com.google.cloud.datacatalog.Entry;
+import com.google.cloud.datacatalog.EntryGroup;
+import com.google.cloud.datacatalog.GetEntryGroupRequest;
 import com.google.cloud.datacatalog.GetEntryRequest;
 import com.google.cloud.datacatalog.GetTagTemplateRequest;
 import com.google.cloud.datacatalog.ListTagsRequest;
@@ -93,13 +99,13 @@
  * <p>The builder of this class is recursive, so contained classes are themselves builders. When
  * build() is called, the tree of builders is called to create the complete settings object.
  *
- * <p>For example, to set the total timeout of updateEntry to 30 seconds:
+ * <p>For example, to set the total timeout of createEntryGroup to 30 seconds:
  *
  * <pre>
  * <code>
  * DataCatalogStubSettings.Builder dataCatalogSettingsBuilder =
  *     DataCatalogStubSettings.newBuilder();
- * dataCatalogSettingsBuilder.updateEntrySettings().getRetrySettings().toBuilder()
+ * dataCatalogSettingsBuilder.createEntryGroupSettings().getRetrySettings().toBuilder()
  *     .setTotalTimeout(Duration.ofSeconds(30));
  * DataCatalogStubSettings dataCatalogSettings = dataCatalogSettingsBuilder.build();
  * </code>
@@ -115,7 +121,12 @@ public class DataCatalogStubSettings extends StubSettings<DataCatalogStubSetting
   private final PagedCallSettings<
           SearchCatalogRequest, SearchCatalogResponse, SearchCatalogPagedResponse>
       searchCatalogSettings;
+  private final UnaryCallSettings<CreateEntryGroupRequest, EntryGroup> createEntryGroupSettings;
+  private final UnaryCallSettings<GetEntryGroupRequest, EntryGroup> getEntryGroupSettings;
+  private final UnaryCallSettings<DeleteEntryGroupRequest, Empty> deleteEntryGroupSettings;
+  private final UnaryCallSettings<CreateEntryRequest, Entry> createEntrySettings;
   private final UnaryCallSettings<UpdateEntryRequest, Entry> updateEntrySettings;
+  private final UnaryCallSettings<DeleteEntryRequest, Empty> deleteEntrySettings;
   private final UnaryCallSettings<GetEntryRequest, Entry> getEntrySettings;
   private final UnaryCallSettings<LookupEntryRequest, Entry> lookupEntrySettings;
   private final UnaryCallSettings<CreateTagTemplateRequest, TagTemplate> createTagTemplateSettings;
@@ -146,11 +157,36 @@ public class DataCatalogStubSettings extends StubSettings<DataCatalogStubSetting
     return searchCatalogSettings;
   }
 
+  /** Returns the object with the settings used for calls to createEntryGroup. */
+  public UnaryCallSettings<CreateEntryGroupRequest, EntryGroup> createEntryGroupSettings() {
+    return createEntryGroupSettings;
+  }
+
+  /** Returns the object with the settings used for calls to getEntryGroup. */
+  public UnaryCallSettings<GetEntryGroupRequest, EntryGroup> getEntryGroupSettings() {
+    return getEntryGroupSettings;
+  }
+
+  /** Returns the object with the settings used for calls to deleteEntryGroup. */
+  public UnaryCallSettings<DeleteEntryGroupRequest, Empty> deleteEntryGroupSettings() {
+    return deleteEntryGroupSettings;
+  }
+
+  /** Returns the object with the settings used for calls to createEntry. */
+  public UnaryCallSettings<CreateEntryRequest, Entry> createEntrySettings() {
+    return createEntrySettings;
+  }
+
   /** Returns the object with the settings used for calls to updateEntry. */
   public UnaryCallSettings<UpdateEntryRequest, Entry> updateEntrySettings() {
     return updateEntrySettings;
   }
 
+  /** Returns the object with the settings used for calls to deleteEntry. */
+  public UnaryCallSettings<DeleteEntryRequest, Empty> deleteEntrySettings() {
+    return deleteEntrySettings;
+  }
+
   /** Returns the object with the settings used for calls to getEntry. */
   public UnaryCallSettings<GetEntryRequest, Entry> getEntrySettings() {
     return getEntrySettings;
@@ -311,7 +347,12 @@ protected DataCatalogStubSettings(Builder settingsBuilder) throws IOException {
     super(settingsBuilder);
 
     searchCatalogSettings = settingsBuilder.searchCatalogSettings().build();
+    createEntryGroupSettings = settingsBuilder.createEntryGroupSettings().build();
+    getEntryGroupSettings = settingsBuilder.getEntryGroupSettings().build();
+    deleteEntryGroupSettings = settingsBuilder.deleteEntryGroupSettings().build();
+    createEntrySettings = settingsBuilder.createEntrySettings().build();
     updateEntrySettings = settingsBuilder.updateEntrySettings().build();
+    deleteEntrySettings = settingsBuilder.deleteEntrySettings().build();
     getEntrySettings = settingsBuilder.getEntrySettings().build();
     lookupEntrySettings = settingsBuilder.lookupEntrySettings().build();
     createTagTemplateSettings = settingsBuilder.createTagTemplateSettings().build();
@@ -446,7 +487,14 @@ public static class Builder extends StubSettings.Builder<DataCatalogStubSettings
     private final PagedCallSettings.Builder<
             SearchCatalogRequest, SearchCatalogResponse, SearchCatalogPagedResponse>
         searchCatalogSettings;
+    private final UnaryCallSettings.Builder<CreateEntryGroupRequest, EntryGroup>
+        createEntryGroupSettings;
+    private final UnaryCallSettings.Builder<GetEntryGroupRequest, EntryGroup> getEntryGroupSettings;
+    private final UnaryCallSettings.Builder<DeleteEntryGroupRequest, Empty>
+        deleteEntryGroupSettings;
+    private final UnaryCallSettings.Builder<CreateEntryRequest, Entry> createEntrySettings;
     private final UnaryCallSettings.Builder<UpdateEntryRequest, Entry> updateEntrySettings;
+    private final UnaryCallSettings.Builder<DeleteEntryRequest, Empty> deleteEntrySettings;
     private final UnaryCallSettings.Builder<GetEntryRequest, Entry> getEntrySettings;
     private final UnaryCallSettings.Builder<LookupEntryRequest, Entry> lookupEntrySettings;
     private final UnaryCallSettings.Builder<CreateTagTemplateRequest, TagTemplate>
@@ -519,8 +567,18 @@ protected Builder(ClientContext clientContext) {
 
       searchCatalogSettings = PagedCallSettings.newBuilder(SEARCH_CATALOG_PAGE_STR_FACT);
 
+      createEntryGroupSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
+
+      getEntryGroupSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
+
+      deleteEntryGroupSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
+
+      createEntrySettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
+
       updateEntrySettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
 
+      deleteEntrySettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
+
       getEntrySettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
 
       lookupEntrySettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
@@ -558,7 +616,12 @@ protected Builder(ClientContext clientContext) {
       unaryMethodSettingsBuilders =
           ImmutableList.<UnaryCallSettings.Builder<?, ?>>of(
               searchCatalogSettings,
+              createEntryGroupSettings,
+              getEntryGroupSettings,
+              deleteEntryGroupSettings,
+              createEntrySettings,
               updateEntrySettings,
+              deleteEntrySettings,
               getEntrySettings,
               lookupEntrySettings,
               createTagTemplateSettings,
@@ -596,11 +659,36 @@ private static Builder initDefaults(Builder builder) {
           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("non_idempotent"))
           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"));
 
+      builder
+          .createEntryGroupSettings()
+          .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("non_idempotent"))
+          .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"));
+
+      builder
+          .getEntryGroupSettings()
+          .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("idempotent"))
+          .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"));
+
+      builder
+          .deleteEntryGroupSettings()
+          .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("idempotent"))
+          .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"));
+
+      builder
+          .createEntrySettings()
+          .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("non_idempotent"))
+          .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"));
+
       builder
           .updateEntrySettings()
           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("non_idempotent"))
           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"));
 
+      builder
+          .deleteEntrySettings()
+          .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("idempotent"))
+          .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"));
+
       builder
           .getEntrySettings()
           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("idempotent"))
@@ -693,7 +781,12 @@ protected Builder(DataCatalogStubSettings settings) {
       super(settings);
 
       searchCatalogSettings = settings.searchCatalogSettings.toBuilder();
+      createEntryGroupSettings = settings.createEntryGroupSettings.toBuilder();
+      getEntryGroupSettings = settings.getEntryGroupSettings.toBuilder();
+      deleteEntryGroupSettings = settings.deleteEntryGroupSettings.toBuilder();
+      createEntrySettings = settings.createEntrySettings.toBuilder();
       updateEntrySettings = settings.updateEntrySettings.toBuilder();
+      deleteEntrySettings = settings.deleteEntrySettings.toBuilder();
       getEntrySettings = settings.getEntrySettings.toBuilder();
       lookupEntrySettings = settings.lookupEntrySettings.toBuilder();
       createTagTemplateSettings = settings.createTagTemplateSettings.toBuilder();
@@ -715,7 +808,12 @@ protected Builder(DataCatalogStubSettings settings) {
       unaryMethodSettingsBuilders =
           ImmutableList.<UnaryCallSettings.Builder<?, ?>>of(
               searchCatalogSettings,
+              createEntryGroupSettings,
+              getEntryGroupSettings,
+              deleteEntryGroupSettings,
+              createEntrySettings,
               updateEntrySettings,
+              deleteEntrySettings,
               getEntrySettings,
               lookupEntrySettings,
               createTagTemplateSettings,
@@ -758,11 +856,37 @@ public Builder applyToAllUnaryMethods(
       return searchCatalogSettings;
     }
 
+    /** Returns the builder for the settings used for calls to createEntryGroup. */
+    public UnaryCallSettings.Builder<CreateEntryGroupRequest, EntryGroup>
+        createEntryGroupSettings() {
+      return createEntryGroupSettings;
+    }
+
+    /** Returns the builder for the settings used for calls to getEntryGroup. */
+    public UnaryCallSettings.Builder<GetEntryGroupRequest, EntryGroup> getEntryGroupSettings() {
+      return getEntryGroupSettings;
+    }
+
+    /** Returns the builder for the settings used for calls to deleteEntryGroup. */
+    public UnaryCallSettings.Builder<DeleteEntryGroupRequest, Empty> deleteEntryGroupSettings() {
+      return deleteEntryGroupSettings;
+    }
+
+    /** Returns the builder for the settings used for calls to createEntry. */
+    public UnaryCallSettings.Builder<CreateEntryRequest, Entry> createEntrySettings() {
+      return createEntrySettings;
+    }
+
     /** Returns the builder for the settings used for calls to updateEntry. */
     public UnaryCallSettings.Builder<UpdateEntryRequest, Entry> updateEntrySettings() {
       return updateEntrySettings;
     }
 
+    /** Returns the builder for the settings used for calls to deleteEntry. */
+    public UnaryCallSettings.Builder<DeleteEntryRequest, Empty> deleteEntrySettings() {
+      return deleteEntrySettings;
+    }
+
     /** Returns the builder for the settings used for calls to getEntry. */
     public UnaryCallSettings.Builder<GetEntryRequest, Entry> getEntrySettings() {
       return getEntrySettings;
diff --git a/google-cloud-clients/google-cloud-datacatalog/src/main/java/com/google/cloud/datacatalog/v1beta1/stub/GrpcDataCatalogStub.java b/google-cloud-clients/google-cloud-datacatalog/src/main/java/com/google/cloud/datacatalog/v1beta1/stub/GrpcDataCatalogStub.java
index 88aee9fff1e1..d4fee021810a 100644
--- a/google-cloud-clients/google-cloud-datacatalog/src/main/java/com/google/cloud/datacatalog/v1beta1/stub/GrpcDataCatalogStub.java
+++ b/google-cloud-clients/google-cloud-datacatalog/src/main/java/com/google/cloud/datacatalog/v1beta1/stub/GrpcDataCatalogStub.java
@@ -26,13 +26,19 @@
 import com.google.api.gax.rpc.ClientContext;
 import com.google.api.gax.rpc.RequestParamsExtractor;
 import com.google.api.gax.rpc.UnaryCallable;
+import com.google.cloud.datacatalog.CreateEntryGroupRequest;
+import com.google.cloud.datacatalog.CreateEntryRequest;
 import com.google.cloud.datacatalog.CreateTagRequest;
 import com.google.cloud.datacatalog.CreateTagTemplateFieldRequest;
 import com.google.cloud.datacatalog.CreateTagTemplateRequest;
+import com.google.cloud.datacatalog.DeleteEntryGroupRequest;
+import com.google.cloud.datacatalog.DeleteEntryRequest;
 import com.google.cloud.datacatalog.DeleteTagRequest;
 import com.google.cloud.datacatalog.DeleteTagTemplateFieldRequest;
 import com.google.cloud.datacatalog.DeleteTagTemplateRequest;
 import com.google.cloud.datacatalog.Entry;
+import com.google.cloud.datacatalog.EntryGroup;
+import com.google.cloud.datacatalog.GetEntryGroupRequest;
 import com.google.cloud.datacatalog.GetEntryRequest;
 import com.google.cloud.datacatalog.GetTagTemplateRequest;
 import com.google.cloud.datacatalog.ListTagsRequest;
@@ -82,6 +88,40 @@ public class GrpcDataCatalogStub extends DataCatalogStub {
               .setResponseMarshaller(
                   ProtoUtils.marshaller(SearchCatalogResponse.getDefaultInstance()))
               .build();
+  private static final MethodDescriptor<CreateEntryGroupRequest, EntryGroup>
+      createEntryGroupMethodDescriptor =
+          MethodDescriptor.<CreateEntryGroupRequest, EntryGroup>newBuilder()
+              .setType(MethodDescriptor.MethodType.UNARY)
+              .setFullMethodName("google.cloud.datacatalog.v1beta1.DataCatalog/CreateEntryGroup")
+              .setRequestMarshaller(
+                  ProtoUtils.marshaller(CreateEntryGroupRequest.getDefaultInstance()))
+              .setResponseMarshaller(ProtoUtils.marshaller(EntryGroup.getDefaultInstance()))
+              .build();
+  private static final MethodDescriptor<GetEntryGroupRequest, EntryGroup>
+      getEntryGroupMethodDescriptor =
+          MethodDescriptor.<GetEntryGroupRequest, EntryGroup>newBuilder()
+              .setType(MethodDescriptor.MethodType.UNARY)
+              .setFullMethodName("google.cloud.datacatalog.v1beta1.DataCatalog/GetEntryGroup")
+              .setRequestMarshaller(
+                  ProtoUtils.marshaller(GetEntryGroupRequest.getDefaultInstance()))
+              .setResponseMarshaller(ProtoUtils.marshaller(EntryGroup.getDefaultInstance()))
+              .build();
+  private static final MethodDescriptor<DeleteEntryGroupRequest, Empty>
+      deleteEntryGroupMethodDescriptor =
+          MethodDescriptor.<DeleteEntryGroupRequest, Empty>newBuilder()
+              .setType(MethodDescriptor.MethodType.UNARY)
+              .setFullMethodName("google.cloud.datacatalog.v1beta1.DataCatalog/DeleteEntryGroup")
+              .setRequestMarshaller(
+                  ProtoUtils.marshaller(DeleteEntryGroupRequest.getDefaultInstance()))
+              .setResponseMarshaller(ProtoUtils.marshaller(Empty.getDefaultInstance()))
+              .build();
+  private static final MethodDescriptor<CreateEntryRequest, Entry> createEntryMethodDescriptor =
+      MethodDescriptor.<CreateEntryRequest, Entry>newBuilder()
+          .setType(MethodDescriptor.MethodType.UNARY)
+          .setFullMethodName("google.cloud.datacatalog.v1beta1.DataCatalog/CreateEntry")
+          .setRequestMarshaller(ProtoUtils.marshaller(CreateEntryRequest.getDefaultInstance()))
+          .setResponseMarshaller(ProtoUtils.marshaller(Entry.getDefaultInstance()))
+          .build();
   private static final MethodDescriptor<UpdateEntryRequest, Entry> updateEntryMethodDescriptor =
       MethodDescriptor.<UpdateEntryRequest, Entry>newBuilder()
           .setType(MethodDescriptor.MethodType.UNARY)
@@ -89,6 +129,13 @@ public class GrpcDataCatalogStub extends DataCatalogStub {
           .setRequestMarshaller(ProtoUtils.marshaller(UpdateEntryRequest.getDefaultInstance()))
           .setResponseMarshaller(ProtoUtils.marshaller(Entry.getDefaultInstance()))
           .build();
+  private static final MethodDescriptor<DeleteEntryRequest, Empty> deleteEntryMethodDescriptor =
+      MethodDescriptor.<DeleteEntryRequest, Empty>newBuilder()
+          .setType(MethodDescriptor.MethodType.UNARY)
+          .setFullMethodName("google.cloud.datacatalog.v1beta1.DataCatalog/DeleteEntry")
+          .setRequestMarshaller(ProtoUtils.marshaller(DeleteEntryRequest.getDefaultInstance()))
+          .setResponseMarshaller(ProtoUtils.marshaller(Empty.getDefaultInstance()))
+          .build();
   private static final MethodDescriptor<GetEntryRequest, Entry> getEntryMethodDescriptor =
       MethodDescriptor.<GetEntryRequest, Entry>newBuilder()
           .setType(MethodDescriptor.MethodType.UNARY)
@@ -238,7 +285,12 @@ public class GrpcDataCatalogStub extends DataCatalogStub {
   private final UnaryCallable<SearchCatalogRequest, SearchCatalogResponse> searchCatalogCallable;
   private final UnaryCallable<SearchCatalogRequest, SearchCatalogPagedResponse>
       searchCatalogPagedCallable;
+  private final UnaryCallable<CreateEntryGroupRequest, EntryGroup> createEntryGroupCallable;
+  private final UnaryCallable<GetEntryGroupRequest, EntryGroup> getEntryGroupCallable;
+  private final UnaryCallable<DeleteEntryGroupRequest, Empty> deleteEntryGroupCallable;
+  private final UnaryCallable<CreateEntryRequest, Entry> createEntryCallable;
   private final UnaryCallable<UpdateEntryRequest, Entry> updateEntryCallable;
+  private final UnaryCallable<DeleteEntryRequest, Empty> deleteEntryCallable;
   private final UnaryCallable<GetEntryRequest, Entry> getEntryCallable;
   private final UnaryCallable<LookupEntryRequest, Entry> lookupEntryCallable;
   private final UnaryCallable<CreateTagTemplateRequest, TagTemplate> createTagTemplateCallable;
@@ -305,6 +357,58 @@ protected GrpcDataCatalogStub(
         GrpcCallSettings.<SearchCatalogRequest, SearchCatalogResponse>newBuilder()
             .setMethodDescriptor(searchCatalogMethodDescriptor)
             .build();
+    GrpcCallSettings<CreateEntryGroupRequest, EntryGroup> createEntryGroupTransportSettings =
+        GrpcCallSettings.<CreateEntryGroupRequest, EntryGroup>newBuilder()
+            .setMethodDescriptor(createEntryGroupMethodDescriptor)
+            .setParamsExtractor(
+                new RequestParamsExtractor<CreateEntryGroupRequest>() {
+                  @Override
+                  public Map<String, String> extract(CreateEntryGroupRequest request) {
+                    ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
+                    params.put("parent", String.valueOf(request.getParent()));
+                    return params.build();
+                  }
+                })
+            .build();
+    GrpcCallSettings<GetEntryGroupRequest, EntryGroup> getEntryGroupTransportSettings =
+        GrpcCallSettings.<GetEntryGroupRequest, EntryGroup>newBuilder()
+            .setMethodDescriptor(getEntryGroupMethodDescriptor)
+            .setParamsExtractor(
+                new RequestParamsExtractor<GetEntryGroupRequest>() {
+                  @Override
+                  public Map<String, String> extract(GetEntryGroupRequest request) {
+                    ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
+                    params.put("name", String.valueOf(request.getName()));
+                    return params.build();
+                  }
+                })
+            .build();
+    GrpcCallSettings<DeleteEntryGroupRequest, Empty> deleteEntryGroupTransportSettings =
+        GrpcCallSettings.<DeleteEntryGroupRequest, Empty>newBuilder()
+            .setMethodDescriptor(deleteEntryGroupMethodDescriptor)
+            .setParamsExtractor(
+                new RequestParamsExtractor<DeleteEntryGroupRequest>() {
+                  @Override
+                  public Map<String, String> extract(DeleteEntryGroupRequest request) {
+                    ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
+                    params.put("name", String.valueOf(request.getName()));
+                    return params.build();
+                  }
+                })
+            .build();
+    GrpcCallSettings<CreateEntryRequest, Entry> createEntryTransportSettings =
+        GrpcCallSettings.<CreateEntryRequest, Entry>newBuilder()
+            .setMethodDescriptor(createEntryMethodDescriptor)
+            .setParamsExtractor(
+                new RequestParamsExtractor<CreateEntryRequest>() {
+                  @Override
+                  public Map<String, String> extract(CreateEntryRequest request) {
+                    ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
+                    params.put("parent", String.valueOf(request.getParent()));
+                    return params.build();
+                  }
+                })
+            .build();
     GrpcCallSettings<UpdateEntryRequest, Entry> updateEntryTransportSettings =
         GrpcCallSettings.<UpdateEntryRequest, Entry>newBuilder()
             .setMethodDescriptor(updateEntryMethodDescriptor)
@@ -318,6 +422,19 @@ public Map<String, String> extract(UpdateEntryRequest request) {
                   }
                 })
             .build();
+    GrpcCallSettings<DeleteEntryRequest, Empty> deleteEntryTransportSettings =
+        GrpcCallSettings.<DeleteEntryRequest, Empty>newBuilder()
+            .setMethodDescriptor(deleteEntryMethodDescriptor)
+            .setParamsExtractor(
+                new RequestParamsExtractor<DeleteEntryRequest>() {
+                  @Override
+                  public Map<String, String> extract(DeleteEntryRequest request) {
+                    ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
+                    params.put("name", String.valueOf(request.getName()));
+                    return params.build();
+                  }
+                })
+            .build();
     GrpcCallSettings<GetEntryRequest, Entry> getEntryTransportSettings =
         GrpcCallSettings.<GetEntryRequest, Entry>newBuilder()
             .setMethodDescriptor(getEntryMethodDescriptor)
@@ -542,9 +659,24 @@ public Map<String, String> extract(TestIamPermissionsRequest request) {
     this.searchCatalogPagedCallable =
         callableFactory.createPagedCallable(
             searchCatalogTransportSettings, settings.searchCatalogSettings(), clientContext);
+    this.createEntryGroupCallable =
+        callableFactory.createUnaryCallable(
+            createEntryGroupTransportSettings, settings.createEntryGroupSettings(), clientContext);
+    this.getEntryGroupCallable =
+        callableFactory.createUnaryCallable(
+            getEntryGroupTransportSettings, settings.getEntryGroupSettings(), clientContext);
+    this.deleteEntryGroupCallable =
+        callableFactory.createUnaryCallable(
+            deleteEntryGroupTransportSettings, settings.deleteEntryGroupSettings(), clientContext);
+    this.createEntryCallable =
+        callableFactory.createUnaryCallable(
+            createEntryTransportSettings, settings.createEntrySettings(), clientContext);
     this.updateEntryCallable =
         callableFactory.createUnaryCallable(
             updateEntryTransportSettings, settings.updateEntrySettings(), clientContext);
+    this.deleteEntryCallable =
+        callableFactory.createUnaryCallable(
+            deleteEntryTransportSettings, settings.deleteEntrySettings(), clientContext);
     this.getEntryCallable =
         callableFactory.createUnaryCallable(
             getEntryTransportSettings, settings.getEntrySettings(), clientContext);
@@ -628,10 +760,30 @@ public UnaryCallable<SearchCatalogRequest, SearchCatalogResponse> searchCatalogC
     return searchCatalogCallable;
   }
 
+  public UnaryCallable<CreateEntryGroupRequest, EntryGroup> createEntryGroupCallable() {
+    return createEntryGroupCallable;
+  }
+
+  public UnaryCallable<GetEntryGroupRequest, EntryGroup> getEntryGroupCallable() {
+    return getEntryGroupCallable;
+  }
+
+  public UnaryCallable<DeleteEntryGroupRequest, Empty> deleteEntryGroupCallable() {
+    return deleteEntryGroupCallable;
+  }
+
+  public UnaryCallable<CreateEntryRequest, Entry> createEntryCallable() {
+    return createEntryCallable;
+  }
+
   public UnaryCallable<UpdateEntryRequest, Entry> updateEntryCallable() {
     return updateEntryCallable;
   }
 
+  public UnaryCallable<DeleteEntryRequest, Empty> deleteEntryCallable() {
+    return deleteEntryCallable;
+  }
+
   public UnaryCallable<GetEntryRequest, Entry> getEntryCallable() {
     return getEntryCallable;
   }
diff --git a/google-cloud-clients/google-cloud-datacatalog/src/test/java/com/google/cloud/datacatalog/v1beta1/DataCatalogClientTest.java b/google-cloud-clients/google-cloud-datacatalog/src/test/java/com/google/cloud/datacatalog/v1beta1/DataCatalogClientTest.java
index 06d601594708..923da22c78a6 100644
--- a/google-cloud-clients/google-cloud-datacatalog/src/test/java/com/google/cloud/datacatalog/v1beta1/DataCatalogClientTest.java
+++ b/google-cloud-clients/google-cloud-datacatalog/src/test/java/com/google/cloud/datacatalog/v1beta1/DataCatalogClientTest.java
@@ -25,13 +25,19 @@
 import com.google.api.gax.grpc.testing.MockServiceHelper;
 import com.google.api.gax.rpc.ApiClientHeaderProvider;
 import com.google.api.gax.rpc.InvalidArgumentException;
+import com.google.cloud.datacatalog.CreateEntryGroupRequest;
+import com.google.cloud.datacatalog.CreateEntryRequest;
 import com.google.cloud.datacatalog.CreateTagRequest;
 import com.google.cloud.datacatalog.CreateTagTemplateFieldRequest;
 import com.google.cloud.datacatalog.CreateTagTemplateRequest;
+import com.google.cloud.datacatalog.DeleteEntryGroupRequest;
+import com.google.cloud.datacatalog.DeleteEntryRequest;
 import com.google.cloud.datacatalog.DeleteTagRequest;
 import com.google.cloud.datacatalog.DeleteTagTemplateFieldRequest;
 import com.google.cloud.datacatalog.DeleteTagTemplateRequest;
 import com.google.cloud.datacatalog.Entry;
+import com.google.cloud.datacatalog.EntryGroup;
+import com.google.cloud.datacatalog.GetEntryGroupRequest;
 import com.google.cloud.datacatalog.GetEntryRequest;
 import com.google.cloud.datacatalog.GetTagTemplateRequest;
 import com.google.cloud.datacatalog.ListTagsRequest;
@@ -49,6 +55,7 @@
 import com.google.cloud.datacatalog.UpdateTagTemplateRequest;
 import com.google.common.collect.Lists;
 import com.google.iam.v1.GetIamPolicyRequest;
+import com.google.iam.v1.GetPolicyOptions;
 import com.google.iam.v1.Policy;
 import com.google.iam.v1.SetIamPolicyRequest;
 import com.google.iam.v1.TestIamPermissionsRequest;
@@ -161,6 +168,204 @@ public void searchCatalogExceptionTest() throws Exception {
     }
   }
 
+  @Test
+  @SuppressWarnings("all")
+  public void createEntryGroupTest() {
+    String name = "name3373707";
+    String displayName = "displayName1615086568";
+    String description = "description-1724546052";
+    EntryGroup expectedResponse =
+        EntryGroup.newBuilder()
+            .setName(name)
+            .setDisplayName(displayName)
+            .setDescription(description)
+            .build();
+    mockDataCatalog.addResponse(expectedResponse);
+
+    String formattedParent = DataCatalogClient.formatLocationName("[PROJECT]", "[LOCATION]");
+    String entryGroupId = "entryGroupId-43122680";
+    EntryGroup entryGroup = EntryGroup.newBuilder().build();
+
+    EntryGroup actualResponse = client.createEntryGroup(formattedParent, entryGroupId, entryGroup);
+    Assert.assertEquals(expectedResponse, actualResponse);
+
+    List<AbstractMessage> actualRequests = mockDataCatalog.getRequests();
+    Assert.assertEquals(1, actualRequests.size());
+    CreateEntryGroupRequest actualRequest = (CreateEntryGroupRequest) actualRequests.get(0);
+
+    Assert.assertEquals(formattedParent, actualRequest.getParent());
+    Assert.assertEquals(entryGroupId, actualRequest.getEntryGroupId());
+    Assert.assertEquals(entryGroup, actualRequest.getEntryGroup());
+    Assert.assertTrue(
+        channelProvider.isHeaderSent(
+            ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
+            GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
+  }
+
+  @Test
+  @SuppressWarnings("all")
+  public void createEntryGroupExceptionTest() throws Exception {
+    StatusRuntimeException exception = new StatusRuntimeException(Status.INVALID_ARGUMENT);
+    mockDataCatalog.addException(exception);
+
+    try {
+      String formattedParent = DataCatalogClient.formatLocationName("[PROJECT]", "[LOCATION]");
+      String entryGroupId = "entryGroupId-43122680";
+      EntryGroup entryGroup = EntryGroup.newBuilder().build();
+
+      client.createEntryGroup(formattedParent, entryGroupId, entryGroup);
+      Assert.fail("No exception raised");
+    } catch (InvalidArgumentException e) {
+      // Expected exception
+    }
+  }
+
+  @Test
+  @SuppressWarnings("all")
+  public void getEntryGroupTest() {
+    String name2 = "name2-1052831874";
+    String displayName = "displayName1615086568";
+    String description = "description-1724546052";
+    EntryGroup expectedResponse =
+        EntryGroup.newBuilder()
+            .setName(name2)
+            .setDisplayName(displayName)
+            .setDescription(description)
+            .build();
+    mockDataCatalog.addResponse(expectedResponse);
+
+    String formattedName =
+        DataCatalogClient.formatEntryGroupName("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]");
+    FieldMask readMask = FieldMask.newBuilder().build();
+
+    EntryGroup actualResponse = client.getEntryGroup(formattedName, readMask);
+    Assert.assertEquals(expectedResponse, actualResponse);
+
+    List<AbstractMessage> actualRequests = mockDataCatalog.getRequests();
+    Assert.assertEquals(1, actualRequests.size());
+    GetEntryGroupRequest actualRequest = (GetEntryGroupRequest) actualRequests.get(0);
+
+    Assert.assertEquals(formattedName, actualRequest.getName());
+    Assert.assertEquals(readMask, actualRequest.getReadMask());
+    Assert.assertTrue(
+        channelProvider.isHeaderSent(
+            ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
+            GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
+  }
+
+  @Test
+  @SuppressWarnings("all")
+  public void getEntryGroupExceptionTest() throws Exception {
+    StatusRuntimeException exception = new StatusRuntimeException(Status.INVALID_ARGUMENT);
+    mockDataCatalog.addException(exception);
+
+    try {
+      String formattedName =
+          DataCatalogClient.formatEntryGroupName("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]");
+      FieldMask readMask = FieldMask.newBuilder().build();
+
+      client.getEntryGroup(formattedName, readMask);
+      Assert.fail("No exception raised");
+    } catch (InvalidArgumentException e) {
+      // Expected exception
+    }
+  }
+
+  @Test
+  @SuppressWarnings("all")
+  public void deleteEntryGroupTest() {
+    Empty expectedResponse = Empty.newBuilder().build();
+    mockDataCatalog.addResponse(expectedResponse);
+
+    String formattedName =
+        DataCatalogClient.formatEntryGroupName("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]");
+
+    client.deleteEntryGroup(formattedName);
+
+    List<AbstractMessage> actualRequests = mockDataCatalog.getRequests();
+    Assert.assertEquals(1, actualRequests.size());
+    DeleteEntryGroupRequest actualRequest = (DeleteEntryGroupRequest) actualRequests.get(0);
+
+    Assert.assertEquals(formattedName, actualRequest.getName());
+    Assert.assertTrue(
+        channelProvider.isHeaderSent(
+            ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
+            GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
+  }
+
+  @Test
+  @SuppressWarnings("all")
+  public void deleteEntryGroupExceptionTest() throws Exception {
+    StatusRuntimeException exception = new StatusRuntimeException(Status.INVALID_ARGUMENT);
+    mockDataCatalog.addException(exception);
+
+    try {
+      String formattedName =
+          DataCatalogClient.formatEntryGroupName("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]");
+
+      client.deleteEntryGroup(formattedName);
+      Assert.fail("No exception raised");
+    } catch (InvalidArgumentException e) {
+      // Expected exception
+    }
+  }
+
+  @Test
+  @SuppressWarnings("all")
+  public void createEntryTest() {
+    String name = "name3373707";
+    String linkedResource = "linkedResource1544625012";
+    String displayName = "displayName1615086568";
+    String description = "description-1724546052";
+    Entry expectedResponse =
+        Entry.newBuilder()
+            .setName(name)
+            .setLinkedResource(linkedResource)
+            .setDisplayName(displayName)
+            .setDescription(description)
+            .build();
+    mockDataCatalog.addResponse(expectedResponse);
+
+    String formattedParent =
+        DataCatalogClient.formatEntryGroupName("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]");
+    String entryId = "entryId-2093663224";
+    Entry entry = Entry.newBuilder().build();
+
+    Entry actualResponse = client.createEntry(formattedParent, entryId, entry);
+    Assert.assertEquals(expectedResponse, actualResponse);
+
+    List<AbstractMessage> actualRequests = mockDataCatalog.getRequests();
+    Assert.assertEquals(1, actualRequests.size());
+    CreateEntryRequest actualRequest = (CreateEntryRequest) actualRequests.get(0);
+
+    Assert.assertEquals(formattedParent, actualRequest.getParent());
+    Assert.assertEquals(entryId, actualRequest.getEntryId());
+    Assert.assertEquals(entry, actualRequest.getEntry());
+    Assert.assertTrue(
+        channelProvider.isHeaderSent(
+            ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
+            GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
+  }
+
+  @Test
+  @SuppressWarnings("all")
+  public void createEntryExceptionTest() throws Exception {
+    StatusRuntimeException exception = new StatusRuntimeException(Status.INVALID_ARGUMENT);
+    mockDataCatalog.addException(exception);
+
+    try {
+      String formattedParent =
+          DataCatalogClient.formatEntryGroupName("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]");
+      String entryId = "entryId-2093663224";
+      Entry entry = Entry.newBuilder().build();
+
+      client.createEntry(formattedParent, entryId, entry);
+      Assert.fail("No exception raised");
+    } catch (InvalidArgumentException e) {
+      // Expected exception
+    }
+  }
+
   @Test
   @SuppressWarnings("all")
   public void updateEntryTest() {
@@ -212,6 +417,45 @@ public void updateEntryExceptionTest() throws Exception {
     }
   }
 
+  @Test
+  @SuppressWarnings("all")
+  public void deleteEntryTest() {
+    Empty expectedResponse = Empty.newBuilder().build();
+    mockDataCatalog.addResponse(expectedResponse);
+
+    String formattedName =
+        DataCatalogClient.formatEntryName("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]", "[ENTRY]");
+
+    client.deleteEntry(formattedName);
+
+    List<AbstractMessage> actualRequests = mockDataCatalog.getRequests();
+    Assert.assertEquals(1, actualRequests.size());
+    DeleteEntryRequest actualRequest = (DeleteEntryRequest) actualRequests.get(0);
+
+    Assert.assertEquals(formattedName, actualRequest.getName());
+    Assert.assertTrue(
+        channelProvider.isHeaderSent(
+            ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
+            GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
+  }
+
+  @Test
+  @SuppressWarnings("all")
+  public void deleteEntryExceptionTest() throws Exception {
+    StatusRuntimeException exception = new StatusRuntimeException(Status.INVALID_ARGUMENT);
+    mockDataCatalog.addException(exception);
+
+    try {
+      String formattedName =
+          DataCatalogClient.formatEntryName("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]", "[ENTRY]");
+
+      client.deleteEntry(formattedName);
+      Assert.fail("No exception raised");
+    } catch (InvalidArgumentException e) {
+      // Expected exception
+    }
+  }
+
   @Test
   @SuppressWarnings("all")
   public void getEntryTest() {
@@ -442,9 +686,10 @@ public void deleteTagTemplateExceptionTest() throws Exception {
   @Test
   @SuppressWarnings("all")
   public void createTagTemplateFieldTest() {
+    String name = "name3373707";
     String displayName = "displayName1615086568";
     TagTemplateField expectedResponse =
-        TagTemplateField.newBuilder().setDisplayName(displayName).build();
+        TagTemplateField.newBuilder().setName(name).setDisplayName(displayName).build();
     mockDataCatalog.addResponse(expectedResponse);
 
     String formattedParent =
@@ -492,9 +737,10 @@ public void createTagTemplateFieldExceptionTest() throws Exception {
   @Test
   @SuppressWarnings("all")
   public void updateTagTemplateFieldTest() {
+    String name2 = "name2-1052831874";
     String displayName = "displayName1615086568";
     TagTemplateField expectedResponse =
-        TagTemplateField.newBuilder().setDisplayName(displayName).build();
+        TagTemplateField.newBuilder().setName(name2).setDisplayName(displayName).build();
     mockDataCatalog.addResponse(expectedResponse);
 
     String formattedName =
@@ -542,9 +788,10 @@ public void updateTagTemplateFieldExceptionTest() throws Exception {
   @Test
   @SuppressWarnings("all")
   public void renameTagTemplateFieldTest() {
+    String name2 = "name2-1052831874";
     String displayName = "displayName1615086568";
     TagTemplateField expectedResponse =
-        TagTemplateField.newBuilder().setDisplayName(displayName).build();
+        TagTemplateField.newBuilder().setName(name2).setDisplayName(displayName).build();
     mockDataCatalog.addResponse(expectedResponse);
 
     String formattedName =
@@ -876,8 +1123,9 @@ public void getIamPolicyTest() {
 
     String formattedResource =
         DataCatalogClient.formatTagTemplateName("[PROJECT]", "[LOCATION]", "[TAG_TEMPLATE]");
+    GetPolicyOptions options = GetPolicyOptions.newBuilder().build();
 
-    Policy actualResponse = client.getIamPolicy(formattedResource);
+    Policy actualResponse = client.getIamPolicy(formattedResource, options);
     Assert.assertEquals(expectedResponse, actualResponse);
 
     List<AbstractMessage> actualRequests = mockDataCatalog.getRequests();
@@ -885,6 +1133,7 @@ public void getIamPolicyTest() {
     GetIamPolicyRequest actualRequest = (GetIamPolicyRequest) actualRequests.get(0);
 
     Assert.assertEquals(formattedResource, actualRequest.getResource());
+    Assert.assertEquals(options, actualRequest.getOptions());
     Assert.assertTrue(
         channelProvider.isHeaderSent(
             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
@@ -900,8 +1149,9 @@ public void getIamPolicyExceptionTest() throws Exception {
     try {
       String formattedResource =
           DataCatalogClient.formatTagTemplateName("[PROJECT]", "[LOCATION]", "[TAG_TEMPLATE]");
+      GetPolicyOptions options = GetPolicyOptions.newBuilder().build();
 
-      client.getIamPolicy(formattedResource);
+      client.getIamPolicy(formattedResource, options);
       Assert.fail("No exception raised");
     } catch (InvalidArgumentException e) {
       // Expected exception
diff --git a/google-cloud-clients/google-cloud-datacatalog/src/test/java/com/google/cloud/datacatalog/v1beta1/MockDataCatalogImpl.java b/google-cloud-clients/google-cloud-datacatalog/src/test/java/com/google/cloud/datacatalog/v1beta1/MockDataCatalogImpl.java
index 3e78953bdaf3..21cdaae1f65a 100644
--- a/google-cloud-clients/google-cloud-datacatalog/src/test/java/com/google/cloud/datacatalog/v1beta1/MockDataCatalogImpl.java
+++ b/google-cloud-clients/google-cloud-datacatalog/src/test/java/com/google/cloud/datacatalog/v1beta1/MockDataCatalogImpl.java
@@ -16,14 +16,20 @@
 package com.google.cloud.datacatalog.v1beta1;
 
 import com.google.api.core.BetaApi;
+import com.google.cloud.datacatalog.CreateEntryGroupRequest;
+import com.google.cloud.datacatalog.CreateEntryRequest;
 import com.google.cloud.datacatalog.CreateTagRequest;
 import com.google.cloud.datacatalog.CreateTagTemplateFieldRequest;
 import com.google.cloud.datacatalog.CreateTagTemplateRequest;
 import com.google.cloud.datacatalog.DataCatalogGrpc.DataCatalogImplBase;
+import com.google.cloud.datacatalog.DeleteEntryGroupRequest;
+import com.google.cloud.datacatalog.DeleteEntryRequest;
 import com.google.cloud.datacatalog.DeleteTagRequest;
 import com.google.cloud.datacatalog.DeleteTagTemplateFieldRequest;
 import com.google.cloud.datacatalog.DeleteTagTemplateRequest;
 import com.google.cloud.datacatalog.Entry;
+import com.google.cloud.datacatalog.EntryGroup;
+import com.google.cloud.datacatalog.GetEntryGroupRequest;
 import com.google.cloud.datacatalog.GetEntryRequest;
 import com.google.cloud.datacatalog.GetTagTemplateRequest;
 import com.google.cloud.datacatalog.ListTagsRequest;
@@ -99,6 +105,65 @@ public void searchCatalog(
     }
   }
 
+  @Override
+  public void createEntryGroup(
+      CreateEntryGroupRequest request, StreamObserver<EntryGroup> responseObserver) {
+    Object response = responses.remove();
+    if (response instanceof EntryGroup) {
+      requests.add(request);
+      responseObserver.onNext((EntryGroup) response);
+      responseObserver.onCompleted();
+    } else if (response instanceof Exception) {
+      responseObserver.onError((Exception) response);
+    } else {
+      responseObserver.onError(new IllegalArgumentException("Unrecognized response type"));
+    }
+  }
+
+  @Override
+  public void getEntryGroup(
+      GetEntryGroupRequest request, StreamObserver<EntryGroup> responseObserver) {
+    Object response = responses.remove();
+    if (response instanceof EntryGroup) {
+      requests.add(request);
+      responseObserver.onNext((EntryGroup) response);
+      responseObserver.onCompleted();
+    } else if (response instanceof Exception) {
+      responseObserver.onError((Exception) response);
+    } else {
+      responseObserver.onError(new IllegalArgumentException("Unrecognized response type"));
+    }
+  }
+
+  @Override
+  public void deleteEntryGroup(
+      DeleteEntryGroupRequest request, StreamObserver<Empty> responseObserver) {
+    Object response = responses.remove();
+    if (response instanceof Empty) {
+      requests.add(request);
+      responseObserver.onNext((Empty) response);
+      responseObserver.onCompleted();
+    } else if (response instanceof Exception) {
+      responseObserver.onError((Exception) response);
+    } else {
+      responseObserver.onError(new IllegalArgumentException("Unrecognized response type"));
+    }
+  }
+
+  @Override
+  public void createEntry(CreateEntryRequest request, StreamObserver<Entry> responseObserver) {
+    Object response = responses.remove();
+    if (response instanceof Entry) {
+      requests.add(request);
+      responseObserver.onNext((Entry) response);
+      responseObserver.onCompleted();
+    } else if (response instanceof Exception) {
+      responseObserver.onError((Exception) response);
+    } else {
+      responseObserver.onError(new IllegalArgumentException("Unrecognized response type"));
+    }
+  }
+
   @Override
   public void updateEntry(UpdateEntryRequest request, StreamObserver<Entry> responseObserver) {
     Object response = responses.remove();
@@ -113,6 +178,20 @@ public void updateEntry(UpdateEntryRequest request, StreamObserver<Entry> respon
     }
   }
 
+  @Override
+  public void deleteEntry(DeleteEntryRequest request, StreamObserver<Empty> responseObserver) {
+    Object response = responses.remove();
+    if (response instanceof Empty) {
+      requests.add(request);
+      responseObserver.onNext((Empty) response);
+      responseObserver.onCompleted();
+    } else if (response instanceof Exception) {
+      responseObserver.onError((Exception) response);
+    } else {
+      responseObserver.onError(new IllegalArgumentException("Unrecognized response type"));
+    }
+  }
+
   @Override
   public void getEntry(GetEntryRequest request, StreamObserver<Entry> responseObserver) {
     Object response = responses.remove();
diff --git a/google-cloud-clients/google-cloud-datacatalog/synth.metadata b/google-cloud-clients/google-cloud-datacatalog/synth.metadata
index 488bb04cf782..be5bd90e7d7a 100644
--- a/google-cloud-clients/google-cloud-datacatalog/synth.metadata
+++ b/google-cloud-clients/google-cloud-datacatalog/synth.metadata
@@ -1,19 +1,19 @@
 {
-  "updateTime": "2019-08-02T07:40:30.514618Z",
+  "updateTime": "2019-09-28T07:40:24.686838Z",
   "sources": [
     {
       "generator": {
         "name": "artman",
-        "version": "0.32.0",
-        "dockerImage": "googleapis/artman@sha256:6929f343c400122d85818195b18613330a12a014bffc1e08499550d40571479d"
+        "version": "0.37.1",
+        "dockerImage": "googleapis/artman@sha256:6068f67900a3f0bdece596b97bda8fc70406ca0e137a941f4c81d3217c994a80"
       }
     },
     {
       "git": {
         "name": "googleapis",
         "remote": "https://github.com/googleapis/googleapis.git",
-        "sha": "1b1ef1ca146c2119f077bca5e2b638c6bacb0925",
-        "internalRef": "261214002"
+        "sha": "fcdec366bb4076be75649031706548128a01fc02",
+        "internalRef": "271635926"
       }
     }
   ],
