1// Copyright 2021 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.datafusion.v1beta1; 18 19import "google/api/annotations.proto"; 20import "google/api/client.proto"; 21import "google/api/field_behavior.proto"; 22import "google/api/resource.proto"; 23import "google/iam/v1/policy.proto"; 24import "google/longrunning/operations.proto"; 25import "google/protobuf/field_mask.proto"; 26import "google/protobuf/timestamp.proto"; 27import "google/rpc/status.proto"; 28 29option csharp_namespace = "Google.Cloud.DataFusion.V1Beta1"; 30option go_package = "cloud.google.com/go/datafusion/apiv1beta1/datafusionpb;datafusionpb"; 31option java_multiple_files = true; 32option java_package = "com.google.cloud.datafusion.v1beta1"; 33option php_namespace = "Google\\Cloud\\DataFusion\\V1beta1"; 34option ruby_package = "Google::Cloud::DataFusion::V1beta1"; 35option (google.api.resource_definition) = { 36 type: "cloudkms.googleapis.com/CryptoKey" 37 pattern: "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}" 38}; 39 40// Service for creating and managing Data Fusion instances. 41// Data Fusion enables ETL developers to build code-free, data integration 42// pipelines via a point-and-click UI. 43service DataFusion { 44 option (google.api.default_host) = "datafusion.googleapis.com"; 45 option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; 46 47 // Lists possible versions for Data Fusion instances in the specified project 48 // and location. 49 rpc ListAvailableVersions(ListAvailableVersionsRequest) returns (ListAvailableVersionsResponse) { 50 option (google.api.http) = { 51 get: "/v1beta1/{parent=projects/*/locations/*}/versions" 52 }; 53 option (google.api.method_signature) = "parent"; 54 } 55 56 // Lists Data Fusion instances in the specified project and location. 57 rpc ListInstances(ListInstancesRequest) returns (ListInstancesResponse) { 58 option (google.api.http) = { 59 get: "/v1beta1/{parent=projects/*/locations/*}/instances" 60 }; 61 } 62 63 // Gets details of a single Data Fusion instance. 64 rpc GetInstance(GetInstanceRequest) returns (Instance) { 65 option (google.api.http) = { 66 get: "/v1beta1/{name=projects/*/locations/*/instances/*}" 67 }; 68 } 69 70 // Creates a new Data Fusion instance in the specified project and location. 71 rpc CreateInstance(CreateInstanceRequest) returns (google.longrunning.Operation) { 72 option (google.api.http) = { 73 post: "/v1beta1/{parent=projects/*/locations/*}/instances" 74 body: "instance" 75 }; 76 option (google.api.method_signature) = "parent,instance,instance_id"; 77 option (google.longrunning.operation_info) = { 78 response_type: "Instance" 79 metadata_type: "OperationMetadata" 80 }; 81 } 82 83 // Deletes a single Data Fusion instance. 84 rpc DeleteInstance(DeleteInstanceRequest) returns (google.longrunning.Operation) { 85 option (google.api.http) = { 86 delete: "/v1beta1/{name=projects/*/locations/*/instances/*}" 87 }; 88 option (google.api.method_signature) = "name"; 89 option (google.longrunning.operation_info) = { 90 response_type: "google.protobuf.Empty" 91 metadata_type: "OperationMetadata" 92 }; 93 } 94 95 // Updates a single Data Fusion instance. 96 rpc UpdateInstance(UpdateInstanceRequest) returns (google.longrunning.Operation) { 97 option (google.api.http) = { 98 patch: "/v1beta1/{instance.name=projects/*/locations/*/instances/*}" 99 body: "instance" 100 }; 101 option (google.api.method_signature) = "instance,update_mask"; 102 option (google.longrunning.operation_info) = { 103 response_type: "Instance" 104 metadata_type: "OperationMetadata" 105 }; 106 } 107 108 // Restart a single Data Fusion instance. 109 // At the end of an operation instance is fully restarted. 110 rpc RestartInstance(RestartInstanceRequest) returns (google.longrunning.Operation) { 111 option (google.api.http) = { 112 post: "/v1beta1/{name=projects/*/locations/*/instances/*}:restart" 113 body: "*" 114 }; 115 option (google.longrunning.operation_info) = { 116 response_type: "Instance" 117 metadata_type: "OperationMetadata" 118 }; 119 } 120 121 // Upgrade a single Data Fusion instance. 122 // At the end of an operation instance is fully upgraded. 123 rpc UpgradeInstance(UpgradeInstanceRequest) returns (google.longrunning.Operation) { 124 option (google.api.http) = { 125 post: "/v1beta1/{name=projects/*/locations/*/instances/*}:upgrade" 126 body: "*" 127 }; 128 option (google.longrunning.operation_info) = { 129 response_type: "Instance" 130 metadata_type: "OperationMetadata" 131 }; 132 } 133 134 // Remove IAM policy that is currently set on the given resource. 135 rpc RemoveIamPolicy(RemoveIamPolicyRequest) returns (RemoveIamPolicyResponse) { 136 option (google.api.http) = { 137 post: "/v1beta1/{resource=projects/*/locations/*/**}:removeIamPolicy" 138 body: "*" 139 }; 140 } 141 142 // List namespaces in a given instance 143 rpc ListNamespaces(ListNamespacesRequest) returns (ListNamespacesResponse) { 144 option (google.api.http) = { 145 get: "/v1beta1/{parent=projects/*/locations/*/instances/*}/namespaces" 146 }; 147 option (google.api.method_signature) = "parent"; 148 } 149 150 // Add DNS peering on the given resource. 151 rpc AddDnsPeering(AddDnsPeeringRequest) returns (AddDnsPeeringResponse) { 152 option (google.api.http) = { 153 post: "/v1beta1/{parent=projects/*/locations/*/instances/*}/dnsPeerings:add" 154 body: "*" 155 }; 156 option (google.api.method_signature) = "parent"; 157 } 158 159 // Remove DNS peering on the given resource. 160 rpc RemoveDnsPeering(RemoveDnsPeeringRequest) returns (RemoveDnsPeeringResponse) { 161 option (google.api.http) = { 162 post: "/v1beta1/{parent=projects/*/locations/*/instances/*}/dnsPeerings:remove" 163 body: "*" 164 }; 165 option (google.api.method_signature) = "parent"; 166 } 167 168 // List DNS peering for a given resource. 169 rpc ListDnsPeerings(ListDnsPeeringsRequest) returns (ListDnsPeeringsResponse) { 170 option (google.api.http) = { 171 get: "/v1beta1/{parent=projects/*/locations/*/instances/*}/dnsPeerings:list" 172 }; 173 option (google.api.method_signature) = "parent"; 174 } 175} 176 177// Network configuration for a Data Fusion instance. These configurations 178// are used for peering with the customer network. Configurations are optional 179// when a public Data Fusion instance is to be created. However, providing 180// these configurations allows several benefits, such as reduced network latency 181// while accessing the customer resources from managed Data Fusion instance 182// nodes, as well as access to the customer on-prem resources. 183message NetworkConfig { 184 // Name of the network in the customer project with which the Tenant Project 185 // will be peered for executing pipelines. In case of shared VPC where the 186 // network resides in another host project the network should specified in 187 // the form of projects/{host-project-id}/global/networks/{network} 188 string network = 1; 189 190 // The IP range in CIDR notation to use for the managed Data Fusion instance 191 // nodes. This range must not overlap with any other ranges used in the Data 192 // Fusion instance network. 193 string ip_allocation = 2; 194} 195 196// The Data Fusion version. 197message Version { 198 // Each type represents the release availability of a CDF version 199 enum Type { 200 // Version does not have availability yet 201 TYPE_UNSPECIFIED = 0; 202 203 // Version is under development and not considered stable 204 TYPE_PREVIEW = 1; 205 206 // Version is available for public use 207 TYPE_GENERAL_AVAILABILITY = 2; 208 } 209 210 // The version number of the Data Fusion instance, such as '6.0.1.0'. 211 string version_number = 1; 212 213 // Whether this is currently the default version for Cloud Data Fusion 214 bool default_version = 2; 215 216 // Represents a list of available feature names for a given version. 217 repeated string available_features = 3; 218 219 // Type represents the release availability of the version 220 Type type = 4; 221} 222 223// Identifies Data Fusion accelerators for an instance. 224message Accelerator { 225 // Each type represents an Accelerator (Add-On) supported by Cloud Data Fusion 226 // service. 227 enum AcceleratorType { 228 // Default value, if unspecified. 229 ACCELERATOR_TYPE_UNSPECIFIED = 0; 230 231 // Change Data Capture accelerator for CDF. 232 CDC = 1; 233 234 // Cloud Healthcare accelerator for CDF. This accelerator is to enable Cloud 235 // Healthcare specific CDF plugins developed by Healthcare team. 236 HEALTHCARE = 2; 237 } 238 239 // The type of an accelator for a CDF instance. 240 AcceleratorType accelerator_type = 1; 241} 242 243// The crypto key configuration. This field is used by the Customer-managed 244// encryption keys (CMEK) feature. 245message CryptoKeyConfig { 246 // The name of the key which is used to encrypt/decrypt customer data. For key 247 // in Cloud KMS, the key should be in the format of 248 // `projects/*/locations/*/keyRings/*/cryptoKeys/*`. 249 string key_reference = 1 [(google.api.resource_reference) = { 250 type: "cloudkms.googleapis.com/CryptoKey" 251 }]; 252} 253 254// Represents a Data Fusion instance. 255message Instance { 256 option (google.api.resource) = { 257 type: "datafusion.googleapis.com/Instance" 258 pattern: "projects/{project}/locations/{location}/instances/{instance}" 259 }; 260 261 // Represents the type of Data Fusion instance. Each type is configured with 262 // the default settings for processing and memory. 263 enum Type { 264 // No type specified. The instance creation will fail. 265 TYPE_UNSPECIFIED = 0; 266 267 // Basic Data Fusion instance. In Basic type, the user will be able to 268 // create data pipelines using point and click UI. However, there are 269 // certain limitations, such as fewer number of concurrent pipelines, no 270 // support for streaming pipelines, etc. 271 BASIC = 1; 272 273 // Enterprise Data Fusion instance. In Enterprise type, the user will have 274 // all features available, such as support for streaming pipelines, 275 // unlimited number of concurrent pipelines, etc. 276 ENTERPRISE = 2; 277 278 // Developer Data Fusion instance. In Developer type, the user will have all 279 // features available but with restrictive capabilities. This is to help 280 // enterprises design and develop their data ingestion and integration 281 // pipelines at low cost. 282 DEVELOPER = 3; 283 } 284 285 // Represents the state of a Data Fusion instance 286 enum State { 287 // Instance does not have a state yet 288 STATE_UNSPECIFIED = 0; 289 290 // Instance is being created 291 CREATING = 1; 292 293 // Instance is running and ready for requests 294 RUNNING = 2; 295 296 // Instance creation failed 297 FAILED = 3; 298 299 // Instance is being deleted 300 DELETING = 4; 301 302 // Instance is being upgraded 303 UPGRADING = 5; 304 305 // Instance is being restarted 306 RESTARTING = 6; 307 308 // Instance is being updated on customer request 309 UPDATING = 7; 310 311 // Instance is being auto-updated 312 AUTO_UPDATING = 8; 313 314 // Instance is being auto-upgraded 315 AUTO_UPGRADING = 9; 316 317 // Instance is disabled 318 DISABLED = 10; 319 } 320 321 // The reason for disabling the instance if the state is DISABLED. 322 enum DisabledReason { 323 // This is an unknown reason for disabling. 324 DISABLED_REASON_UNSPECIFIED = 0; 325 326 // The KMS key used by the instance is either revoked or denied access to 327 KMS_KEY_ISSUE = 1; 328 } 329 330 // Output only. The name of this instance is in the form of 331 // projects/{project}/locations/{location}/instances/{instance}. 332 string name = 1 [ 333 (google.api.field_behavior) = OUTPUT_ONLY, 334 (google.api.resource_reference) = { 335 type: "datafusion.googleapis.com/Instance" 336 } 337 ]; 338 339 // A description of this instance. 340 string description = 2; 341 342 // Required. Instance type. 343 Type type = 3 [(google.api.field_behavior) = REQUIRED]; 344 345 // Option to enable Stackdriver Logging. 346 bool enable_stackdriver_logging = 4; 347 348 // Option to enable Stackdriver Monitoring. 349 bool enable_stackdriver_monitoring = 5; 350 351 // Specifies whether the Data Fusion instance should be private. If set to 352 // true, all Data Fusion nodes will have private IP addresses and will not be 353 // able to access the public internet. 354 bool private_instance = 6; 355 356 // Network configuration options. These are required when a private Data 357 // Fusion instance is to be created. 358 NetworkConfig network_config = 7; 359 360 // The resource labels for instance to use to annotate any related underlying 361 // resources such as Compute Engine VMs. The character '=' is not allowed to 362 // be used within the labels. 363 map<string, string> labels = 8; 364 365 // Map of additional options used to configure the behavior of 366 // Data Fusion instance. 367 map<string, string> options = 9; 368 369 // Output only. The time the instance was created. 370 google.protobuf.Timestamp create_time = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; 371 372 // Output only. The time the instance was last updated. 373 google.protobuf.Timestamp update_time = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; 374 375 // Output only. The current state of this Data Fusion instance. 376 State state = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; 377 378 // Output only. Additional information about the current state of this Data 379 // Fusion instance if available. 380 string state_message = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; 381 382 // Output only. Endpoint on which the Data Fusion UI is accessible. 383 string service_endpoint = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; 384 385 // Name of the zone in which the Data Fusion instance will be created. Only 386 // DEVELOPER instances use this field. 387 string zone = 15; 388 389 // Current version of Data Fusion. 390 string version = 16; 391 392 // Output only. Deprecated. Use tenant_project_id instead to extract the tenant project ID. 393 string service_account = 17 [ 394 deprecated = true, 395 (google.api.field_behavior) = OUTPUT_ONLY 396 ]; 397 398 // Display name for an instance. 399 string display_name = 18; 400 401 // Available versions that the instance can be upgraded to using 402 // UpdateInstanceRequest. 403 repeated Version available_version = 19; 404 405 // Output only. Endpoint on which the REST APIs is accessible. 406 string api_endpoint = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; 407 408 // Output only. Cloud Storage bucket generated by Data Fusion in the customer project. 409 string gcs_bucket = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; 410 411 // List of accelerators enabled for this CDF instance. 412 repeated Accelerator accelerators = 22; 413 414 // Output only. P4 service account for the customer project. 415 string p4_service_account = 23 [(google.api.field_behavior) = OUTPUT_ONLY]; 416 417 // Output only. The name of the tenant project. 418 string tenant_project_id = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; 419 420 // User-managed service account to set on Dataproc when Cloud Data Fusion 421 // creates Dataproc to run data processing pipelines. 422 // 423 // This allows users to have fine-grained access control on Dataproc's 424 // accesses to cloud resources. 425 string dataproc_service_account = 25; 426 427 // Option to enable granular role-based access control. 428 bool enable_rbac = 26; 429 430 // The crypto key configuration. This field is used by the Customer-Managed 431 // Encryption Keys (CMEK) feature. 432 CryptoKeyConfig crypto_key_config = 27; 433 434 // Output only. If the instance state is DISABLED, the reason for disabling the instance. 435 repeated DisabledReason disabled_reason = 28 [(google.api.field_behavior) = OUTPUT_ONLY]; 436} 437 438// Request message for listing Data Fusion instances. 439message ListInstancesRequest { 440 // Required. The project and location for which to retrieve instance information 441 // in the format projects/{project}/locations/{location}. If the location is 442 // specified as '-' (wildcard), then all regions available to the project 443 // are queried, and the results are aggregated. 444 string parent = 1 [ 445 (google.api.field_behavior) = REQUIRED, 446 (google.api.resource_reference) = { 447 type: "locations.googleapis.com/Location" 448 } 449 ]; 450 451 // The maximum number of items to return. 452 int32 page_size = 2; 453 454 // The next_page_token value to use if there are additional 455 // results to retrieve for this list request. 456 string page_token = 3; 457 458 // List filter. 459 string filter = 4; 460 461 // Sort results. Supported values are "name", "name desc", or "" (unsorted). 462 string order_by = 5; 463} 464 465// Response message for the list instance request. 466message ListInstancesResponse { 467 // Represents a list of Data Fusion instances. 468 repeated Instance instances = 1; 469 470 // Token to retrieve the next page of results or empty if there are no more 471 // results in the list. 472 string next_page_token = 2; 473 474 // Locations that could not be reached. 475 repeated string unreachable = 3; 476} 477 478// Request message for the list available versions request. 479message ListAvailableVersionsRequest { 480 // Required. The project and location for which to retrieve instance information 481 // in the format projects/{project}/locations/{location}. 482 string parent = 1 [ 483 (google.api.field_behavior) = REQUIRED, 484 (google.api.resource_reference) = { 485 type: "locations.googleapis.com/Location" 486 } 487 ]; 488 489 // The maximum number of items to return. 490 int32 page_size = 2; 491 492 // The next_page_token value to use if there are additional 493 // results to retrieve for this list request. 494 string page_token = 3; 495 496 // Whether or not to return the latest patch of every available minor version. 497 // If true, only the latest patch will be returned. Ex. if allowed versions is 498 // [6.1.1, 6.1.2, 6.2.0] then response will be [6.1.2, 6.2.0] 499 bool latest_patch_only = 4; 500} 501 502// Response message for the list available versions request. 503message ListAvailableVersionsResponse { 504 // Represents a list of versions that are supported. 505 repeated Version available_versions = 1; 506 507 // Token to retrieve the next page of results or empty if there are no more 508 // results in the list. 509 string next_page_token = 2; 510} 511 512// Request message for getting details about a Data Fusion instance. 513message GetInstanceRequest { 514 // Required. The instance resource name in the format 515 // projects/{project}/locations/{location}/instances/{instance}. 516 string name = 1 [ 517 (google.api.field_behavior) = REQUIRED, 518 (google.api.resource_reference) = { 519 type: "datafusion.googleapis.com/Instance" 520 } 521 ]; 522} 523 524// Request message for creating a Data Fusion instance. 525message CreateInstanceRequest { 526 // Required. The instance's project and location in the format 527 // projects/{project}/locations/{location}. 528 string parent = 1 [ 529 (google.api.field_behavior) = REQUIRED, 530 (google.api.resource_reference) = { 531 type: "locations.googleapis.com/Location" 532 } 533 ]; 534 535 // Required. The name of the instance to create. 536 string instance_id = 2 [(google.api.field_behavior) = REQUIRED]; 537 538 // An instance resource. 539 Instance instance = 3; 540} 541 542// Request message for deleting a Data Fusion instance. 543message DeleteInstanceRequest { 544 // Required. The instance resource name in the format 545 // projects/{project}/locations/{location}/instances/{instance} 546 string name = 1 [ 547 (google.api.field_behavior) = REQUIRED, 548 (google.api.resource_reference) = { 549 type: "datafusion.googleapis.com/Instance" 550 } 551 ]; 552} 553 554// Request message for updating a Data Fusion instance. 555// Data Fusion only allows updating the labels, options, and stack driver 556// settings. 557message UpdateInstanceRequest { 558 // Required. The instance resource that replaces the resource on the server. Currently, 559 // Data Fusion only allows replacing labels, options, and stack driver 560 // settings. All other fields will be ignored. 561 Instance instance = 1 [(google.api.field_behavior) = REQUIRED]; 562 563 // Field mask is used to specify the fields that the update will overwrite 564 // in an instance resource. The fields specified in the update_mask are 565 // relative to the resource, not the full request. 566 // A field will be overwritten if it is in the mask. 567 // If the user does not provide a mask, all the supported fields (labels and 568 // options currently) will be overwritten. 569 google.protobuf.FieldMask update_mask = 2; 570} 571 572// Request message for restarting a Data Fusion instance. 573message RestartInstanceRequest { 574 // Required. Name of the Data Fusion instance which need to be restarted in the form of 575 // projects/{project}/locations/{location}/instances/{instance} 576 string name = 1 [ 577 (google.api.field_behavior) = REQUIRED, 578 (google.api.resource_reference) = { 579 type: "datafusion.googleapis.com/Instance" 580 } 581 ]; 582} 583 584// Request message for upgrading a Data Fusion instance. 585// To change the instance properties, instance update should be used. 586message UpgradeInstanceRequest { 587 // Required. Name of the Data Fusion instance which need to be upgraded in the form of 588 // projects/{project}/locations/{location}/instances/{instance} 589 // Instance will be upgraded with the latest stable version of the Data 590 // Fusion. 591 string name = 1 [ 592 (google.api.field_behavior) = REQUIRED, 593 (google.api.resource_reference) = { 594 type: "datafusion.googleapis.com/Instance" 595 } 596 ]; 597} 598 599// Represents the metadata of a long-running operation. 600message OperationMetadata { 601 // The time the operation was created. 602 google.protobuf.Timestamp create_time = 1; 603 604 // The time the operation finished running. 605 google.protobuf.Timestamp end_time = 2; 606 607 // Server-defined resource path for the target of the operation. 608 string target = 3; 609 610 // Name of the verb executed by the operation. 611 string verb = 4; 612 613 // Human-readable status of the operation if any. 614 string status_detail = 5; 615 616 // Identifies whether the user has requested cancellation 617 // of the operation. Operations that have successfully been cancelled 618 // have [Operation.error][] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1, 619 // corresponding to `Code.CANCELLED`. 620 bool requested_cancellation = 6; 621 622 // API version used to start the operation. 623 string api_version = 7; 624} 625 626// Request message for RemoveIamPolicy method. 627message RemoveIamPolicyRequest { 628 // Required. The resource on which IAM policy to be removed is attached to. 629 string resource = 1 [(google.api.field_behavior) = REQUIRED]; 630} 631 632// Response message for RemoveIamPolicy method. 633message RemoveIamPolicyResponse { 634 635} 636 637// List namespaces request. 638message ListNamespacesRequest { 639 // Required. The instance to list its namespaces. 640 string parent = 1 [ 641 (google.api.field_behavior) = REQUIRED, 642 (google.api.resource_reference) = { 643 type: "datafusion.googleapis.com/Instance" 644 } 645 ]; 646 647 // The maximum number of items to return. 648 int32 page_size = 2; 649 650 // The next_page_token value to use if there are additional 651 // results to retrieve for this list request. 652 string page_token = 3; 653 654 // By default, only basic information about a namespace is returned 655 // (e.g. name). When `NAMESPACE_VIEW_FULL` is specified, additional 656 // information associated with a namespace gets returned 657 // (e.g. IAM policy set on the namespace) 658 NamespaceView view = 4; 659} 660 661// IAMPolicy encapsulates the IAM policy name, definition and status of 662// policy fetching. 663message IAMPolicy { 664 // Policy definition if IAM policy fetching is successful, 665 // otherwise empty. 666 google.iam.v1.Policy policy = 1; 667 668 // Status of iam policy fetching. 669 google.rpc.Status status = 2; 670} 671 672// Represents the information of a namespace 673message Namespace { 674 option (google.api.resource) = { 675 type: "datafusion.googleapis.com/Namespace" 676 pattern: "projects/{project}/locations/{location}/instances/{instance}/namespaces/{namespace}" 677 }; 678 679 // Name of the given namespace. 680 string name = 1; 681 682 // IAM policy associated with this namespace. 683 IAMPolicy iam_policy = 2; 684} 685 686// List namespaces response. 687message ListNamespacesResponse { 688 // List of namespaces 689 repeated Namespace namespaces = 1; 690 691 // Token to retrieve the next page of results or empty if there are no more 692 // results in the list. 693 string next_page_token = 2; 694} 695 696// DNS peering configuration. These configurations are used to create 697// DNS peering with the customer Cloud DNS. 698message DnsPeering { 699 // Required. Name of the zone. 700 string zone = 1 [(google.api.field_behavior) = REQUIRED]; 701 702 // Required. Name of the dns. 703 string domain = 2 [(google.api.field_behavior) = REQUIRED]; 704 705 // Optional. Optional description of the dns zone. 706 string description = 3 [(google.api.field_behavior) = OPTIONAL]; 707 708 // Optional. Optional target project to which dns peering should happen. 709 string target_project = 4 [(google.api.field_behavior) = OPTIONAL]; 710 711 // Optional. Optional target network to which dns peering should happen. 712 string target_network = 5 [(google.api.field_behavior) = OPTIONAL]; 713} 714 715// Request message to create dns peering. 716message AddDnsPeeringRequest { 717 // Required. The resource on which DNS peering will be created. 718 string parent = 1 [ 719 (google.api.field_behavior) = REQUIRED, 720 (google.api.resource_reference) = { 721 type: "datafusion.googleapis.com/Instance" 722 } 723 ]; 724 725 // Dns peering config. 726 DnsPeering dns_peering = 2; 727} 728 729// Response message for set dns peering method. 730message AddDnsPeeringResponse { 731 732} 733 734// A view for Namespace 735enum NamespaceView { 736 // Default/unset value, which will use BASIC view. 737 NAMESPACE_VIEW_UNSPECIFIED = 0; 738 739 // Show the most basic metadata of a namespace 740 NAMESPACE_VIEW_BASIC = 1; 741 742 // Returns all metadata of a namespace 743 NAMESPACE_VIEW_FULL = 2; 744} 745 746// Request message to remove dns peering. 747message RemoveDnsPeeringRequest { 748 // Required. The resource on which DNS peering will be removed. 749 string parent = 1 [ 750 (google.api.field_behavior) = REQUIRED, 751 (google.api.resource_reference) = { 752 type: "datafusion.googleapis.com/Instance" 753 } 754 ]; 755 756 // Required. The zone to be removed. 757 string zone = 2 [(google.api.field_behavior) = REQUIRED]; 758} 759 760// Response message for set dns peering method. 761message RemoveDnsPeeringResponse { 762 763} 764 765// List dns peering request. 766message ListDnsPeeringsRequest { 767 // Required. The resource on which dns peering will be listed. 768 string parent = 1 [ 769 (google.api.field_behavior) = REQUIRED, 770 (google.api.resource_reference) = { 771 type: "datafusion.googleapis.com/Instance" 772 } 773 ]; 774 775 // The maximum number of items to return. 776 int32 page_size = 2; 777 778 // The next_page_token value to use if there are additional 779 // results to retrieve for this list request. 780 string page_token = 3; 781} 782 783// List dns peering response. 784message ListDnsPeeringsResponse { 785 // List of dns peering configs. 786 repeated DnsPeering dns_peerings = 1; 787 788 // Token to retrieve the next page of results or empty if there are no more 789 // results in the list. 790 string next_page_token = 2; 791} 792