xref: /aosp_15_r20/external/googleapis/google/cloud/datacatalog/v1beta1/datacatalog.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1// Copyright 2023 Google LLC
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15syntax = "proto3";
16
17package google.cloud.datacatalog.v1beta1;
18
19import "google/api/annotations.proto";
20import "google/api/client.proto";
21import "google/api/field_behavior.proto";
22import "google/api/resource.proto";
23import "google/cloud/datacatalog/v1beta1/common.proto";
24import "google/cloud/datacatalog/v1beta1/gcs_fileset_spec.proto";
25import "google/cloud/datacatalog/v1beta1/schema.proto";
26import "google/cloud/datacatalog/v1beta1/search.proto";
27import "google/cloud/datacatalog/v1beta1/table_spec.proto";
28import "google/cloud/datacatalog/v1beta1/tags.proto";
29import "google/cloud/datacatalog/v1beta1/timestamps.proto";
30import "google/cloud/datacatalog/v1beta1/usage.proto";
31import "google/iam/v1/iam_policy.proto";
32import "google/iam/v1/policy.proto";
33import "google/protobuf/empty.proto";
34import "google/protobuf/field_mask.proto";
35
36option cc_enable_arenas = true;
37option csharp_namespace = "Google.Cloud.DataCatalog.V1Beta1";
38option go_package = "cloud.google.com/go/datacatalog/apiv1beta1/datacatalogpb;datacatalogpb";
39option java_multiple_files = true;
40option java_package = "com.google.cloud.datacatalog.v1beta1";
41option php_namespace = "Google\\Cloud\\DataCatalog\\V1beta1";
42option ruby_package = "Google::Cloud::DataCatalog::V1beta1";
43option (google.api.resource_definition) = {
44  type: "datacatalog.googleapis.com/TagTemplateFieldEnumValue"
45  pattern: "projects/{project}/locations/{location}/tagTemplates/{tag_template}/fields/{tag_template_field_id}/enumValues/{enum_value_display_name}"
46};
47
48// Data Catalog API service allows clients to discover, understand, and manage
49// their data.
50service DataCatalog {
51  option (google.api.default_host) = "datacatalog.googleapis.com";
52  option (google.api.oauth_scopes) =
53      "https://www.googleapis.com/auth/cloud-platform";
54
55  // Searches Data Catalog for multiple resources like entries, tags that
56  // match a query.
57  //
58  // This is a custom method
59  // (https://cloud.google.com/apis/design/custom_methods) and does not return
60  // the complete resource, only the resource identifier and high level
61  // fields. Clients can subsequently call `Get` methods.
62  //
63  // Note that Data Catalog search queries do not guarantee full recall. Query
64  // results that match your query may not be returned, even in subsequent
65  // result pages. Also note that results returned (and not returned) can vary
66  // across repeated search queries.
67  //
68  // See [Data Catalog Search
69  // Syntax](https://cloud.google.com/data-catalog/docs/how-to/search-reference)
70  // for more information.
71  rpc SearchCatalog(SearchCatalogRequest) returns (SearchCatalogResponse) {
72    option (google.api.http) = {
73      post: "/v1beta1/catalog:search"
74      body: "*"
75    };
76    option (google.api.method_signature) = "scope,query";
77  }
78
79  // A maximum of 10,000 entry groups may be created per organization across all
80  // locations.
81  //
82  // Users should enable the Data Catalog API in the project identified by
83  // the `parent` parameter (see [Data Catalog Resource Project]
84  // (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for
85  // more information).
86  rpc CreateEntryGroup(CreateEntryGroupRequest) returns (EntryGroup) {
87    option (google.api.http) = {
88      post: "/v1beta1/{parent=projects/*/locations/*}/entryGroups"
89      body: "entry_group"
90    };
91    option (google.api.method_signature) = "parent,entry_group_id,entry_group";
92  }
93
94  // Updates an EntryGroup. The user should enable the Data Catalog API in the
95  // project identified by the `entry_group.name` parameter (see [Data Catalog
96  // Resource Project]
97  // (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for
98  // more information).
99  rpc UpdateEntryGroup(UpdateEntryGroupRequest) returns (EntryGroup) {
100    option (google.api.http) = {
101      patch: "/v1beta1/{entry_group.name=projects/*/locations/*/entryGroups/*}"
102      body: "entry_group"
103    };
104    option (google.api.method_signature) = "entry_group";
105    option (google.api.method_signature) = "entry_group,update_mask";
106  }
107
108  // Gets an EntryGroup.
109  rpc GetEntryGroup(GetEntryGroupRequest) returns (EntryGroup) {
110    option (google.api.http) = {
111      get: "/v1beta1/{name=projects/*/locations/*/entryGroups/*}"
112    };
113    option (google.api.method_signature) = "name";
114    option (google.api.method_signature) = "name,read_mask";
115  }
116
117  // Deletes an EntryGroup. Only entry groups that do not contain entries can be
118  // deleted. Users should enable the Data Catalog API in the project
119  // identified by the `name` parameter (see [Data Catalog Resource Project]
120  // (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for
121  // more information).
122  rpc DeleteEntryGroup(DeleteEntryGroupRequest)
123      returns (google.protobuf.Empty) {
124    option (google.api.http) = {
125      delete: "/v1beta1/{name=projects/*/locations/*/entryGroups/*}"
126    };
127    option (google.api.method_signature) = "name";
128  }
129
130  // Lists entry groups.
131  rpc ListEntryGroups(ListEntryGroupsRequest)
132      returns (ListEntryGroupsResponse) {
133    option (google.api.http) = {
134      get: "/v1beta1/{parent=projects/*/locations/*}/entryGroups"
135    };
136    option (google.api.method_signature) = "parent";
137  }
138
139  // Creates an entry. Only entries of 'FILESET' type or user-specified type can
140  // be created.
141  //
142  // Users should enable the Data Catalog API in the project identified by
143  // the `parent` parameter (see [Data Catalog Resource Project]
144  // (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for
145  // more information).
146  //
147  // A maximum of 100,000 entries may be created per entry group.
148  rpc CreateEntry(CreateEntryRequest) returns (Entry) {
149    option (google.api.http) = {
150      post: "/v1beta1/{parent=projects/*/locations/*/entryGroups/*}/entries"
151      body: "entry"
152    };
153    option (google.api.method_signature) = "parent,entry_id,entry";
154  }
155
156  // Updates an existing entry.
157  // Users should enable the Data Catalog API in the project identified by
158  // the `entry.name` parameter (see [Data Catalog Resource Project]
159  // (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for
160  // more information).
161  rpc UpdateEntry(UpdateEntryRequest) returns (Entry) {
162    option (google.api.http) = {
163      patch: "/v1beta1/{entry.name=projects/*/locations/*/entryGroups/*/entries/*}"
164      body: "entry"
165    };
166    option (google.api.method_signature) = "entry";
167    option (google.api.method_signature) = "entry,update_mask";
168  }
169
170  // Deletes an existing entry. Only entries created through
171  // [CreateEntry][google.cloud.datacatalog.v1beta1.DataCatalog.CreateEntry]
172  // method can be deleted.
173  // Users should enable the Data Catalog API in the project identified by
174  // the `name` parameter (see [Data Catalog Resource Project]
175  // (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for
176  // more information).
177  rpc DeleteEntry(DeleteEntryRequest) returns (google.protobuf.Empty) {
178    option (google.api.http) = {
179      delete: "/v1beta1/{name=projects/*/locations/*/entryGroups/*/entries/*}"
180    };
181    option (google.api.method_signature) = "name";
182  }
183
184  // Gets an entry.
185  rpc GetEntry(GetEntryRequest) returns (Entry) {
186    option (google.api.http) = {
187      get: "/v1beta1/{name=projects/*/locations/*/entryGroups/*/entries/*}"
188    };
189    option (google.api.method_signature) = "name";
190  }
191
192  // Get an entry by target resource name. This method allows clients to use
193  // the resource name from the source Google Cloud Platform service to get the
194  // Data Catalog Entry.
195  rpc LookupEntry(LookupEntryRequest) returns (Entry) {
196    option (google.api.http) = {
197      get: "/v1beta1/entries:lookup"
198    };
199  }
200
201  // Lists entries.
202  rpc ListEntries(ListEntriesRequest) returns (ListEntriesResponse) {
203    option (google.api.http) = {
204      get: "/v1beta1/{parent=projects/*/locations/*/entryGroups/*}/entries"
205    };
206    option (google.api.method_signature) = "parent";
207  }
208
209  // Creates a tag template. The user should enable the Data Catalog API in
210  // the project identified by the `parent` parameter (see [Data Catalog
211  // Resource
212  // Project](https://cloud.google.com/data-catalog/docs/concepts/resource-project)
213  // for more information).
214  rpc CreateTagTemplate(CreateTagTemplateRequest) returns (TagTemplate) {
215    option (google.api.http) = {
216      post: "/v1beta1/{parent=projects/*/locations/*}/tagTemplates"
217      body: "tag_template"
218    };
219    option (google.api.method_signature) =
220        "parent,tag_template_id,tag_template";
221  }
222
223  // Gets a tag template.
224  rpc GetTagTemplate(GetTagTemplateRequest) returns (TagTemplate) {
225    option (google.api.http) = {
226      get: "/v1beta1/{name=projects/*/locations/*/tagTemplates/*}"
227    };
228    option (google.api.method_signature) = "name";
229  }
230
231  // Updates a tag template. This method cannot be used to update the fields of
232  // a template. The tag template fields are represented as separate resources
233  // and should be updated using their own create/update/delete methods.
234  // Users should enable the Data Catalog API in the project identified by
235  // the `tag_template.name` parameter (see [Data Catalog Resource Project]
236  // (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for
237  // more information).
238  rpc UpdateTagTemplate(UpdateTagTemplateRequest) returns (TagTemplate) {
239    option (google.api.http) = {
240      patch: "/v1beta1/{tag_template.name=projects/*/locations/*/tagTemplates/*}"
241      body: "tag_template"
242    };
243    option (google.api.method_signature) = "tag_template";
244    option (google.api.method_signature) = "tag_template,update_mask";
245  }
246
247  // Deletes a tag template and all tags using the template.
248  // Users should enable the Data Catalog API in the project identified by
249  // the `name` parameter (see [Data Catalog Resource Project]
250  // (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for
251  // more information).
252  rpc DeleteTagTemplate(DeleteTagTemplateRequest)
253      returns (google.protobuf.Empty) {
254    option (google.api.http) = {
255      delete: "/v1beta1/{name=projects/*/locations/*/tagTemplates/*}"
256    };
257    option (google.api.method_signature) = "name,force";
258  }
259
260  // Creates a field in a tag template. The user should enable the Data Catalog
261  // API in the project identified by the `parent` parameter (see
262  // [Data Catalog Resource
263  // Project](https://cloud.google.com/data-catalog/docs/concepts/resource-project)
264  // for more information).
265  rpc CreateTagTemplateField(CreateTagTemplateFieldRequest)
266      returns (TagTemplateField) {
267    option (google.api.http) = {
268      post: "/v1beta1/{parent=projects/*/locations/*/tagTemplates/*}/fields"
269      body: "tag_template_field"
270    };
271    option (google.api.method_signature) =
272        "parent,tag_template_field_id,tag_template_field";
273  }
274
275  // Updates a field in a tag template. This method cannot be used to update the
276  // field type. Users should enable the Data Catalog API in the project
277  // identified by the `name` parameter (see [Data Catalog Resource Project]
278  // (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for
279  // more information).
280  rpc UpdateTagTemplateField(UpdateTagTemplateFieldRequest)
281      returns (TagTemplateField) {
282    option (google.api.http) = {
283      patch: "/v1beta1/{name=projects/*/locations/*/tagTemplates/*/fields/*}"
284      body: "tag_template_field"
285    };
286    option (google.api.method_signature) = "name,tag_template_field";
287    option (google.api.method_signature) =
288        "name,tag_template_field,update_mask";
289  }
290
291  // Renames a field in a tag template. The user should enable the Data Catalog
292  // API in the project identified by the `name` parameter (see [Data Catalog
293  // Resource
294  // Project](https://cloud.google.com/data-catalog/docs/concepts/resource-project)
295  // for more information).
296  rpc RenameTagTemplateField(RenameTagTemplateFieldRequest)
297      returns (TagTemplateField) {
298    option (google.api.http) = {
299      post: "/v1beta1/{name=projects/*/locations/*/tagTemplates/*/fields/*}:rename"
300      body: "*"
301    };
302    option (google.api.method_signature) = "name,new_tag_template_field_id";
303  }
304
305  // Renames an enum value in a tag template. The enum values have to be unique
306  // within one enum field. Thus, an enum value cannot be renamed with a name
307  // used in any other enum value within the same enum field.
308  rpc RenameTagTemplateFieldEnumValue(RenameTagTemplateFieldEnumValueRequest)
309      returns (TagTemplateField) {
310    option (google.api.http) = {
311      post: "/v1beta1/{name=projects/*/locations/*/tagTemplates/*/fields/*/enumValues/*}:rename"
312      body: "*"
313    };
314    option (google.api.method_signature) = "name,new_enum_value_display_name";
315  }
316
317  // Deletes a field in a tag template and all uses of that field.
318  // Users should enable the Data Catalog API in the project identified by
319  // the `name` parameter (see [Data Catalog Resource Project]
320  // (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for
321  // more information).
322  rpc DeleteTagTemplateField(DeleteTagTemplateFieldRequest)
323      returns (google.protobuf.Empty) {
324    option (google.api.http) = {
325      delete: "/v1beta1/{name=projects/*/locations/*/tagTemplates/*/fields/*}"
326    };
327    option (google.api.method_signature) = "name,force";
328  }
329
330  // Creates a tag on an [Entry][google.cloud.datacatalog.v1beta1.Entry].
331  // Note: The project identified by the `parent` parameter for the
332  // [tag](https://cloud.google.com/data-catalog/docs/reference/rest/v1beta1/projects.locations.entryGroups.entries.tags/create#path-parameters)
333  // and the
334  // [tag
335  // template](https://cloud.google.com/data-catalog/docs/reference/rest/v1beta1/projects.locations.tagTemplates/create#path-parameters)
336  // used to create the tag must be from the same organization.
337  rpc CreateTag(CreateTagRequest) returns (Tag) {
338    option (google.api.http) = {
339      post: "/v1beta1/{parent=projects/*/locations/*/entryGroups/*/entries/*}/tags"
340      body: "tag"
341      additional_bindings {
342        post: "/v1beta1/{parent=projects/*/locations/*/entryGroups/*}/tags"
343        body: "tag"
344      }
345    };
346    option (google.api.method_signature) = "parent,tag";
347  }
348
349  // Updates an existing tag.
350  rpc UpdateTag(UpdateTagRequest) returns (Tag) {
351    option (google.api.http) = {
352      patch: "/v1beta1/{tag.name=projects/*/locations/*/entryGroups/*/entries/*/tags/*}"
353      body: "tag"
354      additional_bindings {
355        patch: "/v1beta1/{tag.name=projects/*/locations/*/entryGroups/*/tags/*}"
356        body: "tag"
357      }
358    };
359    option (google.api.method_signature) = "tag";
360    option (google.api.method_signature) = "tag,update_mask";
361  }
362
363  // Deletes a tag.
364  rpc DeleteTag(DeleteTagRequest) returns (google.protobuf.Empty) {
365    option (google.api.http) = {
366      delete: "/v1beta1/{name=projects/*/locations/*/entryGroups/*/entries/*/tags/*}"
367      additional_bindings {
368        delete: "/v1beta1/{name=projects/*/locations/*/entryGroups/*/tags/*}"
369      }
370    };
371    option (google.api.method_signature) = "name";
372  }
373
374  // Lists tags assigned to an [Entry][google.cloud.datacatalog.v1beta1.Entry].
375  // The [columns][google.cloud.datacatalog.v1beta1.Tag.column] in the response
376  // are lowercased.
377  rpc ListTags(ListTagsRequest) returns (ListTagsResponse) {
378    option (google.api.http) = {
379      get: "/v1beta1/{parent=projects/*/locations/*/entryGroups/*/entries/*}/tags"
380      additional_bindings {
381        get: "/v1beta1/{parent=projects/*/locations/*/entryGroups/*}/tags"
382      }
383    };
384    option (google.api.method_signature) = "parent";
385  }
386
387  // Sets the access control policy for a resource. Replaces any existing
388  // policy.
389  // Supported resources are:
390  //   - Tag templates.
391  //   - Entries.
392  //   - Entry groups.
393  // Note, this method cannot be used to manage policies for BigQuery, Pub/Sub
394  // and any external Google Cloud Platform resources synced to Data Catalog.
395  //
396  // Callers must have following Google IAM permission
397  //   - `datacatalog.tagTemplates.setIamPolicy` to set policies on tag
398  //     templates.
399  //   - `datacatalog.entries.setIamPolicy` to set policies on entries.
400  //   - `datacatalog.entryGroups.setIamPolicy` to set policies on entry groups.
401  rpc SetIamPolicy(google.iam.v1.SetIamPolicyRequest)
402      returns (google.iam.v1.Policy) {
403    option (google.api.http) = {
404      post: "/v1beta1/{resource=projects/*/locations/*/tagTemplates/*}:setIamPolicy"
405      body: "*"
406      additional_bindings {
407        post: "/v1beta1/{resource=projects/*/locations/*/entryGroups/*}:setIamPolicy"
408        body: "*"
409      }
410    };
411    option (google.api.method_signature) = "resource,policy";
412  }
413
414  // Gets the access control policy for a resource. A `NOT_FOUND` error
415  // is returned if the resource does not exist. An empty policy is returned
416  // if the resource exists but does not have a policy set on it.
417  //
418  // Supported resources are:
419  //   - Tag templates.
420  //   - Entries.
421  //   - Entry groups.
422  // Note, this method cannot be used to manage policies for BigQuery, Pub/Sub
423  // and any external Google Cloud Platform resources synced to Data Catalog.
424  //
425  // Callers must have following Google IAM permission
426  //   - `datacatalog.tagTemplates.getIamPolicy` to get policies on tag
427  //     templates.
428  //   - `datacatalog.entries.getIamPolicy` to get policies on entries.
429  //   - `datacatalog.entryGroups.getIamPolicy` to get policies on entry groups.
430  rpc GetIamPolicy(google.iam.v1.GetIamPolicyRequest)
431      returns (google.iam.v1.Policy) {
432    option (google.api.http) = {
433      post: "/v1beta1/{resource=projects/*/locations/*/tagTemplates/*}:getIamPolicy"
434      body: "*"
435      additional_bindings {
436        post: "/v1beta1/{resource=projects/*/locations/*/entryGroups/*}:getIamPolicy"
437        body: "*"
438      }
439      additional_bindings {
440        post: "/v1beta1/{resource=projects/*/locations/*/entryGroups/*/entries/*}:getIamPolicy"
441        body: "*"
442      }
443    };
444    option (google.api.method_signature) = "resource";
445  }
446
447  // Returns the caller's permissions on a resource.
448  // If the resource does not exist, an empty set of permissions is returned
449  // (We don't return a `NOT_FOUND` error).
450  //
451  // Supported resources are:
452  //   - Tag templates.
453  //   - Entries.
454  //   - Entry groups.
455  // Note, this method cannot be used to manage policies for BigQuery, Pub/Sub
456  // and any external Google Cloud Platform resources synced to Data Catalog.
457  //
458  // A caller is not required to have Google IAM permission to make this
459  // request.
460  rpc TestIamPermissions(google.iam.v1.TestIamPermissionsRequest)
461      returns (google.iam.v1.TestIamPermissionsResponse) {
462    option (google.api.http) = {
463      post: "/v1beta1/{resource=projects/*/locations/*/tagTemplates/*}:testIamPermissions"
464      body: "*"
465      additional_bindings {
466        post: "/v1beta1/{resource=projects/*/locations/*/entryGroups/*}:testIamPermissions"
467        body: "*"
468      }
469      additional_bindings {
470        post: "/v1beta1/{resource=projects/*/locations/*/entryGroups/*/entries/*}:testIamPermissions"
471        body: "*"
472      }
473    };
474  }
475}
476
477// Request message for
478// [SearchCatalog][google.cloud.datacatalog.v1beta1.DataCatalog.SearchCatalog].
479message SearchCatalogRequest {
480  // The criteria that select the subspace used for query matching.
481  message Scope {
482    // The list of organization IDs to search within. To find your organization
483    // ID, follow instructions in
484    // https://cloud.google.com/resource-manager/docs/creating-managing-organization.
485    repeated string include_org_ids = 2;
486
487    // The list of project IDs to search within. To learn more about the
488    // distinction between project names/IDs/numbers, go to
489    // https://cloud.google.com/docs/overview/#projects.
490    repeated string include_project_ids = 3;
491
492    // If `true`, include Google Cloud public datasets in the
493    // search results. Info on Google Cloud public datasets is available at
494    // https://cloud.google.com/public-datasets/. By default, Google Cloud
495    // public datasets are excluded.
496    bool include_gcp_public_datasets = 7;
497
498    // Optional. The list of locations to search within.
499    // 1. If empty, search will be performed in all locations;
500    // 2. If any of the locations are NOT in the valid locations list, error
501    // will be returned;
502    // 3. Otherwise, search only the given locations for matching results.
503    // Typical usage is to leave this field empty. When a location is
504    // unreachable as returned in the `SearchCatalogResponse.unreachable` field,
505    // users can repeat the search request with this parameter set to get
506    // additional information on the error.
507    //
508    // Valid locations:
509    //  * asia-east1
510    //  * asia-east2
511    //  * asia-northeast1
512    //  * asia-northeast2
513    //  * asia-northeast3
514    //  * asia-south1
515    //  * asia-southeast1
516    //  * australia-southeast1
517    //  * eu
518    //  * europe-north1
519    //  * europe-west1
520    //  * europe-west2
521    //  * europe-west3
522    //  * europe-west4
523    //  * europe-west6
524    //  * global
525    //  * northamerica-northeast1
526    //  * southamerica-east1
527    //  * us
528    //  * us-central1
529    //  * us-east1
530    //  * us-east4
531    //  * us-west1
532    //  * us-west2
533    repeated string restricted_locations = 16
534        [(google.api.field_behavior) = OPTIONAL];
535  }
536
537  // Required. The scope of this search request. A `scope` that has empty
538  // `include_org_ids`, `include_project_ids` AND false
539  // `include_gcp_public_datasets` is considered invalid. Data Catalog will
540  // return an error in such a case.
541  Scope scope = 6 [(google.api.field_behavior) = REQUIRED];
542
543  // Optional. The query string in search query syntax. An empty query string
544  // will result in all data assets (in the specified scope) that the user has
545  // access to. Query strings can be simple as "x" or more qualified as:
546  //
547  // * name:x
548  // * column:x
549  // * description:y
550  //
551  // Note: Query tokens need to have a minimum of 3 characters for substring
552  // matching to work correctly. See [Data Catalog Search
553  // Syntax](https://cloud.google.com/data-catalog/docs/how-to/search-reference)
554  // for more information.
555  string query = 1 [(google.api.field_behavior) = OPTIONAL];
556
557  // Number of results in the search page. If <=0 then defaults to 10. Max limit
558  // for page_size is 1000. Throws an invalid argument for page_size > 1000.
559  int32 page_size = 2;
560
561  // Optional. Pagination token returned in an earlier
562  // [SearchCatalogResponse.next_page_token][google.cloud.datacatalog.v1beta1.SearchCatalogResponse.next_page_token],
563  // which indicates that this is a continuation of a prior
564  // [SearchCatalogRequest][google.cloud.datacatalog.v1beta1.DataCatalog.SearchCatalog]
565  // call, and that the system should return the next page of data. If empty,
566  // the first page is returned.
567  string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
568
569  // Specifies the ordering of results, currently supported case-sensitive
570  // choices are:
571  //
572  //   * `relevance`, only supports descending
573  //   * `last_modified_timestamp [asc|desc]`, defaults to descending if not
574  //     specified
575  //   * `default` that can only be descending
576  //
577  // If not specified, defaults to `relevance` descending.
578  string order_by = 5;
579}
580
581// Response message for
582// [SearchCatalog][google.cloud.datacatalog.v1beta1.DataCatalog.SearchCatalog].
583message SearchCatalogResponse {
584  // Search results.
585  repeated SearchCatalogResult results = 1;
586
587  // The approximate total number of entries matched by the query.
588  int32 total_size = 2;
589
590  // The token that can be used to retrieve the next page of results.
591  string next_page_token = 3;
592
593  // Unreachable locations. Search result does not include data from those
594  // locations. Users can get additional information on the error by repeating
595  // the search request with a more restrictive parameter -- setting the value
596  // for `SearchDataCatalogRequest.scope.restricted_locations`.
597  repeated string unreachable = 6;
598}
599
600// Request message for
601// [CreateEntryGroup][google.cloud.datacatalog.v1beta1.DataCatalog.CreateEntryGroup].
602message CreateEntryGroupRequest {
603  // Required. The name of the project this entry group is in. Example:
604  //
605  // * projects/{project_id}/locations/{location}
606  //
607  // Note that this EntryGroup and its child resources may not actually be
608  // stored in the location in this name.
609  string parent = 1 [
610    (google.api.field_behavior) = REQUIRED,
611    (google.api.resource_reference) = {
612      child_type: "datacatalog.googleapis.com/EntryGroup"
613    }
614  ];
615
616  // Required. The id of the entry group to create.
617  // The id must begin with a letter or underscore, contain only English
618  // letters, numbers and underscores, and be at most 64 characters.
619  string entry_group_id = 3 [(google.api.field_behavior) = REQUIRED];
620
621  // The entry group to create. Defaults to an empty entry group.
622  EntryGroup entry_group = 2;
623}
624
625// Request message for
626// [UpdateEntryGroup][google.cloud.datacatalog.v1beta1.DataCatalog.UpdateEntryGroup].
627message UpdateEntryGroupRequest {
628  // Required. The updated entry group. "name" field must be set.
629  EntryGroup entry_group = 1 [(google.api.field_behavior) = REQUIRED];
630
631  // Names of fields whose values to overwrite on an entry group.
632  //
633  // If this parameter is absent or empty, all modifiable fields
634  // are overwritten. If such fields are non-required and omitted in the
635  // request body, their values are emptied.
636  google.protobuf.FieldMask update_mask = 2;
637}
638
639// Request message for
640// [GetEntryGroup][google.cloud.datacatalog.v1beta1.DataCatalog.GetEntryGroup].
641message GetEntryGroupRequest {
642  // Required. The name of the entry group. For example,
643  // `projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}`.
644  string name = 1 [
645    (google.api.field_behavior) = REQUIRED,
646    (google.api.resource_reference) = {
647      type: "datacatalog.googleapis.com/EntryGroup"
648    }
649  ];
650
651  // The fields to return. If not set or empty, all fields are returned.
652  google.protobuf.FieldMask read_mask = 2;
653}
654
655// Request message for
656// [DeleteEntryGroup][google.cloud.datacatalog.v1beta1.DataCatalog.DeleteEntryGroup].
657message DeleteEntryGroupRequest {
658  // Required. The name of the entry group. For example,
659  // `projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}`.
660  string name = 1 [
661    (google.api.field_behavior) = REQUIRED,
662    (google.api.resource_reference) = {
663      type: "datacatalog.googleapis.com/EntryGroup"
664    }
665  ];
666
667  // Optional. If true, deletes all entries in the entry group.
668  bool force = 2 [(google.api.field_behavior) = OPTIONAL];
669}
670
671// Request message for
672// [ListEntryGroups][google.cloud.datacatalog.v1beta1.DataCatalog.ListEntryGroups].
673message ListEntryGroupsRequest {
674  // Required. The name of the location that contains the entry groups, which
675  // can be provided in URL format. Example:
676  //
677  // * projects/{project_id}/locations/{location}
678  string parent = 1 [
679    (google.api.field_behavior) = REQUIRED,
680    (google.api.resource_reference) = {
681      child_type: "datacatalog.googleapis.com/EntryGroup"
682    }
683  ];
684
685  // Optional. The maximum number of items to return. Default is 10. Max limit
686  // is 1000. Throws an invalid argument for `page_size > 1000`.
687  int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
688
689  // Optional. Token that specifies which page is requested. If empty, the first
690  // page is returned.
691  string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
692}
693
694// Response message for
695// [ListEntryGroups][google.cloud.datacatalog.v1beta1.DataCatalog.ListEntryGroups].
696message ListEntryGroupsResponse {
697  // EntryGroup details.
698  repeated EntryGroup entry_groups = 1;
699
700  // Token to retrieve the next page of results. It is set to empty if no items
701  // remain in results.
702  string next_page_token = 2;
703}
704
705// Request message for
706// [CreateEntry][google.cloud.datacatalog.v1beta1.DataCatalog.CreateEntry].
707message CreateEntryRequest {
708  // Required. The name of the entry group this entry is in. Example:
709  //
710  // * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}
711  //
712  // Note that this Entry and its child resources may not actually be stored in
713  // the location in this name.
714  string parent = 1 [
715    (google.api.field_behavior) = REQUIRED,
716    (google.api.resource_reference) = {
717      type: "datacatalog.googleapis.com/EntryGroup"
718    }
719  ];
720
721  // Required. The id of the entry to create.
722  string entry_id = 3 [(google.api.field_behavior) = REQUIRED];
723
724  // Required. The entry to create.
725  Entry entry = 2 [(google.api.field_behavior) = REQUIRED];
726}
727
728// Request message for
729// [UpdateEntry][google.cloud.datacatalog.v1beta1.DataCatalog.UpdateEntry].
730message UpdateEntryRequest {
731  // Required. The updated entry. The "name" field must be set.
732  Entry entry = 1 [(google.api.field_behavior) = REQUIRED];
733
734  // Names of fields whose values to overwrite on an entry.
735  //
736  // If this parameter is absent or empty, all modifiable fields
737  // are overwritten. If such fields are non-required and omitted in the
738  // request body, their values are emptied.
739  //
740  // The following fields are modifiable:
741  //
742  // * For entries with type `DATA_STREAM`:
743  //    * `schema`
744  // * For entries with type `FILESET`:
745  //    * `schema`
746  //    * `display_name`
747  //    * `description`
748  //    * `gcs_fileset_spec`
749  //    * `gcs_fileset_spec.file_patterns`
750  // * For entries with `user_specified_type`:
751  //    * `schema`
752  //    * `display_name`
753  //    * `description`
754  //    * `user_specified_type`
755  //    * `user_specified_system`
756  //    * `linked_resource`
757  //    * `source_system_timestamps`
758  google.protobuf.FieldMask update_mask = 2;
759}
760
761// Request message for
762// [DeleteEntry][google.cloud.datacatalog.v1beta1.DataCatalog.DeleteEntry].
763message DeleteEntryRequest {
764  // Required. The name of the entry. Example:
765  //
766  // * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
767  string name = 1 [
768    (google.api.field_behavior) = REQUIRED,
769    (google.api.resource_reference) = {
770      type: "datacatalog.googleapis.com/Entry"
771    }
772  ];
773}
774
775// Request message for
776// [GetEntry][google.cloud.datacatalog.v1beta1.DataCatalog.GetEntry].
777message GetEntryRequest {
778  // Required. The name of the entry. Example:
779  //
780  // * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
781  string name = 1 [
782    (google.api.field_behavior) = REQUIRED,
783    (google.api.resource_reference) = {
784      type: "datacatalog.googleapis.com/Entry"
785    }
786  ];
787}
788
789// Request message for
790// [LookupEntry][google.cloud.datacatalog.v1beta1.DataCatalog.LookupEntry].
791message LookupEntryRequest {
792  // Required. Represents either the Google Cloud Platform resource or SQL name
793  // for a Google Cloud Platform resource.
794  oneof target_name {
795    // The full name of the Google Cloud Platform resource the Data Catalog
796    // entry represents. See:
797    // https://cloud.google.com/apis/design/resource_names#full_resource_name.
798    // Full names are case-sensitive.
799    //
800    // Examples:
801    //
802    //  * //bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId
803    //  * //pubsub.googleapis.com/projects/projectId/topics/topicId
804    string linked_resource = 1;
805
806    // The SQL name of the entry. SQL names are case-sensitive.
807    //
808    // Examples:
809    //
810    //   * `pubsub.project_id.topic_id`
811    //   * ``pubsub.project_id.`topic.id.with.dots` ``
812    //   * `bigquery.table.project_id.dataset_id.table_id`
813    //   * `bigquery.dataset.project_id.dataset_id`
814    //   * `datacatalog.entry.project_id.location_id.entry_group_id.entry_id`
815    //
816    // `*_id`s should satisfy the standard SQL rules for identifiers.
817    // https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical.
818    string sql_resource = 3;
819  }
820}
821
822// Entry Metadata.
823// A Data Catalog Entry resource represents another resource in Google
824// Cloud Platform (such as a BigQuery dataset or a Pub/Sub topic), or
825// outside of Google Cloud Platform. Clients can use the `linked_resource` field
826// in the Entry resource to refer to the original resource ID of the source
827// system.
828//
829// An Entry resource contains resource details, such as its schema. An Entry can
830// also be used to attach flexible metadata, such as a
831// [Tag][google.cloud.datacatalog.v1beta1.Tag].
832message Entry {
833  option (google.api.resource) = {
834    type: "datacatalog.googleapis.com/Entry"
835    pattern: "projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}"
836  };
837
838  // Output only. The Data Catalog resource name of the entry in URL format.
839  // Example:
840  //
841  // * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
842  //
843  // Note that this Entry and its child resources may not actually be stored in
844  // the location in this name.
845  string name = 1 [
846    (google.api.field_behavior) = OUTPUT_ONLY,
847    (google.api.resource_reference) = {
848      type: "datacatalog.googleapis.com/EntryGroup"
849    }
850  ];
851
852  // The resource this metadata entry refers to.
853  //
854  // For Google Cloud Platform resources, `linked_resource` is the [full name of
855  // the
856  // resource](https://cloud.google.com/apis/design/resource_names#full_resource_name).
857  // For example, the `linked_resource` for a table resource from BigQuery is:
858  //
859  // * //bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId
860  //
861  // Output only when Entry is of type in the EntryType enum. For entries with
862  // user_specified_type, this field is optional and defaults to an empty
863  // string.
864  string linked_resource = 9;
865
866  // Required. Entry type.
867  oneof entry_type {
868    // The type of the entry.
869    // Only used for Entries with types in the EntryType enum.
870    EntryType type = 2;
871
872    // Entry type if it does not fit any of the input-allowed values listed in
873    // `EntryType` enum above. When creating an entry, users should check the
874    // enum values first, if nothing matches the entry to be created, then
875    // provide a custom value, for example "my_special_type".
876    // `user_specified_type` strings must begin with a letter or underscore and
877    // can only contain letters, numbers, and underscores; are case insensitive;
878    // must be at least 1 character and at most 64 characters long.
879    //
880    // Currently, only FILESET enum value is allowed. All other entries created
881    // through Data Catalog must use `user_specified_type`.
882    string user_specified_type = 16;
883  }
884
885  // The source system of the entry.
886  oneof system {
887    // Output only. This field indicates the entry's source system that Data
888    // Catalog integrates with, such as BigQuery or Pub/Sub.
889    IntegratedSystem integrated_system = 17
890        [(google.api.field_behavior) = OUTPUT_ONLY];
891
892    // This field indicates the entry's source system that Data Catalog does not
893    // integrate with. `user_specified_system` strings must begin with a letter
894    // or underscore and can only contain letters, numbers, and underscores; are
895    // case insensitive; must be at least 1 character and at most 64 characters
896    // long.
897    string user_specified_system = 18;
898  }
899
900  // Type specification information.
901  oneof type_spec {
902    // Specification that applies to a Cloud Storage fileset. This is only valid
903    // on entries of type FILESET.
904    GcsFilesetSpec gcs_fileset_spec = 6;
905
906    // Specification that applies to a BigQuery table. This is only valid on
907    // entries of type `TABLE`.
908    BigQueryTableSpec bigquery_table_spec = 12;
909
910    // Specification for a group of BigQuery tables with name pattern
911    // `[prefix]YYYYMMDD`. Context:
912    // https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding.
913    BigQueryDateShardedSpec bigquery_date_sharded_spec = 15;
914  }
915
916  // Display information such as title and description. A short name to identify
917  // the entry, for example, "Analytics Data - Jan 2011". Default value is an
918  // empty string.
919  string display_name = 3;
920
921  // Entry description, which can consist of several sentences or paragraphs
922  // that describe entry contents. Default value is an empty string.
923  string description = 4;
924
925  // Schema of the entry. An entry might not have any schema attached to it.
926  Schema schema = 5;
927
928  // Output only. Timestamps about the underlying resource, not about this Data
929  // Catalog entry. Output only when Entry is of type in the EntryType enum. For
930  // entries with user_specified_type, this field is optional and defaults to an
931  // empty timestamp.
932  SystemTimestamps source_system_timestamps = 7
933      [(google.api.field_behavior) = OUTPUT_ONLY];
934
935  // Output only. Statistics on the usage level of the resource.
936  UsageSignal usage_signal = 13 [(google.api.field_behavior) = OUTPUT_ONLY];
937}
938
939// EntryGroup Metadata.
940// An EntryGroup resource represents a logical grouping of zero or more
941// Data Catalog [Entry][google.cloud.datacatalog.v1beta1.Entry] resources.
942message EntryGroup {
943  option (google.api.resource) = {
944    type: "datacatalog.googleapis.com/EntryGroup"
945    pattern: "projects/{project}/locations/{location}/entryGroups/{entry_group}"
946  };
947
948  // The resource name of the entry group in URL format. Example:
949  //
950  // * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}
951  //
952  // Note that this EntryGroup and its child resources may not actually be
953  // stored in the location in this name.
954  string name = 1;
955
956  // A short name to identify the entry group, for example,
957  // "analytics data - jan 2011". Default value is an empty string.
958  string display_name = 2;
959
960  // Entry group description, which can consist of several sentences or
961  // paragraphs that describe entry group contents. Default value is an empty
962  // string.
963  string description = 3;
964
965  // Output only. Timestamps about this EntryGroup. Default value is empty
966  // timestamps.
967  SystemTimestamps data_catalog_timestamps = 4
968      [(google.api.field_behavior) = OUTPUT_ONLY];
969}
970
971// Request message for
972// [CreateTagTemplate][google.cloud.datacatalog.v1beta1.DataCatalog.CreateTagTemplate].
973message CreateTagTemplateRequest {
974  // Required. The name of the project and the template location
975  // [region](https://cloud.google.com/data-catalog/docs/concepts/regions.
976  //
977  // Example:
978  //
979  // * projects/{project_id}/locations/us-central1
980  string parent = 1 [
981    (google.api.field_behavior) = REQUIRED,
982    (google.api.resource_reference) = {
983      child_type: "datacatalog.googleapis.com/TagTemplate"
984    }
985  ];
986
987  // Required. The id of the tag template to create.
988  string tag_template_id = 3 [(google.api.field_behavior) = REQUIRED];
989
990  // Required. The tag template to create.
991  TagTemplate tag_template = 2 [(google.api.field_behavior) = REQUIRED];
992}
993
994// Request message for
995// [GetTagTemplate][google.cloud.datacatalog.v1beta1.DataCatalog.GetTagTemplate].
996message GetTagTemplateRequest {
997  // Required. The name of the tag template. Example:
998  //
999  // * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
1000  string name = 1 [
1001    (google.api.field_behavior) = REQUIRED,
1002    (google.api.resource_reference) = {
1003      type: "datacatalog.googleapis.com/TagTemplate"
1004    }
1005  ];
1006}
1007
1008// Request message for
1009// [UpdateTagTemplate][google.cloud.datacatalog.v1beta1.DataCatalog.UpdateTagTemplate].
1010message UpdateTagTemplateRequest {
1011  // Required. The template to update. The "name" field must be set.
1012  TagTemplate tag_template = 1 [(google.api.field_behavior) = REQUIRED];
1013
1014  // Names of fields whose values to overwrite on a tag template. Currently,
1015  // only `display_name` can be overwritten.
1016  //
1017  // In general, if this parameter is absent or empty, all modifiable fields
1018  // are overwritten. If such fields are non-required and omitted in the
1019  // request body, their values are emptied.
1020  google.protobuf.FieldMask update_mask = 2;
1021}
1022
1023// Request message for
1024// [DeleteTagTemplate][google.cloud.datacatalog.v1beta1.DataCatalog.DeleteTagTemplate].
1025message DeleteTagTemplateRequest {
1026  // Required. The name of the tag template to delete. Example:
1027  //
1028  // * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
1029  string name = 1 [
1030    (google.api.field_behavior) = REQUIRED,
1031    (google.api.resource_reference) = {
1032      type: "datacatalog.googleapis.com/TagTemplate"
1033    }
1034  ];
1035
1036  // Required. Currently, this field must always be set to `true`.
1037  // This confirms the deletion of any possible tags using this template.
1038  // `force = false` will be supported in the future.
1039  bool force = 2 [(google.api.field_behavior) = REQUIRED];
1040}
1041
1042// Request message for
1043// [CreateTag][google.cloud.datacatalog.v1beta1.DataCatalog.CreateTag].
1044message CreateTagRequest {
1045  // Required. The name of the resource to attach this tag to. Tags can be
1046  // attached to Entries. Example:
1047  //
1048  // * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
1049  //
1050  // Note that this Tag and its child resources may not actually be stored in
1051  // the location in this name.
1052  string parent = 1 [
1053    (google.api.field_behavior) = REQUIRED,
1054    (google.api.resource_reference) = {
1055      child_type: "datacatalog.googleapis.com/Tag"
1056    }
1057  ];
1058
1059  // Required. The tag to create.
1060  Tag tag = 2 [(google.api.field_behavior) = REQUIRED];
1061}
1062
1063// Request message for
1064// [UpdateTag][google.cloud.datacatalog.v1beta1.DataCatalog.UpdateTag].
1065message UpdateTagRequest {
1066  // Required. The updated tag. The "name" field must be set.
1067  Tag tag = 1 [(google.api.field_behavior) = REQUIRED];
1068
1069  // Note: Currently, this parameter can only take `"fields"` as value.
1070  //
1071  // Names of fields whose values to overwrite on a tag. Currently, a tag has
1072  // the only modifiable field with the name `fields`.
1073  //
1074  // In general, if this parameter is absent or empty, all modifiable fields
1075  // are overwritten. If such fields are non-required and omitted in the
1076  // request body, their values are emptied.
1077  google.protobuf.FieldMask update_mask = 2;
1078}
1079
1080// Request message for
1081// [DeleteTag][google.cloud.datacatalog.v1beta1.DataCatalog.DeleteTag].
1082message DeleteTagRequest {
1083  // Required. The name of the tag to delete. Example:
1084  //
1085  // * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}
1086  string name = 1 [
1087    (google.api.field_behavior) = REQUIRED,
1088    (google.api.resource_reference) = {
1089      child_type: "datacatalog.googleapis.com/Tag"
1090    }
1091  ];
1092}
1093
1094// Request message for
1095// [CreateTagTemplateField][google.cloud.datacatalog.v1beta1.DataCatalog.CreateTagTemplateField].
1096message CreateTagTemplateFieldRequest {
1097  // Required. The name of the project and the template location
1098  // [region](https://cloud.google.com/data-catalog/docs/concepts/regions).
1099  //
1100  // Example:
1101  //
1102  // * projects/{project_id}/locations/us-central1/tagTemplates/{tag_template_id}
1103  string parent = 1 [
1104    (google.api.field_behavior) = REQUIRED,
1105    (google.api.resource_reference) = {
1106      type: "datacatalog.googleapis.com/TagTemplate"
1107    }
1108  ];
1109
1110  // Required. The ID of the tag template field to create.
1111  // Field ids can contain letters (both uppercase and lowercase), numbers
1112  // (0-9), underscores (_) and dashes (-). Field IDs must be at least 1
1113  // character long and at most 128 characters long. Field IDs must also be
1114  // unique within their template.
1115  string tag_template_field_id = 2 [(google.api.field_behavior) = REQUIRED];
1116
1117  // Required. The tag template field to create.
1118  TagTemplateField tag_template_field = 3
1119      [(google.api.field_behavior) = REQUIRED];
1120}
1121
1122// Request message for
1123// [UpdateTagTemplateField][google.cloud.datacatalog.v1beta1.DataCatalog.UpdateTagTemplateField].
1124message UpdateTagTemplateFieldRequest {
1125  // Required. The name of the tag template field. Example:
1126  //
1127  // * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}
1128  string name = 1 [
1129    (google.api.field_behavior) = REQUIRED,
1130    (google.api.resource_reference) = {
1131      type: "datacatalog.googleapis.com/TagTemplateField"
1132    }
1133  ];
1134
1135  // Required. The template to update.
1136  TagTemplateField tag_template_field = 2
1137      [(google.api.field_behavior) = REQUIRED];
1138
1139  // Optional. Names of fields whose values to overwrite on an individual field
1140  // of a tag template. The following fields are modifiable:
1141  //
1142  //   * `display_name`
1143  //   * `type.enum_type`
1144  //   * `is_required`
1145  //
1146  // If this parameter is absent or empty, all modifiable fields
1147  // are overwritten. If such fields are non-required and omitted in the request
1148  // body, their values are emptied with one exception: when updating an enum
1149  // type, the provided values are merged with the existing values. Therefore,
1150  // enum values can only be added, existing enum values cannot be deleted or
1151  // renamed.
1152  //
1153  // Additionally, updating a template field from optional to required is
1154  // *not* allowed.
1155  google.protobuf.FieldMask update_mask = 3
1156      [(google.api.field_behavior) = OPTIONAL];
1157}
1158
1159// Request message for
1160// [RenameTagTemplateField][google.cloud.datacatalog.v1beta1.DataCatalog.RenameTagTemplateField].
1161message RenameTagTemplateFieldRequest {
1162  // Required. The name of the tag template. Example:
1163  //
1164  // * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}
1165  string name = 1 [
1166    (google.api.field_behavior) = REQUIRED,
1167    (google.api.resource_reference) = {
1168      type: "datacatalog.googleapis.com/TagTemplateField"
1169    }
1170  ];
1171
1172  // Required. The new ID of this tag template field. For example,
1173  // `my_new_field`.
1174  string new_tag_template_field_id = 2 [(google.api.field_behavior) = REQUIRED];
1175}
1176
1177// Request message for
1178// [RenameTagTemplateFieldEnumValue][google.cloud.datacatalog.v1.DataCatalog.RenameTagTemplateFieldEnumValue].
1179message RenameTagTemplateFieldEnumValueRequest {
1180  // Required. The name of the enum field value. Example:
1181  //
1182  // * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}/enumValues/{enum_value_display_name}
1183  string name = 1 [
1184    (google.api.field_behavior) = REQUIRED,
1185    (google.api.resource_reference) = {
1186      type: "datacatalog.googleapis.com/TagTemplateFieldEnumValue"
1187    }
1188  ];
1189
1190  // Required. The new display name of the enum value. For example,
1191  // `my_new_enum_value`.
1192  string new_enum_value_display_name = 2
1193      [(google.api.field_behavior) = REQUIRED];
1194}
1195
1196// Request message for
1197// [DeleteTagTemplateField][google.cloud.datacatalog.v1beta1.DataCatalog.DeleteTagTemplateField].
1198message DeleteTagTemplateFieldRequest {
1199  // Required. The name of the tag template field to delete. Example:
1200  //
1201  // * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}
1202  string name = 1 [
1203    (google.api.field_behavior) = REQUIRED,
1204    (google.api.resource_reference) = {
1205      type: "datacatalog.googleapis.com/TagTemplateField"
1206    }
1207  ];
1208
1209  // Required. Currently, this field must always be set to `true`.
1210  // This confirms the deletion of this field from any tags using this field.
1211  // `force = false` will be supported in the future.
1212  bool force = 2 [(google.api.field_behavior) = REQUIRED];
1213}
1214
1215// Request message for
1216// [ListTags][google.cloud.datacatalog.v1beta1.DataCatalog.ListTags].
1217message ListTagsRequest {
1218  // Required. The name of the Data Catalog resource to list the tags of. The
1219  // resource could be an [Entry][google.cloud.datacatalog.v1beta1.Entry] or an
1220  // [EntryGroup][google.cloud.datacatalog.v1beta1.EntryGroup].
1221  //
1222  // Examples:
1223  //
1224  // * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}
1225  // * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
1226  string parent = 1 [
1227    (google.api.field_behavior) = REQUIRED,
1228    (google.api.resource_reference) = {
1229      child_type: "datacatalog.googleapis.com/Tag"
1230    }
1231  ];
1232
1233  // The maximum number of tags to return. Default is 10. Max limit is 1000.
1234  int32 page_size = 2;
1235
1236  // Token that specifies which page is requested. If empty, the first page is
1237  // returned.
1238  string page_token = 3;
1239}
1240
1241// Response message for
1242// [ListTags][google.cloud.datacatalog.v1beta1.DataCatalog.ListTags].
1243message ListTagsResponse {
1244  // [Tag][google.cloud.datacatalog.v1beta1.Tag] details.
1245  repeated Tag tags = 1;
1246
1247  // Token to retrieve the next page of results. It is set to empty if no items
1248  // remain in results.
1249  string next_page_token = 2;
1250}
1251
1252// Request message for
1253// [ListEntries][google.cloud.datacatalog.v1beta1.DataCatalog.ListEntries].
1254message ListEntriesRequest {
1255  // Required. The name of the entry group that contains the entries, which can
1256  // be provided in URL format. Example:
1257  //
1258  // * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}
1259  string parent = 1 [
1260    (google.api.field_behavior) = REQUIRED,
1261    (google.api.resource_reference) = {
1262      type: "datacatalog.googleapis.com/EntryGroup"
1263    }
1264  ];
1265
1266  // The maximum number of items to return. Default is 10. Max limit is 1000.
1267  // Throws an invalid argument for `page_size > 1000`.
1268  int32 page_size = 2;
1269
1270  // Token that specifies which page is requested. If empty, the first page is
1271  // returned.
1272  string page_token = 3;
1273
1274  // The fields to return for each Entry. If not set or empty, all
1275  // fields are returned.
1276  // For example, setting read_mask to contain only one path "name" will cause
1277  // ListEntries to return a list of Entries with only "name" field.
1278  google.protobuf.FieldMask read_mask = 4;
1279}
1280
1281// Response message for
1282// [ListEntries][google.cloud.datacatalog.v1beta1.DataCatalog.ListEntries].
1283message ListEntriesResponse {
1284  // Entry details.
1285  repeated Entry entries = 1;
1286
1287  // Token to retrieve the next page of results. It is set to empty if no items
1288  // remain in results.
1289  string next_page_token = 2;
1290}
1291
1292// Entry resources in Data Catalog can be of different types e.g. a BigQuery
1293// Table entry is of type `TABLE`. This enum describes all the possible types
1294// Data Catalog contains.
1295enum EntryType {
1296  // Default unknown type.
1297  ENTRY_TYPE_UNSPECIFIED = 0;
1298
1299  // Output only. The type of entry that has a GoogleSQL schema, including
1300  // logical views.
1301  TABLE = 2;
1302
1303  // Output only. The type of models.
1304  // https://cloud.google.com/bigquery-ml/docs/bigqueryml-intro
1305  MODEL = 5;
1306
1307  // Output only. An entry type which is used for streaming entries. Example:
1308  // Pub/Sub topic.
1309  DATA_STREAM = 3;
1310
1311  // An entry type which is a set of files or objects. Example:
1312  // Cloud Storage fileset.
1313  FILESET = 4;
1314}
1315