1// Copyright 2023 Google LLC 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15syntax = "proto3"; 16 17package google.cloud.datacatalog.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/datacatalog/v1/bigquery.proto"; 24import "google/cloud/datacatalog/v1/common.proto"; 25import "google/cloud/datacatalog/v1/data_source.proto"; 26import "google/cloud/datacatalog/v1/dataplex_spec.proto"; 27import "google/cloud/datacatalog/v1/gcs_fileset_spec.proto"; 28import "google/cloud/datacatalog/v1/schema.proto"; 29import "google/cloud/datacatalog/v1/search.proto"; 30import "google/cloud/datacatalog/v1/table_spec.proto"; 31import "google/cloud/datacatalog/v1/tags.proto"; 32import "google/cloud/datacatalog/v1/timestamps.proto"; 33import "google/cloud/datacatalog/v1/usage.proto"; 34import "google/iam/v1/iam_policy.proto"; 35import "google/iam/v1/policy.proto"; 36import "google/longrunning/operations.proto"; 37import "google/protobuf/empty.proto"; 38import "google/protobuf/field_mask.proto"; 39import "google/rpc/status.proto"; 40 41option cc_enable_arenas = true; 42option csharp_namespace = "Google.Cloud.DataCatalog.V1"; 43option go_package = "cloud.google.com/go/datacatalog/apiv1/datacatalogpb;datacatalogpb"; 44option java_multiple_files = true; 45option java_package = "com.google.cloud.datacatalog.v1"; 46option php_namespace = "Google\\Cloud\\DataCatalog\\V1"; 47option ruby_package = "Google::Cloud::DataCatalog::V1"; 48option (google.api.resource_definition) = { 49 type: "datacatalog.googleapis.com/TagTemplateFieldEnumValue" 50 pattern: "projects/{project}/locations/{location}/tagTemplates/{tag_template}/fields/{tag_template_field_id}/enumValues/{enum_value_display_name}" 51}; 52 53// Data Catalog API service allows you to discover, understand, and manage 54// your data. 55service DataCatalog { 56 option (google.api.default_host) = "datacatalog.googleapis.com"; 57 option (google.api.oauth_scopes) = 58 "https://www.googleapis.com/auth/cloud-platform"; 59 60 // Searches Data Catalog for multiple resources like entries and tags that 61 // match a query. 62 // 63 // This is a [Custom Method] 64 // (https://cloud.google.com/apis/design/custom_methods) that doesn't return 65 // all information on a resource, only its ID and high level fields. To get 66 // more information, you can subsequently call specific get methods. 67 // 68 // Note: Data Catalog search queries don't guarantee full recall. Results 69 // that match your query might not be returned, even in subsequent 70 // result pages. Additionally, returned (and not returned) results can vary 71 // if you repeat search queries. 72 // 73 // For more information, see [Data Catalog search syntax] 74 // (https://cloud.google.com/data-catalog/docs/how-to/search-reference). 75 rpc SearchCatalog(SearchCatalogRequest) returns (SearchCatalogResponse) { 76 option (google.api.http) = { 77 post: "/v1/catalog:search" 78 body: "*" 79 }; 80 option (google.api.method_signature) = "scope,query"; 81 } 82 83 // Creates an entry group. 84 // 85 // An entry group contains logically related entries together with [Cloud 86 // Identity and Access Management](/data-catalog/docs/concepts/iam) policies. 87 // These policies specify users who can create, edit, and view entries 88 // within entry groups. 89 // 90 // Data Catalog automatically creates entry groups with names that start with 91 // the `@` symbol for the following resources: 92 // 93 // * BigQuery entries (`@bigquery`) 94 // * Pub/Sub topics (`@pubsub`) 95 // * Dataproc Metastore services (`@dataproc_metastore_{SERVICE_NAME_HASH}`) 96 // 97 // You can create your own entry groups for Cloud Storage fileset entries 98 // and custom entries together with the corresponding IAM policies. 99 // User-created entry groups can't contain the `@` symbol, it is reserved 100 // for automatically created groups. 101 // 102 // Entry groups, like entries, can be searched. 103 // 104 // A maximum of 10,000 entry groups may be created per organization across all 105 // locations. 106 // 107 // You must enable the Data Catalog API in the project identified by 108 // the `parent` parameter. For more information, see [Data Catalog resource 109 // project](https://cloud.google.com/data-catalog/docs/concepts/resource-project). 110 rpc CreateEntryGroup(CreateEntryGroupRequest) returns (EntryGroup) { 111 option (google.api.http) = { 112 post: "/v1/{parent=projects/*/locations/*}/entryGroups" 113 body: "entry_group" 114 }; 115 option (google.api.method_signature) = "parent,entry_group_id,entry_group"; 116 } 117 118 // Gets an entry group. 119 rpc GetEntryGroup(GetEntryGroupRequest) returns (EntryGroup) { 120 option (google.api.http) = { 121 get: "/v1/{name=projects/*/locations/*/entryGroups/*}" 122 }; 123 option (google.api.method_signature) = "name"; 124 option (google.api.method_signature) = "name,read_mask"; 125 } 126 127 // Updates an entry group. 128 // 129 // You must enable the Data Catalog API in the project identified by 130 // the `entry_group.name` parameter. For more information, see [Data Catalog 131 // resource 132 // project](https://cloud.google.com/data-catalog/docs/concepts/resource-project). 133 rpc UpdateEntryGroup(UpdateEntryGroupRequest) returns (EntryGroup) { 134 option (google.api.http) = { 135 patch: "/v1/{entry_group.name=projects/*/locations/*/entryGroups/*}" 136 body: "entry_group" 137 }; 138 option (google.api.method_signature) = "entry_group"; 139 option (google.api.method_signature) = "entry_group,update_mask"; 140 } 141 142 // Deletes an entry group. 143 // 144 // You must enable the Data Catalog API in the project 145 // identified by the `name` parameter. For more information, see [Data Catalog 146 // resource 147 // project](https://cloud.google.com/data-catalog/docs/concepts/resource-project). 148 rpc DeleteEntryGroup(DeleteEntryGroupRequest) 149 returns (google.protobuf.Empty) { 150 option (google.api.http) = { 151 delete: "/v1/{name=projects/*/locations/*/entryGroups/*}" 152 }; 153 option (google.api.method_signature) = "name"; 154 } 155 156 // Lists entry groups. 157 rpc ListEntryGroups(ListEntryGroupsRequest) 158 returns (ListEntryGroupsResponse) { 159 option (google.api.http) = { 160 get: "/v1/{parent=projects/*/locations/*}/entryGroups" 161 }; 162 option (google.api.method_signature) = "parent"; 163 } 164 165 // Creates an entry. 166 // 167 // You can create entries only with 'FILESET', 'CLUSTER', 'DATA_STREAM', 168 // or custom types. Data Catalog automatically creates entries with other 169 // types during metadata ingestion from integrated systems. 170 // 171 // You must enable the Data Catalog API in the project identified by 172 // the `parent` parameter. For more information, see [Data Catalog resource 173 // project](https://cloud.google.com/data-catalog/docs/concepts/resource-project). 174 // 175 // An entry group can have a maximum of 100,000 entries. 176 rpc CreateEntry(CreateEntryRequest) returns (Entry) { 177 option (google.api.http) = { 178 post: "/v1/{parent=projects/*/locations/*/entryGroups/*}/entries" 179 body: "entry" 180 }; 181 option (google.api.method_signature) = "parent,entry_id,entry"; 182 } 183 184 // Updates an existing entry. 185 // 186 // You must enable the Data Catalog API in the project identified by 187 // the `entry.name` parameter. For more information, see [Data Catalog 188 // resource 189 // project](https://cloud.google.com/data-catalog/docs/concepts/resource-project). 190 rpc UpdateEntry(UpdateEntryRequest) returns (Entry) { 191 option (google.api.http) = { 192 patch: "/v1/{entry.name=projects/*/locations/*/entryGroups/*/entries/*}" 193 body: "entry" 194 }; 195 option (google.api.method_signature) = "entry"; 196 option (google.api.method_signature) = "entry,update_mask"; 197 } 198 199 // Deletes an existing entry. 200 // 201 // You can delete only the entries created by the 202 // [CreateEntry][google.cloud.datacatalog.v1.DataCatalog.CreateEntry] 203 // method. 204 // 205 // You must enable the Data Catalog API in the project identified by 206 // the `name` parameter. For more information, see [Data Catalog 207 // resource 208 // project](https://cloud.google.com/data-catalog/docs/concepts/resource-project). 209 rpc DeleteEntry(DeleteEntryRequest) returns (google.protobuf.Empty) { 210 option (google.api.http) = { 211 delete: "/v1/{name=projects/*/locations/*/entryGroups/*/entries/*}" 212 }; 213 option (google.api.method_signature) = "name"; 214 } 215 216 // Gets an entry. 217 rpc GetEntry(GetEntryRequest) returns (Entry) { 218 option (google.api.http) = { 219 get: "/v1/{name=projects/*/locations/*/entryGroups/*/entries/*}" 220 }; 221 option (google.api.method_signature) = "name"; 222 } 223 224 // Gets an entry by its target resource name. 225 // 226 // The resource name comes from the source Google Cloud Platform service. 227 rpc LookupEntry(LookupEntryRequest) returns (Entry) { 228 option (google.api.http) = { 229 get: "/v1/entries:lookup" 230 }; 231 } 232 233 // Lists entries. 234 // 235 // Note: Currently, this method can list only custom entries. 236 // To get a list of both custom and automatically created entries, use 237 // [SearchCatalog][google.cloud.datacatalog.v1.DataCatalog.SearchCatalog]. 238 rpc ListEntries(ListEntriesRequest) returns (ListEntriesResponse) { 239 option (google.api.http) = { 240 get: "/v1/{parent=projects/*/locations/*/entryGroups/*}/entries" 241 }; 242 option (google.api.method_signature) = "parent"; 243 } 244 245 // Modifies entry overview, part of the business context of an 246 // [Entry][google.cloud.datacatalog.v1.Entry]. 247 // 248 // To call this method, you must have the `datacatalog.entries.updateOverview` 249 // IAM permission on the corresponding project. 250 rpc ModifyEntryOverview(ModifyEntryOverviewRequest) returns (EntryOverview) { 251 option (google.api.http) = { 252 post: "/v1/{name=projects/*/locations/*/entryGroups/*/entries/*}:modifyEntryOverview" 253 body: "*" 254 }; 255 } 256 257 // Modifies contacts, part of the business context of an 258 // [Entry][google.cloud.datacatalog.v1.Entry]. 259 // 260 // To call this method, you must have the `datacatalog.entries.updateContacts` 261 // IAM permission on the corresponding project. 262 rpc ModifyEntryContacts(ModifyEntryContactsRequest) returns (Contacts) { 263 option (google.api.http) = { 264 post: "/v1/{name=projects/*/locations/*/entryGroups/*/entries/*}:modifyEntryContacts" 265 body: "*" 266 }; 267 } 268 269 // Creates a tag template. 270 // 271 // You must enable the Data Catalog API in the project identified by the 272 // `parent` parameter. 273 // For more information, see [Data Catalog resource project] 274 // (https://cloud.google.com/data-catalog/docs/concepts/resource-project). 275 rpc CreateTagTemplate(CreateTagTemplateRequest) returns (TagTemplate) { 276 option (google.api.http) = { 277 post: "/v1/{parent=projects/*/locations/*}/tagTemplates" 278 body: "tag_template" 279 }; 280 option (google.api.method_signature) = 281 "parent,tag_template_id,tag_template"; 282 } 283 284 // Gets a tag template. 285 rpc GetTagTemplate(GetTagTemplateRequest) returns (TagTemplate) { 286 option (google.api.http) = { 287 get: "/v1/{name=projects/*/locations/*/tagTemplates/*}" 288 }; 289 option (google.api.method_signature) = "name"; 290 } 291 292 // Updates a tag template. 293 // 294 // You can't update template fields with this method. These fields are 295 // separate resources with their own create, update, and delete methods. 296 // 297 // You must enable the Data Catalog API in the project identified by 298 // the `tag_template.name` parameter. For more information, see [Data Catalog 299 // resource 300 // project](https://cloud.google.com/data-catalog/docs/concepts/resource-project). 301 rpc UpdateTagTemplate(UpdateTagTemplateRequest) returns (TagTemplate) { 302 option (google.api.http) = { 303 patch: "/v1/{tag_template.name=projects/*/locations/*/tagTemplates/*}" 304 body: "tag_template" 305 }; 306 option (google.api.method_signature) = "tag_template"; 307 option (google.api.method_signature) = "tag_template,update_mask"; 308 } 309 310 // Deletes a tag template and all tags that use it. 311 // 312 // You must enable the Data Catalog API in the project identified by 313 // the `name` parameter. For more information, see [Data Catalog resource 314 // project](https://cloud.google.com/data-catalog/docs/concepts/resource-project). 315 rpc DeleteTagTemplate(DeleteTagTemplateRequest) 316 returns (google.protobuf.Empty) { 317 option (google.api.http) = { 318 delete: "/v1/{name=projects/*/locations/*/tagTemplates/*}" 319 }; 320 option (google.api.method_signature) = "name,force"; 321 } 322 323 // Creates a field in a tag template. 324 // 325 // You must enable the Data Catalog API in the project identified by 326 // the `parent` parameter. For more information, see [Data Catalog resource 327 // project](https://cloud.google.com/data-catalog/docs/concepts/resource-project). 328 rpc CreateTagTemplateField(CreateTagTemplateFieldRequest) 329 returns (TagTemplateField) { 330 option (google.api.http) = { 331 post: "/v1/{parent=projects/*/locations/*/tagTemplates/*}/fields" 332 body: "tag_template_field" 333 }; 334 option (google.api.method_signature) = 335 "parent,tag_template_field_id,tag_template_field"; 336 } 337 338 // Updates a field in a tag template. 339 // 340 // You can't update the field type with this method. 341 // 342 // You must enable the Data Catalog API in the project 343 // identified by the `name` parameter. For more information, see [Data Catalog 344 // resource 345 // project](https://cloud.google.com/data-catalog/docs/concepts/resource-project). 346 rpc UpdateTagTemplateField(UpdateTagTemplateFieldRequest) 347 returns (TagTemplateField) { 348 option (google.api.http) = { 349 patch: "/v1/{name=projects/*/locations/*/tagTemplates/*/fields/*}" 350 body: "tag_template_field" 351 }; 352 option (google.api.method_signature) = "name,tag_template_field"; 353 option (google.api.method_signature) = 354 "name,tag_template_field,update_mask"; 355 } 356 357 // Renames a field in a tag template. 358 // 359 // You must enable the Data Catalog API in the project identified by the 360 // `name` parameter. For more information, see [Data Catalog resource project] 361 // (https://cloud.google.com/data-catalog/docs/concepts/resource-project). 362 rpc RenameTagTemplateField(RenameTagTemplateFieldRequest) 363 returns (TagTemplateField) { 364 option (google.api.http) = { 365 post: "/v1/{name=projects/*/locations/*/tagTemplates/*/fields/*}:rename" 366 body: "*" 367 }; 368 option (google.api.method_signature) = "name,new_tag_template_field_id"; 369 } 370 371 // Renames an enum value in a tag template. 372 // 373 // Within a single enum field, enum values must be unique. 374 rpc RenameTagTemplateFieldEnumValue(RenameTagTemplateFieldEnumValueRequest) 375 returns (TagTemplateField) { 376 option (google.api.http) = { 377 post: "/v1/{name=projects/*/locations/*/tagTemplates/*/fields/*/enumValues/*}:rename" 378 body: "*" 379 }; 380 option (google.api.method_signature) = "name,new_enum_value_display_name"; 381 } 382 383 // Deletes a field in a tag template and all uses of this field from the tags 384 // based on this template. 385 // 386 // You must enable the Data Catalog API in the project identified by 387 // the `name` parameter. For more information, see [Data Catalog resource 388 // project](https://cloud.google.com/data-catalog/docs/concepts/resource-project). 389 rpc DeleteTagTemplateField(DeleteTagTemplateFieldRequest) 390 returns (google.protobuf.Empty) { 391 option (google.api.http) = { 392 delete: "/v1/{name=projects/*/locations/*/tagTemplates/*/fields/*}" 393 }; 394 option (google.api.method_signature) = "name,force"; 395 } 396 397 // Creates a tag and assigns it to: 398 // 399 // * An [Entry][google.cloud.datacatalog.v1.Entry] if the method name is 400 // `projects.locations.entryGroups.entries.tags.create`. 401 // * Or [EntryGroup][google.cloud.datacatalog.v1.EntryGroup]if the method 402 // name is `projects.locations.entryGroups.tags.create`. 403 // 404 // Note: The project identified by the `parent` parameter for the [tag] 405 // (https://cloud.google.com/data-catalog/docs/reference/rest/v1/projects.locations.entryGroups.entries.tags/create#path-parameters) 406 // and the [tag template] 407 // (https://cloud.google.com/data-catalog/docs/reference/rest/v1/projects.locations.tagTemplates/create#path-parameters) 408 // used to create the tag must be in the same organization. 409 rpc CreateTag(CreateTagRequest) returns (Tag) { 410 option (google.api.http) = { 411 post: "/v1/{parent=projects/*/locations/*/entryGroups/*/entries/*}/tags" 412 body: "tag" 413 additional_bindings { 414 post: "/v1/{parent=projects/*/locations/*/entryGroups/*}/tags" 415 body: "tag" 416 } 417 }; 418 option (google.api.method_signature) = "parent,tag"; 419 } 420 421 // Updates an existing tag. 422 rpc UpdateTag(UpdateTagRequest) returns (Tag) { 423 option (google.api.http) = { 424 patch: "/v1/{tag.name=projects/*/locations/*/entryGroups/*/entries/*/tags/*}" 425 body: "tag" 426 additional_bindings { 427 patch: "/v1/{tag.name=projects/*/locations/*/entryGroups/*/tags/*}" 428 body: "tag" 429 } 430 }; 431 option (google.api.method_signature) = "tag"; 432 option (google.api.method_signature) = "tag,update_mask"; 433 } 434 435 // Deletes a tag. 436 rpc DeleteTag(DeleteTagRequest) returns (google.protobuf.Empty) { 437 option (google.api.http) = { 438 delete: "/v1/{name=projects/*/locations/*/entryGroups/*/entries/*/tags/*}" 439 additional_bindings { 440 delete: "/v1/{name=projects/*/locations/*/entryGroups/*/tags/*}" 441 } 442 }; 443 option (google.api.method_signature) = "name"; 444 } 445 446 // Lists tags assigned to an [Entry][google.cloud.datacatalog.v1.Entry]. 447 // The [columns][google.cloud.datacatalog.v1.Tag.column] in the response are 448 // lowercased. 449 rpc ListTags(ListTagsRequest) returns (ListTagsResponse) { 450 option (google.api.http) = { 451 get: "/v1/{parent=projects/*/locations/*/entryGroups/*/entries/*}/tags" 452 additional_bindings { 453 get: "/v1/{parent=projects/*/locations/*/entryGroups/*}/tags" 454 } 455 }; 456 option (google.api.method_signature) = "parent"; 457 } 458 459 // `ReconcileTags` creates or updates a list of tags on the entry. 460 // If the 461 // [ReconcileTagsRequest.force_delete_missing][google.cloud.datacatalog.v1.ReconcileTagsRequest.force_delete_missing] 462 // parameter is set, the operation deletes tags not included in the input tag 463 // list. 464 // 465 // `ReconcileTags` returns a [long-running operation] 466 // [google.longrunning.Operation] resource that can be queried with 467 // [Operations.GetOperation][google.longrunning.Operations.GetOperation] 468 // to return [ReconcileTagsMetadata] 469 // [google.cloud.datacatalog.v1.ReconcileTagsMetadata] and 470 // a [ReconcileTagsResponse] 471 // [google.cloud.datacatalog.v1.ReconcileTagsResponse] message. 472 rpc ReconcileTags(ReconcileTagsRequest) 473 returns (google.longrunning.Operation) { 474 option (google.api.http) = { 475 post: "/v1/{parent=projects/*/locations/*/entryGroups/*/entries/*}/tags:reconcile" 476 body: "*" 477 }; 478 option (google.longrunning.operation_info) = { 479 response_type: "ReconcileTagsResponse" 480 metadata_type: "ReconcileTagsMetadata" 481 }; 482 } 483 484 // Marks an [Entry][google.cloud.datacatalog.v1.Entry] as starred by 485 // the current user. Starring information is private to each user. 486 rpc StarEntry(StarEntryRequest) returns (StarEntryResponse) { 487 option (google.api.http) = { 488 post: "/v1/{name=projects/*/locations/*/entryGroups/*/entries/*}:star" 489 body: "*" 490 }; 491 option (google.api.method_signature) = "name"; 492 } 493 494 // Marks an [Entry][google.cloud.datacatalog.v1.Entry] as NOT starred by 495 // the current user. Starring information is private to each user. 496 rpc UnstarEntry(UnstarEntryRequest) returns (UnstarEntryResponse) { 497 option (google.api.http) = { 498 post: "/v1/{name=projects/*/locations/*/entryGroups/*/entries/*}:unstar" 499 body: "*" 500 }; 501 option (google.api.method_signature) = "name"; 502 } 503 504 // Sets an access control policy for a resource. Replaces any existing 505 // policy. 506 // 507 // Supported resources are: 508 // 509 // - Tag templates 510 // - Entry groups 511 // 512 // Note: This method sets policies only within Data Catalog and can't be 513 // used to manage policies in BigQuery, Pub/Sub, Dataproc Metastore, and any 514 // external Google Cloud Platform resources synced with the Data Catalog. 515 // 516 // To call this method, you must have the following Google IAM permissions: 517 // 518 // - `datacatalog.tagTemplates.setIamPolicy` to set policies on tag 519 // templates. 520 // - `datacatalog.entryGroups.setIamPolicy` to set policies on entry groups. 521 rpc SetIamPolicy(google.iam.v1.SetIamPolicyRequest) 522 returns (google.iam.v1.Policy) { 523 option (google.api.http) = { 524 post: "/v1/{resource=projects/*/locations/*/tagTemplates/*}:setIamPolicy" 525 body: "*" 526 additional_bindings { 527 post: "/v1/{resource=projects/*/locations/*/entryGroups/*}:setIamPolicy" 528 body: "*" 529 } 530 }; 531 option (google.api.method_signature) = "resource,policy"; 532 } 533 534 // Gets the access control policy for a resource. 535 // 536 // May return: 537 // 538 // * A`NOT_FOUND` error if the resource doesn't exist or you don't have the 539 // permission to view it. 540 // * An empty policy if the resource exists but doesn't have a set policy. 541 // 542 // Supported resources are: 543 // 544 // - Tag templates 545 // - Entry groups 546 // 547 // Note: This method doesn't get policies from Google Cloud Platform 548 // resources ingested into Data Catalog. 549 // 550 // To call this method, you must have the following Google IAM permissions: 551 // 552 // - `datacatalog.tagTemplates.getIamPolicy` to get policies on tag 553 // templates. 554 // - `datacatalog.entryGroups.getIamPolicy` to get policies on entry groups. 555 rpc GetIamPolicy(google.iam.v1.GetIamPolicyRequest) 556 returns (google.iam.v1.Policy) { 557 option (google.api.http) = { 558 post: "/v1/{resource=projects/*/locations/*/tagTemplates/*}:getIamPolicy" 559 body: "*" 560 additional_bindings { 561 post: "/v1/{resource=projects/*/locations/*/entryGroups/*}:getIamPolicy" 562 body: "*" 563 } 564 additional_bindings { 565 post: "/v1/{resource=projects/*/locations/*/entryGroups/*/entries/*}:getIamPolicy" 566 body: "*" 567 } 568 }; 569 option (google.api.method_signature) = "resource"; 570 } 571 572 // Gets your permissions on a resource. 573 // 574 // Returns an empty set of permissions if the resource doesn't exist. 575 // 576 // Supported resources are: 577 // 578 // - Tag templates 579 // - Entry groups 580 // 581 // Note: This method gets policies only within Data Catalog and can't be 582 // used to get policies from BigQuery, Pub/Sub, Dataproc Metastore, and any 583 // external Google Cloud Platform resources ingested into Data Catalog. 584 // 585 // No Google IAM permissions are required to call this method. 586 rpc TestIamPermissions(google.iam.v1.TestIamPermissionsRequest) 587 returns (google.iam.v1.TestIamPermissionsResponse) { 588 option (google.api.http) = { 589 post: "/v1/{resource=projects/*/locations/*/tagTemplates/*}:testIamPermissions" 590 body: "*" 591 additional_bindings { 592 post: "/v1/{resource=projects/*/locations/*/entryGroups/*}:testIamPermissions" 593 body: "*" 594 } 595 additional_bindings { 596 post: "/v1/{resource=projects/*/locations/*/entryGroups/*/entries/*}:testIamPermissions" 597 body: "*" 598 } 599 }; 600 } 601 602 // Imports entries from a source, such as data previously dumped into a 603 // Cloud Storage bucket, into Data Catalog. Import of entries 604 // is a sync operation that reconciles the state of the third-party system 605 // with the Data Catalog. 606 // 607 // `ImportEntries` accepts source data snapshots of a third-party system. 608 // Snapshot should be delivered as a .wire or base65-encoded .txt file 609 // containing a sequence of Protocol Buffer messages of 610 // [DumpItem][google.cloud.datacatalog.v1.DumpItem] type. 611 // 612 // `ImportEntries` returns a [long-running operation] 613 // [google.longrunning.Operation] resource that can be queried with 614 // [Operations.GetOperation][google.longrunning.Operations.GetOperation] 615 // to return 616 // [ImportEntriesMetadata][google.cloud.datacatalog.v1.ImportEntriesMetadata] 617 // and an 618 // [ImportEntriesResponse][google.cloud.datacatalog.v1.ImportEntriesResponse] 619 // message. 620 rpc ImportEntries(ImportEntriesRequest) 621 returns (google.longrunning.Operation) { 622 option (google.api.http) = { 623 post: "/v1/{parent=projects/*/locations/*/entryGroups/*}/entries:import" 624 body: "*" 625 }; 626 option (google.longrunning.operation_info) = { 627 response_type: "ImportEntriesResponse" 628 metadata_type: "ImportEntriesMetadata" 629 }; 630 } 631} 632 633// Request message for 634// [SearchCatalog][google.cloud.datacatalog.v1.DataCatalog.SearchCatalog]. 635message SearchCatalogRequest { 636 // The criteria that select the subspace used for query matching. 637 message Scope { 638 // The list of organization IDs to search within. 639 // 640 // To find your organization ID, follow the steps from 641 // [Creating and managing organizations] 642 // (/resource-manager/docs/creating-managing-organization). 643 repeated string include_org_ids = 2; 644 645 // The list of project IDs to search within. 646 // 647 // For more information on the distinction between project names, IDs, and 648 // numbers, see [Projects](/docs/overview/#projects). 649 repeated string include_project_ids = 3; 650 651 // If `true`, include Google Cloud public datasets in 652 // search results. By default, they are excluded. 653 // 654 // See [Google Cloud Public Datasets](/public-datasets) for more 655 // information. 656 bool include_gcp_public_datasets = 7; 657 658 // Optional. The list of locations to search within. If empty, all locations 659 // are searched. 660 // 661 // Returns an error if any location in the list isn't one of the [Supported 662 // regions](https://cloud.google.com/data-catalog/docs/concepts/regions#supported_regions). 663 // 664 // If a location is unreachable, its name is returned in the 665 // `SearchCatalogResponse.unreachable` field. To get additional information 666 // on the error, repeat the search request and set the location name as the 667 // value of this parameter. 668 repeated string restricted_locations = 16 669 [(google.api.field_behavior) = OPTIONAL]; 670 671 // Optional. If `true`, search only among starred entries. 672 // 673 // By default, all results are returned, starred or not. 674 bool starred_only = 18 [(google.api.field_behavior) = OPTIONAL]; 675 676 // Optional. This field is deprecated. The search mechanism for public and 677 // private tag templates is the same. 678 bool include_public_tag_templates = 19 679 [deprecated = true, (google.api.field_behavior) = OPTIONAL]; 680 } 681 682 // Required. The scope of this search request. 683 // 684 // The `scope` is invalid if `include_org_ids`, `include_project_ids` are 685 // empty AND `include_gcp_public_datasets` is set to `false`. In this case, 686 // the request returns an error. 687 Scope scope = 6 [(google.api.field_behavior) = REQUIRED]; 688 689 // Optional. The query string with a minimum of 3 characters and specific 690 // syntax. For more information, see [Data Catalog search 691 // syntax](https://cloud.google.com/data-catalog/docs/how-to/search-reference). 692 // 693 // An empty query string returns all data assets (in the specified scope) 694 // that you have access to. 695 // 696 // A query string can be a simple `xyz` or qualified by predicates: 697 // 698 // * `name:x` 699 // * `column:y` 700 // * `description:z` 701 string query = 1 [(google.api.field_behavior) = OPTIONAL]; 702 703 // Upper bound on the number of results you can get in a single response. 704 // 705 // Can't be negative or 0, defaults to 10 in this case. 706 // The maximum number is 1000. If exceeded, throws an "invalid argument" 707 // exception. 708 int32 page_size = 2; 709 710 // Optional. Pagination token that, if specified, returns the next page of 711 // search results. If empty, returns the first page. 712 // 713 // This token is returned in the 714 // [SearchCatalogResponse.next_page_token][google.cloud.datacatalog.v1.SearchCatalogResponse.next_page_token] 715 // field of the response to a previous 716 // [SearchCatalogRequest][google.cloud.datacatalog.v1.DataCatalog.SearchCatalog] 717 // call. 718 string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; 719 720 // Specifies the order of results. 721 // 722 // Currently supported case-sensitive values are: 723 // 724 // * `relevance` that can only be descending 725 // * `last_modified_timestamp [asc|desc]` with descending (`desc`) as default 726 // * `default` that can only be descending 727 // 728 // Search queries don't guarantee full recall. Results that match your query 729 // might not be returned, even in subsequent result pages. Additionally, 730 // returned (and not returned) results can vary if you repeat search queries. 731 // If you are experiencing recall issues and you don't have to fetch the 732 // results in any specific order, consider setting this parameter to 733 // `default`. 734 // 735 // If this parameter is omitted, it defaults to the descending `relevance`. 736 string order_by = 5; 737 738 // Optional. If set, use searchAll permission granted on organizations from 739 // `include_org_ids` and projects from `include_project_ids` instead of the 740 // fine grained per resource permissions when filtering the search results. 741 // The only allowed `order_by` criteria for admin_search mode is `default`. 742 // Using this flags guarantees a full recall of the search results. 743 bool admin_search = 17 [(google.api.field_behavior) = OPTIONAL]; 744} 745 746// Response message for 747// [SearchCatalog][google.cloud.datacatalog.v1.DataCatalog.SearchCatalog]. 748message SearchCatalogResponse { 749 // Search results. 750 repeated SearchCatalogResult results = 1; 751 752 // The approximate total number of entries matched by the query. 753 int32 total_size = 2; 754 755 // Pagination token that can be used in subsequent calls to retrieve the next 756 // page of results. 757 string next_page_token = 3; 758 759 // Unreachable locations. Search results don't include data from those 760 // locations. 761 // 762 // To get additional information on an error, repeat the search request and 763 // restrict it to specific locations by setting the 764 // `SearchCatalogRequest.scope.restricted_locations` parameter. 765 repeated string unreachable = 6; 766} 767 768// Request message for 769// [CreateEntryGroup][google.cloud.datacatalog.v1.DataCatalog.CreateEntryGroup]. 770message CreateEntryGroupRequest { 771 // Required. The names of the project and location that the new entry group 772 // belongs to. 773 // 774 // Note: The entry group itself and its child resources might not be 775 // stored in the location specified in its name. 776 string parent = 1 [ 777 (google.api.field_behavior) = REQUIRED, 778 (google.api.resource_reference) = { 779 child_type: "datacatalog.googleapis.com/EntryGroup" 780 } 781 ]; 782 783 // Required. The ID of the entry group to create. 784 // 785 // The ID must contain only letters (a-z, A-Z), numbers (0-9), 786 // underscores (_), and must start with a letter or underscore. 787 // The maximum size is 64 bytes when encoded in UTF-8. 788 string entry_group_id = 3 [(google.api.field_behavior) = REQUIRED]; 789 790 // The entry group to create. Defaults to empty. 791 EntryGroup entry_group = 2; 792} 793 794// Request message for 795// [UpdateEntryGroup][google.cloud.datacatalog.v1.DataCatalog.UpdateEntryGroup]. 796message UpdateEntryGroupRequest { 797 // Required. Updates for the entry group. The `name` field must be set. 798 EntryGroup entry_group = 1 [(google.api.field_behavior) = REQUIRED]; 799 800 // Names of fields whose values to overwrite on an entry group. 801 // 802 // If this parameter is absent or empty, all modifiable fields 803 // are overwritten. If such fields are non-required and omitted in the 804 // request body, their values are emptied. 805 google.protobuf.FieldMask update_mask = 2; 806} 807 808// Request message for 809// [GetEntryGroup][google.cloud.datacatalog.v1.DataCatalog.GetEntryGroup]. 810message GetEntryGroupRequest { 811 // Required. The name of the entry group to get. 812 string name = 1 [ 813 (google.api.field_behavior) = REQUIRED, 814 (google.api.resource_reference) = { 815 type: "datacatalog.googleapis.com/EntryGroup" 816 } 817 ]; 818 819 // The fields to return. If empty or omitted, all fields are returned. 820 google.protobuf.FieldMask read_mask = 2; 821} 822 823// Request message for 824// [DeleteEntryGroup][google.cloud.datacatalog.v1.DataCatalog.DeleteEntryGroup]. 825message DeleteEntryGroupRequest { 826 // Required. The name of the entry group to delete. 827 string name = 1 [ 828 (google.api.field_behavior) = REQUIRED, 829 (google.api.resource_reference) = { 830 type: "datacatalog.googleapis.com/EntryGroup" 831 } 832 ]; 833 834 // Optional. If true, deletes all entries in the entry group. 835 bool force = 2 [(google.api.field_behavior) = OPTIONAL]; 836} 837 838// Request message for 839// [ListEntryGroups][google.cloud.datacatalog.v1.DataCatalog.ListEntryGroups]. 840message ListEntryGroupsRequest { 841 // Required. The name of the location that contains the entry groups to list. 842 // 843 // Can be provided as a URL. 844 string parent = 1 [ 845 (google.api.field_behavior) = REQUIRED, 846 (google.api.resource_reference) = { 847 child_type: "datacatalog.googleapis.com/EntryGroup" 848 } 849 ]; 850 851 // Optional. The maximum number of items to return. 852 // 853 // Default is 10. Maximum limit is 1000. 854 // Throws an invalid argument if `page_size` is greater than 1000. 855 int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; 856 857 // Optional. Pagination token that specifies the next page to return. 858 // If empty, returns the first page. 859 string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; 860} 861 862// Response message for 863// [ListEntryGroups][google.cloud.datacatalog.v1.DataCatalog.ListEntryGroups]. 864message ListEntryGroupsResponse { 865 // Entry group details. 866 repeated EntryGroup entry_groups = 1; 867 868 // Pagination token to specify in the next call to retrieve the next page of 869 // results. Empty if there are no more items. 870 string next_page_token = 2; 871} 872 873// Request message for 874// [CreateEntry][google.cloud.datacatalog.v1.DataCatalog.CreateEntry]. 875message CreateEntryRequest { 876 // Required. The name of the entry group this entry belongs to. 877 // 878 // Note: The entry itself and its child resources might not be stored in 879 // the location specified in its name. 880 string parent = 1 [ 881 (google.api.field_behavior) = REQUIRED, 882 (google.api.resource_reference) = { 883 type: "datacatalog.googleapis.com/EntryGroup" 884 } 885 ]; 886 887 // Required. The ID of the entry to create. 888 // 889 // The ID must contain only letters (a-z, A-Z), numbers (0-9), 890 // and underscores (_). 891 // The maximum size is 64 bytes when encoded in UTF-8. 892 string entry_id = 3 [(google.api.field_behavior) = REQUIRED]; 893 894 // Required. The entry to create. 895 Entry entry = 2 [(google.api.field_behavior) = REQUIRED]; 896} 897 898// Request message for 899// [UpdateEntry][google.cloud.datacatalog.v1.DataCatalog.UpdateEntry]. 900message UpdateEntryRequest { 901 // Required. Updates for the entry. The `name` field must be set. 902 Entry entry = 1 [(google.api.field_behavior) = REQUIRED]; 903 904 // Names of fields whose values to overwrite on an entry. 905 // 906 // If this parameter is absent or empty, all modifiable fields 907 // are overwritten. If such fields are non-required and omitted in the 908 // request body, their values are emptied. 909 // 910 // You can modify only the fields listed below. 911 // 912 // For entries with type `DATA_STREAM`: 913 // 914 // * `schema` 915 // 916 // For entries with type `FILESET`: 917 // 918 // * `schema` 919 // * `display_name` 920 // * `description` 921 // * `gcs_fileset_spec` 922 // * `gcs_fileset_spec.file_patterns` 923 // 924 // For entries with `user_specified_type`: 925 // 926 // * `schema` 927 // * `display_name` 928 // * `description` 929 // * `user_specified_type` 930 // * `user_specified_system` 931 // * `linked_resource` 932 // * `source_system_timestamps` 933 google.protobuf.FieldMask update_mask = 2; 934} 935 936// Request message for 937// [DeleteEntry][google.cloud.datacatalog.v1.DataCatalog.DeleteEntry]. 938message DeleteEntryRequest { 939 // Required. The name of the entry to delete. 940 string name = 1 [ 941 (google.api.field_behavior) = REQUIRED, 942 (google.api.resource_reference) = { 943 type: "datacatalog.googleapis.com/Entry" 944 } 945 ]; 946} 947 948// Request message for 949// [GetEntry][google.cloud.datacatalog.v1.DataCatalog.GetEntry]. 950message GetEntryRequest { 951 // Required. The name of the entry to get. 952 string name = 1 [ 953 (google.api.field_behavior) = REQUIRED, 954 (google.api.resource_reference) = { 955 type: "datacatalog.googleapis.com/Entry" 956 } 957 ]; 958} 959 960// Request message for 961// [LookupEntry][google.cloud.datacatalog.v1.DataCatalog.LookupEntry]. 962message LookupEntryRequest { 963 // Required. A full name, SQL name, or a fully qualified name of a 964 // Google Cloud Platform resource. 965 oneof target_name { 966 // The full name of the Google Cloud Platform resource the Data Catalog 967 // entry represents. For more information, see [Full Resource Name] 968 // (https://cloud.google.com/apis/design/resource_names#full_resource_name). 969 // 970 // Full names are case-sensitive. For example: 971 // 972 // * `//bigquery.googleapis.com/projects/{PROJECT_ID}/datasets/{DATASET_ID}/tables/{TABLE_ID}` 973 // * `//pubsub.googleapis.com/projects/{PROJECT_ID}/topics/{TOPIC_ID}` 974 string linked_resource = 1; 975 976 // The SQL name of the entry. SQL names are case-sensitive. 977 // 978 // Examples: 979 // 980 // * `pubsub.topic.{PROJECT_ID}.{TOPIC_ID}` 981 // * `pubsub.topic.{PROJECT_ID}.`\``{TOPIC.ID.SEPARATED.WITH.DOTS}`\` 982 // * `bigquery.table.{PROJECT_ID}.{DATASET_ID}.{TABLE_ID}` 983 // * `bigquery.dataset.{PROJECT_ID}.{DATASET_ID}` 984 // * `datacatalog.entry.{PROJECT_ID}.{LOCATION_ID}.{ENTRY_GROUP_ID}.{ENTRY_ID}` 985 // 986 // Identifiers (`*_ID`) should comply with the 987 // [Lexical structure in Standard SQL] 988 // (https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical). 989 string sql_resource = 3; 990 991 // [Fully Qualified Name 992 // (FQN)](https://cloud.google.com//data-catalog/docs/fully-qualified-names) 993 // of the resource. 994 // 995 // FQNs take two forms: 996 // 997 // * For non-regionalized resources: 998 // 999 // `{SYSTEM}:{PROJECT}.{PATH_TO_RESOURCE_SEPARATED_WITH_DOTS}` 1000 // 1001 // * For regionalized resources: 1002 // 1003 // `{SYSTEM}:{PROJECT}.{LOCATION_ID}.{PATH_TO_RESOURCE_SEPARATED_WITH_DOTS}` 1004 // 1005 // Example for a DPMS table: 1006 // 1007 // `dataproc_metastore:{PROJECT_ID}.{LOCATION_ID}.{INSTANCE_ID}.{DATABASE_ID}.{TABLE_ID}` 1008 string fully_qualified_name = 5; 1009 } 1010 1011 // Project where the lookup should be performed. Required to lookup 1012 // entry that is not a part of `DPMS` or `DATAPLEX` `integrated_system` 1013 // using its `fully_qualified_name`. Ignored in other cases. 1014 string project = 6; 1015 1016 // Location where the lookup should be performed. Required to lookup 1017 // entry that is not a part of `DPMS` or `DATAPLEX` `integrated_system` 1018 // using its `fully_qualified_name`. Ignored in other cases. 1019 string location = 7; 1020} 1021 1022// Entry metadata. 1023// A Data Catalog entry represents another resource in Google 1024// Cloud Platform (such as a BigQuery dataset or a Pub/Sub topic) or 1025// outside of it. You can use the `linked_resource` field 1026// in the entry resource to refer to the original resource ID of the source 1027// system. 1028// 1029// An entry resource contains resource details, for example, its schema. 1030// Additionally, you can attach flexible metadata to an entry in the form of a 1031// [Tag][google.cloud.datacatalog.v1.Tag]. 1032message Entry { 1033 option (google.api.resource) = { 1034 type: "datacatalog.googleapis.com/Entry" 1035 pattern: "projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}" 1036 }; 1037 1038 // Output only. The resource name of an entry in URL format. 1039 // 1040 // Note: The entry itself and its child resources might not be 1041 // stored in the location specified in its name. 1042 string name = 1 [ 1043 (google.api.field_behavior) = OUTPUT_ONLY, 1044 (google.api.resource_reference) = { 1045 type: "datacatalog.googleapis.com/EntryGroup" 1046 } 1047 ]; 1048 1049 // The resource this metadata entry refers to. 1050 // 1051 // For Google Cloud Platform resources, `linked_resource` is the 1052 // [Full Resource Name] 1053 // (https://cloud.google.com/apis/design/resource_names#full_resource_name). 1054 // For example, the `linked_resource` for a table resource from BigQuery is: 1055 // 1056 // `//bigquery.googleapis.com/projects/{PROJECT_ID}/datasets/{DATASET_ID}/tables/{TABLE_ID}` 1057 // 1058 // Output only when the entry is one of the types in the `EntryType` enum. 1059 // 1060 // For entries with a `user_specified_type`, this field is optional and 1061 // defaults to an empty string. 1062 // 1063 // The resource string must contain only letters (a-z, A-Z), numbers (0-9), 1064 // underscores (_), periods (.), colons (:), slashes (/), dashes (-), 1065 // and hashes (#). 1066 // The maximum size is 200 bytes when encoded in UTF-8. 1067 string linked_resource = 9; 1068 1069 // [Fully Qualified Name 1070 // (FQN)](https://cloud.google.com//data-catalog/docs/fully-qualified-names) 1071 // of the resource. Set automatically for entries representing resources from 1072 // synced systems. Settable only during creation, and read-only later. Can 1073 // be used for search and lookup of the entries. 1074 // 1075 string fully_qualified_name = 29; 1076 1077 // Required. Entry type. 1078 oneof entry_type { 1079 // The type of the entry. 1080 // 1081 // For details, see [`EntryType`](#entrytype). 1082 EntryType type = 2; 1083 1084 // Custom entry type that doesn't match any of the values allowed for input 1085 // and listed in the `EntryType` enum. 1086 // 1087 // When creating an entry, first check the type values in the enum. 1088 // If there are no appropriate types for the new entry, 1089 // provide a custom value, for example, `my_special_type`. 1090 // 1091 // The `user_specified_type` string has the following limitations: 1092 // 1093 // * Is case insensitive. 1094 // * Must begin with a letter or underscore. 1095 // * Can only contain letters, numbers, and underscores. 1096 // * Must be at least 1 character and at most 64 characters long. 1097 string user_specified_type = 16; 1098 } 1099 1100 // The source system of the entry. 1101 oneof system { 1102 // Output only. Indicates the entry's source system that Data Catalog 1103 // integrates with, such as BigQuery, Pub/Sub, or Dataproc Metastore. 1104 IntegratedSystem integrated_system = 17 1105 [(google.api.field_behavior) = OUTPUT_ONLY]; 1106 1107 // Indicates the entry's source system that Data Catalog doesn't 1108 // automatically integrate with. 1109 // 1110 // The `user_specified_system` string has the following limitations: 1111 // 1112 // * Is case insensitive. 1113 // * Must begin with a letter or underscore. 1114 // * Can only contain letters, numbers, and underscores. 1115 // * Must be at least 1 character and at most 64 characters long. 1116 string user_specified_system = 18; 1117 } 1118 1119 // System specification. 1120 // Can be used as a complement for `spec`, when some metadata is relevant for 1121 // all entries existing within given system 1122 oneof system_spec { 1123 // Specification that applies to a relational database system. Only settable 1124 // when `user_specified_system` is equal to `SQL_DATABASE` 1125 SqlDatabaseSystemSpec sql_database_system_spec = 39; 1126 1127 // Specification that applies to Looker sysstem. Only settable when 1128 // `user_specified_system` is equal to `LOOKER` 1129 LookerSystemSpec looker_system_spec = 40; 1130 1131 // Specification that applies to Cloud Bigtable system. Only settable when 1132 // `integrated_system` is equal to `CLOUD_BIGTABLE` 1133 CloudBigtableSystemSpec cloud_bigtable_system_spec = 41; 1134 } 1135 1136 // Type specification. 1137 oneof type_spec { 1138 // Specification that applies to a Cloud Storage fileset. Valid only 1139 // for entries with the `FILESET` type. 1140 GcsFilesetSpec gcs_fileset_spec = 6; 1141 1142 // Output only. Specification that applies to a BigQuery table. Valid only 1143 // for entries with the `TABLE` type. 1144 BigQueryTableSpec bigquery_table_spec = 12 1145 [(google.api.field_behavior) = OUTPUT_ONLY]; 1146 1147 // Output only. Specification for a group of BigQuery tables with 1148 // the `[prefix]YYYYMMDD` name pattern. 1149 // 1150 // For more information, see [Introduction to partitioned tables] 1151 // (https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding). 1152 BigQueryDateShardedSpec bigquery_date_sharded_spec = 15 1153 [(google.api.field_behavior) = OUTPUT_ONLY]; 1154 } 1155 1156 // Type- and system-specific information. Specifications for types contain 1157 // fields common to all entries of a given type, and sub-specifications with 1158 // fields specific to a given source system. 1159 // 1160 // When extending the API with new types and systems, use this field instead 1161 // of the legacy `type_spec`. 1162 oneof spec { 1163 // Specification that applies to a table resource. Valid only 1164 // for entries with the `TABLE` or `EXPLORE` type. 1165 DatabaseTableSpec database_table_spec = 24; 1166 1167 // Specification that applies to a data source connection. Valid only 1168 // for entries with the `DATA_SOURCE_CONNECTION` type. 1169 DataSourceConnectionSpec data_source_connection_spec = 27; 1170 1171 // Specification that applies to a user-defined function or procedure. Valid 1172 // only for entries with the `ROUTINE` type. 1173 RoutineSpec routine_spec = 28; 1174 1175 // Specification that applies to a dataset. 1176 DatasetSpec dataset_spec = 32; 1177 1178 // Specification that applies to a fileset resource. Valid only 1179 // for entries with the `FILESET` type. 1180 FilesetSpec fileset_spec = 33; 1181 1182 // Specification that applies to a Service resource. 1183 ServiceSpec service_spec = 42; 1184 1185 // Model specification. 1186 ModelSpec model_spec = 43; 1187 } 1188 1189 // Display name of an entry. 1190 // 1191 // The maximum size is 500 bytes when encoded in UTF-8. 1192 // Default value is an empty string. 1193 string display_name = 3; 1194 1195 // Entry description that can consist of several sentences or paragraphs 1196 // that describe entry contents. 1197 // 1198 // The description must not contain Unicode non-characters as well as C0 1199 // and C1 control codes except tabs (HT), new lines (LF), carriage returns 1200 // (CR), and page breaks (FF). 1201 // The maximum size is 2000 bytes when encoded in UTF-8. 1202 // Default value is an empty string. 1203 string description = 4; 1204 1205 // Business Context of the entry. Not supported for BigQuery datasets 1206 BusinessContext business_context = 37; 1207 1208 // Schema of the entry. An entry might not have any schema attached to it. 1209 Schema schema = 5; 1210 1211 // Timestamps from the underlying resource, not from the Data Catalog 1212 // entry. 1213 // 1214 // Output only when the entry has a system listed in the `IntegratedSystem` 1215 // enum. For entries with `user_specified_system`, this field is optional 1216 // and defaults to an empty timestamp. 1217 SystemTimestamps source_system_timestamps = 7; 1218 1219 // Resource usage statistics. 1220 UsageSignal usage_signal = 13; 1221 1222 // Cloud labels attached to the entry. 1223 // 1224 // In Data Catalog, you can create and modify labels attached only to custom 1225 // entries. Synced entries have unmodifiable labels that come from the source 1226 // system. 1227 map<string, string> labels = 14; 1228 1229 // Output only. Physical location of the entry. 1230 DataSource data_source = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; 1231 1232 // Output only. Additional information related to the entry. Private to the 1233 // current user. 1234 PersonalDetails personal_details = 26 1235 [(google.api.field_behavior) = OUTPUT_ONLY]; 1236} 1237 1238// Specification that applies to a table resource. Valid only 1239// for entries with the `TABLE` type. 1240message DatabaseTableSpec { 1241 // Type of the table. 1242 enum TableType { 1243 // Default unknown table type. 1244 TABLE_TYPE_UNSPECIFIED = 0; 1245 1246 // Native table. 1247 NATIVE = 1; 1248 1249 // External table. 1250 EXTERNAL = 2; 1251 } 1252 1253 // Specification that applies to database view. 1254 message DatabaseViewSpec { 1255 // Concrete type of the view. 1256 enum ViewType { 1257 // Default unknown view type. 1258 VIEW_TYPE_UNSPECIFIED = 0; 1259 1260 // Standard view. 1261 STANDARD_VIEW = 1; 1262 1263 // Materialized view. 1264 MATERIALIZED_VIEW = 2; 1265 } 1266 1267 // Type of this view. 1268 ViewType view_type = 1; 1269 1270 // Definition of the view. 1271 oneof source_definition { 1272 // Name of a singular table this view reflects one to one. 1273 string base_table = 2; 1274 1275 // SQL query used to generate this view. 1276 string sql_query = 3; 1277 } 1278 } 1279 1280 // Type of this table. 1281 TableType type = 1; 1282 1283 // Output only. Fields specific to a Dataplex table and present only in the 1284 // Dataplex table entries. 1285 DataplexTableSpec dataplex_table = 2 1286 [(google.api.field_behavior) = OUTPUT_ONLY]; 1287 1288 // Spec what aplies to tables that are actually views. 1289 // Not set for "real" tables. 1290 DatabaseViewSpec database_view_spec = 3; 1291} 1292 1293// Specification that applies to a fileset. Valid only for entries with the 1294// 'FILESET' type. 1295message FilesetSpec { 1296 // Fields specific to a Dataplex fileset and present only in the Dataplex 1297 // fileset entries. 1298 DataplexFilesetSpec dataplex_fileset = 1; 1299} 1300 1301// Specification that applies to a data source connection. Valid only for 1302// entries with the `DATA_SOURCE_CONNECTION` type. 1303// Only one of internal specs can be set at the time, and cannot 1304// be changed later. 1305message DataSourceConnectionSpec { 1306 // Output only. Fields specific to BigQuery connections. 1307 BigQueryConnectionSpec bigquery_connection_spec = 1; 1308} 1309 1310// Specification that applies to a routine. Valid only for 1311// entries with the `ROUTINE` type. 1312message RoutineSpec { 1313 // The fine-grained type of the routine. 1314 enum RoutineType { 1315 // Unspecified type. 1316 ROUTINE_TYPE_UNSPECIFIED = 0; 1317 1318 // Non-builtin permanent scalar function. 1319 SCALAR_FUNCTION = 1; 1320 1321 // Stored procedure. 1322 PROCEDURE = 2; 1323 } 1324 1325 // Input or output argument of a function or stored procedure. 1326 message Argument { 1327 // The input or output mode of the argument. 1328 enum Mode { 1329 // Unspecified mode. 1330 MODE_UNSPECIFIED = 0; 1331 1332 // The argument is input-only. 1333 IN = 1; 1334 1335 // The argument is output-only. 1336 OUT = 2; 1337 1338 // The argument is both an input and an output. 1339 INOUT = 3; 1340 } 1341 1342 // The name of the argument. A return argument of a function might not have 1343 // a name. 1344 string name = 1; 1345 1346 // Specifies whether the argument is input or output. 1347 Mode mode = 2; 1348 1349 // Type of the argument. The exact value depends on the source system and 1350 // the language. 1351 string type = 3; 1352 } 1353 1354 // The type of the routine. 1355 RoutineType routine_type = 1; 1356 1357 // The language the routine is written in. The exact value depends on the 1358 // source system. For BigQuery routines, possible values are: 1359 // 1360 // * `SQL` 1361 // * `JAVASCRIPT` 1362 string language = 2; 1363 1364 // Arguments of the routine. 1365 repeated Argument routine_arguments = 3; 1366 1367 // Return type of the argument. The exact value depends on the source system 1368 // and the language. 1369 string return_type = 4; 1370 1371 // The body of the routine. 1372 string definition_body = 5; 1373 1374 // Contains fields specific to the source system. 1375 oneof system_spec { 1376 // Fields specific for BigQuery routines. 1377 BigQueryRoutineSpec bigquery_routine_spec = 6; 1378 } 1379} 1380 1381// Specification that applies to a dataset. Valid only for 1382// entries with the `DATASET` type. 1383message DatasetSpec { 1384 // Fields specific to the source system. 1385 oneof system_spec { 1386 // Vertex AI Dataset specific fields 1387 VertexDatasetSpec vertex_dataset_spec = 2; 1388 } 1389} 1390 1391// Specification that applies to 1392// entries that are part `SQL_DATABASE` system 1393// (user_specified_type) 1394message SqlDatabaseSystemSpec { 1395 // SQL Database Engine. 1396 // enum SqlEngine { 1397 // UNDEFINED = 0; 1398 // MY_SQL = 1; 1399 // POSTGRE_SQL = 2; 1400 // SQL_SERVER = 3; 1401 // } 1402 // Engine of the enclosing database instance. 1403 string sql_engine = 1; 1404 1405 // Version of the database engine. 1406 string database_version = 2; 1407 1408 // Host of the SQL database 1409 // enum InstanceHost { 1410 // UNDEFINED = 0; 1411 // SELF_HOSTED = 1; 1412 // CLOUD_SQL = 2; 1413 // AMAZON_RDS = 3; 1414 // AZURE_SQL = 4; 1415 // } 1416 // Host of the enclousing database instance. 1417 string instance_host = 3; 1418} 1419 1420// Specification that applies to 1421// entries that are part `LOOKER` system 1422// (user_specified_type) 1423message LookerSystemSpec { 1424 // ID of the parent Looker Instance. Empty if it does not exist. 1425 // Example value: `someinstance.looker.com` 1426 string parent_instance_id = 1; 1427 1428 // Name of the parent Looker Instance. Empty if it does not exist. 1429 string parent_instance_display_name = 2; 1430 1431 // ID of the parent Model. Empty if it does not exist. 1432 string parent_model_id = 3; 1433 1434 // Name of the parent Model. Empty if it does not exist. 1435 string parent_model_display_name = 4; 1436 1437 // ID of the parent View. Empty if it does not exist. 1438 string parent_view_id = 5; 1439 1440 // Name of the parent View. Empty if it does not exist. 1441 string parent_view_display_name = 6; 1442} 1443 1444// Specification that applies to 1445// all entries that are part of `CLOUD_BIGTABLE` system 1446// (user_specified_type) 1447message CloudBigtableSystemSpec { 1448 // Display name of the Instance. This is user specified and different from 1449 // the resource name. 1450 string instance_display_name = 1; 1451} 1452 1453// Specification that applies to Instance 1454// entries that are part of `CLOUD_BIGTABLE` system. 1455// (user_specified_type) 1456message CloudBigtableInstanceSpec { 1457 // Spec that applies to clusters of an Instance of Cloud Bigtable. 1458 message CloudBigtableClusterSpec { 1459 // Name of the cluster. 1460 string display_name = 1; 1461 1462 // Location of the cluster, typically a Cloud zone. 1463 string location = 2; 1464 1465 // Type of the resource. For a cluster this would be "CLUSTER". 1466 string type = 3; 1467 1468 // A link back to the parent resource, in this case Instance. 1469 string linked_resource = 4; 1470 } 1471 1472 // The list of clusters for the Instance. 1473 repeated CloudBigtableClusterSpec cloud_bigtable_cluster_specs = 1; 1474} 1475 1476// Specification that applies to a Service resource. Valid only 1477// for entries with the `SERVICE` type. 1478message ServiceSpec { 1479 // System spec 1480 oneof system_spec { 1481 // Specification that applies to Instance entries of `CLOUD_BIGTABLE` 1482 // system. 1483 CloudBigtableInstanceSpec cloud_bigtable_instance_spec = 1; 1484 } 1485} 1486 1487// Detail description of the source information of a Vertex model. 1488message VertexModelSourceInfo { 1489 // Source of the model. 1490 enum ModelSourceType { 1491 // Should not be used. 1492 MODEL_SOURCE_TYPE_UNSPECIFIED = 0; 1493 1494 // The Model is uploaded by automl training pipeline. 1495 AUTOML = 1; 1496 1497 // The Model is uploaded by user or custom training pipeline. 1498 CUSTOM = 2; 1499 1500 // The Model is registered and sync'ed from BigQuery ML. 1501 BQML = 3; 1502 1503 // The Model is saved or tuned from Model Garden. 1504 MODEL_GARDEN = 4; 1505 } 1506 1507 // Type of the model source. 1508 ModelSourceType source_type = 1; 1509 1510 // If this Model is copy of another Model. If true then 1511 // [source_type][google.cloud.datacatalog.v1.VertexModelSourceInfo.source_type] 1512 // pertains to the original. 1513 bool copy = 2; 1514} 1515 1516// Specification for vertex model resources. 1517message VertexModelSpec { 1518 // The version ID of the model. 1519 string version_id = 1; 1520 1521 // User provided version aliases so that a model version can be referenced via 1522 // alias 1523 repeated string version_aliases = 2; 1524 1525 // The description of this version. 1526 string version_description = 3; 1527 1528 // Source of a Vertex model. 1529 VertexModelSourceInfo vertex_model_source_info = 4; 1530 1531 // URI of the Docker image to be used as the custom container for serving 1532 // predictions. 1533 string container_image_uri = 5; 1534} 1535 1536// Specification for vertex dataset resources. 1537message VertexDatasetSpec { 1538 // Type of data stored in the dataset. 1539 enum DataType { 1540 // Should not be used. 1541 DATA_TYPE_UNSPECIFIED = 0; 1542 1543 // Structured data dataset. 1544 TABLE = 1; 1545 1546 // Image dataset which supports ImageClassification, ImageObjectDetection 1547 // and ImageSegmentation problems. 1548 IMAGE = 2; 1549 1550 // Document dataset which supports TextClassification, TextExtraction and 1551 // TextSentiment problems. 1552 TEXT = 3; 1553 1554 // Video dataset which supports VideoClassification, VideoObjectTracking and 1555 // VideoActionRecognition problems. 1556 VIDEO = 4; 1557 1558 // Conversation dataset which supports conversation problems. 1559 CONVERSATION = 5; 1560 1561 // TimeSeries dataset. 1562 TIME_SERIES = 6; 1563 1564 // Document dataset which supports DocumentAnnotation problems. 1565 DOCUMENT = 7; 1566 1567 // TextToSpeech dataset which supports TextToSpeech problems. 1568 TEXT_TO_SPEECH = 8; 1569 1570 // Translation dataset which supports Translation problems. 1571 TRANSLATION = 9; 1572 1573 // Store Vision dataset which is used for HITL integration. 1574 STORE_VISION = 10; 1575 1576 // Enterprise Knowledge Graph dataset which is used for HITL labeling 1577 // integration. 1578 ENTERPRISE_KNOWLEDGE_GRAPH = 11; 1579 1580 // Text prompt dataset which supports Large Language Models. 1581 TEXT_PROMPT = 12; 1582 } 1583 1584 // The number of DataItems in this Dataset. Only apply for non-structured 1585 // Dataset. 1586 int64 data_item_count = 1; 1587 1588 // Type of the dataset. 1589 DataType data_type = 2; 1590} 1591 1592// Specification that applies to a model. Valid only for 1593// entries with the `MODEL` type. 1594message ModelSpec { 1595 // System spec 1596 oneof system_spec { 1597 // Specification for vertex model resources. 1598 VertexModelSpec vertex_model_spec = 1; 1599 } 1600} 1601 1602// Business Context of the entry. 1603message BusinessContext { 1604 // Entry overview fields for rich text descriptions of entries. 1605 EntryOverview entry_overview = 1; 1606 1607 // Contact people for the entry. 1608 Contacts contacts = 2; 1609} 1610 1611// Entry overview fields for rich text descriptions of entries. 1612message EntryOverview { 1613 // Entry overview with support for rich text. 1614 // 1615 // The overview must only contain Unicode characters, and should be 1616 // formatted using HTML. 1617 // The maximum length is 10 MiB as this value holds HTML descriptions 1618 // including encoded images. The maximum length of the text without images 1619 // is 100 KiB. 1620 string overview = 1; 1621} 1622 1623// Contact people for the entry. 1624message Contacts { 1625 // A contact person for the entry. 1626 message Person { 1627 // Designation of the person, for example, Data Steward. 1628 string designation = 1; 1629 1630 // Email of the person in the format of `john.doe@xyz`, 1631 // `<john.doe@xyz>`, or `John Doe<john.doe@xyz>`. 1632 string email = 2; 1633 } 1634 1635 // The list of contact people for the entry. 1636 repeated Person people = 1; 1637} 1638 1639// Entry group metadata. 1640// 1641// An `EntryGroup` resource represents a logical grouping of zero or more 1642// Data Catalog [Entry][google.cloud.datacatalog.v1.Entry] resources. 1643message EntryGroup { 1644 option (google.api.resource) = { 1645 type: "datacatalog.googleapis.com/EntryGroup" 1646 pattern: "projects/{project}/locations/{location}/entryGroups/{entry_group}" 1647 }; 1648 1649 // The resource name of the entry group in URL format. 1650 // 1651 // Note: The entry group itself and its child resources might not be 1652 // stored in the location specified in its name. 1653 string name = 1; 1654 1655 // A short name to identify the entry group, for example, 1656 // "analytics data - jan 2011". Default value is an empty string. 1657 string display_name = 2; 1658 1659 // Entry group description. Can consist of several sentences or 1660 // paragraphs that describe the entry group contents. 1661 // Default value is an empty string. 1662 string description = 3; 1663 1664 // Output only. Timestamps of the entry group. Default value is empty. 1665 SystemTimestamps data_catalog_timestamps = 4 1666 [(google.api.field_behavior) = OUTPUT_ONLY]; 1667} 1668 1669// Request message for 1670// [CreateTagTemplate][google.cloud.datacatalog.v1.DataCatalog.CreateTagTemplate]. 1671message CreateTagTemplateRequest { 1672 // Required. The name of the project and the template location 1673 // [region](https://cloud.google.com/data-catalog/docs/concepts/regions). 1674 string parent = 1 [ 1675 (google.api.field_behavior) = REQUIRED, 1676 (google.api.resource_reference) = { 1677 child_type: "datacatalog.googleapis.com/TagTemplate" 1678 } 1679 ]; 1680 1681 // Required. The ID of the tag template to create. 1682 // 1683 // The ID must contain only lowercase letters (a-z), numbers (0-9), 1684 // or underscores (_), and must start with a letter or underscore. 1685 // The maximum size is 64 bytes when encoded in UTF-8. 1686 string tag_template_id = 3 [(google.api.field_behavior) = REQUIRED]; 1687 1688 // Required. The tag template to create. 1689 TagTemplate tag_template = 2 [(google.api.field_behavior) = REQUIRED]; 1690} 1691 1692// Request message for 1693// [GetTagTemplate][google.cloud.datacatalog.v1.DataCatalog.GetTagTemplate]. 1694message GetTagTemplateRequest { 1695 // Required. The name of the tag template to get. 1696 string name = 1 [ 1697 (google.api.field_behavior) = REQUIRED, 1698 (google.api.resource_reference) = { 1699 type: "datacatalog.googleapis.com/TagTemplate" 1700 } 1701 ]; 1702} 1703 1704// Request message for 1705// [UpdateTagTemplate][google.cloud.datacatalog.v1.DataCatalog.UpdateTagTemplate]. 1706message UpdateTagTemplateRequest { 1707 // Required. The template to update. The `name` field must be set. 1708 TagTemplate tag_template = 1 [(google.api.field_behavior) = REQUIRED]; 1709 1710 // Names of fields whose values to overwrite on a tag template. Currently, 1711 // only `display_name` and `is_publicly_readable` can be overwritten. 1712 // 1713 // If this parameter is absent or empty, all modifiable fields 1714 // are overwritten. If such fields are non-required and omitted in the 1715 // request body, their values are emptied. 1716 // 1717 // Note: Updating the `is_publicly_readable` field may require up to 12 1718 // hours to take effect in search results. 1719 google.protobuf.FieldMask update_mask = 2; 1720} 1721 1722// Request message for 1723// [DeleteTagTemplate][google.cloud.datacatalog.v1.DataCatalog.DeleteTagTemplate]. 1724message DeleteTagTemplateRequest { 1725 // Required. The name of the tag template to delete. 1726 string name = 1 [ 1727 (google.api.field_behavior) = REQUIRED, 1728 (google.api.resource_reference) = { 1729 type: "datacatalog.googleapis.com/TagTemplate" 1730 } 1731 ]; 1732 1733 // Required. If true, deletes all tags that use this template. 1734 // 1735 // Currently, `true` is the only supported value. 1736 bool force = 2 [(google.api.field_behavior) = REQUIRED]; 1737} 1738 1739// Request message for 1740// [CreateTag][google.cloud.datacatalog.v1.DataCatalog.CreateTag]. 1741message CreateTagRequest { 1742 // Required. The name of the resource to attach this tag to. 1743 // 1744 // Tags can be attached to entries or entry groups. An entry can have up to 1745 // 1000 attached tags. 1746 // 1747 // Note: The tag and its child resources might not be stored in 1748 // the location specified in its name. 1749 string parent = 1 [ 1750 (google.api.field_behavior) = REQUIRED, 1751 (google.api.resource_reference) = { 1752 child_type: "datacatalog.googleapis.com/Tag" 1753 } 1754 ]; 1755 1756 // Required. The tag to create. 1757 Tag tag = 2 [(google.api.field_behavior) = REQUIRED]; 1758} 1759 1760// Request message for 1761// [UpdateTag][google.cloud.datacatalog.v1.DataCatalog.UpdateTag]. 1762message UpdateTagRequest { 1763 // Required. The updated tag. The "name" field must be set. 1764 Tag tag = 1 [(google.api.field_behavior) = REQUIRED]; 1765 1766 // Names of fields whose values to overwrite on a tag. Currently, a tag has 1767 // the only modifiable field with the name `fields`. 1768 // 1769 // In general, if this parameter is absent or empty, all modifiable fields 1770 // are overwritten. If such fields are non-required and omitted in the 1771 // request body, their values are emptied. 1772 google.protobuf.FieldMask update_mask = 2; 1773} 1774 1775// Request message for 1776// [DeleteTag][google.cloud.datacatalog.v1.DataCatalog.DeleteTag]. 1777message DeleteTagRequest { 1778 // Required. The name of the tag to delete. 1779 string name = 1 [ 1780 (google.api.field_behavior) = REQUIRED, 1781 (google.api.resource_reference) = { 1782 child_type: "datacatalog.googleapis.com/Tag" 1783 } 1784 ]; 1785} 1786 1787// Request message for 1788// [CreateTagTemplateField][google.cloud.datacatalog.v1.DataCatalog.CreateTagTemplateField]. 1789message CreateTagTemplateFieldRequest { 1790 // Required. The name of the project and the template location 1791 // [region](https://cloud.google.com/data-catalog/docs/concepts/regions). 1792 string parent = 1 [ 1793 (google.api.field_behavior) = REQUIRED, 1794 (google.api.resource_reference) = { 1795 type: "datacatalog.googleapis.com/TagTemplate" 1796 } 1797 ]; 1798 1799 // Required. The ID of the tag template field to create. 1800 // 1801 // Note: Adding a required field to an existing template is *not* allowed. 1802 // 1803 // Field IDs can contain letters (both uppercase and lowercase), numbers 1804 // (0-9), underscores (_) and dashes (-). Field IDs must be at least 1 1805 // character long and at most 128 characters long. Field IDs must also be 1806 // unique within their template. 1807 string tag_template_field_id = 2 [(google.api.field_behavior) = REQUIRED]; 1808 1809 // Required. The tag template field to create. 1810 TagTemplateField tag_template_field = 3 1811 [(google.api.field_behavior) = REQUIRED]; 1812} 1813 1814// Request message for 1815// [UpdateTagTemplateField][google.cloud.datacatalog.v1.DataCatalog.UpdateTagTemplateField]. 1816message UpdateTagTemplateFieldRequest { 1817 // Required. The name of the tag template field. 1818 string name = 1 [ 1819 (google.api.field_behavior) = REQUIRED, 1820 (google.api.resource_reference) = { 1821 type: "datacatalog.googleapis.com/TagTemplateField" 1822 } 1823 ]; 1824 1825 // Required. The template to update. 1826 TagTemplateField tag_template_field = 2 1827 [(google.api.field_behavior) = REQUIRED]; 1828 1829 // Optional. Names of fields whose values to overwrite on an individual field 1830 // of a tag template. The following fields are modifiable: 1831 // 1832 // * `display_name` 1833 // * `type.enum_type` 1834 // * `is_required` 1835 // 1836 // If this parameter is absent or empty, all modifiable fields 1837 // are overwritten. If such fields are non-required and omitted in the request 1838 // body, their values are emptied with one exception: when updating an enum 1839 // type, the provided values are merged with the existing values. Therefore, 1840 // enum values can only be added, existing enum values cannot be deleted or 1841 // renamed. 1842 // 1843 // Additionally, updating a template field from optional to required is 1844 // *not* allowed. 1845 google.protobuf.FieldMask update_mask = 3 1846 [(google.api.field_behavior) = OPTIONAL]; 1847} 1848 1849// Request message for 1850// [RenameTagTemplateField][google.cloud.datacatalog.v1.DataCatalog.RenameTagTemplateField]. 1851message RenameTagTemplateFieldRequest { 1852 // Required. The name of the tag template field. 1853 string name = 1 [ 1854 (google.api.field_behavior) = REQUIRED, 1855 (google.api.resource_reference) = { 1856 type: "datacatalog.googleapis.com/TagTemplateField" 1857 } 1858 ]; 1859 1860 // Required. The new ID of this tag template field. For example, 1861 // `my_new_field`. 1862 string new_tag_template_field_id = 2 [(google.api.field_behavior) = REQUIRED]; 1863} 1864 1865// Request message for 1866// [RenameTagTemplateFieldEnumValue][google.cloud.datacatalog.v1.DataCatalog.RenameTagTemplateFieldEnumValue]. 1867message RenameTagTemplateFieldEnumValueRequest { 1868 // Required. The name of the enum field value. 1869 string name = 1 [ 1870 (google.api.field_behavior) = REQUIRED, 1871 (google.api.resource_reference) = { 1872 type: "datacatalog.googleapis.com/TagTemplateFieldEnumValue" 1873 } 1874 ]; 1875 1876 // Required. The new display name of the enum value. For example, 1877 // `my_new_enum_value`. 1878 string new_enum_value_display_name = 2 1879 [(google.api.field_behavior) = REQUIRED]; 1880} 1881 1882// Request message for 1883// [DeleteTagTemplateField][google.cloud.datacatalog.v1.DataCatalog.DeleteTagTemplateField]. 1884message DeleteTagTemplateFieldRequest { 1885 // Required. The name of the tag template field to delete. 1886 string name = 1 [ 1887 (google.api.field_behavior) = REQUIRED, 1888 (google.api.resource_reference) = { 1889 type: "datacatalog.googleapis.com/TagTemplateField" 1890 } 1891 ]; 1892 1893 // Required. If true, deletes this field from any tags that use it. 1894 // 1895 // Currently, `true` is the only supported value. 1896 bool force = 2 [(google.api.field_behavior) = REQUIRED]; 1897} 1898 1899// Request message for 1900// [ListTags][google.cloud.datacatalog.v1.DataCatalog.ListTags]. 1901message ListTagsRequest { 1902 // Required. The name of the Data Catalog resource to list the tags of. 1903 // 1904 // The resource can be an [Entry][google.cloud.datacatalog.v1.Entry] 1905 // or an [EntryGroup][google.cloud.datacatalog.v1.EntryGroup] 1906 // (without `/entries/{entries}` at the end). 1907 string parent = 1 [ 1908 (google.api.field_behavior) = REQUIRED, 1909 (google.api.resource_reference) = { 1910 child_type: "datacatalog.googleapis.com/Tag" 1911 } 1912 ]; 1913 1914 // The maximum number of tags to return. Default is 10. Maximum limit is 1000. 1915 int32 page_size = 2; 1916 1917 // Pagination token that specifies the next page to return. If empty, the 1918 // first page is returned. 1919 string page_token = 3; 1920} 1921 1922// Response message for 1923// [ListTags][google.cloud.datacatalog.v1.DataCatalog.ListTags]. 1924message ListTagsResponse { 1925 // [Tag][google.cloud.datacatalog.v1.Tag] details. 1926 repeated Tag tags = 1; 1927 1928 // Pagination token of the next results page. Empty if there are 1929 // no more items in results. 1930 string next_page_token = 2; 1931} 1932 1933// Request message for 1934// [ReconcileTags][google.cloud.datacatalog.v1.DataCatalog.ReconcileTags]. 1935message ReconcileTagsRequest { 1936 // Required. Name of [Entry][google.cloud.datacatalog.v1.Entry] to be tagged. 1937 string parent = 1 [ 1938 (google.api.field_behavior) = REQUIRED, 1939 (google.api.resource_reference) = { 1940 type: "datacatalog.googleapis.com/Entry" 1941 } 1942 ]; 1943 1944 // Required. The name of the tag template, which is used for reconciliation. 1945 string tag_template = 2 [ 1946 (google.api.field_behavior) = REQUIRED, 1947 (google.api.resource_reference) = { 1948 type: "datacatalog.googleapis.com/TagTemplate" 1949 } 1950 ]; 1951 1952 // If set to `true`, deletes entry tags related to a tag template 1953 // not listed in the tags source from an entry. If set to `false`, 1954 // unlisted tags are retained. 1955 bool force_delete_missing = 3; 1956 1957 // A list of tags to apply to an entry. A tag can specify a 1958 // tag template, which must be the template specified in the 1959 // `ReconcileTagsRequest`. 1960 // The sole entry and each of its columns must be mentioned at most once. 1961 repeated Tag tags = 4; 1962} 1963 1964// [Long-running operation][google.longrunning.Operation] 1965// response message returned by 1966// [ReconcileTags][google.cloud.datacatalog.v1.DataCatalog.ReconcileTags]. 1967message ReconcileTagsResponse { 1968 // Number of tags created in the request. 1969 int64 created_tags_count = 1; 1970 1971 // Number of tags updated in the request. 1972 int64 updated_tags_count = 2; 1973 1974 // Number of tags deleted in the request. 1975 int64 deleted_tags_count = 3; 1976} 1977 1978// [Long-running operation][google.longrunning.Operation] 1979// metadata message returned by the 1980// [ReconcileTags][google.cloud.datacatalog.v1.DataCatalog.ReconcileTags]. 1981message ReconcileTagsMetadata { 1982 // Enum holding possible states of the reconciliation operation. 1983 enum ReconciliationState { 1984 // Default value. This value is unused. 1985 RECONCILIATION_STATE_UNSPECIFIED = 0; 1986 1987 // The reconciliation has been queued and awaits for execution. 1988 RECONCILIATION_QUEUED = 1; 1989 1990 // The reconciliation is in progress. 1991 RECONCILIATION_IN_PROGRESS = 2; 1992 1993 // The reconciliation has been finished. 1994 RECONCILIATION_DONE = 3; 1995 } 1996 1997 // State of the reconciliation operation. 1998 ReconciliationState state = 1; 1999 2000 // Maps the name of each tagged column (or empty string for a 2001 // sole entry) to tagging operation [status][google.rpc.Status]. 2002 map<string, google.rpc.Status> errors = 2; 2003} 2004 2005// Request message for 2006// [ListEntries][google.cloud.datacatalog.v1.DataCatalog.ListEntries]. 2007message ListEntriesRequest { 2008 // Required. The name of the entry group that contains the entries to list. 2009 // 2010 // Can be provided in URL format. 2011 string parent = 1 [ 2012 (google.api.field_behavior) = REQUIRED, 2013 (google.api.resource_reference) = { 2014 type: "datacatalog.googleapis.com/EntryGroup" 2015 } 2016 ]; 2017 2018 // The maximum number of items to return. Default is 10. Maximum limit is 2019 // 1000. Throws an invalid argument if `page_size` is more than 1000. 2020 int32 page_size = 2; 2021 2022 // Pagination token that specifies the next page to return. If empty, the 2023 // first page is returned. 2024 string page_token = 3; 2025 2026 // The fields to return for each entry. If empty or omitted, all 2027 // fields are returned. 2028 // 2029 // For example, to return a list of entries with only the `name` field, 2030 // set `read_mask` to only one path with the `name` value. 2031 google.protobuf.FieldMask read_mask = 4; 2032} 2033 2034// Response message for 2035// [ListEntries][google.cloud.datacatalog.v1.DataCatalog.ListEntries]. 2036message ListEntriesResponse { 2037 // Entry details. 2038 repeated Entry entries = 1; 2039 2040 // Pagination token of the next results page. Empty if there are no more items 2041 // in results. 2042 string next_page_token = 2; 2043} 2044 2045// Request message for 2046// [StarEntry][google.cloud.datacatalog.v1.DataCatalog.StarEntry]. 2047message StarEntryRequest { 2048 // Required. The name of the entry to mark as starred. 2049 string name = 1 [ 2050 (google.api.field_behavior) = REQUIRED, 2051 (google.api.resource_reference) = { 2052 type: "datacatalog.googleapis.com/Entry" 2053 } 2054 ]; 2055} 2056 2057// Response message for 2058// [StarEntry][google.cloud.datacatalog.v1.DataCatalog.StarEntry]. 2059// Empty for now 2060message StarEntryResponse {} 2061 2062// Request message for 2063// [UnstarEntry][google.cloud.datacatalog.v1.DataCatalog.UnstarEntry]. 2064message UnstarEntryRequest { 2065 // Required. The name of the entry to mark as **not** starred. 2066 string name = 1 [ 2067 (google.api.field_behavior) = REQUIRED, 2068 (google.api.resource_reference) = { 2069 type: "datacatalog.googleapis.com/Entry" 2070 } 2071 ]; 2072} 2073 2074// Response message for 2075// [UnstarEntry][google.cloud.datacatalog.v1.DataCatalog.UnstarEntry]. 2076// Empty for now 2077message UnstarEntryResponse {} 2078 2079// Request message for 2080// [ImportEntries][google.cloud.datacatalog.v1.DataCatalog.ImportEntries] 2081// method. 2082message ImportEntriesRequest { 2083 // Required. Target entry group for ingested entries. 2084 string parent = 1 [ 2085 (google.api.field_behavior) = REQUIRED, 2086 (google.api.resource_reference) = { 2087 child_type: "datacatalog.googleapis.com/Entry" 2088 } 2089 ]; 2090 2091 // Source of imported entries, e.g. dump stored in a Cloud Storage 2092 oneof source { 2093 // Path to a Cloud Storage bucket that contains a dump ready for ingestion. 2094 string gcs_bucket_path = 2; 2095 } 2096 2097 // Optional. (Optional) Dataplex task job id, if specified will be used as 2098 // part of ImportEntries LRO ID 2099 string job_id = 3 [(google.api.field_behavior) = OPTIONAL]; 2100} 2101 2102// Response message for [long-running operation][google.longrunning.Operation] 2103// returned by the 2104// [ImportEntries][google.cloud.datacatalog.v1.DataCatalog.ImportEntries]. 2105message ImportEntriesResponse { 2106 // Cumulative number of entries created and entries updated as a result of 2107 // import operation. 2108 optional int64 upserted_entries_count = 5; 2109 2110 // Number of entries deleted as a result of import operation. 2111 optional int64 deleted_entries_count = 6; 2112} 2113 2114// Metadata message for [long-running operation][google.longrunning.Operation] 2115// returned by the 2116// [ImportEntries][google.cloud.datacatalog.v1.DataCatalog.ImportEntries]. 2117message ImportEntriesMetadata { 2118 // Enum holding possible states of the import operation. 2119 enum ImportState { 2120 // Default value. This value is unused. 2121 IMPORT_STATE_UNSPECIFIED = 0; 2122 2123 // The dump with entries has been queued for import. 2124 IMPORT_QUEUED = 1; 2125 2126 // The import of entries is in progress. 2127 IMPORT_IN_PROGRESS = 2; 2128 2129 // The import of entries has been finished. 2130 IMPORT_DONE = 3; 2131 2132 // The import of entries has been abandoned in favor of a newer request. 2133 IMPORT_OBSOLETE = 4; 2134 } 2135 2136 // State of the import operation. 2137 ImportState state = 1; 2138 2139 // Partial errors that are encountered during the ImportEntries operation. 2140 // There is no guarantee that all the encountered errors are reported. 2141 // However, if no errors are reported, it means that no errors were 2142 // encountered. 2143 repeated google.rpc.Status errors = 2; 2144} 2145 2146// Request message for 2147// [ModifyEntryOverview][google.cloud.datacatalog.v1.DataCatalog.ModifyEntryOverview]. 2148message ModifyEntryOverviewRequest { 2149 // Required. The full resource name of the entry. 2150 string name = 1 [ 2151 (google.api.field_behavior) = REQUIRED, 2152 (google.api.resource_reference) = { 2153 type: "datacatalog.googleapis.com/Entry" 2154 } 2155 ]; 2156 2157 // Required. The new value for the Entry Overview. 2158 EntryOverview entry_overview = 2 [(google.api.field_behavior) = REQUIRED]; 2159} 2160 2161// Request message for 2162// [ModifyEntryContacts][google.cloud.datacatalog.v1.DataCatalog.ModifyEntryContacts]. 2163message ModifyEntryContactsRequest { 2164 // Required. The full resource name of the entry. 2165 string name = 1 [ 2166 (google.api.field_behavior) = REQUIRED, 2167 (google.api.resource_reference) = { 2168 type: "datacatalog.googleapis.com/Entry" 2169 } 2170 ]; 2171 2172 // Required. The new value for the Contacts. 2173 Contacts contacts = 2 [(google.api.field_behavior) = REQUIRED]; 2174} 2175 2176// Metadata automatically ingested from Google Cloud resources like BigQuery 2177// tables or Pub/Sub topics always uses enum values from `EntryType` as the type 2178// of entry. 2179// 2180// Other sources of metadata like Hive or Oracle databases can identify the type 2181// by either using one of the enum values from `EntryType` (for example, 2182// `FILESET` for a Cloud Storage fileset) or specifying a custom value using 2183// the [`Entry`](#resource:-entry) field `user_specified_type`. For more 2184// information, see 2185// [Surface files from Cloud Storage with fileset 2186// entries](/data-catalog/docs/how-to/filesets) or [Create custom entries for 2187// your data sources](/data-catalog/docs/how-to/custom-entries). 2188enum EntryType { 2189 // Default unknown type. 2190 ENTRY_TYPE_UNSPECIFIED = 0; 2191 2192 // The entry type that has a GoogleSQL schema, including 2193 // logical views. 2194 TABLE = 2; 2195 2196 // The type of models. 2197 // 2198 // For more information, see [Supported models in BigQuery 2199 // ML](/bigquery/docs/bqml-introduction#supported_models). 2200 MODEL = 5; 2201 2202 // An entry type for streaming entries. For example, a Pub/Sub topic. 2203 DATA_STREAM = 3; 2204 2205 // An entry type for a set of files or objects. For example, a 2206 // Cloud Storage fileset. 2207 FILESET = 4; 2208 2209 // A group of servers that work together. For example, a Kafka cluster. 2210 CLUSTER = 6; 2211 2212 // A database. 2213 DATABASE = 7; 2214 2215 // Connection to a data source. For example, a BigQuery 2216 // connection. 2217 DATA_SOURCE_CONNECTION = 8; 2218 2219 // Routine, for example, a BigQuery routine. 2220 ROUTINE = 9; 2221 2222 // A Dataplex lake. 2223 LAKE = 10; 2224 2225 // A Dataplex zone. 2226 ZONE = 11; 2227 2228 // A service, for example, a Dataproc Metastore service. 2229 SERVICE = 14; 2230 2231 // Schema within a relational database. 2232 DATABASE_SCHEMA = 15; 2233 2234 // A Dashboard, for example from Looker. 2235 DASHBOARD = 16; 2236 2237 // A Looker Explore. 2238 // 2239 // For more information, see [Looker Explore API] 2240 // (https://developers.looker.com/api/explorer/4.0/methods/LookmlModel/lookml_model_explore). 2241 EXPLORE = 17; 2242 2243 // A Looker Look. 2244 // 2245 // For more information, see [Looker Look API] 2246 // (https://developers.looker.com/api/explorer/4.0/methods/Look). 2247 LOOK = 18; 2248} 2249