• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright 2024 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.dataplex.v1;
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/dataplex/v1/service.proto";
24import "google/longrunning/operations.proto";
25import "google/protobuf/empty.proto";
26import "google/protobuf/field_mask.proto";
27import "google/protobuf/struct.proto";
28import "google/protobuf/timestamp.proto";
29
30option csharp_namespace = "Google.Cloud.Dataplex.V1";
31option go_package = "cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpb";
32option java_multiple_files = true;
33option java_outer_classname = "CatalogProto";
34option java_package = "com.google.cloud.dataplex.v1";
35option php_namespace = "Google\\Cloud\\Dataplex\\V1";
36option ruby_package = "Google::Cloud::Dataplex::V1";
37
38// The primary resources offered by this service are EntryGroups, EntryTypes,
39// AspectTypes, Entry and Aspect which collectively allow a data administrator
40// to organize, manage, secure and catalog data across their organization
41// located across cloud projects in a variety of storage systems including Cloud
42// Storage and BigQuery.
43service CatalogService {
44  option (google.api.default_host) = "dataplex.googleapis.com";
45  option (google.api.oauth_scopes) =
46      "https://www.googleapis.com/auth/cloud-platform";
47
48  // Creates an EntryType
49  rpc CreateEntryType(CreateEntryTypeRequest)
50      returns (google.longrunning.Operation) {
51    option (google.api.http) = {
52      post: "/v1/{parent=projects/*/locations/*}/entryTypes"
53      body: "entry_type"
54    };
55    option (google.api.method_signature) = "parent,entry_type,entry_type_id";
56    option (google.longrunning.operation_info) = {
57      response_type: "EntryType"
58      metadata_type: "OperationMetadata"
59    };
60  }
61
62  // Updates a EntryType resource.
63  rpc UpdateEntryType(UpdateEntryTypeRequest)
64      returns (google.longrunning.Operation) {
65    option (google.api.http) = {
66      patch: "/v1/{entry_type.name=projects/*/locations/*/entryTypes/*}"
67      body: "entry_type"
68    };
69    option (google.api.method_signature) = "entry_type,update_mask";
70    option (google.longrunning.operation_info) = {
71      response_type: "EntryType"
72      metadata_type: "OperationMetadata"
73    };
74  }
75
76  // Deletes a EntryType resource.
77  rpc DeleteEntryType(DeleteEntryTypeRequest)
78      returns (google.longrunning.Operation) {
79    option (google.api.http) = {
80      delete: "/v1/{name=projects/*/locations/*/entryTypes/*}"
81    };
82    option (google.api.method_signature) = "name";
83    option (google.longrunning.operation_info) = {
84      response_type: "google.protobuf.Empty"
85      metadata_type: "OperationMetadata"
86    };
87  }
88
89  // Lists EntryType resources in a project and location.
90  rpc ListEntryTypes(ListEntryTypesRequest) returns (ListEntryTypesResponse) {
91    option (google.api.http) = {
92      get: "/v1/{parent=projects/*/locations/*}/entryTypes"
93    };
94    option (google.api.method_signature) = "parent";
95  }
96
97  // Retrieves a EntryType resource.
98  rpc GetEntryType(GetEntryTypeRequest) returns (EntryType) {
99    option (google.api.http) = {
100      get: "/v1/{name=projects/*/locations/*/entryTypes/*}"
101    };
102    option (google.api.method_signature) = "name";
103  }
104
105  // Creates an AspectType
106  rpc CreateAspectType(CreateAspectTypeRequest)
107      returns (google.longrunning.Operation) {
108    option (google.api.http) = {
109      post: "/v1/{parent=projects/*/locations/*}/aspectTypes"
110      body: "aspect_type"
111    };
112    option (google.api.method_signature) = "parent,aspect_type,aspect_type_id";
113    option (google.longrunning.operation_info) = {
114      response_type: "AspectType"
115      metadata_type: "OperationMetadata"
116    };
117  }
118
119  // Updates a AspectType resource.
120  rpc UpdateAspectType(UpdateAspectTypeRequest)
121      returns (google.longrunning.Operation) {
122    option (google.api.http) = {
123      patch: "/v1/{aspect_type.name=projects/*/locations/*/aspectTypes/*}"
124      body: "aspect_type"
125    };
126    option (google.api.method_signature) = "aspect_type,update_mask";
127    option (google.longrunning.operation_info) = {
128      response_type: "AspectType"
129      metadata_type: "OperationMetadata"
130    };
131  }
132
133  // Deletes a AspectType resource.
134  rpc DeleteAspectType(DeleteAspectTypeRequest)
135      returns (google.longrunning.Operation) {
136    option (google.api.http) = {
137      delete: "/v1/{name=projects/*/locations/*/aspectTypes/*}"
138    };
139    option (google.api.method_signature) = "name";
140    option (google.longrunning.operation_info) = {
141      response_type: "google.protobuf.Empty"
142      metadata_type: "OperationMetadata"
143    };
144  }
145
146  // Lists AspectType resources in a project and location.
147  rpc ListAspectTypes(ListAspectTypesRequest)
148      returns (ListAspectTypesResponse) {
149    option (google.api.http) = {
150      get: "/v1/{parent=projects/*/locations/*}/aspectTypes"
151    };
152    option (google.api.method_signature) = "parent";
153  }
154
155  // Retrieves a AspectType resource.
156  rpc GetAspectType(GetAspectTypeRequest) returns (AspectType) {
157    option (google.api.http) = {
158      get: "/v1/{name=projects/*/locations/*/aspectTypes/*}"
159    };
160    option (google.api.method_signature) = "name";
161  }
162
163  // Creates an EntryGroup
164  rpc CreateEntryGroup(CreateEntryGroupRequest)
165      returns (google.longrunning.Operation) {
166    option (google.api.http) = {
167      post: "/v1/{parent=projects/*/locations/*}/entryGroups"
168      body: "entry_group"
169    };
170    option (google.api.method_signature) = "parent,entry_group,entry_group_id";
171    option (google.longrunning.operation_info) = {
172      response_type: "EntryGroup"
173      metadata_type: "OperationMetadata"
174    };
175  }
176
177  // Updates a EntryGroup resource.
178  rpc UpdateEntryGroup(UpdateEntryGroupRequest)
179      returns (google.longrunning.Operation) {
180    option (google.api.http) = {
181      patch: "/v1/{entry_group.name=projects/*/locations/*/entryGroups/*}"
182      body: "entry_group"
183    };
184    option (google.api.method_signature) = "entry_group,update_mask";
185    option (google.longrunning.operation_info) = {
186      response_type: "EntryGroup"
187      metadata_type: "OperationMetadata"
188    };
189  }
190
191  // Deletes a EntryGroup resource.
192  rpc DeleteEntryGroup(DeleteEntryGroupRequest)
193      returns (google.longrunning.Operation) {
194    option (google.api.http) = {
195      delete: "/v1/{name=projects/*/locations/*/entryGroups/*}"
196    };
197    option (google.api.method_signature) = "name";
198    option (google.longrunning.operation_info) = {
199      response_type: "google.protobuf.Empty"
200      metadata_type: "OperationMetadata"
201    };
202  }
203
204  // Lists EntryGroup resources in a project and location.
205  rpc ListEntryGroups(ListEntryGroupsRequest)
206      returns (ListEntryGroupsResponse) {
207    option (google.api.http) = {
208      get: "/v1/{parent=projects/*/locations/*}/entryGroups"
209    };
210    option (google.api.method_signature) = "parent";
211  }
212
213  // Retrieves a EntryGroup resource.
214  rpc GetEntryGroup(GetEntryGroupRequest) returns (EntryGroup) {
215    option (google.api.http) = {
216      get: "/v1/{name=projects/*/locations/*/entryGroups/*}"
217    };
218    option (google.api.method_signature) = "name";
219  }
220
221  // Creates an Entry.
222  rpc CreateEntry(CreateEntryRequest) returns (Entry) {
223    option (google.api.http) = {
224      post: "/v1/{parent=projects/*/locations/*/entryGroups/*}/entries"
225      body: "entry"
226    };
227    option (google.api.method_signature) = "parent,entry,entry_id";
228  }
229
230  // Updates an Entry.
231  rpc UpdateEntry(UpdateEntryRequest) returns (Entry) {
232    option (google.api.http) = {
233      patch: "/v1/{entry.name=projects/*/locations/*/entryGroups/*/entries/**}"
234      body: "entry"
235    };
236    option (google.api.method_signature) = "entry,update_mask";
237  }
238
239  // Deletes an Entry.
240  rpc DeleteEntry(DeleteEntryRequest) returns (Entry) {
241    option (google.api.http) = {
242      delete: "/v1/{name=projects/*/locations/*/entryGroups/*/entries/**}"
243    };
244    option (google.api.method_signature) = "name";
245  }
246
247  // Lists entries within an entry group.
248  rpc ListEntries(ListEntriesRequest) returns (ListEntriesResponse) {
249    option (google.api.http) = {
250      get: "/v1/{parent=projects/*/locations/*/entryGroups/*}/entries"
251    };
252    option (google.api.method_signature) = "parent";
253  }
254
255  // Gets a single entry.
256  rpc GetEntry(GetEntryRequest) returns (Entry) {
257    option (google.api.http) = {
258      get: "/v1/{name=projects/*/locations/*/entryGroups/*/entries/**}"
259    };
260    option (google.api.method_signature) = "name";
261  }
262
263  // Looks up a single entry.
264  rpc LookupEntry(LookupEntryRequest) returns (Entry) {
265    option (google.api.http) = {
266      get: "/v1/{name=projects/*/locations/*}:lookupEntry"
267    };
268  }
269
270  // Searches for entries matching given query and scope.
271  rpc SearchEntries(SearchEntriesRequest) returns (SearchEntriesResponse) {
272    option (google.api.http) = {
273      post: "/v1/{name=projects/*/locations/*}:searchEntries"
274    };
275    option (google.api.method_signature) = "name,query";
276  }
277}
278
279// Aspect Type is a template for creating Aspects, and represents the
280// JSON-schema for a given Entry, e.g., BigQuery Table Schema.
281message AspectType {
282  option (google.api.resource) = {
283    type: "dataplex.googleapis.com/AspectType"
284    pattern: "projects/{project}/locations/{location}/aspectTypes/{aspect_type}"
285    plural: "aspectTypes"
286    singular: "aspectType"
287  };
288
289  // Autorization for an Aspect Type.
290  message Authorization {
291    // Immutable. The IAM permission grantable on the Entry Group to allow
292    // access to instantiate Aspects of Dataplex owned Aspect Types, only
293    // settable for Dataplex owned Types.
294    string alternate_use_permission = 1
295        [(google.api.field_behavior) = IMMUTABLE];
296  }
297
298  // MetadataTemplate definition for AspectType
299  message MetadataTemplate {
300    // Definition of Enumvalue (to be used by enum fields)
301    message EnumValue {
302      // Required. Index for the enum. Cannot be modified.
303      int32 index = 1 [(google.api.field_behavior) = REQUIRED];
304
305      // Required. Name of the enumvalue. This is the actual value that the
306      // aspect will contain.
307      string name = 2 [(google.api.field_behavior) = REQUIRED];
308
309      // Optional. Optional deprecation message to be set if an enum value needs
310      // to be deprecated.
311      string deprecated = 3 [(google.api.field_behavior) = OPTIONAL];
312    }
313
314    // Definition of the constraints of a field
315    message Constraints {
316      // Optional. Marks this as an optional/required field.
317      bool required = 1 [(google.api.field_behavior) = OPTIONAL];
318    }
319
320    // Definition of the annotations of a field
321    message Annotations {
322      // Optional. Marks a field as deprecated, a deprecation message can be
323      // included.
324      string deprecated = 1 [(google.api.field_behavior) = OPTIONAL];
325
326      // Optional. Specify a displayname for a field.
327      string display_name = 2 [(google.api.field_behavior) = OPTIONAL];
328
329      // Optional. Specify a description for a field
330      string description = 3 [(google.api.field_behavior) = OPTIONAL];
331
332      // Optional. Specify a display order for a field. Display order can be
333      // used to reorder where a field is rendered
334      int32 display_order = 4 [(google.api.field_behavior) = OPTIONAL];
335
336      // Optional. String Type annotations can be used to specify special
337      // meaning to string fields. The following values are supported: richText:
338      // The field must be interpreted as a rich text field. url: A fully
339      // qualified url link. resource: A service qualified resource reference.
340      string string_type = 6 [(google.api.field_behavior) = OPTIONAL];
341
342      // Optional. Suggested hints for string fields. These can be used to
343      // suggest values to users, through an UI for example.
344      repeated string string_values = 7
345          [(google.api.field_behavior) = OPTIONAL];
346    }
347
348    // Optional. Index is used to encode Template messages. The value of index
349    // can range between 1 and 2,147,483,647. Index must be unique within all
350    // fields in a Template. (Nested Templates can reuse indexes). Once a
351    // Template is defined, the index cannot be changed, because it identifies
352    // the field in the actual storage format. Index is a mandatory field, but
353    // it is optional for top level fields, and map/array "values" definitions.
354    int32 index = 1 [(google.api.field_behavior) = OPTIONAL];
355
356    // Required. The name of the field.
357    string name = 2 [(google.api.field_behavior) = REQUIRED];
358
359    // Required. The datatype of this field. The following values are supported:
360    // Primitive types (string, integer, boolean, double, datetime); datetime
361    // must be of the format RFC3339 UTC "Zulu" (Examples:
362    // "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z"). Complex
363    // types (enum, array, map, record).
364    string type = 5 [(google.api.field_behavior) = REQUIRED];
365
366    // Optional. Field definition, needs to be specified if the type is record.
367    // Defines the nested fields.
368    repeated MetadataTemplate record_fields = 6
369        [(google.api.field_behavior) = OPTIONAL];
370
371    // Optional. The list of values for an enum type. Needs to be defined if the
372    // type is enum.
373    repeated EnumValue enum_values = 8 [(google.api.field_behavior) = OPTIONAL];
374
375    // Optional. map_items needs to be set if the type is map. map_items can
376    // refer to a primitive field or a complex (record only) field. To specify a
377    // primitive field, just name and type needs to be set in the nested
378    // MetadataTemplate. The recommended value for the name field is item, as
379    // this is not used in the actual payload.
380    MetadataTemplate map_items = 10 [(google.api.field_behavior) = OPTIONAL];
381
382    // Optional. array_items needs to be set if the type is array. array_items
383    // can refer to a primitive field or a complex (record only) field. To
384    // specify a primitive field, just name and type needs to be set in the
385    // nested MetadataTemplate. The recommended value for the name field is
386    // item, as this is not used in the actual payload.
387    MetadataTemplate array_items = 11 [(google.api.field_behavior) = OPTIONAL];
388
389    // Optional. Id can be used if this definition of the field needs to be
390    // reused later. Id needs to be unique across the entire template. Id can
391    // only be specified if the field type is record.
392    string type_id = 12 [(google.api.field_behavior) = OPTIONAL];
393
394    // Optional. A reference to another field definition (instead of an inline
395    // definition). The value must be equal to the value of an id field defined
396    // elsewhere in the MetadataTemplate. Only fields with type as record can
397    // refer to other fields.
398    string type_ref = 13 [(google.api.field_behavior) = OPTIONAL];
399
400    // Optional. Specifies the constraints on this field.
401    Constraints constraints = 50 [(google.api.field_behavior) = OPTIONAL];
402
403    // Optional. Specifies annotations on this field.
404    Annotations annotations = 51 [(google.api.field_behavior) = OPTIONAL];
405  }
406
407  // Output only. The relative resource name of the AspectType, of the form:
408  // projects/{project_number}/locations/{location_id}/aspectTypes/{aspect_type_id}.
409  string name = 1 [
410    (google.api.field_behavior) = OUTPUT_ONLY,
411    (google.api.resource_reference) = {
412      type: "dataplex.googleapis.com/AspectType"
413    }
414  ];
415
416  // Output only. System generated globally unique ID for the AspectType. This
417  // ID will be different if the AspectType is deleted and re-created with the
418  // same name.
419  string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
420
421  // Output only. The time when the AspectType was created.
422  google.protobuf.Timestamp create_time = 3
423      [(google.api.field_behavior) = OUTPUT_ONLY];
424
425  // Output only. The time when the AspectType was last updated.
426  google.protobuf.Timestamp update_time = 4
427      [(google.api.field_behavior) = OUTPUT_ONLY];
428
429  // Optional. Description of the AspectType.
430  string description = 5 [(google.api.field_behavior) = OPTIONAL];
431
432  // Optional. User friendly display name.
433  string display_name = 6 [(google.api.field_behavior) = OPTIONAL];
434
435  // Optional. User-defined labels for the AspectType.
436  map<string, string> labels = 7 [(google.api.field_behavior) = OPTIONAL];
437
438  // This checksum is computed by the server based on the value of other
439  // fields, and may be sent on update and delete requests to ensure the
440  // client has an up-to-date value before proceeding.
441  string etag = 8;
442
443  // Immutable. Authorization defined for this type.
444  Authorization authorization = 52 [(google.api.field_behavior) = IMMUTABLE];
445
446  // Required. MetadataTemplate of the aspect.
447  MetadataTemplate metadata_template = 53
448      [(google.api.field_behavior) = REQUIRED];
449
450  // Output only. Denotes the transfer status of the Aspect Type. It is
451  // unspecified for Aspect Types created from Dataplex API.
452  TransferStatus transfer_status = 202
453      [(google.api.field_behavior) = OUTPUT_ONLY];
454}
455
456// An Entry Group represents a logical grouping of one or more Entries.
457message EntryGroup {
458  option (google.api.resource) = {
459    type: "dataplex.googleapis.com/EntryGroup"
460    pattern: "projects/{project}/locations/{location}/entryGroups/{entry_group}"
461    plural: "entryGroups"
462    singular: "entryGroup"
463  };
464
465  // Output only. The relative resource name of the EntryGroup, of the form:
466  // projects/{project_number}/locations/{location_id}/entryGroups/{entry_group_id}.
467  string name = 1 [
468    (google.api.field_behavior) = OUTPUT_ONLY,
469    (google.api.resource_reference) = {
470      type: "dataplex.googleapis.com/EntryGroup"
471    }
472  ];
473
474  // Output only. System generated globally unique ID for the EntryGroup. This
475  // ID will be different if the EntryGroup is deleted and re-created with the
476  // same name.
477  string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
478
479  // Output only. The time when the EntryGroup was created.
480  google.protobuf.Timestamp create_time = 3
481      [(google.api.field_behavior) = OUTPUT_ONLY];
482
483  // Output only. The time when the EntryGroup was last updated.
484  google.protobuf.Timestamp update_time = 4
485      [(google.api.field_behavior) = OUTPUT_ONLY];
486
487  // Optional. Description of the EntryGroup.
488  string description = 5 [(google.api.field_behavior) = OPTIONAL];
489
490  // Optional. User friendly display name.
491  string display_name = 6 [(google.api.field_behavior) = OPTIONAL];
492
493  // Optional. User-defined labels for the EntryGroup.
494  map<string, string> labels = 7 [(google.api.field_behavior) = OPTIONAL];
495
496  // This checksum is computed by the server based on the value of other
497  // fields, and may be sent on update and delete requests to ensure the
498  // client has an up-to-date value before proceeding.
499  string etag = 8;
500
501  // Output only. Denotes the transfer status of the Entry Group. It is
502  // unspecified for Entry Group created from Dataplex API.
503  TransferStatus transfer_status = 202
504      [(google.api.field_behavior) = OUTPUT_ONLY];
505}
506
507// Entry Type is a template for creating Entries.
508message EntryType {
509  option (google.api.resource) = {
510    type: "dataplex.googleapis.com/EntryType"
511    pattern: "projects/{project}/locations/{location}/entryTypes/{entry_type}"
512    plural: "entryTypes"
513    singular: "entryType"
514  };
515
516  message AspectInfo {
517    // Required aspect type for the entry type.
518    string type = 1 [(google.api.resource_reference) = {
519      type: "dataplex.googleapis.com/AspectType"
520    }];
521  }
522
523  // Authorization for an Entry Type.
524  message Authorization {
525    // Immutable. The IAM permission grantable on the Entry Group to allow
526    // access to instantiate Entries of Dataplex owned Entry Types, only
527    // settable for Dataplex owned Types.
528    string alternate_use_permission = 1
529        [(google.api.field_behavior) = IMMUTABLE];
530  }
531
532  // Output only. The relative resource name of the EntryType, of the form:
533  // projects/{project_number}/locations/{location_id}/entryTypes/{entry_type_id}.
534  string name = 1 [
535    (google.api.field_behavior) = OUTPUT_ONLY,
536    (google.api.resource_reference) = {
537      type: "dataplex.googleapis.com/EntryType"
538    }
539  ];
540
541  // Output only. System generated globally unique ID for the EntryType. This ID
542  // will be different if the EntryType is deleted and re-created with the same
543  // name.
544  string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
545
546  // Output only. The time when the EntryType was created.
547  google.protobuf.Timestamp create_time = 3
548      [(google.api.field_behavior) = OUTPUT_ONLY];
549
550  // Output only. The time when the EntryType was last updated.
551  google.protobuf.Timestamp update_time = 4
552      [(google.api.field_behavior) = OUTPUT_ONLY];
553
554  // Optional. Description of the EntryType.
555  string description = 5 [(google.api.field_behavior) = OPTIONAL];
556
557  // Optional. User friendly display name.
558  string display_name = 6 [(google.api.field_behavior) = OPTIONAL];
559
560  // Optional. User-defined labels for the EntryType.
561  map<string, string> labels = 7 [(google.api.field_behavior) = OPTIONAL];
562
563  // Optional. This checksum is computed by the server based on the value of
564  // other fields, and may be sent on update and delete requests to ensure the
565  // client has an up-to-date value before proceeding.
566  string etag = 8 [(google.api.field_behavior) = OPTIONAL];
567
568  // Optional. Indicates the class this Entry Type belongs to, for example,
569  // TABLE, DATABASE, MODEL.
570  repeated string type_aliases = 9 [(google.api.field_behavior) = OPTIONAL];
571
572  // Optional. The platform that Entries of this type belongs to.
573  string platform = 10 [(google.api.field_behavior) = OPTIONAL];
574
575  // Optional. The system that Entries of this type belongs to. Examples include
576  // CloudSQL, MariaDB etc
577  string system = 11 [(google.api.field_behavior) = OPTIONAL];
578
579  // AspectInfo for the entry type.
580  repeated AspectInfo required_aspects = 50;
581
582  // Immutable. Authorization defined for this type.
583  Authorization authorization = 51 [(google.api.field_behavior) = IMMUTABLE];
584}
585
586// An aspect is a single piece of metadata describing an entry.
587message Aspect {
588  // Output only. The resource name of the type used to create this Aspect.
589  string aspect_type = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
590
591  // Output only. The path in the entry under which the aspect is attached.
592  string path = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
593
594  // Output only. The time when the Aspect was created.
595  google.protobuf.Timestamp create_time = 3
596      [(google.api.field_behavior) = OUTPUT_ONLY];
597
598  // Output only. The time when the Aspect was last updated.
599  google.protobuf.Timestamp update_time = 4
600      [(google.api.field_behavior) = OUTPUT_ONLY];
601
602  // Required. The content of the aspect, according to its aspect type schema.
603  // This will replace `content`.
604  // The maximum size of the field is 120KB (encoded as UTF-8).
605  google.protobuf.Struct data = 8 [(google.api.field_behavior) = REQUIRED];
606
607  AspectSource aspect_source = 9 [(google.api.field_behavior) = OPTIONAL];
608}
609
610// AspectSource contains source system related information for the
611// aspect.
612message AspectSource {
613  // The create time of the aspect in the source system.
614  google.protobuf.Timestamp create_time = 10;
615
616  // The update time of the aspect in the source system.
617  google.protobuf.Timestamp update_time = 11;
618}
619
620// An entry is a representation of a data asset which can be described by
621// various metadata.
622message Entry {
623  option (google.api.resource) = {
624    type: "dataplex.googleapis.com/Entry"
625    pattern: "projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}"
626    plural: "entries"
627    singular: "entry"
628  };
629
630  // Identifier. The relative resource name of the Entry, of the form:
631  // projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}.
632  string name = 1 [(google.api.field_behavior) = IDENTIFIER];
633
634  // Required. Immutable. The resource name of the EntryType used to create this
635  // Entry.
636  string entry_type = 4 [
637    (google.api.field_behavior) = REQUIRED,
638    (google.api.field_behavior) = IMMUTABLE
639  ];
640
641  // Output only. The time when the Entry was created.
642  google.protobuf.Timestamp create_time = 5
643      [(google.api.field_behavior) = OUTPUT_ONLY];
644
645  // Output only. The time when the Entry was last updated.
646  google.protobuf.Timestamp update_time = 6
647      [(google.api.field_behavior) = OUTPUT_ONLY];
648
649  // Optional. The Aspects attached to the Entry. The key is either the resource
650  // name of the aspect type (if the aspect is attached directly to the entry)
651  // or "aspectType@path" if the aspect is attached to an entry's path.
652  map<string, Aspect> aspects = 9 [(google.api.field_behavior) = OPTIONAL];
653
654  // Optional. Immutable. The resource name of the parent entry.
655  string parent_entry = 10 [
656    (google.api.field_behavior) = OPTIONAL,
657    (google.api.field_behavior) = IMMUTABLE
658  ];
659
660  // Optional. A name for the entry that can reference it in an external system.
661  // The maximum size of the field is 4000 characters.
662  string fully_qualified_name = 12 [(google.api.field_behavior) = OPTIONAL];
663
664  // Optional. Source system related information for an entry.
665  EntrySource entry_source = 15 [(google.api.field_behavior) = OPTIONAL];
666}
667
668// EntrySource contains source system related information for the
669// entry.
670message EntrySource {
671  // Ancestor contains information about individual items in the hierarchy of
672  // an Entry.
673  message Ancestor {
674    // Optional. The name of the ancestor resource.
675    string name = 1 [(google.api.field_behavior) = OPTIONAL];
676
677    // Optional. The type of the ancestor resource.
678    string type = 2 [(google.api.field_behavior) = OPTIONAL];
679  }
680
681  // The name of the resource in the source system.
682  // The maximum size of the field is 4000 characters.
683  string resource = 1;
684
685  // The name of the source system.
686  // The maximum size of the field is 64 characters.
687  string system = 2;
688
689  // The platform containing the source system.
690  // The maximum size of the field is 64 characters.
691  string platform = 3;
692
693  // User friendly display name.
694  // The maximum size of the field is 500 characters.
695  string display_name = 5;
696
697  // Description of the Entry.
698  // The maximum size of the field is 2000 characters.
699  string description = 6;
700
701  // User-defined labels.
702  // The maximum size of keys and values is 128 characters each.
703  map<string, string> labels = 7;
704
705  // Immutable. The ancestors of the Entry in the source system.
706  repeated Ancestor ancestors = 9 [(google.api.field_behavior) = IMMUTABLE];
707
708  // The create time of the resource in the source system.
709  google.protobuf.Timestamp create_time = 10;
710
711  // The update time of the resource in the source system.
712  google.protobuf.Timestamp update_time = 11;
713}
714
715// Create EntryGroup Request
716message CreateEntryGroupRequest {
717  // Required. The resource name of the entryGroup, of the form:
718  // projects/{project_number}/locations/{location_id}
719  // where `location_id` refers to a GCP region.
720  string parent = 1 [
721    (google.api.field_behavior) = REQUIRED,
722    (google.api.resource_reference) = {
723      type: "locations.googleapis.com/Location"
724    }
725  ];
726
727  // Required. EntryGroup identifier.
728  string entry_group_id = 2 [(google.api.field_behavior) = REQUIRED];
729
730  // Required. EntryGroup Resource
731  EntryGroup entry_group = 3 [(google.api.field_behavior) = REQUIRED];
732
733  // Optional. Only validate the request, but do not perform mutations.
734  // The default is false.
735  bool validate_only = 4 [(google.api.field_behavior) = OPTIONAL];
736}
737
738// Update EntryGroup Request
739message UpdateEntryGroupRequest {
740  // Required. EntryGroup Resource
741  EntryGroup entry_group = 1 [(google.api.field_behavior) = REQUIRED];
742
743  // Required. Mask of fields to update.
744  google.protobuf.FieldMask update_mask = 2
745      [(google.api.field_behavior) = REQUIRED];
746
747  // Optional. Only validate the request, but do not perform mutations.
748  // The default is false.
749  bool validate_only = 3 [(google.api.field_behavior) = OPTIONAL];
750}
751
752// Delele EntryGroup Request
753message DeleteEntryGroupRequest {
754  // Required. The resource name of the EntryGroup:
755  // `projects/{project_number}/locations/{location_id}/entryGroups/{entry_group_id}`.
756  string name = 1 [
757    (google.api.field_behavior) = REQUIRED,
758    (google.api.resource_reference) = {
759      type: "dataplex.googleapis.com/EntryGroup"
760    }
761  ];
762
763  // Optional. If the client provided etag value does not match the current etag
764  // value, the DeleteEntryGroupRequest method returns an ABORTED error response
765  string etag = 2 [(google.api.field_behavior) = OPTIONAL];
766}
767
768// List entryGroups request.
769message ListEntryGroupsRequest {
770  // Required. The resource name of the entryGroup location, of the form:
771  // `projects/{project_number}/locations/{location_id}`
772  // where `location_id` refers to a GCP region.
773  string parent = 1 [
774    (google.api.field_behavior) = REQUIRED,
775    (google.api.resource_reference) = {
776      type: "locations.googleapis.com/Location"
777    }
778  ];
779
780  // Optional. Maximum number of EntryGroups to return. The service may return
781  // fewer than this value. If unspecified, at most 10 EntryGroups will be
782  // returned. The maximum value is 1000; values above 1000 will be coerced to
783  // 1000.
784  int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
785
786  // Optional. Page token received from a previous `ListEntryGroups` call.
787  // Provide this to retrieve the subsequent page. When paginating, all other
788  // parameters provided to `ListEntryGroups` must match the call that provided
789  // the page token.
790  string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
791
792  // Optional. Filter request.
793  string filter = 4 [(google.api.field_behavior) = OPTIONAL];
794
795  // Optional. Order by fields for the result.
796  string order_by = 5 [(google.api.field_behavior) = OPTIONAL];
797}
798
799// List ListEntryGroups response.
800message ListEntryGroupsResponse {
801  // ListEntryGroups under the given parent location.
802  repeated EntryGroup entry_groups = 1;
803
804  // Token to retrieve the next page of results, or empty if there are no more
805  // results in the list.
806  string next_page_token = 2;
807
808  // Locations that could not be reached.
809  repeated string unreachable_locations = 3;
810}
811
812// Get EntryGroup request.
813message GetEntryGroupRequest {
814  // Required. The resource name of the EntryGroup:
815  // `projects/{project_number}/locations/{location_id}/entryGroups/{entry_group_id}`.
816  string name = 1 [
817    (google.api.field_behavior) = REQUIRED,
818    (google.api.resource_reference) = {
819      type: "dataplex.googleapis.com/EntryGroup"
820    }
821  ];
822}
823
824// Create EntryType Request
825message CreateEntryTypeRequest {
826  // Required. The resource name of the EntryType, of the form:
827  // projects/{project_number}/locations/{location_id}
828  // where `location_id` refers to a GCP region.
829  string parent = 1 [
830    (google.api.field_behavior) = REQUIRED,
831    (google.api.resource_reference) = {
832      type: "locations.googleapis.com/Location"
833    }
834  ];
835
836  // Required. EntryType identifier.
837  string entry_type_id = 2 [(google.api.field_behavior) = REQUIRED];
838
839  // Required. EntryType Resource
840  EntryType entry_type = 3 [(google.api.field_behavior) = REQUIRED];
841
842  // Optional. Only validate the request, but do not perform mutations.
843  // The default is false.
844  bool validate_only = 4 [(google.api.field_behavior) = OPTIONAL];
845}
846
847// Update EntryType Request
848message UpdateEntryTypeRequest {
849  // Required. EntryType Resource
850  EntryType entry_type = 1 [(google.api.field_behavior) = REQUIRED];
851
852  // Required. Mask of fields to update.
853  google.protobuf.FieldMask update_mask = 2
854      [(google.api.field_behavior) = REQUIRED];
855
856  // Optional. Only validate the request, but do not perform mutations.
857  // The default is false.
858  bool validate_only = 3 [(google.api.field_behavior) = OPTIONAL];
859}
860
861// Delele EntryType Request
862message DeleteEntryTypeRequest {
863  // Required. The resource name of the EntryType:
864  // `projects/{project_number}/locations/{location_id}/entryTypes/{entry_type_id}`.
865  string name = 1 [
866    (google.api.field_behavior) = REQUIRED,
867    (google.api.resource_reference) = {
868      type: "dataplex.googleapis.com/EntryType"
869    }
870  ];
871
872  // Optional. If the client provided etag value does not match the current etag
873  // value, the DeleteEntryTypeRequest method returns an ABORTED error response
874  string etag = 2 [(google.api.field_behavior) = OPTIONAL];
875}
876
877// List EntryTypes request
878message ListEntryTypesRequest {
879  // Required. The resource name of the EntryType location, of the form:
880  // `projects/{project_number}/locations/{location_id}`
881  // where `location_id` refers to a GCP region.
882  string parent = 1 [
883    (google.api.field_behavior) = REQUIRED,
884    (google.api.resource_reference) = {
885      type: "locations.googleapis.com/Location"
886    }
887  ];
888
889  // Optional. Maximum number of EntryTypes to return. The service may return
890  // fewer than this value. If unspecified, at most 10 EntryTypes will be
891  // returned. The maximum value is 1000; values above 1000 will be coerced to
892  // 1000.
893  int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
894
895  // Optional. Page token received from a previous `ListEntryTypes` call.
896  // Provide this to retrieve the subsequent page. When paginating, all other
897  // parameters provided to `ListEntryTypes` must match the call that provided
898  // the page token.
899  string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
900
901  // Optional. Filter request. Filters are case-sensitive.
902  // The following formats are supported:
903  //
904  // labels.key1 = "value1"
905  // labels:key1
906  // name = "value"
907  // These restrictions can be coinjoined with AND, OR and NOT conjunctions.
908  string filter = 4 [(google.api.field_behavior) = OPTIONAL];
909
910  // Optional. Order by fields (`name` or `create_time`) for the result.
911  // If not specified, the ordering is undefined.
912  string order_by = 5 [(google.api.field_behavior) = OPTIONAL];
913}
914
915// List EntryTypes response
916message ListEntryTypesResponse {
917  // ListEntryTypes under the given parent location.
918  repeated EntryType entry_types = 1;
919
920  // Token to retrieve the next page of results, or empty if there are no more
921  // results in the list.
922  string next_page_token = 2;
923
924  // Locations that could not be reached.
925  repeated string unreachable_locations = 3;
926}
927
928// Get EntryType request
929message GetEntryTypeRequest {
930  // Required. The resource name of the EntryType:
931  // `projects/{project_number}/locations/{location_id}/entryTypes/{entry_type_id}`.
932  string name = 1 [
933    (google.api.field_behavior) = REQUIRED,
934    (google.api.resource_reference) = {
935      type: "dataplex.googleapis.com/EntryType"
936    }
937  ];
938}
939
940// Create AspectType Request
941message CreateAspectTypeRequest {
942  // Required. The resource name of the AspectType, of the form:
943  // projects/{project_number}/locations/{location_id}
944  // where `location_id` refers to a GCP region.
945  string parent = 1 [
946    (google.api.field_behavior) = REQUIRED,
947    (google.api.resource_reference) = {
948      type: "locations.googleapis.com/Location"
949    }
950  ];
951
952  // Required. AspectType identifier.
953  string aspect_type_id = 2 [(google.api.field_behavior) = REQUIRED];
954
955  // Required. AspectType Resource
956  AspectType aspect_type = 3 [(google.api.field_behavior) = REQUIRED];
957
958  // Optional. Only validate the request, but do not perform mutations.
959  // The default is false.
960  bool validate_only = 4 [(google.api.field_behavior) = OPTIONAL];
961}
962
963// Update AspectType Request
964message UpdateAspectTypeRequest {
965  // Required. AspectType Resource
966  AspectType aspect_type = 1 [(google.api.field_behavior) = REQUIRED];
967
968  // Required. Mask of fields to update.
969  google.protobuf.FieldMask update_mask = 2
970      [(google.api.field_behavior) = REQUIRED];
971
972  // Optional. Only validate the request, but do not perform mutations.
973  // The default is false.
974  bool validate_only = 3 [(google.api.field_behavior) = OPTIONAL];
975}
976
977// Delele AspectType Request
978message DeleteAspectTypeRequest {
979  // Required. The resource name of the AspectType:
980  // `projects/{project_number}/locations/{location_id}/aspectTypes/{aspect_type_id}`.
981  string name = 1 [
982    (google.api.field_behavior) = REQUIRED,
983    (google.api.resource_reference) = {
984      type: "dataplex.googleapis.com/AspectType"
985    }
986  ];
987
988  // Optional. If the client provided etag value does not match the current etag
989  // value, the DeleteAspectTypeRequest method returns an ABORTED error response
990  string etag = 2 [(google.api.field_behavior) = OPTIONAL];
991}
992
993// List AspectTypes request
994message ListAspectTypesRequest {
995  // Required. The resource name of the AspectType location, of the form:
996  // `projects/{project_number}/locations/{location_id}`
997  // where `location_id` refers to a GCP region.
998  string parent = 1 [
999    (google.api.field_behavior) = REQUIRED,
1000    (google.api.resource_reference) = {
1001      type: "locations.googleapis.com/Location"
1002    }
1003  ];
1004
1005  // Optional. Maximum number of AspectTypes to return. The service may return
1006  // fewer than this value. If unspecified, at most 10 AspectTypes will be
1007  // returned. The maximum value is 1000; values above 1000 will be coerced to
1008  // 1000.
1009  int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
1010
1011  // Optional. Page token received from a previous `ListAspectTypes` call.
1012  // Provide this to retrieve the subsequent page. When paginating, all other
1013  // parameters provided to `ListAspectTypes` must match the call that provided
1014  // the page token.
1015  string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
1016
1017  // Optional. Filter request. Filters are case-sensitive.
1018  // The following formats are supported:
1019  //
1020  // labels.key1 = "value1"
1021  // labels:key1
1022  // name = "value"
1023  // These restrictions can be coinjoined with AND, OR and NOT conjunctions.
1024  string filter = 4 [(google.api.field_behavior) = OPTIONAL];
1025
1026  // Optional. Order by fields (`name` or `create_time`) for the result.
1027  // If not specified, the ordering is undefined.
1028  string order_by = 5 [(google.api.field_behavior) = OPTIONAL];
1029}
1030
1031// List AspectTypes response
1032message ListAspectTypesResponse {
1033  // ListAspectTypes under the given parent location.
1034  repeated AspectType aspect_types = 1;
1035
1036  // Token to retrieve the next page of results, or empty if there are no more
1037  // results in the list.
1038  string next_page_token = 2;
1039
1040  // Locations that could not be reached.
1041  repeated string unreachable_locations = 3;
1042}
1043
1044// Get AspectType request
1045message GetAspectTypeRequest {
1046  // Required. The resource name of the AspectType:
1047  // `projects/{project_number}/locations/{location_id}/aspectTypes/{aspect_type_id}`.
1048  string name = 1 [
1049    (google.api.field_behavior) = REQUIRED,
1050    (google.api.resource_reference) = {
1051      type: "dataplex.googleapis.com/AspectType"
1052    }
1053  ];
1054}
1055
1056message CreateEntryRequest {
1057  // Required. The resource name of the parent Entry Group:
1058  // `projects/{project}/locations/{location}/entryGroups/{entry_group}`.
1059  string parent = 1 [
1060    (google.api.field_behavior) = REQUIRED,
1061    (google.api.resource_reference) = {
1062      type: "dataplex.googleapis.com/EntryGroup"
1063    }
1064  ];
1065
1066  // Required. Entry identifier. It has to be unique within an Entry Group.
1067  //
1068  // Entries corresponding to Google Cloud resources use Entry ID format based
1069  // on Full Resource Names
1070  // (https://cloud.google.com/apis/design/resource_names#full_resource_name).
1071  // The format is a Full Resource Name of the resource without the
1072  // prefix double slashes in the API Service Name part of Full Resource Name.
1073  // This allows retrieval of entries using their associated resource name.
1074  //
1075  // For example if the Full Resource Name of a resource is
1076  // `//library.googleapis.com/shelves/shelf1/books/book2`,
1077  // then the suggested entry_id is
1078  // `library.googleapis.com/shelves/shelf1/books/book2`.
1079  //
1080  // It is also suggested to follow the same convention for entries
1081  // corresponding to resources from other providers or systems than Google
1082  // Cloud.
1083  //
1084  // The maximum size of the field is 4000 characters.
1085  string entry_id = 2 [(google.api.field_behavior) = REQUIRED];
1086
1087  // Required. Entry resource.
1088  Entry entry = 3 [(google.api.field_behavior) = REQUIRED];
1089}
1090
1091message UpdateEntryRequest {
1092  // Required. Entry resource.
1093  Entry entry = 1 [(google.api.field_behavior) = REQUIRED];
1094
1095  // Optional. Mask of fields to update. To update Aspects, the update_mask must
1096  // contain the value "aspects".
1097  //
1098  // If the update_mask is empty, all modifiable fields present in the request
1099  // will be updated.
1100  google.protobuf.FieldMask update_mask = 2
1101      [(google.api.field_behavior) = OPTIONAL];
1102
1103  // Optional. If set to true and the entry does not exist, it will be created.
1104  bool allow_missing = 3 [(google.api.field_behavior) = OPTIONAL];
1105
1106  // Optional. If set to true and the aspect_keys specify aspect ranges, any
1107  // existing aspects from that range not provided in the request will be
1108  // deleted.
1109  bool delete_missing_aspects = 4 [(google.api.field_behavior) = OPTIONAL];
1110
1111  // Optional. The map keys of the Aspects which should be modified. Supports
1112  // the following syntaxes:
1113  // * <aspect_type_reference> - matches aspect on given type and empty path
1114  // * <aspect_type_reference>@path - matches aspect on given type and specified
1115  // path
1116  // * <aspect_type_reference>* - matches aspects on given type for all paths
1117  // * *@path - matches aspects of all types on the given path
1118  //
1119  // Existing aspects matching the syntax will not be removed unless
1120  // `delete_missing_aspects` is set to true.
1121  //
1122  // If this field is left empty, it will be treated as specifying exactly those
1123  // Aspects present in the request.
1124  repeated string aspect_keys = 5 [(google.api.field_behavior) = OPTIONAL];
1125}
1126
1127message DeleteEntryRequest {
1128  // Required. The resource name of the Entry:
1129  // `projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}`.
1130  string name = 1 [
1131    (google.api.field_behavior) = REQUIRED,
1132    (google.api.resource_reference) = { type: "dataplex.googleapis.com/Entry" }
1133  ];
1134}
1135
1136message ListEntriesRequest {
1137  // Required. The resource name of the parent Entry Group:
1138  // `projects/{project}/locations/{location}/entryGroups/{entry_group}`.
1139  string parent = 1 [
1140    (google.api.field_behavior) = REQUIRED,
1141    (google.api.resource_reference) = {
1142      type: "dataplex.googleapis.com/EntryGroup"
1143    }
1144  ];
1145
1146  int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
1147
1148  // Optional. The pagination token returned by a previous request.
1149  string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
1150
1151  // Optional. A filter on the entries to return.
1152  // Filters are case-sensitive.
1153  // The request can be filtered by the following fields:
1154  // entry_type, display_name.
1155  // The comparison operators are =, !=, <, >, <=, >= (strings are compared
1156  // according to lexical order)
1157  // The logical operators AND, OR, NOT can be used
1158  // in the filter. Example filter expressions:
1159  // "display_name=AnExampleDisplayName"
1160  // "entry_type=projects/example-project/locations/global/entryTypes/example-entry_type"
1161  // "entry_type=projects/a* OR "entry_type=projects/k*"
1162  // "NOT display_name=AnotherExampleDisplayName"
1163  string filter = 4 [(google.api.field_behavior) = OPTIONAL];
1164}
1165
1166message ListEntriesResponse {
1167  // The list of entries.
1168  repeated Entry entries = 1;
1169
1170  // Pagination token.
1171  string next_page_token = 2;
1172}
1173
1174message GetEntryRequest {
1175  // Required. The resource name of the Entry:
1176  // `projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}`.
1177  string name = 1 [
1178    (google.api.field_behavior) = REQUIRED,
1179    (google.api.resource_reference) = { type: "dataplex.googleapis.com/Entry" }
1180  ];
1181
1182  // Optional. View for controlling which parts of an entry are to be returned.
1183  EntryView view = 2 [(google.api.field_behavior) = OPTIONAL];
1184
1185  // Optional. Limits the aspects returned to the provided aspect types.
1186  // Only works if the CUSTOM view is selected.
1187  repeated string aspect_types = 3 [(google.api.field_behavior) = OPTIONAL];
1188
1189  // Optional. Limits the aspects returned to those associated with the provided
1190  // paths within the Entry. Only works if the CUSTOM view is selected.
1191  repeated string paths = 4 [(google.api.field_behavior) = OPTIONAL];
1192}
1193
1194message LookupEntryRequest {
1195  // Required. The project to which the request should be attributed in the
1196  // following form: `projects/{project}/locations/{location}`.
1197  string name = 1 [(google.api.field_behavior) = REQUIRED];
1198
1199  // Optional. View for controlling which parts of an entry are to be returned.
1200  EntryView view = 2 [(google.api.field_behavior) = OPTIONAL];
1201
1202  // Optional. Limits the aspects returned to the provided aspect types.
1203  // Only works if the CUSTOM view is selected.
1204  repeated string aspect_types = 3 [(google.api.field_behavior) = OPTIONAL];
1205
1206  // Optional. Limits the aspects returned to those associated with the provided
1207  // paths within the Entry. Only works if the CUSTOM view is selected.
1208  repeated string paths = 4 [(google.api.field_behavior) = OPTIONAL];
1209
1210  // Required. The resource name of the Entry:
1211  // `projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}`.
1212  string entry = 5 [
1213    (google.api.field_behavior) = REQUIRED,
1214    (google.api.resource_reference) = { type: "dataplex.googleapis.com/Entry" }
1215  ];
1216}
1217
1218message SearchEntriesRequest {
1219  // Required. The project to which the request should be attributed in the
1220  // following form: `projects/{project}/locations/{location}`.
1221  string name = 1 [(google.api.field_behavior) = REQUIRED];
1222
1223  // Required. The query against which entries in scope should be matched.
1224  string query = 2 [(google.api.field_behavior) = REQUIRED];
1225
1226  // Optional. Pagination.
1227  int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL];
1228
1229  string page_token = 4 [(google.api.field_behavior) = OPTIONAL];
1230
1231  // Optional. Ordering of the results. Supported options to be added later.
1232  string order_by = 5 [(google.api.field_behavior) = OPTIONAL];
1233
1234  // Optional. The scope under which the search should be operating. Should
1235  // either be organizations/<org_id> or projects/<project_ref>. If left
1236  // unspecified, it will default to the organization where the project provided
1237  // in `name` is located.
1238  string scope = 7 [(google.api.field_behavior) = OPTIONAL];
1239}
1240
1241// A single result of a SearchEntries request.
1242message SearchEntriesResult {
1243  // Snippets for the entry, contains HTML-style highlighting for
1244  // matched tokens, will be used in UI.
1245  message Snippets {
1246    // Entry
1247    Entry dataplex_entry = 1;
1248  }
1249
1250  // Resource name of the entry.
1251  string entry = 1 [deprecated = true];
1252
1253  // Display name.
1254  string display_name = 2 [deprecated = true];
1255
1256  // The entry type.
1257  string entry_type = 3 [deprecated = true];
1258
1259  // The last modification timestamp.
1260  google.protobuf.Timestamp modify_time = 4 [deprecated = true];
1261
1262  // Fully qualified name.
1263  string fully_qualified_name = 5 [deprecated = true];
1264
1265  // Entry description.
1266  string description = 6 [deprecated = true];
1267
1268  // Relative resource name.
1269  string relative_resource = 7 [deprecated = true];
1270
1271  // Linked resource name.
1272  string linked_resource = 8;
1273
1274  // Entry format of the result.
1275  Entry dataplex_entry = 9;
1276
1277  // Snippets.
1278  Snippets snippets = 12;
1279}
1280
1281message SearchEntriesResponse {
1282  // The results matching the search query.
1283  repeated SearchEntriesResult results = 1;
1284
1285  // The estimated total number of matching entries. Not guaranteed to be
1286  // accurate.
1287  int32 total_size = 2;
1288
1289  // Pagination token.
1290  string next_page_token = 3;
1291
1292  // Unreachable locations. Search results don't include data from those
1293  // locations.
1294  repeated string unreachable = 4;
1295}
1296
1297// View for controlling which parts of an entry are to be returned.
1298enum EntryView {
1299  // Unspecified EntryView. Defaults to FULL.
1300  ENTRY_VIEW_UNSPECIFIED = 0;
1301
1302  // Returns entry only, without aspects.
1303  BASIC = 1;
1304
1305  // Returns all required aspects as well as the keys of all non-required
1306  // aspects.
1307  FULL = 2;
1308
1309  // Returns aspects matching custom fields in GetEntryRequest. If the number of
1310  // aspects would exceed 100, the first 100 will be returned.
1311  CUSTOM = 3;
1312
1313  // Returns all aspects. If the number of aspects would exceed 100, the first
1314  // 100 will be returned.
1315  ALL = 4;
1316}
1317
1318// Denotes the transfer status of a resource. It is unspecified for resources
1319// created from Dataplex API.
1320enum TransferStatus {
1321  // The default value. It is set for resources that were not subject for
1322  // migration from Data Catalog service.
1323  TRANSFER_STATUS_UNSPECIFIED = 0;
1324
1325  // Indicates that a resource was migrated from Data Catalog service but it
1326  // hasn't been transferred yet. In particular the resource cannot be updated
1327  // from Dataplex API.
1328  TRANSFER_STATUS_MIGRATED = 1;
1329
1330  // Indicates that a resource was transferred from Data Catalog service. The
1331  // resource can only be updated from Dataplex API.
1332  TRANSFER_STATUS_TRANSFERRED = 2;
1333}
1334