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.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/security.proto"; 24import "google/cloud/dataplex/v1/service.proto"; 25import "google/longrunning/operations.proto"; 26import "google/protobuf/empty.proto"; 27import "google/protobuf/field_mask.proto"; 28import "google/protobuf/timestamp.proto"; 29 30option go_package = "cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpb"; 31option java_multiple_files = true; 32option java_outer_classname = "DataTaxonomyProto"; 33option java_package = "com.google.cloud.dataplex.v1"; 34 35// DataTaxonomyService enables attribute-based governance. The resources 36// currently offered include DataTaxonomy and DataAttribute. 37service DataTaxonomyService { 38 option (google.api.default_host) = "dataplex.googleapis.com"; 39 option (google.api.oauth_scopes) = 40 "https://www.googleapis.com/auth/cloud-platform"; 41 42 // Create a DataTaxonomy resource. 43 rpc CreateDataTaxonomy(CreateDataTaxonomyRequest) 44 returns (google.longrunning.Operation) { 45 option (google.api.http) = { 46 post: "/v1/{parent=projects/*/locations/*}/dataTaxonomies" 47 body: "data_taxonomy" 48 }; 49 option (google.api.method_signature) = 50 "parent,data_taxonomy,data_taxonomy_id"; 51 option (google.longrunning.operation_info) = { 52 response_type: "DataTaxonomy" 53 metadata_type: "OperationMetadata" 54 }; 55 } 56 57 // Updates a DataTaxonomy resource. 58 rpc UpdateDataTaxonomy(UpdateDataTaxonomyRequest) 59 returns (google.longrunning.Operation) { 60 option (google.api.http) = { 61 patch: "/v1/{data_taxonomy.name=projects/*/locations/*/dataTaxonomies/*}" 62 body: "data_taxonomy" 63 }; 64 option (google.api.method_signature) = "data_taxonomy,update_mask"; 65 option (google.longrunning.operation_info) = { 66 response_type: "DataTaxonomy" 67 metadata_type: "OperationMetadata" 68 }; 69 } 70 71 // Deletes a DataTaxonomy resource. All attributes within the DataTaxonomy 72 // must be deleted before the DataTaxonomy can be deleted. 73 rpc DeleteDataTaxonomy(DeleteDataTaxonomyRequest) 74 returns (google.longrunning.Operation) { 75 option (google.api.http) = { 76 delete: "/v1/{name=projects/*/locations/*/dataTaxonomies/*}" 77 }; 78 option (google.api.method_signature) = "name"; 79 option (google.longrunning.operation_info) = { 80 response_type: "google.protobuf.Empty" 81 metadata_type: "OperationMetadata" 82 }; 83 } 84 85 // Lists DataTaxonomy resources in a project and location. 86 rpc ListDataTaxonomies(ListDataTaxonomiesRequest) 87 returns (ListDataTaxonomiesResponse) { 88 option (google.api.http) = { 89 get: "/v1/{parent=projects/*/locations/*}/dataTaxonomies" 90 }; 91 option (google.api.method_signature) = "parent"; 92 } 93 94 // Retrieves a DataTaxonomy resource. 95 rpc GetDataTaxonomy(GetDataTaxonomyRequest) returns (DataTaxonomy) { 96 option (google.api.http) = { 97 get: "/v1/{name=projects/*/locations/*/dataTaxonomies/*}" 98 }; 99 option (google.api.method_signature) = "name"; 100 } 101 102 // Create a DataAttributeBinding resource. 103 rpc CreateDataAttributeBinding(CreateDataAttributeBindingRequest) 104 returns (google.longrunning.Operation) { 105 option (google.api.http) = { 106 post: "/v1/{parent=projects/*/locations/*}/dataAttributeBindings" 107 body: "data_attribute_binding" 108 }; 109 option (google.api.method_signature) = 110 "parent,data_attribute_binding,data_attribute_binding_id"; 111 option (google.longrunning.operation_info) = { 112 response_type: "DataAttributeBinding" 113 metadata_type: "OperationMetadata" 114 }; 115 } 116 117 // Updates a DataAttributeBinding resource. 118 rpc UpdateDataAttributeBinding(UpdateDataAttributeBindingRequest) 119 returns (google.longrunning.Operation) { 120 option (google.api.http) = { 121 patch: "/v1/{data_attribute_binding.name=projects/*/locations/*/dataAttributeBindings/*}" 122 body: "data_attribute_binding" 123 }; 124 option (google.api.method_signature) = "data_attribute_binding,update_mask"; 125 option (google.longrunning.operation_info) = { 126 response_type: "DataAttributeBinding" 127 metadata_type: "OperationMetadata" 128 }; 129 } 130 131 // Deletes a DataAttributeBinding resource. All attributes within the 132 // DataAttributeBinding must be deleted before the DataAttributeBinding can be 133 // deleted. 134 rpc DeleteDataAttributeBinding(DeleteDataAttributeBindingRequest) 135 returns (google.longrunning.Operation) { 136 option (google.api.http) = { 137 delete: "/v1/{name=projects/*/locations/*/dataAttributeBindings/*}" 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 DataAttributeBinding resources in a project and location. 147 rpc ListDataAttributeBindings(ListDataAttributeBindingsRequest) 148 returns (ListDataAttributeBindingsResponse) { 149 option (google.api.http) = { 150 get: "/v1/{parent=projects/*/locations/*}/dataAttributeBindings" 151 }; 152 option (google.api.method_signature) = "parent"; 153 } 154 155 // Retrieves a DataAttributeBinding resource. 156 rpc GetDataAttributeBinding(GetDataAttributeBindingRequest) 157 returns (DataAttributeBinding) { 158 option (google.api.http) = { 159 get: "/v1/{name=projects/*/locations/*/dataAttributeBindings/*}" 160 }; 161 option (google.api.method_signature) = "name"; 162 } 163 164 // Create a DataAttribute resource. 165 rpc CreateDataAttribute(CreateDataAttributeRequest) 166 returns (google.longrunning.Operation) { 167 option (google.api.http) = { 168 post: "/v1/{parent=projects/*/locations/*/dataTaxonomies/*}/attributes" 169 body: "data_attribute" 170 }; 171 option (google.api.method_signature) = 172 "parent,data_attribute,data_attribute_id"; 173 option (google.longrunning.operation_info) = { 174 response_type: "DataAttribute" 175 metadata_type: "OperationMetadata" 176 }; 177 } 178 179 // Updates a DataAttribute resource. 180 rpc UpdateDataAttribute(UpdateDataAttributeRequest) 181 returns (google.longrunning.Operation) { 182 option (google.api.http) = { 183 patch: "/v1/{data_attribute.name=projects/*/locations/*/dataTaxonomies/*/attributes/*}" 184 body: "data_attribute" 185 }; 186 option (google.api.method_signature) = "data_attribute,update_mask"; 187 option (google.longrunning.operation_info) = { 188 response_type: "DataAttribute" 189 metadata_type: "OperationMetadata" 190 }; 191 } 192 193 // Deletes a Data Attribute resource. 194 rpc DeleteDataAttribute(DeleteDataAttributeRequest) 195 returns (google.longrunning.Operation) { 196 option (google.api.http) = { 197 delete: "/v1/{name=projects/*/locations/*/dataTaxonomies/*/attributes/*}" 198 }; 199 option (google.api.method_signature) = "name"; 200 option (google.longrunning.operation_info) = { 201 response_type: "google.protobuf.Empty" 202 metadata_type: "OperationMetadata" 203 }; 204 } 205 206 // Lists Data Attribute resources in a DataTaxonomy. 207 rpc ListDataAttributes(ListDataAttributesRequest) 208 returns (ListDataAttributesResponse) { 209 option (google.api.http) = { 210 get: "/v1/{parent=projects/*/locations/*/dataTaxonomies/*}/attributes" 211 }; 212 option (google.api.method_signature) = "parent"; 213 } 214 215 // Retrieves a Data Attribute resource. 216 rpc GetDataAttribute(GetDataAttributeRequest) returns (DataAttribute) { 217 option (google.api.http) = { 218 get: "/v1/{name=projects/*/locations/*/dataTaxonomies/*/attributes/*}" 219 }; 220 option (google.api.method_signature) = "name"; 221 } 222} 223 224// DataTaxonomy represents a set of hierarchical DataAttributes resources, 225// grouped with a common theme Eg: 'SensitiveDataTaxonomy' can have attributes 226// to manage PII data. It is defined at project level. 227message DataTaxonomy { 228 option (google.api.resource) = { 229 type: "dataplex.googleapis.com/DataTaxonomy" 230 pattern: "projects/{project}/locations/{location}/dataTaxonomies/{data_taxonomy_id}" 231 }; 232 233 // Output only. The relative resource name of the DataTaxonomy, of the form: 234 // projects/{project_number}/locations/{location_id}/dataTaxonomies/{data_taxonomy_id}. 235 string name = 1 [ 236 (google.api.field_behavior) = OUTPUT_ONLY, 237 (google.api.resource_reference) = { 238 type: "dataplex.googleapis.com/DataTaxonomy" 239 } 240 ]; 241 242 // Output only. System generated globally unique ID for the dataTaxonomy. This 243 // ID will be different if the DataTaxonomy is deleted and re-created with the 244 // same name. 245 string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; 246 247 // Output only. The time when the DataTaxonomy was created. 248 google.protobuf.Timestamp create_time = 3 249 [(google.api.field_behavior) = OUTPUT_ONLY]; 250 251 // Output only. The time when the DataTaxonomy was last updated. 252 google.protobuf.Timestamp update_time = 4 253 [(google.api.field_behavior) = OUTPUT_ONLY]; 254 255 // Optional. Description of the DataTaxonomy. 256 string description = 5 [(google.api.field_behavior) = OPTIONAL]; 257 258 // Optional. User friendly display name. 259 string display_name = 6 [(google.api.field_behavior) = OPTIONAL]; 260 261 // Optional. User-defined labels for the DataTaxonomy. 262 map<string, string> labels = 8 [(google.api.field_behavior) = OPTIONAL]; 263 264 // Output only. The number of attributes in the DataTaxonomy. 265 int32 attribute_count = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; 266 267 // This checksum is computed by the server based on the value of other 268 // fields, and may be sent on update and delete requests to ensure the 269 // client has an up-to-date value before proceeding. 270 string etag = 10; 271 272 // Output only. The number of classes in the DataTaxonomy. 273 int32 class_count = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; 274} 275 276// Denotes one dataAttribute in a dataTaxonomy, for example, PII. 277// DataAttribute resources can be defined in a hierarchy. 278// A single dataAttribute resource can contain specs of multiple types 279// 280// ``` 281// PII 282// - ResourceAccessSpec : 283// - readers :[email protected] 284// - DataAccessSpec : 285// - readers :[email protected] 286// ``` 287message DataAttribute { 288 option (google.api.resource) = { 289 type: "dataplex.googleapis.com/DataAttribute" 290 pattern: "projects/{project}/locations/{location}/dataTaxonomies/{dataTaxonomy}/attributes/{data_attribute_id}" 291 }; 292 293 // Output only. The relative resource name of the dataAttribute, of the form: 294 // projects/{project_number}/locations/{location_id}/dataTaxonomies/{dataTaxonomy}/attributes/{data_attribute_id}. 295 string name = 1 [ 296 (google.api.field_behavior) = OUTPUT_ONLY, 297 (google.api.resource_reference) = { 298 type: "dataplex.googleapis.com/DataAttribute" 299 } 300 ]; 301 302 // Output only. System generated globally unique ID for the DataAttribute. 303 // This ID will be different if the DataAttribute is deleted and re-created 304 // with the same name. 305 string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; 306 307 // Output only. The time when the DataAttribute was created. 308 google.protobuf.Timestamp create_time = 3 309 [(google.api.field_behavior) = OUTPUT_ONLY]; 310 311 // Output only. The time when the DataAttribute was last updated. 312 google.protobuf.Timestamp update_time = 4 313 [(google.api.field_behavior) = OUTPUT_ONLY]; 314 315 // Optional. Description of the DataAttribute. 316 string description = 5 [(google.api.field_behavior) = OPTIONAL]; 317 318 // Optional. User friendly display name. 319 string display_name = 6 [(google.api.field_behavior) = OPTIONAL]; 320 321 // Optional. User-defined labels for the DataAttribute. 322 map<string, string> labels = 7 [(google.api.field_behavior) = OPTIONAL]; 323 324 // Optional. The ID of the parent DataAttribute resource, should belong to the 325 // same data taxonomy. Circular dependency in parent chain is not valid. 326 // Maximum depth of the hierarchy allowed is 4. 327 // [a -> b -> c -> d -> e, depth = 4] 328 string parent_id = 8 [ 329 (google.api.field_behavior) = OPTIONAL, 330 (google.api.resource_reference) = { 331 type: "dataplex.googleapis.com/DataAttribute" 332 } 333 ]; 334 335 // Output only. The number of child attributes present for this attribute. 336 int32 attribute_count = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; 337 338 // This checksum is computed by the server based on the value of other 339 // fields, and may be sent on update and delete requests to ensure the 340 // client has an up-to-date value before proceeding. 341 string etag = 10; 342 343 // Optional. Specified when applied to a resource (eg: Cloud Storage bucket, 344 // BigQuery dataset, BigQuery table). 345 ResourceAccessSpec resource_access_spec = 100 346 [(google.api.field_behavior) = OPTIONAL]; 347 348 // Optional. Specified when applied to data stored on the resource (eg: rows, 349 // columns in BigQuery Tables). 350 DataAccessSpec data_access_spec = 101 351 [(google.api.field_behavior) = OPTIONAL]; 352} 353 354// DataAttributeBinding represents binding of attributes to resources. Eg: Bind 355// 'CustomerInfo' entity with 'PII' attribute. 356message DataAttributeBinding { 357 option (google.api.resource) = { 358 type: "dataplex.googleapis.com/DataAttributeBinding" 359 pattern: "projects/{project}/locations/{location}/dataAttributeBindings/{data_attribute_binding_id}" 360 }; 361 362 // Represents a subresource of the given resource, and associated bindings 363 // with it. Currently supported subresources are column and partition schema 364 // fields within a table. 365 message Path { 366 // Required. The name identifier of the path. 367 // Nested columns should be of the form: 'address.city'. 368 string name = 1 [(google.api.field_behavior) = REQUIRED]; 369 370 // Optional. List of attributes to be associated with the path of the 371 // resource, provided in the form: 372 // projects/{project}/locations/{location}/dataTaxonomies/{dataTaxonomy}/attributes/{data_attribute_id} 373 repeated string attributes = 2 [ 374 (google.api.field_behavior) = OPTIONAL, 375 (google.api.resource_reference) = { 376 type: "dataplex.googleapis.com/DataAttribute" 377 } 378 ]; 379 } 380 381 // Output only. The relative resource name of the Data Attribute Binding, of 382 // the form: 383 // projects/{project_number}/locations/{location}/dataAttributeBindings/{data_attribute_binding_id} 384 string name = 1 [ 385 (google.api.field_behavior) = OUTPUT_ONLY, 386 (google.api.resource_reference) = { 387 type: "dataplex.googleapis.com/DataAttributeBinding" 388 } 389 ]; 390 391 // Output only. System generated globally unique ID for the 392 // DataAttributeBinding. This ID will be different if the DataAttributeBinding 393 // is deleted and re-created with the same name. 394 string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; 395 396 // Output only. The time when the DataAttributeBinding was created. 397 google.protobuf.Timestamp create_time = 3 398 [(google.api.field_behavior) = OUTPUT_ONLY]; 399 400 // Output only. The time when the DataAttributeBinding was last updated. 401 google.protobuf.Timestamp update_time = 4 402 [(google.api.field_behavior) = OUTPUT_ONLY]; 403 404 // Optional. Description of the DataAttributeBinding. 405 string description = 5 [(google.api.field_behavior) = OPTIONAL]; 406 407 // Optional. User friendly display name. 408 string display_name = 6 [(google.api.field_behavior) = OPTIONAL]; 409 410 // Optional. User-defined labels for the DataAttributeBinding. 411 map<string, string> labels = 7 [(google.api.field_behavior) = OPTIONAL]; 412 413 // This checksum is computed by the server based on the value of other 414 // fields, and may be sent on update and delete requests to ensure the 415 // client has an up-to-date value before proceeding. 416 // Etags must be used when calling the DeleteDataAttributeBinding and the 417 // UpdateDataAttributeBinding method. 418 string etag = 8; 419 420 // The reference to the resource that is associated to attributes, or 421 // the query to match resources and associate attributes. 422 oneof resource_reference { 423 // Optional. Immutable. The resource name of the resource that is associated 424 // to attributes. Presently, only entity resource is supported in the form: 425 // projects/{project}/locations/{location}/lakes/{lake}/zones/{zone}/entities/{entity_id} 426 // Must belong in the same project and region as the attribute binding, and 427 // there can only exist one active binding for a resource. 428 string resource = 100 [ 429 (google.api.field_behavior) = OPTIONAL, 430 (google.api.field_behavior) = IMMUTABLE 431 ]; 432 } 433 434 // Optional. List of attributes to be associated with the resource, provided 435 // in the form: 436 // projects/{project}/locations/{location}/dataTaxonomies/{dataTaxonomy}/attributes/{data_attribute_id} 437 repeated string attributes = 110 [ 438 (google.api.field_behavior) = OPTIONAL, 439 (google.api.resource_reference) = { 440 type: "dataplex.googleapis.com/DataAttribute" 441 } 442 ]; 443 444 // Optional. The list of paths for items within the associated resource (eg. 445 // columns and partitions within a table) along with attribute bindings. 446 repeated Path paths = 120 [(google.api.field_behavior) = OPTIONAL]; 447} 448 449// Create DataTaxonomy request. 450message CreateDataTaxonomyRequest { 451 // Required. The resource name of the data taxonomy location, of the form: 452 // projects/{project_number}/locations/{location_id} 453 // where `location_id` refers to a GCP region. 454 string parent = 1 [ 455 (google.api.field_behavior) = REQUIRED, 456 (google.api.resource_reference) = { 457 type: "locations.googleapis.com/Location" 458 } 459 ]; 460 461 // Required. DataTaxonomy identifier. 462 // * Must contain only lowercase letters, numbers and hyphens. 463 // * Must start with a letter. 464 // * Must be between 1-63 characters. 465 // * Must end with a number or a letter. 466 // * Must be unique within the Project. 467 string data_taxonomy_id = 2 [(google.api.field_behavior) = REQUIRED]; 468 469 // Required. DataTaxonomy resource. 470 DataTaxonomy data_taxonomy = 3 [(google.api.field_behavior) = REQUIRED]; 471 472 // Optional. Only validate the request, but do not perform mutations. 473 // The default is false. 474 bool validate_only = 4 [(google.api.field_behavior) = OPTIONAL]; 475} 476 477// Update DataTaxonomy request. 478message UpdateDataTaxonomyRequest { 479 // Required. Mask of fields to update. 480 google.protobuf.FieldMask update_mask = 1 481 [(google.api.field_behavior) = REQUIRED]; 482 483 // Required. Only fields specified in `update_mask` are updated. 484 DataTaxonomy data_taxonomy = 2 [(google.api.field_behavior) = REQUIRED]; 485 486 // Optional. Only validate the request, but do not perform mutations. 487 // The default is false. 488 bool validate_only = 3 [(google.api.field_behavior) = OPTIONAL]; 489} 490 491// Get DataTaxonomy request. 492message GetDataTaxonomyRequest { 493 // Required. The resource name of the DataTaxonomy: 494 // projects/{project_number}/locations/{location_id}/dataTaxonomies/{data_taxonomy_id} 495 string name = 1 [ 496 (google.api.field_behavior) = REQUIRED, 497 (google.api.resource_reference) = { 498 type: "dataplex.googleapis.com/DataTaxonomy" 499 } 500 ]; 501} 502 503// List DataTaxonomies request. 504message ListDataTaxonomiesRequest { 505 // Required. The resource name of the DataTaxonomy location, of the form: 506 // projects/{project_number}/locations/{location_id} 507 // where `location_id` refers to a GCP region. 508 string parent = 1 [ 509 (google.api.field_behavior) = REQUIRED, 510 (google.api.resource_reference) = { 511 type: "locations.googleapis.com/Location" 512 } 513 ]; 514 515 // Optional. Maximum number of DataTaxonomies to return. The service may 516 // return fewer than this value. If unspecified, at most 10 DataTaxonomies 517 // will be returned. The maximum value is 1000; values above 1000 will be 518 // coerced to 1000. 519 int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; 520 521 // Optional. Page token received from a previous ` ListDataTaxonomies` call. 522 // Provide this to retrieve the subsequent page. When paginating, all other 523 // parameters provided to ` ListDataTaxonomies` must match the call that 524 // provided the page token. 525 string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; 526 527 // Optional. Filter request. 528 string filter = 4 [(google.api.field_behavior) = OPTIONAL]; 529 530 // Optional. Order by fields for the result. 531 string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; 532} 533 534// List DataTaxonomies response. 535message ListDataTaxonomiesResponse { 536 // DataTaxonomies under the given parent location. 537 repeated DataTaxonomy data_taxonomies = 1; 538 539 // Token to retrieve the next page of results, or empty if there are no more 540 // results in the list. 541 string next_page_token = 2; 542 543 // Locations that could not be reached. 544 repeated string unreachable_locations = 3; 545} 546 547// Delete DataTaxonomy request. 548message DeleteDataTaxonomyRequest { 549 // Required. The resource name of the DataTaxonomy: 550 // projects/{project_number}/locations/{location_id}/dataTaxonomies/{data_taxonomy_id} 551 string name = 1 [ 552 (google.api.field_behavior) = REQUIRED, 553 (google.api.resource_reference) = { 554 type: "dataplex.googleapis.com/DataTaxonomy" 555 } 556 ]; 557 558 // Optional. If the client provided etag value does not match the current etag 559 // value,the DeleteDataTaxonomy method returns an ABORTED error. 560 string etag = 2 [(google.api.field_behavior) = OPTIONAL]; 561} 562 563// Create DataAttribute request. 564message CreateDataAttributeRequest { 565 // Required. The resource name of the parent data taxonomy 566 // projects/{project_number}/locations/{location_id}/dataTaxonomies/{data_taxonomy_id} 567 string parent = 1 [ 568 (google.api.field_behavior) = REQUIRED, 569 (google.api.resource_reference) = { 570 type: "dataplex.googleapis.com/DataTaxonomy" 571 } 572 ]; 573 574 // Required. DataAttribute identifier. 575 // * Must contain only lowercase letters, numbers and hyphens. 576 // * Must start with a letter. 577 // * Must be between 1-63 characters. 578 // * Must end with a number or a letter. 579 // * Must be unique within the DataTaxonomy. 580 string data_attribute_id = 2 [(google.api.field_behavior) = REQUIRED]; 581 582 // Required. DataAttribute resource. 583 DataAttribute data_attribute = 3 [(google.api.field_behavior) = REQUIRED]; 584 585 // Optional. Only validate the request, but do not perform mutations. 586 // The default is false. 587 bool validate_only = 4 [(google.api.field_behavior) = OPTIONAL]; 588} 589 590// Update DataAttribute request. 591message UpdateDataAttributeRequest { 592 // Required. Mask of fields to update. 593 google.protobuf.FieldMask update_mask = 1 594 [(google.api.field_behavior) = REQUIRED]; 595 596 // Required. Only fields specified in `update_mask` are updated. 597 DataAttribute data_attribute = 2 [(google.api.field_behavior) = REQUIRED]; 598 599 // Optional. Only validate the request, but do not perform mutations. 600 // The default is false. 601 bool validate_only = 3 [(google.api.field_behavior) = OPTIONAL]; 602} 603 604// Get DataAttribute request. 605message GetDataAttributeRequest { 606 // Required. The resource name of the dataAttribute: 607 // projects/{project_number}/locations/{location_id}/dataTaxonomies/{dataTaxonomy}/attributes/{data_attribute_id} 608 string name = 1 [ 609 (google.api.field_behavior) = REQUIRED, 610 (google.api.resource_reference) = { 611 type: "dataplex.googleapis.com/DataAttribute" 612 } 613 ]; 614} 615 616// List DataAttributes request. 617message ListDataAttributesRequest { 618 // Required. The resource name of the DataTaxonomy: 619 // projects/{project_number}/locations/{location_id}/dataTaxonomies/{data_taxonomy_id} 620 string parent = 1 [ 621 (google.api.field_behavior) = REQUIRED, 622 (google.api.resource_reference) = { 623 type: "dataplex.googleapis.com/DataTaxonomy" 624 } 625 ]; 626 627 // Optional. Maximum number of DataAttributes to return. The service may 628 // return fewer than this value. If unspecified, at most 10 dataAttributes 629 // will be returned. The maximum value is 1000; values above 1000 will be 630 // coerced to 1000. 631 int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; 632 633 // Optional. Page token received from a previous `ListDataAttributes` call. 634 // Provide this to retrieve the subsequent page. When paginating, all other 635 // parameters provided to `ListDataAttributes` must match the call that 636 // provided the page token. 637 string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; 638 639 // Optional. Filter request. 640 string filter = 4 [(google.api.field_behavior) = OPTIONAL]; 641 642 // Optional. Order by fields for the result. 643 string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; 644} 645 646// List DataAttributes response. 647message ListDataAttributesResponse { 648 // DataAttributes under the given parent DataTaxonomy. 649 repeated DataAttribute data_attributes = 1; 650 651 // Token to retrieve the next page of results, or empty if there are no more 652 // results in the list. 653 string next_page_token = 2; 654 655 // Locations that could not be reached. 656 repeated string unreachable_locations = 3; 657} 658 659// Delete DataAttribute request. 660message DeleteDataAttributeRequest { 661 // Required. The resource name of the DataAttribute: 662 // projects/{project_number}/locations/{location_id}/dataTaxonomies/{dataTaxonomy}/attributes/{data_attribute_id} 663 string name = 1 [ 664 (google.api.field_behavior) = REQUIRED, 665 (google.api.resource_reference) = { 666 type: "dataplex.googleapis.com/DataAttribute" 667 } 668 ]; 669 670 // Optional. If the client provided etag value does not match the current etag 671 // value, the DeleteDataAttribute method returns an ABORTED error response. 672 string etag = 2 [(google.api.field_behavior) = OPTIONAL]; 673} 674 675// Create DataAttributeBinding request. 676message CreateDataAttributeBindingRequest { 677 // Required. The resource name of the parent data taxonomy 678 // projects/{project_number}/locations/{location_id} 679 string parent = 1 [ 680 (google.api.field_behavior) = REQUIRED, 681 (google.api.resource_reference) = { 682 type: "locations.googleapis.com/Location" 683 } 684 ]; 685 686 // Required. DataAttributeBinding identifier. 687 // * Must contain only lowercase letters, numbers and hyphens. 688 // * Must start with a letter. 689 // * Must be between 1-63 characters. 690 // * Must end with a number or a letter. 691 // * Must be unique within the Location. 692 string data_attribute_binding_id = 2 [(google.api.field_behavior) = REQUIRED]; 693 694 // Required. DataAttributeBinding resource. 695 DataAttributeBinding data_attribute_binding = 3 696 [(google.api.field_behavior) = REQUIRED]; 697 698 // Optional. Only validate the request, but do not perform mutations. 699 // The default is false. 700 bool validate_only = 4 [(google.api.field_behavior) = OPTIONAL]; 701} 702 703// Update DataAttributeBinding request. 704message UpdateDataAttributeBindingRequest { 705 // Required. Mask of fields to update. 706 google.protobuf.FieldMask update_mask = 1 707 [(google.api.field_behavior) = REQUIRED]; 708 709 // Required. Only fields specified in `update_mask` are updated. 710 DataAttributeBinding data_attribute_binding = 2 711 [(google.api.field_behavior) = REQUIRED]; 712 713 // Optional. Only validate the request, but do not perform mutations. 714 // The default is false. 715 bool validate_only = 3 [(google.api.field_behavior) = OPTIONAL]; 716} 717 718// Get DataAttributeBinding request. 719message GetDataAttributeBindingRequest { 720 // Required. The resource name of the DataAttributeBinding: 721 // projects/{project_number}/locations/{location_id}/dataAttributeBindings/{data_attribute_binding_id} 722 string name = 1 [ 723 (google.api.field_behavior) = REQUIRED, 724 (google.api.resource_reference) = { 725 type: "dataplex.googleapis.com/DataAttributeBinding" 726 } 727 ]; 728} 729 730// List DataAttributeBindings request. 731message ListDataAttributeBindingsRequest { 732 // Required. The resource name of the Location: 733 // projects/{project_number}/locations/{location_id} 734 string parent = 1 [ 735 (google.api.field_behavior) = REQUIRED, 736 (google.api.resource_reference) = { 737 type: "locations.googleapis.com/Location" 738 } 739 ]; 740 741 // Optional. Maximum number of DataAttributeBindings to return. The service 742 // may return fewer than this value. If unspecified, at most 10 743 // DataAttributeBindings will be returned. The maximum value is 1000; values 744 // above 1000 will be coerced to 1000. 745 int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; 746 747 // Optional. Page token received from a previous `ListDataAttributeBindings` 748 // call. Provide this to retrieve the subsequent page. When paginating, all 749 // other parameters provided to `ListDataAttributeBindings` must match the 750 // call that provided the page token. 751 string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; 752 753 // Optional. Filter request. 754 // Filter using resource: filter=resource:"resource-name" 755 // Filter using attribute: filter=attributes:"attribute-name" 756 // Filter using attribute in paths list: 757 // filter=paths.attributes:"attribute-name" 758 string filter = 4 [(google.api.field_behavior) = OPTIONAL]; 759 760 // Optional. Order by fields for the result. 761 string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; 762} 763 764// List DataAttributeBindings response. 765message ListDataAttributeBindingsResponse { 766 // DataAttributeBindings under the given parent Location. 767 repeated DataAttributeBinding data_attribute_bindings = 1; 768 769 // Token to retrieve the next page of results, or empty if there are no more 770 // results in the list. 771 string next_page_token = 2; 772 773 // Locations that could not be reached. 774 repeated string unreachable_locations = 3; 775} 776 777// Delete DataAttributeBinding request. 778message DeleteDataAttributeBindingRequest { 779 // Required. The resource name of the DataAttributeBinding: 780 // projects/{project_number}/locations/{location_id}/dataAttributeBindings/{data_attribute_binding_id} 781 string name = 1 [ 782 (google.api.field_behavior) = REQUIRED, 783 (google.api.resource_reference) = { 784 type: "dataplex.googleapis.com/DataAttributeBinding" 785 } 786 ]; 787 788 // Required. If the client provided etag value does not match the current etag 789 // value, the DeleteDataAttributeBindingRequest method returns an ABORTED 790 // error response. Etags must be used when calling the 791 // DeleteDataAttributeBinding. 792 string etag = 2 [(google.api.field_behavior) = REQUIRED]; 793} 794