xref: /aosp_15_r20/external/googleapis/google/cloud/datafusion/v1beta1/v1beta1.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
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