1// Copyright 2022 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.v1;
18
19import "google/api/field_behavior.proto";
20import "google/cloud/datacatalog/v1/common.proto";
21import "google/protobuf/timestamp.proto";
22
23option cc_enable_arenas = true;
24option csharp_namespace = "Google.Cloud.DataCatalog.V1";
25option go_package = "cloud.google.com/go/datacatalog/apiv1/datacatalogpb;datacatalogpb";
26option java_multiple_files = true;
27option java_package = "com.google.cloud.datacatalog.v1";
28option php_namespace = "Google\\Cloud\\DataCatalog\\V1";
29option ruby_package = "Google::Cloud::DataCatalog::V1";
30
31// Result in the response to a search request.
32//
33// Each result captures details of one entry that matches the search.
34message SearchCatalogResult {
35  // Type of the search result.
36  //
37  // You can use this field to determine which get method to call to fetch the
38  // full resource.
39  SearchResultType search_result_type = 1;
40
41  // Sub-type of the search result.
42  //
43  // A dot-delimited full type of the resource. The same type you
44  // specify in the `type` search predicate.
45  //
46  // Examples: `entry.table`, `entry.dataStream`, `tagTemplate`.
47  string search_result_subtype = 2;
48
49  // The relative name of the resource in URL format.
50  //
51  // Examples:
52  //
53  //  * `projects/{PROJECT_ID}/locations/{LOCATION_ID}/entryGroups/{ENTRY_GROUP_ID}/entries/{ENTRY_ID}`
54  //  * `projects/{PROJECT_ID}/tagTemplates/{TAG_TEMPLATE_ID}`
55  string relative_resource_name = 3;
56
57  // The full name of the Google Cloud resource the entry belongs to.
58  //
59  // For more information, see [Full Resource Name]
60  // (/apis/design/resource_names#full_resource_name).
61  //
62  // Example:
63  //
64  // `//bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID`
65  string linked_resource = 4;
66
67  // The last modification timestamp of the entry in the source system.
68  google.protobuf.Timestamp modify_time = 7;
69
70  // The source system of the entry. Applicable only when the
71  // `search_result_type` is `ENTRY`.
72  oneof system {
73    // Output only. The source system that Data Catalog automatically integrates
74    // with, such as BigQuery, Cloud Pub/Sub, or Dataproc Metastore.
75    IntegratedSystem integrated_system = 8
76        [(google.api.field_behavior) = OUTPUT_ONLY];
77
78    // Custom source system that you can manually integrate Data Catalog with.
79    string user_specified_system = 9;
80  }
81
82  // Fully qualified name (FQN) of the resource.
83  //
84  // FQNs take two forms:
85  //
86  // * For non-regionalized resources:
87  //
88  //   `{SYSTEM}:{PROJECT}.{PATH_TO_RESOURCE_SEPARATED_WITH_DOTS}`
89  //
90  // * For regionalized resources:
91  //
92  //   `{SYSTEM}:{PROJECT}.{LOCATION_ID}.{PATH_TO_RESOURCE_SEPARATED_WITH_DOTS}`
93  //
94  // Example for a DPMS table:
95  //
96  // `dataproc_metastore:PROJECT_ID.LOCATION_ID.INSTANCE_ID.DATABASE_ID.TABLE_ID`
97  string fully_qualified_name = 10;
98
99  // The display name of the result.
100  string display_name = 12;
101
102  // Entry description that can consist of several sentences or paragraphs that
103  // describe entry contents.
104  string description = 13;
105}
106
107// The resource types that can be returned in search results.
108enum SearchResultType {
109  // Default unknown type.
110  SEARCH_RESULT_TYPE_UNSPECIFIED = 0;
111
112  // An [Entry][google.cloud.datacatalog.v1.Entry].
113  ENTRY = 1;
114
115  // A [TagTemplate][google.cloud.datacatalog.v1.TagTemplate].
116  TAG_TEMPLATE = 2;
117
118  // An [EntryGroup][google.cloud.datacatalog.v1.EntryGroup].
119  ENTRY_GROUP = 3;
120}
121