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