xref: /aosp_15_r20/external/googleapis/google/cloud/vmwareengine/v1/vmwareengine.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
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.vmwareengine.v1;
18
19import "google/longrunning/operations.proto";
20import "google/protobuf/timestamp.proto";
21import "google/protobuf/field_mask.proto";
22import "google/api/annotations.proto";
23import "google/api/client.proto";
24import "google/api/field_behavior.proto";
25import "google/api/field_info.proto";
26import "google/api/resource.proto";
27import "google/cloud/vmwareengine/v1/vmwareengine_resources.proto";
28import "google/protobuf/empty.proto";
29
30option csharp_namespace = "Google.Cloud.VmwareEngine.V1";
31option go_package = "cloud.google.com/go/vmwareengine/apiv1/vmwareenginepb;vmwareenginepb";
32option java_multiple_files = true;
33option java_outer_classname = "VmwareengineProto";
34option java_package = "com.google.cloud.vmwareengine.v1";
35option php_namespace = "Google\\Cloud\\VmwareEngine\\V1";
36option ruby_package = "Google::Cloud::VmwareEngine::V1";
37option (google.api.resource_definition) = {
38  type: "compute.googleapis.com/Network"
39  pattern: "projects/{project}/global/networks/{network}"
40};
41
42// VMwareEngine manages VMware's private clusters in the Cloud.
43service VmwareEngine {
44  option (google.api.default_host) = "vmwareengine.googleapis.com";
45  option (google.api.oauth_scopes) =
46      "https://www.googleapis.com/auth/cloud-platform";
47
48  // Lists `PrivateCloud` resources in a given project and location.
49  rpc ListPrivateClouds(ListPrivateCloudsRequest)
50      returns (ListPrivateCloudsResponse) {
51    option (google.api.http) = {
52      get: "/v1/{parent=projects/*/locations/*}/privateClouds"
53    };
54    option (google.api.method_signature) = "parent";
55  }
56
57  // Retrieves a `PrivateCloud` resource by its resource name.
58  rpc GetPrivateCloud(GetPrivateCloudRequest) returns (PrivateCloud) {
59    option (google.api.http) = {
60      get: "/v1/{name=projects/*/locations/*/privateClouds/*}"
61    };
62    option (google.api.method_signature) = "name";
63  }
64
65  // Creates a new `PrivateCloud` resource in a given project and location.
66  // Private clouds of type `STANDARD` and
67  // `TIME_LIMITED` are zonal resources, `STRETCHED` private clouds are
68  // regional.
69  // Creating a private cloud also creates a [management
70  // cluster](https://cloud.google.com/vmware-engine/docs/concepts-vmware-components)
71  // for that private cloud.
72  rpc CreatePrivateCloud(CreatePrivateCloudRequest)
73      returns (google.longrunning.Operation) {
74    option (google.api.http) = {
75      post: "/v1/{parent=projects/*/locations/*}/privateClouds"
76      body: "private_cloud"
77    };
78    option (google.api.method_signature) =
79        "parent,private_cloud,private_cloud_id";
80    option (google.longrunning.operation_info) = {
81      response_type: "PrivateCloud"
82      metadata_type: "OperationMetadata"
83    };
84  }
85
86  // Modifies a `PrivateCloud` resource. Only the following fields can be
87  // updated: `description`.
88  // Only fields specified in `updateMask` are applied.
89  //
90  // During operation processing, the resource is temporarily in the `ACTIVE`
91  // state before the operation fully completes. For that period of time, you
92  // can't update the resource. Use the operation status to determine when the
93  // processing fully completes.
94  rpc UpdatePrivateCloud(UpdatePrivateCloudRequest)
95      returns (google.longrunning.Operation) {
96    option (google.api.http) = {
97      patch: "/v1/{private_cloud.name=projects/*/locations/*/privateClouds/*}"
98      body: "private_cloud"
99    };
100    option (google.api.method_signature) = "private_cloud,update_mask";
101    option (google.longrunning.operation_info) = {
102      response_type: "PrivateCloud"
103      metadata_type: "OperationMetadata"
104    };
105  }
106
107  // Schedules a `PrivateCloud` resource for deletion.
108  //
109  // A `PrivateCloud` resource scheduled for deletion has `PrivateCloud.state`
110  // set to `DELETED` and `expireTime` set to the time when deletion is final
111  // and can no longer be reversed. The delete operation is marked as done
112  // as soon as the `PrivateCloud` is successfully scheduled for deletion
113  // (this also applies when `delayHours` is set to zero), and the operation is
114  // not kept in pending state until `PrivateCloud` is purged.
115  // `PrivateCloud` can be restored using `UndeletePrivateCloud` method before
116  // the `expireTime` elapses. When `expireTime` is reached, deletion is final
117  // and all private cloud resources are irreversibly removed and billing stops.
118  // During the final removal process, `PrivateCloud.state` is set to `PURGING`.
119  // `PrivateCloud` can be polled using standard `GET` method for the whole
120  // period of deletion and purging. It will not be returned only
121  // when it is completely purged.
122  rpc DeletePrivateCloud(DeletePrivateCloudRequest)
123      returns (google.longrunning.Operation) {
124    option (google.api.http) = {
125      delete: "/v1/{name=projects/*/locations/*/privateClouds/*}"
126    };
127    option (google.api.method_signature) = "name";
128    option (google.longrunning.operation_info) = {
129      response_type: "PrivateCloud"
130      metadata_type: "OperationMetadata"
131    };
132  }
133
134  // Restores a private cloud that was previously scheduled for deletion by
135  // `DeletePrivateCloud`. A `PrivateCloud` resource scheduled for deletion has
136  // `PrivateCloud.state` set to `DELETED` and `PrivateCloud.expireTime` set to
137  // the time when deletion can no longer be reversed.
138  rpc UndeletePrivateCloud(UndeletePrivateCloudRequest)
139      returns (google.longrunning.Operation) {
140    option (google.api.http) = {
141      post: "/v1/{name=projects/*/locations/*/privateClouds/*}:undelete"
142      body: "*"
143    };
144    option (google.api.method_signature) = "name";
145    option (google.longrunning.operation_info) = {
146      response_type: "PrivateCloud"
147      metadata_type: "OperationMetadata"
148    };
149  }
150
151  // Lists `Cluster` resources in a given private cloud.
152  rpc ListClusters(ListClustersRequest) returns (ListClustersResponse) {
153    option (google.api.http) = {
154      get: "/v1/{parent=projects/*/locations/*/privateClouds/*}/clusters"
155    };
156    option (google.api.method_signature) = "parent";
157  }
158
159  // Retrieves a `Cluster` resource by its resource name.
160  rpc GetCluster(GetClusterRequest) returns (Cluster) {
161    option (google.api.http) = {
162      get: "/v1/{name=projects/*/locations/*/privateClouds/*/clusters/*}"
163    };
164    option (google.api.method_signature) = "name";
165  }
166
167  // Creates a new cluster in a given private cloud.
168  // Creating a new cluster provides additional nodes for
169  // use in the parent private cloud and requires sufficient [node
170  // quota](https://cloud.google.com/vmware-engine/quotas).
171  rpc CreateCluster(CreateClusterRequest)
172      returns (google.longrunning.Operation) {
173    option (google.api.http) = {
174      post: "/v1/{parent=projects/*/locations/*/privateClouds/*}/clusters"
175      body: "cluster"
176    };
177    option (google.api.method_signature) = "parent,cluster,cluster_id";
178    option (google.longrunning.operation_info) = {
179      response_type: "Cluster"
180      metadata_type: "OperationMetadata"
181    };
182  }
183
184  // Modifies a `Cluster` resource. Only fields specified in `updateMask` are
185  // applied.
186  //
187  // During operation processing, the resource is temporarily in the `ACTIVE`
188  // state before the operation fully completes. For that period of time, you
189  // can't update the resource. Use the operation status to determine when the
190  // processing fully completes.
191  rpc UpdateCluster(UpdateClusterRequest)
192      returns (google.longrunning.Operation) {
193    option (google.api.http) = {
194      patch: "/v1/{cluster.name=projects/*/locations/*/privateClouds/*/clusters/*}"
195      body: "cluster"
196    };
197    option (google.api.method_signature) = "cluster,update_mask";
198    option (google.longrunning.operation_info) = {
199      response_type: "Cluster"
200      metadata_type: "OperationMetadata"
201    };
202  }
203
204  // Deletes a `Cluster` resource. To avoid unintended data loss, migrate or
205  // gracefully shut down any workloads running on the cluster before deletion.
206  // You cannot delete the management cluster of a private cloud using this
207  // method.
208  rpc DeleteCluster(DeleteClusterRequest)
209      returns (google.longrunning.Operation) {
210    option (google.api.http) = {
211      delete: "/v1/{name=projects/*/locations/*/privateClouds/*/clusters/*}"
212    };
213    option (google.api.method_signature) = "name";
214    option (google.longrunning.operation_info) = {
215      response_type: "google.protobuf.Empty"
216      metadata_type: "OperationMetadata"
217    };
218  }
219
220  // Lists nodes in a given cluster.
221  rpc ListNodes(ListNodesRequest) returns (ListNodesResponse) {
222    option (google.api.http) = {
223      get: "/v1/{parent=projects/*/locations/*/privateClouds/*/clusters/*}/nodes"
224    };
225    option (google.api.method_signature) = "parent";
226  }
227
228  // Gets details of a single node.
229  rpc GetNode(GetNodeRequest) returns (Node) {
230    option (google.api.http) = {
231      get: "/v1/{name=projects/*/locations/*/privateClouds/*/clusters/*/nodes/*}"
232    };
233    option (google.api.method_signature) = "name";
234  }
235
236  // Lists external IP addresses assigned to VMware workload VMs in a given
237  // private cloud.
238  rpc ListExternalAddresses(ListExternalAddressesRequest)
239      returns (ListExternalAddressesResponse) {
240    option (google.api.http) = {
241      get: "/v1/{parent=projects/*/locations/*/privateClouds/*}/externalAddresses"
242    };
243    option (google.api.method_signature) = "parent";
244  }
245
246  // Lists external IP addresses assigned to VMware workload VMs within the
247  // scope of the given network policy.
248  rpc FetchNetworkPolicyExternalAddresses(
249      FetchNetworkPolicyExternalAddressesRequest)
250      returns (FetchNetworkPolicyExternalAddressesResponse) {
251    option (google.api.http) = {
252      get: "/v1/{network_policy=projects/*/locations/*/networkPolicies/*}:fetchExternalAddresses"
253    };
254    option (google.api.method_signature) = "network_policy";
255  }
256
257  // Gets details of a single external IP address.
258  rpc GetExternalAddress(GetExternalAddressRequest) returns (ExternalAddress) {
259    option (google.api.http) = {
260      get: "/v1/{name=projects/*/locations/*/privateClouds/*/externalAddresses/*}"
261    };
262    option (google.api.method_signature) = "name";
263  }
264
265  // Creates a new `ExternalAddress` resource in a given private cloud. The
266  // network policy that corresponds to the private cloud must have the external
267  // IP address network service enabled (`NetworkPolicy.external_ip`).
268  rpc CreateExternalAddress(CreateExternalAddressRequest)
269      returns (google.longrunning.Operation) {
270    option (google.api.http) = {
271      post: "/v1/{parent=projects/*/locations/*/privateClouds/*}/externalAddresses"
272      body: "external_address"
273    };
274    option (google.api.method_signature) =
275        "parent,external_address,external_address_id";
276    option (google.longrunning.operation_info) = {
277      response_type: "ExternalAddress"
278      metadata_type: "OperationMetadata"
279    };
280  }
281
282  // Updates the parameters of a single external IP address.
283  // Only fields specified in `update_mask` are applied.
284  //
285  // During operation processing, the resource is temporarily in the `ACTIVE`
286  // state before the operation fully completes. For that period of time, you
287  // can't update the resource. Use the operation status to determine when the
288  // processing fully completes.
289  rpc UpdateExternalAddress(UpdateExternalAddressRequest)
290      returns (google.longrunning.Operation) {
291    option (google.api.http) = {
292      patch: "/v1/{external_address.name=projects/*/locations/*/privateClouds/*/externalAddresses/*}"
293      body: "external_address"
294    };
295    option (google.api.method_signature) = "external_address,update_mask";
296    option (google.longrunning.operation_info) = {
297      response_type: "ExternalAddress"
298      metadata_type: "OperationMetadata"
299    };
300  }
301
302  // Deletes a single external IP address. When you delete an external IP
303  // address, connectivity between the external IP address and the corresponding
304  // internal IP address is lost.
305  rpc DeleteExternalAddress(DeleteExternalAddressRequest)
306      returns (google.longrunning.Operation) {
307    option (google.api.http) = {
308      delete: "/v1/{name=projects/*/locations/*/privateClouds/*/externalAddresses/*}"
309    };
310    option (google.api.method_signature) = "name";
311    option (google.longrunning.operation_info) = {
312      response_type: "google.protobuf.Empty"
313      metadata_type: "OperationMetadata"
314    };
315  }
316
317  // Lists subnets in a given private cloud.
318  rpc ListSubnets(ListSubnetsRequest) returns (ListSubnetsResponse) {
319    option (google.api.http) = {
320      get: "/v1/{parent=projects/*/locations/*/privateClouds/*}/subnets"
321    };
322    option (google.api.method_signature) = "parent";
323  }
324
325  // Gets details of a single subnet.
326  rpc GetSubnet(GetSubnetRequest) returns (Subnet) {
327    option (google.api.http) = {
328      get: "/v1/{name=projects/*/locations/*/privateClouds/*/subnets/*}"
329    };
330    option (google.api.method_signature) = "name";
331  }
332
333  // Updates the parameters of a single subnet. Only fields specified in
334  // `update_mask` are applied.
335  //
336  // *Note*: This API is synchronous and always returns a successful
337  // `google.longrunning.Operation` (LRO). The returned LRO will only have
338  // `done` and `response` fields.
339  rpc UpdateSubnet(UpdateSubnetRequest) returns (google.longrunning.Operation) {
340    option (google.api.http) = {
341      patch: "/v1/{subnet.name=projects/*/locations/*/privateClouds/*/subnets/*}"
342      body: "subnet"
343    };
344    option (google.api.method_signature) = "subnet,update_mask";
345    option (google.longrunning.operation_info) = {
346      response_type: "Subnet"
347      metadata_type: "OperationMetadata"
348    };
349  }
350
351  // Lists `ExternalAccessRule` resources in the specified network policy.
352  rpc ListExternalAccessRules(ListExternalAccessRulesRequest)
353      returns (ListExternalAccessRulesResponse) {
354    option (google.api.http) = {
355      get: "/v1/{parent=projects/*/locations/*/networkPolicies/*}/externalAccessRules"
356    };
357    option (google.api.method_signature) = "parent";
358  }
359
360  // Gets details of a single external access rule.
361  rpc GetExternalAccessRule(GetExternalAccessRuleRequest)
362      returns (ExternalAccessRule) {
363    option (google.api.http) = {
364      get: "/v1/{name=projects/*/locations/*/networkPolicies/*/externalAccessRules/*}"
365    };
366    option (google.api.method_signature) = "name";
367  }
368
369  // Creates a new external access rule in a given network policy.
370  rpc CreateExternalAccessRule(CreateExternalAccessRuleRequest)
371      returns (google.longrunning.Operation) {
372    option (google.api.http) = {
373      post: "/v1/{parent=projects/*/locations/*/networkPolicies/*}/externalAccessRules"
374      body: "external_access_rule"
375    };
376    option (google.api.method_signature) =
377        "parent,external_access_rule,external_access_rule_id";
378    option (google.longrunning.operation_info) = {
379      response_type: "ExternalAccessRule"
380      metadata_type: "OperationMetadata"
381    };
382  }
383
384  // Updates the parameters of a single external access rule.
385  // Only fields specified in `update_mask` are applied.
386  rpc UpdateExternalAccessRule(UpdateExternalAccessRuleRequest)
387      returns (google.longrunning.Operation) {
388    option (google.api.http) = {
389      patch: "/v1/{external_access_rule.name=projects/*/locations/*/networkPolicies/*/externalAccessRules/*}"
390      body: "external_access_rule"
391    };
392    option (google.api.method_signature) = "external_access_rule,update_mask";
393    option (google.longrunning.operation_info) = {
394      response_type: "ExternalAccessRule"
395      metadata_type: "OperationMetadata"
396    };
397  }
398
399  // Deletes a single external access rule.
400  rpc DeleteExternalAccessRule(DeleteExternalAccessRuleRequest)
401      returns (google.longrunning.Operation) {
402    option (google.api.http) = {
403      delete: "/v1/{name=projects/*/locations/*/networkPolicies/*/externalAccessRules/*}"
404    };
405    option (google.api.method_signature) = "name";
406    option (google.longrunning.operation_info) = {
407      response_type: "google.protobuf.Empty"
408      metadata_type: "OperationMetadata"
409    };
410  }
411
412  // Lists logging servers configured for a given private
413  // cloud.
414  rpc ListLoggingServers(ListLoggingServersRequest)
415      returns (ListLoggingServersResponse) {
416    option (google.api.http) = {
417      get: "/v1/{parent=projects/*/locations/*/privateClouds/*}/loggingServers"
418    };
419    option (google.api.method_signature) = "parent";
420  }
421
422  // Gets details of a logging server.
423  rpc GetLoggingServer(GetLoggingServerRequest) returns (LoggingServer) {
424    option (google.api.http) = {
425      get: "/v1/{name=projects/*/locations/*/privateClouds/*/loggingServers/*}"
426    };
427    option (google.api.method_signature) = "name";
428  }
429
430  // Create a new logging server for a given private cloud.
431  rpc CreateLoggingServer(CreateLoggingServerRequest)
432      returns (google.longrunning.Operation) {
433    option (google.api.http) = {
434      post: "/v1/{parent=projects/*/locations/*/privateClouds/*}/loggingServers"
435      body: "logging_server"
436    };
437    option (google.api.method_signature) =
438        "parent,logging_server,logging_server_id";
439    option (google.longrunning.operation_info) = {
440      response_type: "LoggingServer"
441      metadata_type: "OperationMetadata"
442    };
443  }
444
445  // Updates the parameters of a single logging server.
446  // Only fields specified in `update_mask` are applied.
447  rpc UpdateLoggingServer(UpdateLoggingServerRequest)
448      returns (google.longrunning.Operation) {
449    option (google.api.http) = {
450      patch: "/v1/{logging_server.name=projects/*/locations/*/privateClouds/*/loggingServers/*}"
451      body: "logging_server"
452    };
453    option (google.api.method_signature) = "logging_server,update_mask";
454    option (google.longrunning.operation_info) = {
455      response_type: "LoggingServer"
456      metadata_type: "OperationMetadata"
457    };
458  }
459
460  // Deletes a single logging server.
461  rpc DeleteLoggingServer(DeleteLoggingServerRequest)
462      returns (google.longrunning.Operation) {
463    option (google.api.http) = {
464      delete: "/v1/{name=projects/*/locations/*/privateClouds/*/loggingServers/*}"
465    };
466    option (google.api.method_signature) = "name";
467    option (google.longrunning.operation_info) = {
468      response_type: "google.protobuf.Empty"
469      metadata_type: "OperationMetadata"
470    };
471  }
472
473  // Lists node types
474  rpc ListNodeTypes(ListNodeTypesRequest) returns (ListNodeTypesResponse) {
475    option (google.api.http) = {
476      get: "/v1/{parent=projects/*/locations/*}/nodeTypes"
477    };
478    option (google.api.method_signature) = "parent";
479  }
480
481  // Gets details of a single `NodeType`.
482  rpc GetNodeType(GetNodeTypeRequest) returns (NodeType) {
483    option (google.api.http) = {
484      get: "/v1/{name=projects/*/locations/*/nodeTypes/*}"
485    };
486    option (google.api.method_signature) = "name";
487  }
488
489  // Gets details of credentials for NSX appliance.
490  rpc ShowNsxCredentials(ShowNsxCredentialsRequest) returns (Credentials) {
491    option (google.api.http) = {
492      get: "/v1/{private_cloud=projects/*/locations/*/privateClouds/*}:showNsxCredentials"
493    };
494    option (google.api.method_signature) = "private_cloud";
495  }
496
497  // Gets details of credentials for Vcenter appliance.
498  rpc ShowVcenterCredentials(ShowVcenterCredentialsRequest)
499      returns (Credentials) {
500    option (google.api.http) = {
501      get: "/v1/{private_cloud=projects/*/locations/*/privateClouds/*}:showVcenterCredentials"
502    };
503    option (google.api.method_signature) = "private_cloud";
504  }
505
506  // Resets credentials of the NSX appliance.
507  rpc ResetNsxCredentials(ResetNsxCredentialsRequest)
508      returns (google.longrunning.Operation) {
509    option (google.api.http) = {
510      post: "/v1/{private_cloud=projects/*/locations/*/privateClouds/*}:resetNsxCredentials"
511      body: "*"
512    };
513    option (google.api.method_signature) = "private_cloud";
514    option (google.longrunning.operation_info) = {
515      response_type: "PrivateCloud"
516      metadata_type: "OperationMetadata"
517    };
518  }
519
520  // Resets credentials of the Vcenter appliance.
521  rpc ResetVcenterCredentials(ResetVcenterCredentialsRequest)
522      returns (google.longrunning.Operation) {
523    option (google.api.http) = {
524      post: "/v1/{private_cloud=projects/*/locations/*/privateClouds/*}:resetVcenterCredentials"
525      body: "*"
526    };
527    option (google.api.method_signature) = "private_cloud";
528    option (google.longrunning.operation_info) = {
529      response_type: "PrivateCloud"
530      metadata_type: "OperationMetadata"
531    };
532  }
533
534  // Gets details of the `DnsForwarding` config.
535  rpc GetDnsForwarding(GetDnsForwardingRequest) returns (DnsForwarding) {
536    option (google.api.http) = {
537      get: "/v1/{name=projects/*/locations/*/privateClouds/*/dnsForwarding}"
538    };
539    option (google.api.method_signature) = "name";
540  }
541
542  // Updates the parameters of the `DnsForwarding` config, like associated
543  // domains. Only fields specified in `update_mask` are applied.
544  rpc UpdateDnsForwarding(UpdateDnsForwardingRequest)
545      returns (google.longrunning.Operation) {
546    option (google.api.http) = {
547      patch: "/v1/{dns_forwarding.name=projects/*/locations/*/privateClouds/*/dnsForwarding}"
548      body: "dns_forwarding"
549    };
550    option (google.api.method_signature) = "dns_forwarding,update_mask";
551    option (google.longrunning.operation_info) = {
552      response_type: "DnsForwarding"
553      metadata_type: "OperationMetadata"
554    };
555  }
556
557  // Retrieves a `NetworkPeering` resource by its resource name. The resource
558  // contains details of the network peering, such as peered
559  // networks, import and export custom route configurations, and peering state.
560  // NetworkPeering is a global resource and location can only be global.
561  rpc GetNetworkPeering(GetNetworkPeeringRequest) returns (NetworkPeering) {
562    option (google.api.http) = {
563      get: "/v1/{name=projects/*/locations/*/networkPeerings/*}"
564    };
565    option (google.api.method_signature) = "name";
566  }
567
568  // Lists `NetworkPeering` resources in a given project. NetworkPeering is a
569  // global resource and location can only be global.
570  rpc ListNetworkPeerings(ListNetworkPeeringsRequest)
571      returns (ListNetworkPeeringsResponse) {
572    option (google.api.http) = {
573      get: "/v1/{parent=projects/*/locations/*}/networkPeerings"
574    };
575    option (google.api.method_signature) = "parent";
576  }
577
578  // Creates a new network peering between the peer network and VMware Engine
579  // network provided in a `NetworkPeering` resource. NetworkPeering is a
580  // global resource and location can only be global.
581  rpc CreateNetworkPeering(CreateNetworkPeeringRequest)
582      returns (google.longrunning.Operation) {
583    option (google.api.http) = {
584      post: "/v1/{parent=projects/*/locations/*}/networkPeerings"
585      body: "network_peering"
586    };
587    option (google.api.method_signature) =
588        "parent,network_peering,network_peering_id";
589    option (google.longrunning.operation_info) = {
590      response_type: "NetworkPeering"
591      metadata_type: "OperationMetadata"
592    };
593  }
594
595  // Deletes a `NetworkPeering` resource. When a network peering is deleted for
596  // a VMware Engine network, the peer network becomes inaccessible to that
597  // VMware Engine network. NetworkPeering is a global resource and location can
598  // only be global.
599  rpc DeleteNetworkPeering(DeleteNetworkPeeringRequest)
600      returns (google.longrunning.Operation) {
601    option (google.api.http) = {
602      delete: "/v1/{name=projects/*/locations/*/networkPeerings/*}"
603    };
604    option (google.api.method_signature) = "name";
605    option (google.longrunning.operation_info) = {
606      response_type: "google.protobuf.Empty"
607      metadata_type: "OperationMetadata"
608    };
609  }
610
611  // Modifies a `NetworkPeering` resource. Only the `description` field can be
612  // updated. Only fields specified in `updateMask` are applied. NetworkPeering
613  // is a global resource and location can only be global.
614  rpc UpdateNetworkPeering(UpdateNetworkPeeringRequest)
615      returns (google.longrunning.Operation) {
616    option (google.api.http) = {
617      patch: "/v1/{network_peering.name=projects/*/locations/*/networkPeerings/*}"
618      body: "network_peering"
619    };
620    option (google.api.method_signature) = "network_peering,update_mask";
621    option (google.longrunning.operation_info) = {
622      response_type: "NetworkPeering"
623      metadata_type: "OperationMetadata"
624    };
625  }
626
627  // Lists the network peering routes exchanged over a peering connection.
628  // NetworkPeering is a global resource and location can only be global.
629  rpc ListPeeringRoutes(ListPeeringRoutesRequest)
630      returns (ListPeeringRoutesResponse) {
631    option (google.api.http) = {
632      get: "/v1/{parent=projects/*/locations/*/networkPeerings/*}/peeringRoutes"
633    };
634    option (google.api.method_signature) = "parent";
635  }
636
637  // Creates a new HCX activation key in a given private cloud.
638  rpc CreateHcxActivationKey(CreateHcxActivationKeyRequest)
639      returns (google.longrunning.Operation) {
640    option (google.api.http) = {
641      post: "/v1/{parent=projects/*/locations/*/privateClouds/*}/hcxActivationKeys"
642      body: "hcx_activation_key"
643    };
644    option (google.api.method_signature) =
645        "parent,hcx_activation_key,hcx_activation_key_id";
646    option (google.longrunning.operation_info) = {
647      response_type: "HcxActivationKey"
648      metadata_type: "OperationMetadata"
649    };
650  }
651
652  // Lists `HcxActivationKey` resources in a given private cloud.
653  rpc ListHcxActivationKeys(ListHcxActivationKeysRequest)
654      returns (ListHcxActivationKeysResponse) {
655    option (google.api.http) = {
656      get: "/v1/{parent=projects/*/locations/*/privateClouds/*}/hcxActivationKeys"
657    };
658    option (google.api.method_signature) = "parent";
659  }
660
661  // Retrieves a `HcxActivationKey` resource by its resource name.
662  rpc GetHcxActivationKey(GetHcxActivationKeyRequest)
663      returns (HcxActivationKey) {
664    option (google.api.http) = {
665      get: "/v1/{name=projects/*/locations/*/privateClouds/*/hcxActivationKeys/*}"
666    };
667    option (google.api.method_signature) = "name";
668  }
669
670  // Retrieves a `NetworkPolicy` resource by its resource name.
671  rpc GetNetworkPolicy(GetNetworkPolicyRequest) returns (NetworkPolicy) {
672    option (google.api.http) = {
673      get: "/v1/{name=projects/*/locations/*/networkPolicies/*}"
674    };
675    option (google.api.method_signature) = "name";
676  }
677
678  // Lists `NetworkPolicy` resources in a specified project and location.
679  rpc ListNetworkPolicies(ListNetworkPoliciesRequest)
680      returns (ListNetworkPoliciesResponse) {
681    option (google.api.http) = {
682      get: "/v1/{parent=projects/*/locations/*}/networkPolicies"
683    };
684    option (google.api.method_signature) = "parent";
685  }
686
687  // Creates a new network policy in a given VMware Engine network of a
688  // project and location (region). A new network policy cannot be created if
689  // another network policy already exists in the same scope.
690  rpc CreateNetworkPolicy(CreateNetworkPolicyRequest)
691      returns (google.longrunning.Operation) {
692    option (google.api.http) = {
693      post: "/v1/{parent=projects/*/locations/*}/networkPolicies"
694      body: "network_policy"
695    };
696    option (google.api.method_signature) =
697        "parent,network_policy,network_policy_id";
698    option (google.longrunning.operation_info) = {
699      response_type: "NetworkPolicy"
700      metadata_type: "OperationMetadata"
701    };
702  }
703
704  // Modifies a `NetworkPolicy` resource. Only the following fields can be
705  // updated: `internet_access`, `external_ip`, `edge_services_cidr`.
706  // Only fields specified in `updateMask` are applied. When updating a network
707  // policy, the external IP network service can only be disabled if there are
708  // no external IP addresses present in the scope of the policy. Also, a
709  // `NetworkService` cannot be updated when `NetworkService.state` is set
710  // to `RECONCILING`.
711  //
712  // During operation processing, the resource is temporarily in the `ACTIVE`
713  // state before the operation fully completes. For that period of time, you
714  // can't update the resource. Use the operation status to determine when the
715  // processing fully completes.
716  rpc UpdateNetworkPolicy(UpdateNetworkPolicyRequest)
717      returns (google.longrunning.Operation) {
718    option (google.api.http) = {
719      patch: "/v1/{network_policy.name=projects/*/locations/*/networkPolicies/*}"
720      body: "network_policy"
721    };
722    option (google.api.method_signature) = "network_policy,update_mask";
723    option (google.longrunning.operation_info) = {
724      response_type: "NetworkPolicy"
725      metadata_type: "OperationMetadata"
726    };
727  }
728
729  // Deletes a `NetworkPolicy` resource. A network policy cannot be deleted
730  // when `NetworkService.state` is set to `RECONCILING` for either its external
731  // IP or internet access service.
732  rpc DeleteNetworkPolicy(DeleteNetworkPolicyRequest)
733      returns (google.longrunning.Operation) {
734    option (google.api.http) = {
735      delete: "/v1/{name=projects/*/locations/*/networkPolicies/*}"
736    };
737    option (google.api.method_signature) = "name";
738    option (google.longrunning.operation_info) = {
739      response_type: "google.protobuf.Empty"
740      metadata_type: "OperationMetadata"
741    };
742  }
743
744  // Lists Consumer VPCs bound to Management DNS Zone of a given private cloud.
745  rpc ListManagementDnsZoneBindings(ListManagementDnsZoneBindingsRequest)
746      returns (ListManagementDnsZoneBindingsResponse) {
747    option (google.api.http) = {
748      get: "/v1/{parent=projects/*/locations/*/privateClouds/*}/managementDnsZoneBindings"
749    };
750    option (google.api.method_signature) = "parent";
751  }
752
753  // Retrieves a 'ManagementDnsZoneBinding' resource by its resource name.
754  rpc GetManagementDnsZoneBinding(GetManagementDnsZoneBindingRequest)
755      returns (ManagementDnsZoneBinding) {
756    option (google.api.http) = {
757      get: "/v1/{name=projects/*/locations/*/privateClouds/*/managementDnsZoneBindings/*}"
758    };
759    option (google.api.method_signature) = "name";
760  }
761
762  // Creates a new `ManagementDnsZoneBinding` resource in a private cloud.
763  // This RPC creates the DNS binding and the resource that represents the
764  // DNS binding of the consumer VPC network to the management DNS zone. A
765  // management DNS zone is the Cloud DNS cross-project binding zone that
766  // VMware Engine creates for each private cloud. It contains FQDNs and
767  // corresponding IP addresses for the private cloud's ESXi hosts and
768  // management VM appliances like vCenter and NSX Manager.
769  rpc CreateManagementDnsZoneBinding(CreateManagementDnsZoneBindingRequest)
770      returns (google.longrunning.Operation) {
771    option (google.api.http) = {
772      post: "/v1/{parent=projects/*/locations/*/privateClouds/*}/managementDnsZoneBindings"
773      body: "management_dns_zone_binding"
774    };
775    option (google.api.method_signature) =
776        "parent,management_dns_zone_binding,management_dns_zone_binding_id";
777    option (google.longrunning.operation_info) = {
778      response_type: "ManagementDnsZoneBinding"
779      metadata_type: "OperationMetadata"
780    };
781  }
782
783  // Updates a `ManagementDnsZoneBinding` resource.
784  // Only fields specified in `update_mask` are applied.
785  rpc UpdateManagementDnsZoneBinding(UpdateManagementDnsZoneBindingRequest)
786      returns (google.longrunning.Operation) {
787    option (google.api.http) = {
788      patch: "/v1/{management_dns_zone_binding.name=projects/*/locations/*/privateClouds/*/managementDnsZoneBindings/*}"
789      body: "management_dns_zone_binding"
790    };
791    option (google.api.method_signature) =
792        "management_dns_zone_binding,update_mask";
793    option (google.longrunning.operation_info) = {
794      response_type: "ManagementDnsZoneBinding"
795      metadata_type: "OperationMetadata"
796    };
797  }
798
799  // Deletes a `ManagementDnsZoneBinding` resource. When a management DNS zone
800  // binding is deleted, the corresponding consumer VPC network is no longer
801  // bound to the management DNS zone.
802  rpc DeleteManagementDnsZoneBinding(DeleteManagementDnsZoneBindingRequest)
803      returns (google.longrunning.Operation) {
804    option (google.api.http) = {
805      delete: "/v1/{name=projects/*/locations/*/privateClouds/*/managementDnsZoneBindings/*}"
806    };
807    option (google.api.method_signature) = "name";
808    option (google.longrunning.operation_info) = {
809      response_type: "google.protobuf.Empty"
810      metadata_type: "OperationMetadata"
811    };
812  }
813
814  // Retries to create a `ManagementDnsZoneBinding` resource that is
815  // in failed state.
816  rpc RepairManagementDnsZoneBinding(RepairManagementDnsZoneBindingRequest)
817      returns (google.longrunning.Operation) {
818    option (google.api.http) = {
819      post: "/v1/{name=projects/*/locations/*/privateClouds/*/managementDnsZoneBindings/*}:repair"
820      body: "*"
821    };
822    option (google.api.method_signature) = "name";
823    option (google.longrunning.operation_info) = {
824      response_type: "ManagementDnsZoneBinding"
825      metadata_type: "OperationMetadata"
826    };
827  }
828
829  // Creates a new VMware Engine network that can be used by a private cloud.
830  rpc CreateVmwareEngineNetwork(CreateVmwareEngineNetworkRequest)
831      returns (google.longrunning.Operation) {
832    option (google.api.http) = {
833      post: "/v1/{parent=projects/*/locations/*}/vmwareEngineNetworks"
834      body: "vmware_engine_network"
835    };
836    option (google.api.method_signature) =
837        "parent,vmware_engine_network,vmware_engine_network_id";
838    option (google.longrunning.operation_info) = {
839      response_type: "VmwareEngineNetwork"
840      metadata_type: "OperationMetadata"
841    };
842  }
843
844  // Modifies a VMware Engine network resource. Only the following fields can be
845  // updated: `description`. Only fields specified in `updateMask` are
846  // applied.
847  rpc UpdateVmwareEngineNetwork(UpdateVmwareEngineNetworkRequest)
848      returns (google.longrunning.Operation) {
849    option (google.api.http) = {
850      patch: "/v1/{vmware_engine_network.name=projects/*/locations/*/vmwareEngineNetworks/*}"
851      body: "vmware_engine_network"
852    };
853    option (google.api.method_signature) = "vmware_engine_network,update_mask";
854    option (google.longrunning.operation_info) = {
855      response_type: "VmwareEngineNetwork"
856      metadata_type: "OperationMetadata"
857    };
858  }
859
860  // Deletes a `VmwareEngineNetwork` resource. You can only delete a VMware
861  // Engine network after all resources that refer to it are deleted. For
862  // example, a private cloud, a network peering, and a network policy can all
863  // refer to the same VMware Engine network.
864  rpc DeleteVmwareEngineNetwork(DeleteVmwareEngineNetworkRequest)
865      returns (google.longrunning.Operation) {
866    option (google.api.http) = {
867      delete: "/v1/{name=projects/*/locations/*/vmwareEngineNetworks/*}"
868    };
869    option (google.api.method_signature) = "name";
870    option (google.longrunning.operation_info) = {
871      response_type: "google.protobuf.Empty"
872      metadata_type: "OperationMetadata"
873    };
874  }
875
876  // Retrieves a `VmwareEngineNetwork` resource by its resource name. The
877  // resource contains details of the VMware Engine network, such as its VMware
878  // Engine network type, peered networks in a service project, and state
879  // (for example, `CREATING`, `ACTIVE`, `DELETING`).
880  rpc GetVmwareEngineNetwork(GetVmwareEngineNetworkRequest)
881      returns (VmwareEngineNetwork) {
882    option (google.api.http) = {
883      get: "/v1/{name=projects/*/locations/*/vmwareEngineNetworks/*}"
884    };
885    option (google.api.method_signature) = "name";
886  }
887
888  // Lists `VmwareEngineNetwork` resources in a given project and location.
889  rpc ListVmwareEngineNetworks(ListVmwareEngineNetworksRequest)
890      returns (ListVmwareEngineNetworksResponse) {
891    option (google.api.http) = {
892      get: "/v1/{parent=projects/*/locations/*}/vmwareEngineNetworks"
893    };
894    option (google.api.method_signature) = "parent";
895  }
896
897  // Creates a new private connection that can be used for accessing private
898  // Clouds.
899  rpc CreatePrivateConnection(CreatePrivateConnectionRequest)
900      returns (google.longrunning.Operation) {
901    option (google.api.http) = {
902      post: "/v1/{parent=projects/*/locations/*}/privateConnections"
903      body: "private_connection"
904    };
905    option (google.api.method_signature) =
906        "parent,private_connection,private_connection_id";
907    option (google.longrunning.operation_info) = {
908      response_type: "PrivateConnection"
909      metadata_type: "OperationMetadata"
910    };
911  }
912
913  // Retrieves a `PrivateConnection` resource by its resource name. The resource
914  // contains details of the private connection, such as connected
915  // network, routing mode and state.
916  rpc GetPrivateConnection(GetPrivateConnectionRequest)
917      returns (PrivateConnection) {
918    option (google.api.http) = {
919      get: "/v1/{name=projects/*/locations/*/privateConnections/*}"
920    };
921    option (google.api.method_signature) = "name";
922  }
923
924  // Lists `PrivateConnection` resources in a given project and location.
925  rpc ListPrivateConnections(ListPrivateConnectionsRequest)
926      returns (ListPrivateConnectionsResponse) {
927    option (google.api.http) = {
928      get: "/v1/{parent=projects/*/locations/*}/privateConnections"
929    };
930    option (google.api.method_signature) = "parent";
931  }
932
933  // Modifies a `PrivateConnection` resource. Only `description` and
934  // `routing_mode` fields can be updated. Only fields specified in `updateMask`
935  // are applied.
936  rpc UpdatePrivateConnection(UpdatePrivateConnectionRequest)
937      returns (google.longrunning.Operation) {
938    option (google.api.http) = {
939      patch: "/v1/{private_connection.name=projects/*/locations/*/privateConnections/*}"
940      body: "private_connection"
941    };
942    option (google.api.method_signature) = "private_connection,update_mask";
943    option (google.longrunning.operation_info) = {
944      response_type: "PrivateConnection"
945      metadata_type: "OperationMetadata"
946    };
947  }
948
949  // Deletes a `PrivateConnection` resource. When a private connection is
950  // deleted for a VMware Engine network, the connected network becomes
951  // inaccessible to that VMware Engine network.
952  rpc DeletePrivateConnection(DeletePrivateConnectionRequest)
953      returns (google.longrunning.Operation) {
954    option (google.api.http) = {
955      delete: "/v1/{name=projects/*/locations/*/privateConnections/*}"
956    };
957    option (google.api.method_signature) = "name";
958    option (google.longrunning.operation_info) = {
959      response_type: "google.protobuf.Empty"
960      metadata_type: "OperationMetadata"
961    };
962  }
963
964  // Lists the private connection routes exchanged over a peering connection.
965  rpc ListPrivateConnectionPeeringRoutes(
966      ListPrivateConnectionPeeringRoutesRequest)
967      returns (ListPrivateConnectionPeeringRoutesResponse) {
968    option (google.api.http) = {
969      get: "/v1/{parent=projects/*/locations/*/privateConnections/*}/peeringRoutes"
970    };
971    option (google.api.method_signature) = "parent";
972  }
973
974  // Grants the bind permission to the customer provided principal(user /
975  // service account) to bind their DNS zone with the intranet VPC associated
976  // with the project. DnsBindPermission is a global resource and location can
977  // only be global.
978  rpc GrantDnsBindPermission(GrantDnsBindPermissionRequest)
979      returns (google.longrunning.Operation) {
980    option (google.api.http) = {
981      post: "/v1/{name=projects/*/locations/*/dnsBindPermission}:grant"
982      body: "*"
983    };
984    option (google.api.method_signature) = "name,principal";
985    option (google.longrunning.operation_info) = {
986      response_type: "DnsBindPermission"
987      metadata_type: "OperationMetadata"
988    };
989  }
990
991  // Gets all the principals having bind permission on the intranet VPC
992  // associated with the consumer project granted by the Grant API.
993  // DnsBindPermission is a global resource and location can only be global.
994  rpc GetDnsBindPermission(GetDnsBindPermissionRequest)
995      returns (DnsBindPermission) {
996    option (google.api.http) = {
997      get: "/v1/{name=projects/*/locations/*/dnsBindPermission}"
998    };
999    option (google.api.method_signature) = "name";
1000  }
1001
1002  // Revokes the bind permission from the customer provided principal(user /
1003  // service account) on the intranet VPC associated with the consumer project.
1004  // DnsBindPermission is a global resource and location can only be global.
1005  rpc RevokeDnsBindPermission(RevokeDnsBindPermissionRequest)
1006      returns (google.longrunning.Operation) {
1007    option (google.api.http) = {
1008      post: "/v1/{name=projects/*/locations/*/dnsBindPermission}:revoke"
1009      body: "*"
1010    };
1011    option (google.api.method_signature) = "name,principal";
1012    option (google.longrunning.operation_info) = {
1013      response_type: "DnsBindPermission"
1014      metadata_type: "OperationMetadata"
1015    };
1016  }
1017}
1018
1019// Request message for
1020// [VmwareEngine.ListPrivateClouds][google.cloud.vmwareengine.v1.VmwareEngine.ListPrivateClouds]
1021message ListPrivateCloudsRequest {
1022  // Required. The resource name of the private cloud to be queried for
1023  // clusters. Resource names are schemeless URIs that follow the conventions in
1024  // https://cloud.google.com/apis/design/resource_names.
1025  // For example:
1026  // `projects/my-project/locations/us-central1-a`
1027  string parent = 1 [
1028    (google.api.field_behavior) = REQUIRED,
1029    (google.api.resource_reference) = {
1030      type: "locations.googleapis.com/Location"
1031    }
1032  ];
1033
1034  // The maximum number of private clouds to return in one page.
1035  // The service may return fewer than this value.
1036  // The maximum value is coerced to 1000.
1037  // The default value of this field is 500.
1038  int32 page_size = 2;
1039
1040  // A page token, received from a previous `ListPrivateClouds` call.
1041  // Provide this to retrieve the subsequent page.
1042  //
1043  // When paginating, all other parameters provided to `ListPrivateClouds` must
1044  // match the call that provided the page token.
1045  string page_token = 3;
1046
1047  // A filter expression that matches resources returned in the response.
1048  // The expression must specify the field name, a comparison operator, and the
1049  // value that you want to use for filtering. The value must be a string, a
1050  // number, or a boolean. The comparison operator must be `=`, `!=`, `>`, or
1051  // `<`.
1052  //
1053  // For example, if you are filtering a list of private clouds, you can exclude
1054  // the ones named `example-pc` by specifying `name != "example-pc"`.
1055  //
1056  // You can also filter nested fields. For example, you could specify
1057  // `networkConfig.managementCidr = "192.168.0.0/24"` to include private clouds
1058  // only if they have a matching address in their network configuration.
1059  //
1060  // To filter on multiple expressions, provide each separate expression within
1061  // parentheses. For example:
1062  // ```
1063  // (name = "example-pc")
1064  // (createTime > "2021-04-12T08:15:10.40Z")
1065  // ```
1066  //
1067  // By default, each expression is an `AND` expression. However, you can
1068  // include `AND` and `OR` expressions explicitly. For example:
1069  // ```
1070  // (name = "private-cloud-1") AND
1071  // (createTime > "2021-04-12T08:15:10.40Z") OR
1072  // (name = "private-cloud-2")
1073  // ```
1074  string filter = 4;
1075
1076  // Sorts list results by a certain order. By default, returned results are
1077  // ordered by `name` in ascending order. You can also sort results in
1078  // descending order based on the `name` value using `orderBy="name desc"`.
1079  // Currently, only ordering by `name` is supported.
1080  string order_by = 5;
1081}
1082
1083// Response message for
1084// [VmwareEngine.ListPrivateClouds][google.cloud.vmwareengine.v1.VmwareEngine.ListPrivateClouds]
1085message ListPrivateCloudsResponse {
1086  // A list of private clouds.
1087  repeated PrivateCloud private_clouds = 1;
1088
1089  // A token, which can be sent as `page_token` to retrieve the next page.
1090  // If this field is omitted, there are no subsequent pages.
1091  string next_page_token = 2;
1092
1093  // Locations that could not be reached when making an aggregated query using
1094  // wildcards.
1095  repeated string unreachable = 3;
1096}
1097
1098// Request message for
1099// [VmwareEngine.GetPrivateCloud][google.cloud.vmwareengine.v1.VmwareEngine.GetPrivateCloud]
1100message GetPrivateCloudRequest {
1101  // Required. The resource name of the private cloud to retrieve.
1102  // Resource names are schemeless URIs that follow the conventions in
1103  // https://cloud.google.com/apis/design/resource_names.
1104  // For example:
1105  // `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`
1106  string name = 1 [
1107    (google.api.field_behavior) = REQUIRED,
1108    (google.api.resource_reference) = {
1109      type: "vmwareengine.googleapis.com/PrivateCloud"
1110    }
1111  ];
1112}
1113
1114// Request message for
1115// [VmwareEngine.CreatePrivateCloud][google.cloud.vmwareengine.v1.VmwareEngine.CreatePrivateCloud]
1116message CreatePrivateCloudRequest {
1117  // Required. The resource name of the location to create the new
1118  // private cloud in. Resource names are schemeless URIs that follow the
1119  // conventions in https://cloud.google.com/apis/design/resource_names.
1120  // For example:
1121  // `projects/my-project/locations/us-central1-a`
1122  string parent = 1 [
1123    (google.api.field_behavior) = REQUIRED,
1124    (google.api.resource_reference) = {
1125      type: "locations.googleapis.com/Location"
1126    }
1127  ];
1128
1129  // Required. The user-provided identifier of the private cloud to be created.
1130  // This identifier must be unique among each `PrivateCloud` within the parent
1131  // and becomes the final token in the name URI.
1132  // The identifier must meet the following requirements:
1133  //
1134  // * Only contains 1-63 alphanumeric characters and hyphens
1135  // * Begins with an alphabetical character
1136  // * Ends with a non-hyphen character
1137  // * Not formatted as a UUID
1138  // * Complies with [RFC 1034](https://datatracker.ietf.org/doc/html/rfc1034)
1139  // (section 3.5)
1140  string private_cloud_id = 2 [(google.api.field_behavior) = REQUIRED];
1141
1142  // Required. The initial description of the new private cloud.
1143  PrivateCloud private_cloud = 3 [(google.api.field_behavior) = REQUIRED];
1144
1145  // Optional. The request ID must be a valid UUID with the exception that zero
1146  // UUID is not supported (00000000-0000-0000-0000-000000000000).
1147  string request_id = 4 [(google.api.field_behavior) = OPTIONAL];
1148
1149  // Optional. True if you want the request to be validated and not executed;
1150  // false otherwise.
1151  bool validate_only = 5 [(google.api.field_behavior) = OPTIONAL];
1152}
1153
1154// Request message for
1155// [VmwareEngine.UpdatePrivateCloud][google.cloud.vmwareengine.v1.VmwareEngine.UpdatePrivateCloud]
1156message UpdatePrivateCloudRequest {
1157  // Required. Private cloud description.
1158  PrivateCloud private_cloud = 1 [(google.api.field_behavior) = REQUIRED];
1159
1160  // Required. Field mask is used to specify the fields to be overwritten in the
1161  // `PrivateCloud` resource by the update. The fields specified in `updateMask`
1162  // are relative to the resource, not the full request. A field will be
1163  // overwritten if it is in the mask. If the user does not provide a mask then
1164  // all fields will be overwritten.
1165  google.protobuf.FieldMask update_mask = 2
1166      [(google.api.field_behavior) = REQUIRED];
1167
1168  // Optional. The request ID must be a valid UUID with the exception that zero
1169  // UUID is not supported (00000000-0000-0000-0000-000000000000).
1170  string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
1171}
1172
1173// Request message for
1174// [VmwareEngine.DeletePrivateCloud][google.cloud.vmwareengine.v1.VmwareEngine.DeletePrivateCloud]
1175message DeletePrivateCloudRequest {
1176  // Required. The resource name of the private cloud to delete.
1177  // Resource names are schemeless URIs that follow the conventions in
1178  // https://cloud.google.com/apis/design/resource_names.
1179  // For example:
1180  // `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`
1181  string name = 1 [
1182    (google.api.field_behavior) = REQUIRED,
1183    (google.api.resource_reference) = {
1184      type: "vmwareengine.googleapis.com/PrivateCloud"
1185    }
1186  ];
1187
1188  // Optional. The request ID must be a valid UUID with the exception that zero
1189  // UUID is not supported (00000000-0000-0000-0000-000000000000).
1190  string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
1191
1192  // Optional. If set to true, cascade delete is enabled and all children of
1193  // this private cloud resource are also deleted. When this flag is set to
1194  // false, the private cloud will not be deleted if there are any children
1195  // other than the management cluster. The management cluster is always
1196  // deleted.
1197  bool force = 3 [(google.api.field_behavior) = OPTIONAL];
1198
1199  // Optional. Time delay of the deletion specified in hours. The default value
1200  // is `3`. Specifying a non-zero value for this field changes the value of
1201  // `PrivateCloud.state` to `DELETED` and sets `expire_time` to the planned
1202  // deletion time. Deletion can be cancelled before `expire_time` elapses using
1203  // [VmwareEngine.UndeletePrivateCloud][google.cloud.vmwareengine.v1.VmwareEngine.UndeletePrivateCloud].
1204  // Specifying a value of `0` for this field instead begins the deletion
1205  // process and ceases billing immediately. During the final deletion process,
1206  // the value of `PrivateCloud.state` becomes `PURGING`.
1207  optional int32 delay_hours = 4 [(google.api.field_behavior) = OPTIONAL];
1208}
1209
1210// Request message for
1211// [VmwareEngine.UndeletePrivateCloud][google.cloud.vmwareengine.v1.VmwareEngine.UndeletePrivateCloud]
1212message UndeletePrivateCloudRequest {
1213  // Required. The resource name of the private cloud scheduled for deletion.
1214  // Resource names are schemeless URIs that follow the conventions in
1215  // https://cloud.google.com/apis/design/resource_names.
1216  // For example:
1217  // `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`
1218  string name = 1 [
1219    (google.api.field_behavior) = REQUIRED,
1220    (google.api.resource_reference) = {
1221      type: "vmwareengine.googleapis.com/PrivateCloud"
1222    }
1223  ];
1224
1225  // Optional. The request ID must be a valid UUID with the exception that zero
1226  // UUID is not supported (00000000-0000-0000-0000-000000000000).
1227  string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
1228}
1229
1230// Request message for
1231// [VmwareEngine.ListClusters][google.cloud.vmwareengine.v1.VmwareEngine.ListClusters]
1232message ListClustersRequest {
1233  // Required. The resource name of the private cloud to query for clusters.
1234  // Resource names are schemeless URIs that follow the conventions in
1235  // https://cloud.google.com/apis/design/resource_names.
1236  // For example:
1237  // `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`
1238  string parent = 1 [
1239    (google.api.field_behavior) = REQUIRED,
1240    (google.api.resource_reference) = {
1241      type: "vmwareengine.googleapis.com/PrivateCloud"
1242    }
1243  ];
1244
1245  // The maximum number of clusters to return in one page.
1246  // The service may return fewer than this value.
1247  // The maximum value is coerced to 1000.
1248  // The default value of this field is 500.
1249  int32 page_size = 2;
1250
1251  // A page token, received from a previous `ListClusters` call.
1252  // Provide this to retrieve the subsequent page.
1253  //
1254  // When paginating, all other parameters provided to `ListClusters`
1255  // must match the call that provided the page token.
1256  string page_token = 3;
1257
1258  //
1259  // To filter on multiple expressions, provide each separate expression within
1260  // parentheses. For example:
1261  // ```
1262  // (name = "example-cluster")
1263  // (nodeCount = "3")
1264  // ```
1265  //
1266  // By default, each expression is an `AND` expression. However, you can
1267  // include `AND` and `OR` expressions explicitly. For example:
1268  // ```
1269  // (name = "example-cluster-1") AND
1270  // (createTime > "2021-04-12T08:15:10.40Z") OR
1271  // (name = "example-cluster-2")
1272  // ```
1273  string filter = 4;
1274
1275  // Sorts list results by a certain order. By default, returned results are
1276  // ordered by `name` in ascending order. You can also sort results in
1277  // descending order based on the `name` value using `orderBy="name desc"`.
1278  // Currently, only ordering by `name` is supported.
1279  string order_by = 5;
1280}
1281
1282// Response message for
1283// [VmwareEngine.ListClusters][google.cloud.vmwareengine.v1.VmwareEngine.ListClusters]
1284message ListClustersResponse {
1285  // A list of private cloud clusters.
1286  repeated Cluster clusters = 1;
1287
1288  // A token, which can be sent as `page_token` to retrieve the next page.
1289  // If this field is omitted, there are no subsequent pages.
1290  string next_page_token = 2;
1291
1292  // Locations that could not be reached when making an aggregated query using
1293  // wildcards.
1294  repeated string unreachable = 3;
1295}
1296
1297// Request message for
1298// [VmwareEngine.GetCluster][google.cloud.vmwareengine.v1.VmwareEngine.GetCluster]
1299message GetClusterRequest {
1300  // Required. The cluster resource name to retrieve.
1301  // Resource names are schemeless URIs that follow the conventions in
1302  // https://cloud.google.com/apis/design/resource_names.
1303  // For example:
1304  // `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/clusters/my-cluster`
1305  string name = 1 [
1306    (google.api.field_behavior) = REQUIRED,
1307    (google.api.resource_reference) = {
1308      type: "vmwareengine.googleapis.com/Cluster"
1309    }
1310  ];
1311}
1312
1313// Request message for
1314// [VmwareEngine.CreateCluster][google.cloud.vmwareengine.v1.VmwareEngine.CreateCluster]
1315message CreateClusterRequest {
1316  // Required. The resource name of the private cloud to create a new cluster
1317  // in. Resource names are schemeless URIs that follow the conventions in
1318  // https://cloud.google.com/apis/design/resource_names.
1319  // For example:
1320  // `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`
1321  string parent = 1 [
1322    (google.api.field_behavior) = REQUIRED,
1323    (google.api.resource_reference) = {
1324      type: "vmwareengine.googleapis.com/PrivateCloud"
1325    }
1326  ];
1327
1328  // Required. The user-provided identifier of the new `Cluster`.
1329  // This identifier must be unique among clusters within the parent and becomes
1330  // the final token in the name URI.
1331  // The identifier must meet the following requirements:
1332  //
1333  // * Only contains 1-63 alphanumeric characters and hyphens
1334  // * Begins with an alphabetical character
1335  // * Ends with a non-hyphen character
1336  // * Not formatted as a UUID
1337  // * Complies with [RFC 1034](https://datatracker.ietf.org/doc/html/rfc1034)
1338  // (section 3.5)
1339  string cluster_id = 2 [(google.api.field_behavior) = REQUIRED];
1340
1341  // Required. The initial description of the new cluster.
1342  Cluster cluster = 3 [(google.api.field_behavior) = REQUIRED];
1343
1344  // Optional. The request ID must be a valid UUID with the exception that zero
1345  // UUID is not supported (00000000-0000-0000-0000-000000000000).
1346  string request_id = 4 [(google.api.field_behavior) = OPTIONAL];
1347
1348  // Optional. True if you want the request to be validated and not executed;
1349  // false otherwise.
1350  bool validate_only = 5 [(google.api.field_behavior) = OPTIONAL];
1351}
1352
1353// Request message for
1354// [VmwareEngine.UpdateCluster][google.cloud.vmwareengine.v1.VmwareEngine.UpdateCluster]
1355message UpdateClusterRequest {
1356  // Required. Field mask is used to specify the fields to be overwritten in the
1357  // `Cluster` resource by the update. The fields specified in the `updateMask`
1358  // are relative to the resource, not the full request. A field will be
1359  // overwritten if it is in the mask. If the user does not provide a mask then
1360  // all fields will be overwritten.
1361  google.protobuf.FieldMask update_mask = 1
1362      [(google.api.field_behavior) = REQUIRED];
1363
1364  // Required. The description of the cluster.
1365  Cluster cluster = 2 [(google.api.field_behavior) = REQUIRED];
1366
1367  // Optional. The request ID must be a valid UUID with the exception that
1368  // zero UUID is not supported (00000000-0000-0000-0000-000000000000).
1369  string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
1370
1371  // Optional. True if you want the request to be validated and not executed;
1372  // false otherwise.
1373  bool validate_only = 4 [(google.api.field_behavior) = OPTIONAL];
1374}
1375
1376// Request message for
1377// [VmwareEngine.DeleteCluster][google.cloud.vmwareengine.v1.VmwareEngine.DeleteCluster]
1378message DeleteClusterRequest {
1379  // Required. The resource name of the cluster to delete.
1380  // Resource names are schemeless URIs that follow the conventions in
1381  // https://cloud.google.com/apis/design/resource_names.
1382  // For example:
1383  // `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/clusters/my-cluster`
1384  string name = 1 [
1385    (google.api.field_behavior) = REQUIRED,
1386    (google.api.resource_reference) = {
1387      type: "vmwareengine.googleapis.com/Cluster"
1388    }
1389  ];
1390
1391  // Optional. The request ID must be a valid UUID with the exception that zero
1392  // UUID is not supported (00000000-0000-0000-0000-000000000000).
1393  string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
1394}
1395
1396// Request message for
1397// [VmwareEngine.ListNodes][google.cloud.vmwareengine.v1.VmwareEngine.ListNodes]
1398message ListNodesRequest {
1399  // Required. The resource name of the cluster to be queried for nodes.
1400  // Resource names are schemeless URIs that follow the conventions in
1401  // https://cloud.google.com/apis/design/resource_names.
1402  // For example:
1403  // `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/clusters/my-cluster`
1404  string parent = 1 [
1405    (google.api.field_behavior) = REQUIRED,
1406    (google.api.resource_reference) = {
1407      type: "vmwareengine.googleapis.com/Cluster"
1408    }
1409  ];
1410
1411  // The maximum number of nodes to return in one page.
1412  // The service may return fewer than this value.
1413  // The maximum value is coerced to 1000.
1414  // The default value of this field is 500.
1415  int32 page_size = 2;
1416
1417  // A page token, received from a previous `ListNodes` call.
1418  // Provide this to retrieve the subsequent page.
1419  //
1420  // When paginating, all other parameters provided to
1421  // `ListNodes` must match the call that provided the page
1422  // token.
1423  string page_token = 3;
1424}
1425
1426// Response message for
1427// [VmwareEngine.ListNodes][google.cloud.vmwareengine.v1.VmwareEngine.ListNodes]
1428message ListNodesResponse {
1429  // The nodes.
1430  repeated Node nodes = 1;
1431
1432  // A token, which can be sent as `page_token` to retrieve the next page.
1433  // If this field is omitted, there are no subsequent pages.
1434  string next_page_token = 2;
1435}
1436
1437// Request message for
1438// [VmwareEngine.GetNode][google.cloud.vmwareengine.v1.VmwareEngine.GetNode]
1439message GetNodeRequest {
1440  // Required. The resource name of the node to retrieve.
1441  // For example:
1442  // `projects/{project}/locations/{location}/privateClouds/{private_cloud}/clusters/{cluster}/nodes/{node}`
1443  string name = 1 [
1444    (google.api.field_behavior) = REQUIRED,
1445    (google.api.resource_reference) = {
1446      type: "vmwareengine.googleapis.com/Node"
1447    }
1448  ];
1449}
1450
1451// Request message for
1452// [VmwareEngine.ListExternalAddresses][google.cloud.vmwareengine.v1.VmwareEngine.ListExternalAddresses]
1453message ListExternalAddressesRequest {
1454  // Required. The resource name of the private cloud to be queried for
1455  // external IP addresses.
1456  // Resource names are schemeless URIs that follow the conventions in
1457  // https://cloud.google.com/apis/design/resource_names.
1458  // For example:
1459  // `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`
1460  string parent = 1 [
1461    (google.api.field_behavior) = REQUIRED,
1462    (google.api.resource_reference) = {
1463      type: "vmwareengine.googleapis.com/PrivateCloud"
1464    }
1465  ];
1466
1467  // The maximum number of external IP addresses to return in one page.
1468  // The service may return fewer than this value.
1469  // The maximum value is coerced to 1000.
1470  // The default value of this field is 500.
1471  int32 page_size = 2;
1472
1473  // A page token, received from a previous `ListExternalAddresses` call.
1474  // Provide this to retrieve the subsequent page.
1475  //
1476  // When paginating, all other parameters provided to
1477  // `ListExternalAddresses` must match the call that provided the page token.
1478  string page_token = 3;
1479
1480  // A filter expression that matches resources returned in the response.
1481  // The expression must specify the field name, a comparison
1482  // operator, and the value that you want to use for filtering. The value
1483  // must be a string, a number, or a boolean. The comparison operator
1484  // must be `=`, `!=`, `>`, or `<`.
1485  //
1486  // For example, if you are filtering a list of IP addresses, you can
1487  // exclude the ones named `example-ip` by specifying
1488  // `name != "example-ip"`.
1489  //
1490  // To filter on multiple expressions, provide each separate expression within
1491  // parentheses. For example:
1492  // ```
1493  // (name = "example-ip")
1494  // (createTime > "2021-04-12T08:15:10.40Z")
1495  // ```
1496  //
1497  // By default, each expression is an `AND` expression. However, you
1498  // can include `AND` and `OR` expressions explicitly.
1499  // For example:
1500  // ```
1501  // (name = "example-ip-1") AND
1502  // (createTime > "2021-04-12T08:15:10.40Z") OR
1503  // (name = "example-ip-2")
1504  // ```
1505  string filter = 4;
1506
1507  // Sorts list results by a certain order. By default, returned results
1508  // are ordered by `name` in ascending order.
1509  // You can also sort results in descending order based on the `name` value
1510  // using `orderBy="name desc"`.
1511  // Currently, only ordering by `name` is supported.
1512  string order_by = 5;
1513}
1514
1515// Response message for
1516// [VmwareEngine.ListExternalAddresses][google.cloud.vmwareengine.v1.VmwareEngine.ListExternalAddresses]
1517message ListExternalAddressesResponse {
1518  // A list of external IP addresses.
1519  repeated ExternalAddress external_addresses = 1;
1520
1521  // A token, which can be sent as `page_token` to retrieve the next page.
1522  // If this field is omitted, there are no subsequent pages.
1523  string next_page_token = 2;
1524
1525  // Locations that could not be reached when making an aggregated query using
1526  // wildcards.
1527  repeated string unreachable = 3;
1528}
1529
1530// Request message for
1531// [VmwareEngine.FetchNetworkPolicyExternalAddresses][google.cloud.vmwareengine.v1.VmwareEngine.FetchNetworkPolicyExternalAddresses]
1532message FetchNetworkPolicyExternalAddressesRequest {
1533  // Required. The resource name of the network policy to query for assigned
1534  // external IP addresses. Resource names are schemeless URIs that follow the
1535  // conventions in https://cloud.google.com/apis/design/resource_names. For
1536  // example:
1537  // `projects/my-project/locations/us-central1/networkPolicies/my-policy`
1538  string network_policy = 1 [
1539    (google.api.field_behavior) = REQUIRED,
1540    (google.api.resource_reference) = {
1541      type: "vmwareengine.googleapis.com/NetworkPolicy"
1542    }
1543  ];
1544
1545  // The maximum number of external IP addresses to return in one page.
1546  // The service may return fewer than this value.
1547  // The maximum value is coerced to 1000.
1548  // The default value of this field is 500.
1549  int32 page_size = 2;
1550
1551  // A page token, received from a previous
1552  // `FetchNetworkPolicyExternalAddresses` call. Provide this to retrieve the
1553  // subsequent page.
1554  //
1555  // When paginating, all parameters provided to
1556  // `FetchNetworkPolicyExternalAddresses`, except for `page_size` and
1557  // `page_token`, must match the call that provided the page token.
1558  string page_token = 3;
1559}
1560
1561// Response message for
1562// [VmwareEngine.FetchNetworkPolicyExternalAddresses][google.cloud.vmwareengine.v1.VmwareEngine.FetchNetworkPolicyExternalAddresses]
1563message FetchNetworkPolicyExternalAddressesResponse {
1564  // A list of external IP addresses assigned to VMware workload VMs within the
1565  // scope of the given network policy.
1566  repeated ExternalAddress external_addresses = 1;
1567
1568  // A token, which can be sent as `page_token` to retrieve the next page.
1569  // If this field is omitted, there are no subsequent pages.
1570  string next_page_token = 2;
1571}
1572
1573// Request message for
1574// [VmwareEngine.GetExternalAddress][google.cloud.vmwareengine.v1.VmwareEngine.GetExternalAddress]
1575message GetExternalAddressRequest {
1576  // Required. The resource name of the external IP address to retrieve.
1577  // Resource names are schemeless URIs that follow the conventions in
1578  // https://cloud.google.com/apis/design/resource_names.
1579  // For example:
1580  // `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/externalAddresses/my-ip`
1581  string name = 1 [
1582    (google.api.field_behavior) = REQUIRED,
1583    (google.api.resource_reference) = {
1584      type: "vmwareengine.googleapis.com/ExternalAddress"
1585    }
1586  ];
1587}
1588
1589// Request message for
1590// [VmwareEngine.CreateExternalAddress][google.cloud.vmwareengine.v1.VmwareEngine.CreateExternalAddress]
1591message CreateExternalAddressRequest {
1592  // Required. The resource name of the private cloud
1593  // to create a new external IP address in.
1594  // Resource names are schemeless URIs that follow the conventions in
1595  // https://cloud.google.com/apis/design/resource_names.
1596  // For example:
1597  // `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`
1598  string parent = 1 [
1599    (google.api.field_behavior) = REQUIRED,
1600    (google.api.resource_reference) = {
1601      type: "vmwareengine.googleapis.com/PrivateCloud"
1602    }
1603  ];
1604
1605  // Required. The initial description of a new external IP address.
1606  ExternalAddress external_address = 2 [(google.api.field_behavior) = REQUIRED];
1607
1608  // Required. The user-provided identifier of the `ExternalAddress` to be
1609  // created. This identifier must be unique among `ExternalAddress` resources
1610  // within the parent and becomes the final token in the name URI. The
1611  // identifier must meet the following requirements:
1612  //
1613  // * Only contains 1-63 alphanumeric characters and hyphens
1614  // * Begins with an alphabetical character
1615  // * Ends with a non-hyphen character
1616  // * Not formatted as a UUID
1617  // * Complies with [RFC 1034](https://datatracker.ietf.org/doc/html/rfc1034)
1618  // (section 3.5)
1619  string external_address_id = 3 [(google.api.field_behavior) = REQUIRED];
1620
1621  // Optional. A request ID to identify requests. Specify a unique request ID
1622  // so that if you must retry your request, the server will know to ignore
1623  // the request if it has already been completed. The server guarantees that a
1624  // request doesn't result in creation of duplicate commitments for at least 60
1625  // minutes.
1626  //
1627  // For example, consider a situation where you make an initial request and the
1628  // request times out. If you make the request again with the same request ID,
1629  // the server can check if the original operation with the same request ID was
1630  // received, and if so, will ignore the second request. This prevents clients
1631  // from accidentally creating duplicate commitments.
1632  //
1633  // The request ID must be a valid UUID with the exception that zero UUID is
1634  // not supported (00000000-0000-0000-0000-000000000000).
1635  string request_id = 4 [(google.api.field_behavior) = OPTIONAL];
1636}
1637
1638// Request message for
1639// [VmwareEngine.UpdateExternalAddress][google.cloud.vmwareengine.v1.VmwareEngine.UpdateExternalAddress]
1640message UpdateExternalAddressRequest {
1641  // Required. Field mask is used to specify the fields to be overwritten in the
1642  // `ExternalAddress` resource by the update.
1643  // The fields specified in the `update_mask` are relative to the resource, not
1644  // the full request. A field will be overwritten if it is in the mask. If the
1645  // user does not provide a mask then all fields will be overwritten.
1646  google.protobuf.FieldMask update_mask = 1
1647      [(google.api.field_behavior) = REQUIRED];
1648
1649  // Required. External IP address description.
1650  ExternalAddress external_address = 2 [(google.api.field_behavior) = REQUIRED];
1651
1652  // Optional. A request ID to identify requests. Specify a unique request ID
1653  // so that if you must retry your request, the server will know to ignore
1654  // the request if it has already been completed. The server guarantees that a
1655  // request doesn't result in creation of duplicate commitments for at least 60
1656  // minutes.
1657  //
1658  // For example, consider a situation where you make an initial request and the
1659  // request times out. If you make the request again with the same request ID,
1660  // the server can check if the original operation with the same request ID was
1661  // received, and if so, will ignore the second request. This prevents clients
1662  // from accidentally creating duplicate commitments.
1663  //
1664  // The request ID must be a valid UUID with the exception that zero UUID is
1665  // not supported (00000000-0000-0000-0000-000000000000).
1666  string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
1667}
1668
1669// Request message for
1670// [VmwareEngine.DeleteExternalAddress][google.cloud.vmwareengine.v1.VmwareEngine.DeleteExternalAddress]
1671message DeleteExternalAddressRequest {
1672  // Required. The resource name of the external IP address to delete.
1673  // Resource names are schemeless URIs that follow the conventions in
1674  // https://cloud.google.com/apis/design/resource_names.
1675  // For example:
1676  // `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/externalAddresses/my-ip`
1677  string name = 1 [
1678    (google.api.field_behavior) = REQUIRED,
1679    (google.api.resource_reference) = {
1680      type: "vmwareengine.googleapis.com/ExternalAddress"
1681    }
1682  ];
1683
1684  // Optional. A request ID to identify requests. Specify a unique request ID
1685  // so that if you must retry your request, the server will know to ignore
1686  // the request if it has already been completed. The server guarantees that a
1687  // request doesn't result in creation of duplicate commitments for at least 60
1688  // minutes.
1689  //
1690  // For example, consider a situation where you make an initial request and the
1691  // request times out. If you make the request again with the same request
1692  // ID, the server can check if the original operation with the same request ID
1693  // was received, and if so, will ignore the second request. This prevents
1694  // clients from accidentally creating duplicate commitments.
1695  //
1696  // The request ID must be a valid UUID with the exception that zero UUID is
1697  // not supported (00000000-0000-0000-0000-000000000000).
1698  string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
1699}
1700
1701// Request message for
1702// [VmwareEngine.ListSubnets][google.cloud.vmwareengine.v1.VmwareEngine.ListSubnets]
1703message ListSubnetsRequest {
1704  // Required. The resource name of the private cloud to be queried for
1705  // subnets.
1706  // Resource names are schemeless URIs that follow the conventions in
1707  // https://cloud.google.com/apis/design/resource_names.
1708  // For example:
1709  // `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`
1710  string parent = 1 [
1711    (google.api.field_behavior) = REQUIRED,
1712    (google.api.resource_reference) = {
1713      type: "vmwareengine.googleapis.com/PrivateCloud"
1714    }
1715  ];
1716
1717  // The maximum number of subnets to return in one page.
1718  // The service may return fewer than this value.
1719  // The maximum value is coerced to 1000.
1720  // The default value of this field is 500.
1721  int32 page_size = 2;
1722
1723  // A page token, received from a previous `ListSubnetsRequest` call.
1724  // Provide this to retrieve the subsequent page.
1725  //
1726  // When paginating, all other parameters provided to
1727  // `ListSubnetsRequest` must match the call that provided the page token.
1728  string page_token = 3;
1729}
1730
1731// Response message for
1732// [VmwareEngine.ListSubnets][google.cloud.vmwareengine.v1.VmwareEngine.ListSubnets]
1733message ListSubnetsResponse {
1734  // A list of subnets.
1735  repeated Subnet subnets = 1;
1736
1737  // A token, which can be sent as `page_token` to retrieve the next page.
1738  // If this field is omitted, there are no subsequent pages.
1739  string next_page_token = 2;
1740
1741  // Locations that could not be reached when making an aggregated query using
1742  // wildcards.
1743  repeated string unreachable = 3;
1744}
1745
1746// Request message for
1747// [VmwareEngine.GetSubnet][google.cloud.vmwareengine.v1.VmwareEngine.GetSubnet]
1748message GetSubnetRequest {
1749  // Required. The resource name of the subnet to retrieve.
1750  // Resource names are schemeless URIs that follow the conventions in
1751  // https://cloud.google.com/apis/design/resource_names.
1752  // For example:
1753  // `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/subnets/my-subnet`
1754  string name = 1 [
1755    (google.api.field_behavior) = REQUIRED,
1756    (google.api.resource_reference) = {
1757      type: "vmwareengine.googleapis.com/Subnet"
1758    }
1759  ];
1760}
1761
1762// Request message for
1763// [VmwareEngine.UpdateSubnet][google.cloud.vmwareengine.v1.VmwareEngine.UpdateSubnet]
1764message UpdateSubnetRequest {
1765  // Required. Field mask is used to specify the fields to be overwritten in the
1766  // `Subnet` resource by the update.
1767  // The fields specified in the `update_mask` are relative to the resource, not
1768  // the full request. A field will be overwritten if it is in the mask. If the
1769  // user does not provide a mask then all fields will be overwritten.
1770  google.protobuf.FieldMask update_mask = 1
1771      [(google.api.field_behavior) = REQUIRED];
1772
1773  // Required. Subnet description.
1774  Subnet subnet = 2 [(google.api.field_behavior) = REQUIRED];
1775}
1776
1777// Request message for
1778// [VmwareEngine.ListExternalAccessRules][google.cloud.vmwareengine.v1.VmwareEngine.ListExternalAccessRules]
1779message ListExternalAccessRulesRequest {
1780  // Required. The resource name of the network policy to query for external
1781  // access firewall rules. Resource names are schemeless URIs that follow the
1782  // conventions in https://cloud.google.com/apis/design/resource_names. For
1783  // example:
1784  // `projects/my-project/locations/us-central1/networkPolicies/my-policy`
1785  string parent = 1 [
1786    (google.api.field_behavior) = REQUIRED,
1787    (google.api.resource_reference) = {
1788      type: "vmwareengine.googleapis.com/NetworkPolicy"
1789    }
1790  ];
1791
1792  // The maximum number of external access rules to return in one page.
1793  // The service may return fewer than this value.
1794  // The maximum value is coerced to 1000.
1795  // The default value of this field is 500.
1796  int32 page_size = 2;
1797
1798  // A page token, received from a previous `ListExternalAccessRulesRequest`
1799  // call. Provide this to retrieve the subsequent page.
1800  //
1801  // When paginating, all other parameters provided to
1802  // `ListExternalAccessRulesRequest` must match the call that provided the page
1803  // token.
1804  string page_token = 3;
1805
1806  // A filter expression that matches resources returned in the response.
1807  // The expression must specify the field name, a comparison
1808  // operator, and the value that you want to use for filtering. The value
1809  // must be a string, a number, or a boolean. The comparison operator
1810  // must be `=`, `!=`, `>`, or `<`.
1811  //
1812  // For example, if you are filtering a list of external access rules, you can
1813  // exclude the ones named `example-rule` by specifying
1814  // `name != "example-rule"`.
1815  //
1816  // To filter on multiple expressions, provide each separate expression within
1817  // parentheses. For example:
1818  // ```
1819  // (name = "example-rule")
1820  // (createTime > "2021-04-12T08:15:10.40Z")
1821  // ```
1822  //
1823  // By default, each expression is an `AND` expression. However, you
1824  // can include `AND` and `OR` expressions explicitly.
1825  // For example:
1826  // ```
1827  // (name = "example-rule-1") AND
1828  // (createTime > "2021-04-12T08:15:10.40Z") OR
1829  // (name = "example-rule-2")
1830  // ```
1831  string filter = 4;
1832
1833  // Sorts list results by a certain order. By default, returned results
1834  // are ordered by `name` in ascending order.
1835  // You can also sort results in descending order based on the `name` value
1836  // using `orderBy="name desc"`.
1837  // Currently, only ordering by `name` is supported.
1838  string order_by = 5;
1839}
1840
1841// Response message for
1842// [VmwareEngine.ListExternalAccessRules][google.cloud.vmwareengine.v1.VmwareEngine.ListExternalAccessRules]
1843message ListExternalAccessRulesResponse {
1844  // A list of external access firewall rules.
1845  repeated ExternalAccessRule external_access_rules = 1;
1846
1847  // A token, which can be sent as `page_token` to retrieve the next page.
1848  // If this field is omitted, there are no subsequent pages.
1849  string next_page_token = 2;
1850
1851  // Locations that could not be reached when making an aggregated query using
1852  // wildcards.
1853  repeated string unreachable = 3;
1854}
1855
1856// Request message for
1857// [VmwareEngine.GetExternalAccessRule][google.cloud.vmwareengine.v1.VmwareEngine.GetExternalAccessRule]
1858message GetExternalAccessRuleRequest {
1859  // Required. The resource name of the external access firewall rule to
1860  // retrieve. Resource names are schemeless URIs that follow the conventions in
1861  // https://cloud.google.com/apis/design/resource_names.
1862  // For example:
1863  // `projects/my-project/locations/us-central1/networkPolicies/my-policy/externalAccessRules/my-rule`
1864  string name = 1 [
1865    (google.api.field_behavior) = REQUIRED,
1866    (google.api.resource_reference) = {
1867      type: "vmwareengine.googleapis.com/ExternalAccessRule"
1868    }
1869  ];
1870}
1871
1872// Request message for
1873// [VmwareEngine.CreateExternalAccessRule][google.cloud.vmwareengine.v1.VmwareEngine.CreateExternalAccessRule]
1874message CreateExternalAccessRuleRequest {
1875  // Required. The resource name of the network policy
1876  // to create a new external access firewall rule in.
1877  // Resource names are schemeless URIs that follow the conventions in
1878  // https://cloud.google.com/apis/design/resource_names.
1879  // For example:
1880  // `projects/my-project/locations/us-central1/networkPolicies/my-policy`
1881  string parent = 1 [
1882    (google.api.field_behavior) = REQUIRED,
1883    (google.api.resource_reference) = {
1884      type: "vmwareengine.googleapis.com/NetworkPolicy"
1885    }
1886  ];
1887
1888  // Required. The initial description of a new external access rule.
1889  ExternalAccessRule external_access_rule = 2
1890      [(google.api.field_behavior) = REQUIRED];
1891
1892  // Required. The user-provided identifier of the `ExternalAccessRule` to be
1893  // created. This identifier must be unique among `ExternalAccessRule`
1894  // resources within the parent and becomes the final token in the name URI.
1895  // The identifier must meet the following requirements:
1896  //
1897  // * Only contains 1-63 alphanumeric characters and hyphens
1898  // * Begins with an alphabetical character
1899  // * Ends with a non-hyphen character
1900  // * Not formatted as a UUID
1901  // * Complies with [RFC 1034](https://datatracker.ietf.org/doc/html/rfc1034)
1902  // (section 3.5)
1903  string external_access_rule_id = 3 [(google.api.field_behavior) = REQUIRED];
1904
1905  // A request ID to identify requests. Specify a unique request ID
1906  // so that if you must retry your request, the server will know to ignore
1907  // the request if it has already been completed. The server guarantees that a
1908  // request doesn't result in creation of duplicate commitments for at least 60
1909  // minutes.
1910  //
1911  // For example, consider a situation where you make an initial request and the
1912  // request times out. If you make the request again with the same request ID,
1913  // the server can check if the original operation with the same request ID was
1914  // received, and if so, will ignore the second request. This prevents clients
1915  // from accidentally creating duplicate commitments.
1916  //
1917  // The request ID must be a valid UUID with the exception that zero UUID is
1918  // not supported (00000000-0000-0000-0000-000000000000).
1919  string request_id = 4;
1920}
1921
1922// Request message for
1923// [VmwareEngine.UpdateExternalAccessRule][google.cloud.vmwareengine.v1.VmwareEngine.UpdateExternalAccessRule]
1924message UpdateExternalAccessRuleRequest {
1925  // Required. Field mask is used to specify the fields to be overwritten in the
1926  // `ExternalAccessRule` resource by the update.
1927  // The fields specified in the `update_mask` are relative to the resource, not
1928  // the full request. A field will be overwritten if it is in the mask. If the
1929  // user does not provide a mask then all fields will be overwritten.
1930  google.protobuf.FieldMask update_mask = 1
1931      [(google.api.field_behavior) = REQUIRED];
1932
1933  // Required. Description of the external access rule.
1934  ExternalAccessRule external_access_rule = 2
1935      [(google.api.field_behavior) = REQUIRED];
1936
1937  // Optional. A request ID to identify requests. Specify a unique request ID
1938  // so that if you must retry your request, the server will know to ignore
1939  // the request if it has already been completed. The server guarantees that a
1940  // request doesn't result in creation of duplicate commitments for at least 60
1941  // minutes.
1942  //
1943  // For example, consider a situation where you make an initial request and the
1944  // request times out. If you make the request again with the same request ID,
1945  // the server can check if the original operation with the same request ID was
1946  // received, and if so, will ignore the second request. This prevents clients
1947  // from accidentally creating duplicate commitments.
1948  //
1949  // The request ID must be a valid UUID with the exception that zero UUID is
1950  // not supported (00000000-0000-0000-0000-000000000000).
1951  string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
1952}
1953
1954// Request message for
1955// [VmwareEngine.DeleteExternalAccessRule][google.cloud.vmwareengine.v1.VmwareEngine.DeleteExternalAccessRule]
1956message DeleteExternalAccessRuleRequest {
1957  // Required. The resource name of the external access firewall rule to delete.
1958  // Resource names are schemeless URIs that follow the conventions in
1959  // https://cloud.google.com/apis/design/resource_names.
1960  // For example:
1961  // `projects/my-project/locations/us-central1/networkPolicies/my-policy/externalAccessRules/my-rule`
1962  string name = 1 [
1963    (google.api.field_behavior) = REQUIRED,
1964    (google.api.resource_reference) = {
1965      type: "vmwareengine.googleapis.com/ExternalAccessRule"
1966    }
1967  ];
1968
1969  // Optional. A request ID to identify requests. Specify a unique request ID
1970  // so that if you must retry your request, the server will know to ignore
1971  // the request if it has already been completed. The server guarantees that a
1972  // request doesn't result in creation of duplicate commitments for at least 60
1973  // minutes.
1974  //
1975  // For example, consider a situation where you make an initial request and the
1976  // request times out. If you make the request again with the same request
1977  // ID, the server can check if the original operation with the same request ID
1978  // was received, and if so, will ignore the second request. This prevents
1979  // clients from accidentally creating duplicate commitments.
1980  //
1981  // The request ID must be a valid UUID with the exception that zero UUID is
1982  // not supported (00000000-0000-0000-0000-000000000000).
1983  string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
1984}
1985
1986// Request message for
1987// [VmwareEngine.ListLoggingServers][google.cloud.vmwareengine.v1.VmwareEngine.ListLoggingServers]
1988message ListLoggingServersRequest {
1989  // Required. The resource name of the private cloud to be queried for
1990  // logging servers.
1991  // Resource names are schemeless URIs that follow the conventions in
1992  // https://cloud.google.com/apis/design/resource_names.
1993  // For example:
1994  // `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`
1995  string parent = 1 [
1996    (google.api.field_behavior) = REQUIRED,
1997    (google.api.resource_reference) = {
1998      type: "vmwareengine.googleapis.com/PrivateCloud"
1999    }
2000  ];
2001
2002  // The maximum number of logging servers to return in one page.
2003  // The service may return fewer than this value.
2004  // The maximum value is coerced to 1000.
2005  // The default value of this field is 500.
2006  int32 page_size = 2;
2007
2008  // A page token, received from a previous `ListLoggingServersRequest` call.
2009  // Provide this to retrieve the subsequent page.
2010  //
2011  // When paginating, all other parameters provided to
2012  // `ListLoggingServersRequest` must match the call that provided the page
2013  // token.
2014  string page_token = 3;
2015
2016  // A filter expression that matches resources returned in the response.
2017  // The expression must specify the field name, a comparison
2018  // operator, and the value that you want to use for filtering. The value
2019  // must be a string, a number, or a boolean. The comparison operator
2020  // must be `=`, `!=`, `>`, or `<`.
2021  //
2022  // For example, if you are filtering a list of logging servers, you can
2023  // exclude the ones named `example-server` by specifying
2024  // `name != "example-server"`.
2025  //
2026  // To filter on multiple expressions, provide each separate expression within
2027  // parentheses. For example:
2028  // ```
2029  // (name = "example-server")
2030  // (createTime > "2021-04-12T08:15:10.40Z")
2031  // ```
2032  //
2033  // By default, each expression is an `AND` expression. However, you
2034  // can include `AND` and `OR` expressions explicitly.
2035  // For example:
2036  // ```
2037  // (name = "example-server-1") AND
2038  // (createTime > "2021-04-12T08:15:10.40Z") OR
2039  // (name = "example-server-2")
2040  // ```
2041  string filter = 4;
2042
2043  // Sorts list results by a certain order. By default, returned results
2044  // are ordered by `name` in ascending order.
2045  // You can also sort results in descending order based on the `name` value
2046  // using `orderBy="name desc"`.
2047  // Currently, only ordering by `name` is supported.
2048  string order_by = 5;
2049}
2050
2051// Response message for
2052// [VmwareEngine.ListLoggingServers][google.cloud.vmwareengine.v1.VmwareEngine.ListLoggingServers]
2053message ListLoggingServersResponse {
2054  // A list of Logging Servers.
2055  repeated LoggingServer logging_servers = 1;
2056
2057  // A token, which can be send as `page_token` to retrieve the next page.
2058  // If this field is omitted, there are no subsequent pages.
2059  string next_page_token = 2;
2060
2061  // Locations that could not be reached when making an aggregated query using
2062  // wildcards.
2063  repeated string unreachable = 3;
2064}
2065
2066// Request message for
2067// [VmwareEngine.GetLoggingServer][google.cloud.vmwareengine.v1.VmwareEngine.GetLoggingServer]
2068message GetLoggingServerRequest {
2069  // Required. The resource name of the Logging Server to retrieve.
2070  // Resource names are schemeless URIs that follow the conventions in
2071  // https://cloud.google.com/apis/design/resource_names.
2072  // For example:
2073  // `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/loggingServers/my-logging-server`
2074  string name = 1 [
2075    (google.api.field_behavior) = REQUIRED,
2076    (google.api.resource_reference) = {
2077      type: "vmwareengine.googleapis.com/LoggingServer"
2078    }
2079  ];
2080}
2081
2082// Request message for
2083// [VmwareEngine.CreateLoggingServer][google.cloud.vmwareengine.v1.VmwareEngine.CreateLoggingServer]
2084message CreateLoggingServerRequest {
2085  // Required. The resource name of the private cloud
2086  // to create a new Logging Server in.
2087  // Resource names are schemeless URIs that follow the conventions in
2088  // https://cloud.google.com/apis/design/resource_names.
2089  // For example:
2090  // `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`
2091  string parent = 1 [
2092    (google.api.field_behavior) = REQUIRED,
2093    (google.api.resource_reference) = {
2094      type: "vmwareengine.googleapis.com/PrivateCloud"
2095    }
2096  ];
2097
2098  // Required. The initial description of a new logging server.
2099  LoggingServer logging_server = 2 [(google.api.field_behavior) = REQUIRED];
2100
2101  // Required. The user-provided identifier of the `LoggingServer` to be
2102  // created. This identifier must be unique among `LoggingServer` resources
2103  // within the parent and becomes the final token in the name URI.
2104  // The identifier must meet the following requirements:
2105  //
2106  // * Only contains 1-63 alphanumeric characters and hyphens
2107  // * Begins with an alphabetical character
2108  // * Ends with a non-hyphen character
2109  // * Not formatted as a UUID
2110  // * Complies with [RFC 1034](https://datatracker.ietf.org/doc/html/rfc1034)
2111  // (section 3.5)
2112  string logging_server_id = 3 [(google.api.field_behavior) = REQUIRED];
2113
2114  // Optional. A request ID to identify requests. Specify a unique request ID
2115  // so that if you must retry your request, the server will know to ignore
2116  // the request if it has already been completed. The server guarantees that a
2117  // request doesn't result in creation of duplicate commitments for at least 60
2118  // minutes.
2119  //
2120  // For example, consider a situation where you make an initial request and the
2121  // request times out. If you make the request again with the same request ID,
2122  // the server can check if original operation with the same request ID was
2123  // received, and if so, will ignore the second request. This prevents clients
2124  // from accidentally creating duplicate commitments.
2125  //
2126  // The request ID must be a valid UUID with the exception that zero UUID is
2127  // not supported (00000000-0000-0000-0000-000000000000).
2128  string request_id = 4 [(google.api.field_behavior) = OPTIONAL];
2129}
2130
2131// Request message for
2132// [VmwareEngine.UpdateLoggingServer][google.cloud.vmwareengine.v1.VmwareEngine.UpdateLoggingServer]
2133message UpdateLoggingServerRequest {
2134  // Required. Field mask is used to specify the fields to be overwritten in the
2135  // `LoggingServer` resource by the update.
2136  // The fields specified in the `update_mask` are relative to the resource, not
2137  // the full request. A field will be overwritten if it is in the mask. If the
2138  // user does not provide a mask then all fields will be overwritten.
2139  google.protobuf.FieldMask update_mask = 1
2140      [(google.api.field_behavior) = REQUIRED];
2141
2142  // Required. Logging server description.
2143  LoggingServer logging_server = 2 [(google.api.field_behavior) = REQUIRED];
2144
2145  // Optional. A request ID to identify requests. Specify a unique request ID
2146  // so that if you must retry your request, the server will know to ignore
2147  // the request if it has already been completed. The server guarantees that a
2148  // request doesn't result in creation of duplicate commitments for at least 60
2149  // minutes.
2150  //
2151  // For example, consider a situation where you make an initial request and the
2152  // request times out. If you make the request again with the same request ID,
2153  // the server can check if original operation with the same request ID was
2154  // received, and if so, will ignore the second request. This prevents clients
2155  // from accidentally creating duplicate commitments.
2156  //
2157  // The request ID must be a valid UUID with the exception that zero UUID is
2158  // not supported (00000000-0000-0000-0000-000000000000).
2159  string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
2160}
2161
2162// Request message for
2163// [VmwareEngine.DeleteLoggingServer][google.cloud.vmwareengine.v1.VmwareEngine.DeleteLoggingServer]
2164message DeleteLoggingServerRequest {
2165  // Required. The resource name of the logging server to delete.
2166  // Resource names are schemeless URIs that follow the conventions in
2167  // https://cloud.google.com/apis/design/resource_names.
2168  // For example:
2169  // `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/loggingServers/my-logging-server`
2170  string name = 1 [
2171    (google.api.field_behavior) = REQUIRED,
2172    (google.api.resource_reference) = {
2173      type: "vmwareengine.googleapis.com/LoggingServer"
2174    }
2175  ];
2176
2177  // Optional. A request ID to identify requests. Specify a unique request ID
2178  // so that if you must retry your request, the server will know to ignore
2179  // the request if it has already been completed. The server guarantees that a
2180  // request doesn't result in creation of duplicate commitments for at least 60
2181  // minutes.
2182  //
2183  // For example, consider a situation where you make an initial request and the
2184  // request times out. If you make the request again with the same request
2185  // ID, the server can check if original operation with the same request ID
2186  // was received, and if so, will ignore the second request. This prevents
2187  // clients from accidentally creating duplicate commitments.
2188  //
2189  // The request ID must be a valid UUID with the exception that zero UUID is
2190  // not supported (00000000-0000-0000-0000-000000000000).
2191  string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
2192}
2193
2194// Represents the metadata of the long-running operation.
2195message OperationMetadata {
2196  // Output only. The time the operation was created.
2197  google.protobuf.Timestamp create_time = 1
2198      [(google.api.field_behavior) = OUTPUT_ONLY];
2199
2200  // Output only. The time the operation finished running.
2201  google.protobuf.Timestamp end_time = 2
2202      [(google.api.field_behavior) = OUTPUT_ONLY];
2203
2204  // Output only. Server-defined resource path for the target of the operation.
2205  string target = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
2206
2207  // Output only. Name of the verb executed by the operation.
2208  string verb = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
2209
2210  // Output only. Human-readable status of the operation, if any.
2211  string status_message = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
2212
2213  // Output only. True if the user has requested cancellation
2214  // of the operation; false otherwise.
2215  // Operations that have successfully been cancelled
2216  // have [Operation.error][] value with a
2217  // [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to
2218  // `Code.CANCELLED`.
2219  bool requested_cancellation = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
2220
2221  // Output only. API version used to start the operation.
2222  string api_version = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
2223}
2224
2225// Request message for
2226// [VmwareEngine.ListNodeTypes][google.cloud.vmwareengine.v1.VmwareEngine.ListNodeTypes]
2227message ListNodeTypesRequest {
2228  // Required. The resource name of the location to be queried for node types.
2229  // Resource names are schemeless URIs that follow the conventions in
2230  // https://cloud.google.com/apis/design/resource_names.
2231  // For example:
2232  // `projects/my-project/locations/us-central1-a`
2233  string parent = 1 [
2234    (google.api.field_behavior) = REQUIRED,
2235    (google.api.resource_reference) = {
2236      type: "locations.googleapis.com/Location"
2237    }
2238  ];
2239
2240  // The maximum number of node types to return in one page.
2241  // The service may return fewer than this value.
2242  // The maximum value is coerced to 1000.
2243  // The default value of this field is 500.
2244  int32 page_size = 2;
2245
2246  // A page token, received from a previous `ListNodeTypes` call.
2247  // Provide this to retrieve the subsequent page.
2248  //
2249  // When paginating, all other parameters provided to
2250  // `ListNodeTypes` must match the call that provided the page token.
2251  string page_token = 3;
2252
2253  // A filter expression that matches resources returned in the response.
2254  // The expression must specify the field name, a comparison
2255  // operator, and the value that you want to use for filtering. The value
2256  // must be a string, a number, or a boolean. The comparison operator
2257  // must be `=`, `!=`, `>`, or `<`.
2258  //
2259  // For example, if you are filtering a list of node types, you can
2260  // exclude the ones named `standard-72` by specifying
2261  // `name != "standard-72"`.
2262  //
2263  // To filter on multiple expressions, provide each separate expression within
2264  // parentheses. For example:
2265  // ```
2266  // (name = "standard-72")
2267  // (virtual_cpu_count > 2)
2268  // ```
2269  //
2270  // By default, each expression is an `AND` expression. However, you
2271  // can include `AND` and `OR` expressions explicitly.
2272  // For example:
2273  // ```
2274  // (name = "standard-96") AND
2275  // (virtual_cpu_count > 2) OR
2276  // (name = "standard-72")
2277  // ```
2278  string filter = 4;
2279}
2280
2281// Response message for
2282// [VmwareEngine.ListNodeTypes][google.cloud.vmwareengine.v1.VmwareEngine.ListNodeTypes]
2283message ListNodeTypesResponse {
2284  // A list of Node Types.
2285  repeated NodeType node_types = 1;
2286
2287  // A token, which can be sent as `page_token` to retrieve the next page.
2288  // If this field is omitted, there are no subsequent pages.
2289  string next_page_token = 2;
2290
2291  // Locations that could not be reached when making an aggregated query using
2292  // wildcards.
2293  repeated string unreachable = 3;
2294}
2295
2296// Request message for
2297// [VmwareEngine.GetNodeType][google.cloud.vmwareengine.v1.VmwareEngine.GetNodeType]
2298message GetNodeTypeRequest {
2299  // Required. The resource name of the node type to retrieve.
2300  // Resource names are schemeless URIs that follow the conventions in
2301  // https://cloud.google.com/apis/design/resource_names.
2302  // For example:
2303  // `projects/my-proj/locations/us-central1-a/nodeTypes/standard-72`
2304  string name = 1 [
2305    (google.api.field_behavior) = REQUIRED,
2306    (google.api.resource_reference) = {
2307      type: "vmwareengine.googleapis.com/NodeType"
2308    }
2309  ];
2310}
2311
2312// Request message for
2313// [VmwareEngine.ShowNsxCredentials][google.cloud.vmwareengine.v1.VmwareEngine.ShowNsxCredentials]
2314message ShowNsxCredentialsRequest {
2315  // Required. The resource name of the private cloud
2316  // to be queried for credentials.
2317  // Resource names are schemeless URIs that follow the conventions in
2318  // https://cloud.google.com/apis/design/resource_names.
2319  // For example:
2320  // `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`
2321  string private_cloud = 1 [
2322    (google.api.field_behavior) = REQUIRED,
2323    (google.api.resource_reference) = {
2324      type: "vmwareengine.googleapis.com/PrivateCloud"
2325    }
2326  ];
2327}
2328
2329// Request message for
2330// [VmwareEngine.ShowVcenterCredentials][google.cloud.vmwareengine.v1.VmwareEngine.ShowVcenterCredentials]
2331message ShowVcenterCredentialsRequest {
2332  // Required. The resource name of the private cloud
2333  // to be queried for credentials.
2334  // Resource names are schemeless URIs that follow the conventions in
2335  // https://cloud.google.com/apis/design/resource_names.
2336  // For example:
2337  // `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`
2338  string private_cloud = 1 [
2339    (google.api.field_behavior) = REQUIRED,
2340    (google.api.resource_reference) = {
2341      type: "vmwareengine.googleapis.com/PrivateCloud"
2342    }
2343  ];
2344
2345  // Optional. The username of the user to be queried for credentials.
2346  // The default value of this field is [email protected].
2347  // The provided value must be one of the following:
2348  // [email protected],
2349  // [email protected],
2350  // [email protected],
2351  // [email protected],
2352  // [email protected],
2353  // [email protected],
2354  // [email protected].
2355  string username = 2 [(google.api.field_behavior) = OPTIONAL];
2356}
2357
2358// Request message for
2359// [VmwareEngine.ResetNsxCredentials][google.cloud.vmwareengine.v1.VmwareEngine.ResetNsxCredentials]
2360message ResetNsxCredentialsRequest {
2361  // Required. The resource name of the private cloud
2362  // to reset credentials for.
2363  // Resource names are schemeless URIs that follow the conventions in
2364  // https://cloud.google.com/apis/design/resource_names.
2365  // For example:
2366  // `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`
2367  string private_cloud = 1 [
2368    (google.api.field_behavior) = REQUIRED,
2369    (google.api.resource_reference) = {
2370      type: "vmwareengine.googleapis.com/PrivateCloud"
2371    }
2372  ];
2373
2374  // Optional. A request ID to identify requests. Specify a unique request ID
2375  // so that if you must retry your request, the server will know to ignore
2376  // the request if it has already been completed. The server guarantees that a
2377  // request doesn't result in creation of duplicate commitments for at least 60
2378  // minutes.
2379  //
2380  // For example, consider a situation where you make an initial request and the
2381  // request times out. If you make the request again with the same request
2382  // ID, the server can check if original operation with the same request ID
2383  // was received, and if so, will ignore the second request. This prevents
2384  // clients from accidentally creating duplicate commitments.
2385  //
2386  // The request ID must be a valid UUID with the exception that zero UUID is
2387  // not supported (00000000-0000-0000-0000-000000000000).
2388  string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
2389}
2390
2391// Request message for
2392// [VmwareEngine.ResetVcenterCredentials][google.cloud.vmwareengine.v1.VmwareEngine.ResetVcenterCredentials]
2393message ResetVcenterCredentialsRequest {
2394  // Required. The resource name of the private cloud
2395  // to reset credentials for.
2396  // Resource names are schemeless URIs that follow the conventions in
2397  // https://cloud.google.com/apis/design/resource_names.
2398  // For example:
2399  // `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`
2400  string private_cloud = 1 [
2401    (google.api.field_behavior) = REQUIRED,
2402    (google.api.resource_reference) = {
2403      type: "vmwareengine.googleapis.com/PrivateCloud"
2404    }
2405  ];
2406
2407  // Optional. A request ID to identify requests. Specify a unique request ID
2408  // so that if you must retry your request, the server will know to ignore
2409  // the request if it has already been completed. The server guarantees that a
2410  // request doesn't result in creation of duplicate commitments for at least 60
2411  // minutes.
2412  //
2413  // For example, consider a situation where you make an initial request and the
2414  // request times out. If you make the request again with the same request
2415  // ID, the server can check if original operation with the same request ID
2416  // was received, and if so, will ignore the second request. This prevents
2417  // clients from accidentally creating duplicate commitments.
2418  //
2419  // The request ID must be a valid UUID with the exception that zero UUID is
2420  // not supported (00000000-0000-0000-0000-000000000000).
2421  string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
2422
2423  // Optional. The username of the user to be to reset the credentials.
2424  // The default value of this field is [email protected].
2425  // The provided value should be one of the following:
2426  // [email protected],
2427  // [email protected],
2428  // [email protected],
2429  // [email protected],
2430  // [email protected],
2431  // [email protected].
2432  string username = 3 [(google.api.field_behavior) = OPTIONAL];
2433}
2434
2435// Response message for
2436// [VmwareEngine.ListHcxActivationKeys][google.cloud.vmwareengine.v1.VmwareEngine.ListHcxActivationKeys]
2437message ListHcxActivationKeysResponse {
2438  // List of HCX activation keys.
2439  repeated HcxActivationKey hcx_activation_keys = 1;
2440
2441  // A token, which can be sent as `page_token` to retrieve the next page.
2442  // If this field is omitted, there are no subsequent pages.
2443  string next_page_token = 2;
2444
2445  // Locations that could not be reached when making an aggregated query using
2446  // wildcards.
2447  repeated string unreachable = 3;
2448}
2449
2450// Request message for
2451// [VmwareEngine.ListHcxActivationKeys][google.cloud.vmwareengine.v1.VmwareEngine.ListHcxActivationKeys]
2452message ListHcxActivationKeysRequest {
2453  // Required. The resource name of the private cloud
2454  // to be queried for HCX activation keys.
2455  // Resource names are schemeless URIs that follow the conventions in
2456  // https://cloud.google.com/apis/design/resource_names.
2457  // For example:
2458  // `projects/my-project/locations/us-central1/privateClouds/my-cloud`
2459  string parent = 1 [
2460    (google.api.field_behavior) = REQUIRED,
2461    (google.api.resource_reference) = {
2462      type: "vmwareengine.googleapis.com/PrivateCloud"
2463    }
2464  ];
2465
2466  // The maximum number of HCX activation keys to return in one page.
2467  // The service may return fewer than this value.
2468  // The maximum value is coerced to 1000.
2469  // The default value of this field is 500.
2470  int32 page_size = 2;
2471
2472  // A page token, received from a previous `ListHcxActivationKeys` call.
2473  // Provide this to retrieve the subsequent page.
2474  //
2475  // When paginating, all other parameters provided to
2476  // `ListHcxActivationKeys` must match the call that provided the page
2477  // token.
2478  string page_token = 3;
2479}
2480
2481// Request message for [VmwareEngine.GetHcxActivationKeys][]
2482message GetHcxActivationKeyRequest {
2483  // Required. The resource name of the HCX activation key to retrieve.
2484  // Resource names are schemeless URIs that follow the conventions in
2485  // https://cloud.google.com/apis/design/resource_names.
2486  // For example:
2487  // `projects/my-project/locations/us-central1/privateClouds/my-cloud/hcxActivationKeys/my-key`
2488  string name = 1 [
2489    (google.api.field_behavior) = REQUIRED,
2490    (google.api.resource_reference) = {
2491      type: "vmwareengine.googleapis.com/HcxActivationKey"
2492    }
2493  ];
2494}
2495
2496// Request message for
2497// [VmwareEngine.CreateHcxActivationKey][google.cloud.vmwareengine.v1.VmwareEngine.CreateHcxActivationKey]
2498message CreateHcxActivationKeyRequest {
2499  // Required. The resource name of the private cloud to create the key for.
2500  // Resource names are schemeless URIs that follow the conventions in
2501  // https://cloud.google.com/apis/design/resource_names.
2502  // For example:
2503  // `projects/my-project/locations/us-central1/privateClouds/my-cloud`
2504  string parent = 1 [
2505    (google.api.field_behavior) = REQUIRED,
2506    (google.api.resource_reference) = {
2507      type: "vmwareengine.googleapis.com/PrivateCloud"
2508    }
2509  ];
2510
2511  // Required. The initial description of a new HCX activation key. When
2512  // creating a new key, this field must be an empty object.
2513  HcxActivationKey hcx_activation_key = 2
2514      [(google.api.field_behavior) = REQUIRED];
2515
2516  // Required. The user-provided identifier of the `HcxActivationKey` to be
2517  // created. This identifier must be unique among `HcxActivationKey` resources
2518  // within the parent and becomes the final token in the name URI.
2519  // The identifier must meet the following requirements:
2520  //
2521  // * Only contains 1-63 alphanumeric characters and hyphens
2522  // * Begins with an alphabetical character
2523  // * Ends with a non-hyphen character
2524  // * Not formatted as a UUID
2525  // * Complies with [RFC 1034](https://datatracker.ietf.org/doc/html/rfc1034)
2526  // (section 3.5)
2527  string hcx_activation_key_id = 3 [(google.api.field_behavior) = REQUIRED];
2528
2529  // A request ID to identify requests. Specify a unique request ID
2530  // so that if you must retry your request, the server will know to ignore
2531  // the request if it has already been completed. The server guarantees that a
2532  // request doesn't result in creation of duplicate commitments for at least 60
2533  // minutes.
2534  //
2535  // For example, consider a situation where you make an initial request and the
2536  // request times out. If you make the request again with the same request ID,
2537  // the server can check if original operation with the same request ID was
2538  // received, and if so, will ignore the second request. This prevents clients
2539  // from accidentally creating duplicate commitments.
2540  //
2541  // The request ID must be a valid UUID with the exception that zero UUID is
2542  // not supported (00000000-0000-0000-0000-000000000000).
2543  string request_id = 4;
2544}
2545
2546// Request message for
2547// [VmwareEngine.GetDnsForwarding][google.cloud.vmwareengine.v1.VmwareEngine.GetDnsForwarding]
2548message GetDnsForwardingRequest {
2549  // Required. The resource name of a `DnsForwarding` to retrieve.
2550  // Resource names are schemeless URIs that follow the conventions in
2551  // https://cloud.google.com/apis/design/resource_names.
2552  // For example:
2553  // `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/dnsForwarding`
2554  string name = 1 [
2555    (google.api.field_behavior) = REQUIRED,
2556    (google.api.resource_reference) = {
2557      type: "vmwareengine.googleapis.com/DnsForwarding"
2558    }
2559  ];
2560}
2561
2562// Request message for
2563// [VmwareEngine.UpdateDnsForwarding][google.cloud.vmwareengine.v1.VmwareEngine.UpdateDnsForwarding]
2564message UpdateDnsForwardingRequest {
2565  // Required. DnsForwarding config details.
2566  DnsForwarding dns_forwarding = 1 [(google.api.field_behavior) = REQUIRED];
2567
2568  // Required. Field mask is used to specify the fields to be overwritten in the
2569  // `DnsForwarding` resource by the update.
2570  // The fields specified in the `update_mask` are relative to the resource, not
2571  // the full request. A field will be overwritten if it is in the mask. If the
2572  // user does not provide a mask then all fields will be overwritten.
2573  google.protobuf.FieldMask update_mask = 2
2574      [(google.api.field_behavior) = REQUIRED];
2575
2576  // Optional. A request ID to identify requests. Specify a unique request ID
2577  // so that if you must retry your request, the server will know to ignore
2578  // the request if it has already been completed. The server guarantees that a
2579  // request doesn't result in creation of duplicate commitments for at least 60
2580  // minutes.
2581  //
2582  // For example, consider a situation where you make an initial request and the
2583  // request times out. If you make the request again with the same request ID,
2584  // the server can check if original operation with the same request ID was
2585  // received, and if so, will ignore the second request. This prevents clients
2586  // from accidentally creating duplicate commitments.
2587  //
2588  // The request ID must be a valid UUID with the exception that zero UUID is
2589  // not supported (00000000-0000-0000-0000-000000000000).
2590  string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
2591}
2592
2593// Request message for
2594// [VmwareEngine.CreateNetworkPeering][google.cloud.vmwareengine.v1.VmwareEngine.CreateNetworkPeering]
2595message CreateNetworkPeeringRequest {
2596  // Required. The resource name of the location to create the new network
2597  // peering in. This value is always `global`, because `NetworkPeering` is a
2598  // global resource. Resource names are schemeless URIs that follow the
2599  // conventions in https://cloud.google.com/apis/design/resource_names. For
2600  // example: `projects/my-project/locations/global`
2601  string parent = 1 [
2602    (google.api.field_behavior) = REQUIRED,
2603    (google.api.resource_reference) = {
2604      type: "locations.googleapis.com/Location"
2605    }
2606  ];
2607
2608  // Required. The user-provided identifier of the new `NetworkPeering`.
2609  // This identifier must be unique among `NetworkPeering` resources within the
2610  // parent and becomes the final token in the name URI.
2611  // The identifier must meet the following requirements:
2612  //
2613  // * Only contains 1-63 alphanumeric characters and hyphens
2614  // * Begins with an alphabetical character
2615  // * Ends with a non-hyphen character
2616  // * Not formatted as a UUID
2617  // * Complies with [RFC 1034](https://datatracker.ietf.org/doc/html/rfc1034)
2618  // (section 3.5)
2619  string network_peering_id = 2 [(google.api.field_behavior) = REQUIRED];
2620
2621  // Required. The initial description of the new network peering.
2622  NetworkPeering network_peering = 3 [(google.api.field_behavior) = REQUIRED];
2623
2624  // Optional. A request ID to identify requests. Specify a unique request ID
2625  // so that if you must retry your request, the server will know to ignore
2626  // the request if it has already been completed. The server guarantees that a
2627  // request doesn't result in creation of duplicate commitments for at least 60
2628  // minutes.
2629  //
2630  // For example, consider a situation where you make an initial request and the
2631  // request times out. If you make the request again with the same request
2632  // ID, the server can check if original operation with the same request ID
2633  // was received, and if so, will ignore the second request. This prevents
2634  // clients from accidentally creating duplicate commitments.
2635  //
2636  // The request ID must be a valid UUID with the exception that zero UUID is
2637  // not supported (00000000-0000-0000-0000-000000000000).
2638  string request_id = 4 [(google.api.field_behavior) = OPTIONAL];
2639}
2640
2641// Request message for
2642// [VmwareEngine.DeleteNetworkPeering][google.cloud.vmwareengine.v1.VmwareEngine.DeleteNetworkPeering]
2643message DeleteNetworkPeeringRequest {
2644  // Required. The resource name of the network peering to be deleted.
2645  // Resource names are schemeless URIs that follow the conventions in
2646  // https://cloud.google.com/apis/design/resource_names.
2647  // For example:
2648  // `projects/my-project/locations/global/networkPeerings/my-peering`
2649  string name = 1 [
2650    (google.api.field_behavior) = REQUIRED,
2651    (google.api.resource_reference) = {
2652      type: "vmwareengine.googleapis.com/NetworkPeering"
2653    }
2654  ];
2655
2656  // Optional. A request ID to identify requests. Specify a unique request ID
2657  // so that if you must retry your request, the server will know to ignore
2658  // the request if it has already been completed. The server guarantees that a
2659  // request doesn't result in creation of duplicate commitments for at least 60
2660  // minutes.
2661  //
2662  // For example, consider a situation where you make an initial request and the
2663  // request times out. If you make the request again with the same request
2664  // ID, the server can check if original operation with the same request ID
2665  // was received, and if so, will ignore the second request. This prevents
2666  // clients from accidentally creating duplicate commitments.
2667  //
2668  // The request ID must be a valid UUID with the exception that zero UUID is
2669  // not supported (00000000-0000-0000-0000-000000000000).
2670  string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
2671}
2672
2673// Request message for
2674// [VmwareEngine.GetNetworkPeering][google.cloud.vmwareengine.v1.VmwareEngine.GetNetworkPeering]
2675message GetNetworkPeeringRequest {
2676  // Required. The resource name of the network peering to retrieve.
2677  // Resource names are schemeless URIs that follow the conventions in
2678  // https://cloud.google.com/apis/design/resource_names.
2679  // For example:
2680  // `projects/my-project/locations/global/networkPeerings/my-peering`
2681  string name = 1 [
2682    (google.api.field_behavior) = REQUIRED,
2683    (google.api.resource_reference) = {
2684      type: "vmwareengine.googleapis.com/NetworkPeering"
2685    }
2686  ];
2687}
2688
2689// Request message for
2690// [VmwareEngine.ListNetworkPeerings][google.cloud.vmwareengine.v1.VmwareEngine.ListNetworkPeerings]
2691message ListNetworkPeeringsRequest {
2692  // Required. The resource name of the location (global) to query for
2693  // network peerings. Resource names are schemeless URIs that follow the
2694  // conventions in https://cloud.google.com/apis/design/resource_names. For
2695  // example: `projects/my-project/locations/global`
2696  string parent = 1 [
2697    (google.api.field_behavior) = REQUIRED,
2698    (google.api.resource_reference) = {
2699      child_type: "vmwareengine.googleapis.com/NetworkPeering"
2700    }
2701  ];
2702
2703  // The maximum number of network peerings to return in one page.
2704  // The maximum value is coerced to 1000.
2705  // The default value of this field is 500.
2706  int32 page_size = 2;
2707
2708  // A page token, received from a previous `ListNetworkPeerings` call.
2709  // Provide this to retrieve the subsequent page.
2710  //
2711  // When paginating, all other parameters provided to
2712  // `ListNetworkPeerings` must match the call that provided the page
2713  // token.
2714  string page_token = 3;
2715
2716  // A filter expression that matches resources returned in the response.
2717  // The expression must specify the field name, a comparison
2718  // operator, and the value that you want to use for filtering. The value
2719  // must be a string, a number, or a boolean. The comparison operator
2720  // must be `=`, `!=`, `>`, or `<`.
2721  //
2722  // For example, if you are filtering a list of network peerings, you can
2723  // exclude the ones named `example-peering` by specifying
2724  // `name != "example-peering"`.
2725  //
2726  // To filter on multiple expressions, provide each separate expression within
2727  // parentheses. For example:
2728  // ```
2729  // (name = "example-peering")
2730  // (createTime > "2021-04-12T08:15:10.40Z")
2731  // ```
2732  //
2733  // By default, each expression is an `AND` expression. However, you
2734  // can include `AND` and `OR` expressions explicitly.
2735  // For example:
2736  // ```
2737  // (name = "example-peering-1") AND
2738  // (createTime > "2021-04-12T08:15:10.40Z") OR
2739  // (name = "example-peering-2")
2740  // ```
2741  string filter = 4;
2742
2743  // Sorts list results by a certain order. By default, returned results
2744  // are ordered by `name` in ascending order.
2745  // You can also sort results in descending order based on the `name` value
2746  // using `orderBy="name desc"`.
2747  // Currently, only ordering by `name` is supported.
2748  string order_by = 5;
2749}
2750
2751// Request message for
2752// [VmwareEngine.UpdateNetworkPeering][google.cloud.vmwareengine.v1.VmwareEngine.UpdateNetworkPeering]
2753message UpdateNetworkPeeringRequest {
2754  // Required. Network peering description.
2755  NetworkPeering network_peering = 1 [(google.api.field_behavior) = REQUIRED];
2756
2757  // Required. Field mask is used to specify the fields to be overwritten in the
2758  // `NetworkPeering` resource by the update.
2759  // The fields specified in the `update_mask` are relative to the resource, not
2760  // the full request. A field will be overwritten if it is in the mask. If the
2761  // user does not provide a mask then all fields will be overwritten.
2762  google.protobuf.FieldMask update_mask = 2
2763      [(google.api.field_behavior) = REQUIRED];
2764
2765  // Optional. A request ID to identify requests. Specify a unique request ID
2766  // so that if you must retry your request, the server will know to ignore
2767  // the request if it has already been completed. The server guarantees that a
2768  // request doesn't result in creation of duplicate commitments for at least 60
2769  // minutes.
2770  //
2771  // For example, consider a situation where you make an initial request and the
2772  // request times out. If you make the request again with the same request
2773  // ID, the server can check if original operation with the same request ID
2774  // was received, and if so, will ignore the second request. This prevents
2775  // clients from accidentally creating duplicate commitments.
2776  //
2777  // The request ID must be a valid UUID with the exception that zero UUID is
2778  // not supported (00000000-0000-0000-0000-000000000000).
2779  string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
2780}
2781
2782// Response message for
2783// [VmwareEngine.ListNetworkPeerings][google.cloud.vmwareengine.v1.VmwareEngine.ListNetworkPeerings]
2784message ListNetworkPeeringsResponse {
2785  // A list of network peerings.
2786  repeated NetworkPeering network_peerings = 1;
2787
2788  // A token, which can be sent as `page_token` to retrieve the next page.
2789  // If this field is omitted, there are no subsequent pages.
2790  string next_page_token = 2;
2791
2792  // Unreachable resources.
2793  repeated string unreachable = 3;
2794}
2795
2796// Request message for
2797// [VmwareEngine.ListPeeringRoutes][google.cloud.vmwareengine.v1.VmwareEngine.ListPeeringRoutes]
2798message ListPeeringRoutesRequest {
2799  // Required. The resource name of the network peering to retrieve peering
2800  // routes from. Resource names are schemeless URIs that follow the conventions
2801  // in https://cloud.google.com/apis/design/resource_names. For example:
2802  // `projects/my-project/locations/global/networkPeerings/my-peering`
2803  string parent = 1 [
2804    (google.api.field_behavior) = REQUIRED,
2805    (google.api.resource_reference) = {
2806      type: "vmwareengine.googleapis.com/NetworkPeering"
2807    }
2808  ];
2809
2810  // The maximum number of peering routes to return in one page.
2811  // The service may return fewer than this value.
2812  // The maximum value is coerced to 1000.
2813  // The default value of this field is 500.
2814  int32 page_size = 2;
2815
2816  // A page token, received from a previous `ListPeeringRoutes` call.
2817  // Provide this to retrieve the subsequent page.
2818  // When paginating, all other parameters provided to `ListPeeringRoutes` must
2819  // match the call that provided the page token.
2820  string page_token = 3;
2821
2822  // A filter expression that matches resources returned in the response.
2823  // Currently, only filtering on the `direction` field is supported. To return
2824  // routes imported from the peer network, provide "direction=INCOMING". To
2825  // return routes exported from the VMware Engine network, provide
2826  // "direction=OUTGOING". Other filter expressions return an error.
2827  string filter = 6;
2828}
2829
2830// Response message for
2831// [VmwareEngine.ListPeeringRoutes][google.cloud.vmwareengine.v1.VmwareEngine.ListPeeringRoutes]
2832message ListPeeringRoutesResponse {
2833  // A list of peering routes.
2834  repeated PeeringRoute peering_routes = 1;
2835
2836  // A token, which can be sent as `page_token` to retrieve the next page.
2837  // If this field is omitted, there are no subsequent pages.
2838  string next_page_token = 2;
2839}
2840
2841// Request message for
2842// [VmwareEngine.ListNetworkPolicies][google.cloud.vmwareengine.v1.VmwareEngine.ListNetworkPolicies]
2843message ListNetworkPoliciesRequest {
2844  // Required. The resource name of the location (region) to query for
2845  // network policies. Resource names are schemeless URIs that follow the
2846  // conventions in https://cloud.google.com/apis/design/resource_names. For
2847  // example: `projects/my-project/locations/us-central1`
2848  string parent = 1 [
2849    (google.api.field_behavior) = REQUIRED,
2850    (google.api.resource_reference) = {
2851      child_type: "vmwareengine.googleapis.com/NetworkPolicy"
2852    }
2853  ];
2854
2855  // The maximum number of network policies to return in one page.
2856  // The service may return fewer than this value.
2857  // The maximum value is coerced to 1000.
2858  // The default value of this field is 500.
2859  int32 page_size = 2;
2860
2861  // A page token, received from a previous `ListNetworkPolicies` call.
2862  // Provide this to retrieve the subsequent page.
2863  //
2864  // When paginating, all other parameters provided to
2865  // `ListNetworkPolicies` must match the call that provided the page
2866  // token.
2867  string page_token = 3;
2868
2869  // A filter expression that matches resources returned in the response.
2870  // The expression must specify the field name, a comparison
2871  // operator, and the value that you want to use for filtering. The value
2872  // must be a string, a number, or a boolean. The comparison operator
2873  // must be `=`, `!=`, `>`, or `<`.
2874  //
2875  // For example, if you are filtering a list of network policies, you can
2876  // exclude the ones named `example-policy` by specifying
2877  // `name != "example-policy"`.
2878  //
2879  // To filter on multiple expressions, provide each separate expression within
2880  // parentheses. For example:
2881  // ```
2882  // (name = "example-policy")
2883  // (createTime > "2021-04-12T08:15:10.40Z")
2884  // ```
2885  //
2886  // By default, each expression is an `AND` expression. However, you
2887  // can include `AND` and `OR` expressions explicitly.
2888  // For example:
2889  // ```
2890  // (name = "example-policy-1") AND
2891  // (createTime > "2021-04-12T08:15:10.40Z") OR
2892  // (name = "example-policy-2")
2893  // ```
2894  string filter = 4;
2895
2896  // Sorts list results by a certain order. By default, returned results
2897  // are ordered by `name` in ascending order.
2898  // You can also sort results in descending order based on the `name` value
2899  // using `orderBy="name desc"`.
2900  // Currently, only ordering by `name` is supported.
2901  string order_by = 5;
2902}
2903
2904// Response message for
2905// [VmwareEngine.ListNetworkPolicies][google.cloud.vmwareengine.v1.VmwareEngine.ListNetworkPolicies]
2906message ListNetworkPoliciesResponse {
2907  // A list of network policies.
2908  repeated NetworkPolicy network_policies = 1;
2909
2910  // A token, which can be send as `page_token` to retrieve the next page.
2911  // If this field is omitted, there are no subsequent pages.
2912  string next_page_token = 2;
2913
2914  // Locations that could not be reached when making an aggregated query using
2915  // wildcards.
2916  repeated string unreachable = 3;
2917}
2918
2919// Request message for
2920// [VmwareEngine.GetNetworkPolicy][google.cloud.vmwareengine.v1.VmwareEngine.GetNetworkPolicy]
2921message GetNetworkPolicyRequest {
2922  // Required. The resource name of the network policy to retrieve.
2923  // Resource names are schemeless URIs that follow the conventions in
2924  // https://cloud.google.com/apis/design/resource_names.
2925  // For example:
2926  // `projects/my-project/locations/us-central1/networkPolicies/my-network-policy`
2927  string name = 1 [
2928    (google.api.field_behavior) = REQUIRED,
2929    (google.api.resource_reference) = {
2930      type: "vmwareengine.googleapis.com/NetworkPolicy"
2931    }
2932  ];
2933}
2934
2935// Request message for
2936// [VmwareEngine.UpdateNetworkPolicy][google.cloud.vmwareengine.v1.VmwareEngine.UpdateNetworkPolicy]
2937message UpdateNetworkPolicyRequest {
2938  // Required. Network policy description.
2939  NetworkPolicy network_policy = 1 [(google.api.field_behavior) = REQUIRED];
2940
2941  // Required. Field mask is used to specify the fields to be overwritten in the
2942  // `NetworkPolicy` resource by the update.
2943  // The fields specified in the `update_mask` are relative to the resource, not
2944  // the full request. A field will be overwritten if it is in the mask. If the
2945  // user does not provide a mask then all fields will be overwritten.
2946  google.protobuf.FieldMask update_mask = 2
2947      [(google.api.field_behavior) = REQUIRED];
2948
2949  // Optional. A request ID to identify requests. Specify a unique request ID
2950  // so that if you must retry your request, the server will know to ignore
2951  // the request if it has already been completed. The server guarantees that a
2952  // request doesn't result in creation of duplicate commitments for at least 60
2953  // minutes.
2954  //
2955  // For example, consider a situation where you make an initial request and the
2956  // request times out. If you make the request again with the same request
2957  // ID, the server can check if original operation with the same request ID
2958  // was received, and if so, will ignore the second request. This prevents
2959  // clients from accidentally creating duplicate commitments.
2960  //
2961  // The request ID must be a valid UUID with the exception that zero UUID is
2962  // not supported (00000000-0000-0000-0000-000000000000).
2963  string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
2964}
2965
2966// Request message for
2967// [VmwareEngine.CreateNetworkPolicy][google.cloud.vmwareengine.v1.VmwareEngine.CreateNetworkPolicy]
2968message CreateNetworkPolicyRequest {
2969  // Required. The resource name of the location (region)
2970  // to create the new network policy in.
2971  // Resource names are schemeless URIs that follow the conventions in
2972  // https://cloud.google.com/apis/design/resource_names.
2973  // For example:
2974  //  `projects/my-project/locations/us-central1`
2975  string parent = 1 [
2976    (google.api.field_behavior) = REQUIRED,
2977    (google.api.resource_reference) = {
2978      child_type: "vmwareengine.googleapis.com/NetworkPolicy"
2979    }
2980  ];
2981
2982  // Required. The user-provided identifier of the network policy to be created.
2983  // This identifier must be unique within parent
2984  // `projects/{my-project}/locations/{us-central1}/networkPolicies` and becomes
2985  // the final token in the name URI.
2986  // The identifier must meet the following requirements:
2987  //
2988  // * Only contains 1-63 alphanumeric characters and hyphens
2989  // * Begins with an alphabetical character
2990  // * Ends with a non-hyphen character
2991  // * Not formatted as a UUID
2992  // * Complies with [RFC 1034](https://datatracker.ietf.org/doc/html/rfc1034)
2993  // (section 3.5)
2994  string network_policy_id = 2 [(google.api.field_behavior) = REQUIRED];
2995
2996  // Required. The network policy configuration to use in the request.
2997  NetworkPolicy network_policy = 3 [(google.api.field_behavior) = REQUIRED];
2998
2999  // Optional. A request ID to identify requests. Specify a unique request ID
3000  // so that if you must retry your request, the server will know to ignore
3001  // the request if it has already been completed. The server guarantees that a
3002  // request doesn't result in creation of duplicate commitments for at least 60
3003  // minutes.
3004  //
3005  // For example, consider a situation where you make an initial request and the
3006  // request times out. If you make the request again with the same request
3007  // ID, the server can check if original operation with the same request ID
3008  // was received, and if so, will ignore the second request. This prevents
3009  // clients from accidentally creating duplicate commitments.
3010  //
3011  // The request ID must be a valid UUID with the exception that zero UUID is
3012  // not supported (00000000-0000-0000-0000-000000000000).
3013  string request_id = 4 [(google.api.field_behavior) = OPTIONAL];
3014}
3015
3016// Request message for
3017// [VmwareEngine.DeleteNetworkPolicy][google.cloud.vmwareengine.v1.VmwareEngine.DeleteNetworkPolicy]
3018message DeleteNetworkPolicyRequest {
3019  // Required. The resource name of the network policy to delete.
3020  // Resource names are schemeless URIs that follow the conventions in
3021  // https://cloud.google.com/apis/design/resource_names.
3022  // For example:
3023  // `projects/my-project/locations/us-central1/networkPolicies/my-network-policy`
3024  string name = 1 [
3025    (google.api.field_behavior) = REQUIRED,
3026    (google.api.resource_reference) = {
3027      type: "vmwareengine.googleapis.com/NetworkPolicy"
3028    }
3029  ];
3030
3031  // Optional. A request ID to identify requests. Specify a unique request ID
3032  // so that if you must retry your request, the server will know to ignore
3033  // the request if it has already been completed. The server guarantees that a
3034  // request doesn't result in creation of duplicate commitments for at least 60
3035  // minutes.
3036  //
3037  // For example, consider a situation where you make an initial request and the
3038  // request times out. If you make the request again with the same request
3039  // ID, the server can check if original operation with the same request ID
3040  // was received, and if so, will ignore the second request. This prevents
3041  // clients from accidentally creating duplicate commitments.
3042  //
3043  // The request ID must be a valid UUID with the exception that zero UUID is
3044  // not supported (00000000-0000-0000-0000-000000000000).
3045  string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
3046}
3047
3048// Request message for
3049// [VmwareEngine.ListManagementDnsZoneBindings][google.cloud.vmwareengine.v1.VmwareEngine.ListManagementDnsZoneBindings]
3050message ListManagementDnsZoneBindingsRequest {
3051  // Required. The resource name of the private cloud to be queried for
3052  // management DNS zone bindings.
3053  // Resource names are schemeless URIs that follow the conventions in
3054  // https://cloud.google.com/apis/design/resource_names.
3055  // For example:
3056  // `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`
3057  string parent = 1 [
3058    (google.api.field_behavior) = REQUIRED,
3059    (google.api.resource_reference) = {
3060      type: "vmwareengine.googleapis.com/PrivateCloud"
3061    }
3062  ];
3063
3064  // The maximum number of management DNS zone bindings to return in one page.
3065  // The service may return fewer than this value.
3066  // The maximum value is coerced to 1000.
3067  // The default value of this field is 500.
3068  int32 page_size = 2;
3069
3070  // A page token, received from a previous `ListManagementDnsZoneBindings`
3071  // call. Provide this to retrieve the subsequent page.
3072  //
3073  // When paginating, all other parameters provided to
3074  // `ListManagementDnsZoneBindings` must match the call that provided the page
3075  // token.
3076  string page_token = 3;
3077
3078  // A filter expression that matches resources returned in the response.
3079  // The expression must specify the field name, a comparison
3080  // operator, and the value that you want to use for filtering. The value
3081  // must be a string, a number, or a boolean. The comparison operator
3082  // must be `=`, `!=`, `>`, or `<`.
3083  //
3084  // For example, if you are filtering a list of Management DNS Zone Bindings,
3085  // you can exclude the ones named `example-management-dns-zone-binding` by
3086  // specifying `name != "example-management-dns-zone-binding"`.
3087  //
3088  // To filter on multiple expressions, provide each separate expression within
3089  // parentheses. For example:
3090  // ```
3091  // (name = "example-management-dns-zone-binding")
3092  // (createTime > "2021-04-12T08:15:10.40Z")
3093  // ```
3094  //
3095  // By default, each expression is an `AND` expression. However, you
3096  // can include `AND` and `OR` expressions explicitly.
3097  // For example:
3098  // ```
3099  // (name = "example-management-dns-zone-binding-1") AND
3100  // (createTime > "2021-04-12T08:15:10.40Z") OR
3101  // (name = "example-management-dns-zone-binding-2")
3102  // ```
3103  string filter = 4;
3104
3105  // Sorts list results by a certain order. By default, returned results
3106  // are ordered by `name` in ascending order.
3107  // You can also sort results in descending order based on the `name` value
3108  // using `orderBy="name desc"`.
3109  // Currently, only ordering by `name` is supported.
3110  string order_by = 5;
3111}
3112
3113// Response message for
3114// [VmwareEngine.ListManagementDnsZoneBindings][google.cloud.vmwareengine.v1.VmwareEngine.ListManagementDnsZoneBindings]
3115message ListManagementDnsZoneBindingsResponse {
3116  // A list of management DNS zone bindings.
3117  repeated ManagementDnsZoneBinding management_dns_zone_bindings = 1;
3118
3119  // A token, which can be sent as `page_token` to retrieve the next page.
3120  // If this field is omitted, there are no subsequent pages.
3121  string next_page_token = 2;
3122
3123  // Locations that could not be reached when making an aggregated query using
3124  // wildcards.
3125  repeated string unreachable = 3;
3126}
3127
3128// Request message for
3129// [VmwareEngine.GetManagementDnsZoneBinding][google.cloud.vmwareengine.v1.VmwareEngine.GetManagementDnsZoneBinding]
3130message GetManagementDnsZoneBindingRequest {
3131  // Required. The resource name of the management DNS zone binding to
3132  // retrieve. Resource names are schemeless URIs that follow the conventions in
3133  // https://cloud.google.com/apis/design/resource_names.
3134  // For example:
3135  // `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/managementDnsZoneBindings/my-management-dns-zone-binding`
3136  string name = 1 [
3137    (google.api.field_behavior) = REQUIRED,
3138    (google.api.resource_reference) = {
3139      type: "vmwareengine.googleapis.com/ManagementDnsZoneBinding"
3140    }
3141  ];
3142}
3143
3144// Request message for [VmwareEngine.CreateManagementDnsZoneBindings][]
3145message CreateManagementDnsZoneBindingRequest {
3146  // Required. The resource name of the private cloud
3147  // to create a new management DNS zone binding for.
3148  // Resource names are schemeless URIs that follow the conventions in
3149  // https://cloud.google.com/apis/design/resource_names.
3150  // For example:
3151  // `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`
3152  string parent = 1 [
3153    (google.api.field_behavior) = REQUIRED,
3154    (google.api.resource_reference) = {
3155      type: "vmwareengine.googleapis.com/PrivateCloud"
3156    }
3157  ];
3158
3159  // Required. The initial values for a new management DNS zone binding.
3160  ManagementDnsZoneBinding management_dns_zone_binding = 2
3161      [(google.api.field_behavior) = REQUIRED];
3162
3163  // Required. The user-provided identifier of the `ManagementDnsZoneBinding`
3164  // resource to be created. This identifier must be unique among
3165  // `ManagementDnsZoneBinding` resources within the parent and becomes the
3166  // final token in the name URI. The identifier must meet the following
3167  // requirements:
3168  //
3169  // * Only contains 1-63 alphanumeric characters and hyphens
3170  // * Begins with an alphabetical character
3171  // * Ends with a non-hyphen character
3172  // * Not formatted as a UUID
3173  // * Complies with [RFC 1034](https://datatracker.ietf.org/doc/html/rfc1034)
3174  // (section 3.5)
3175  string management_dns_zone_binding_id = 3
3176      [(google.api.field_behavior) = REQUIRED];
3177
3178  // Optional. A request ID to identify requests. Specify a unique request ID
3179  // so that if you must retry your request, the server will know to ignore
3180  // the request if it has already been completed. The server guarantees that a
3181  // request doesn't result in creation of duplicate commitments for at least 60
3182  // minutes.
3183  //
3184  // For example, consider a situation where you make an initial request and the
3185  // request times out. If you make the request again with the same request ID,
3186  // the server can check if the original operation with the same request ID was
3187  // received, and if so, will ignore the second request. This prevents clients
3188  // from accidentally creating duplicate commitments.
3189  //
3190  // The request ID must be a valid UUID with the exception that zero UUID is
3191  // not supported (00000000-0000-0000-0000-000000000000).
3192  string request_id = 4 [(google.api.field_behavior) = OPTIONAL];
3193}
3194
3195// Request message for
3196// [VmwareEngine.UpdateManagementDnsZoneBinding][google.cloud.vmwareengine.v1.VmwareEngine.UpdateManagementDnsZoneBinding]
3197message UpdateManagementDnsZoneBindingRequest {
3198  // Required. Field mask is used to specify the fields to be overwritten in the
3199  // `ManagementDnsZoneBinding` resource by the update.
3200  // The fields specified in the `update_mask` are relative to the resource, not
3201  // the full request. A field will be overwritten if it is in the mask. If the
3202  // user does not provide a mask then all fields will be overwritten.
3203  google.protobuf.FieldMask update_mask = 1
3204      [(google.api.field_behavior) = REQUIRED];
3205
3206  // Required. New values to update the management DNS zone binding with.
3207  ManagementDnsZoneBinding management_dns_zone_binding = 2
3208      [(google.api.field_behavior) = REQUIRED];
3209
3210  // Optional. A request ID to identify requests. Specify a unique request ID
3211  // so that if you must retry your request, the server will know to ignore
3212  // the request if it has already been completed. The server guarantees that a
3213  // request doesn't result in creation of duplicate commitments for at least 60
3214  // minutes.
3215  //
3216  // For example, consider a situation where you make an initial request and the
3217  // request times out. If you make the request again with the same request ID,
3218  // the server can check if the original operation with the same request ID was
3219  // received, and if so, will ignore the second request. This prevents clients
3220  // from accidentally creating duplicate commitments.
3221  //
3222  // The request ID must be a valid UUID with the exception that zero UUID is
3223  // not supported (00000000-0000-0000-0000-000000000000).
3224  string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
3225}
3226
3227// Request message for
3228// [VmwareEngine.DeleteManagementDnsZoneBinding][google.cloud.vmwareengine.v1.VmwareEngine.DeleteManagementDnsZoneBinding]
3229message DeleteManagementDnsZoneBindingRequest {
3230  // Required. The resource name of the management DNS zone binding to delete.
3231  // Resource names are schemeless URIs that follow the conventions in
3232  // https://cloud.google.com/apis/design/resource_names.
3233  // For example:
3234  // `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/managementDnsZoneBindings/my-management-dns-zone-binding`
3235  string name = 1 [
3236    (google.api.field_behavior) = REQUIRED,
3237    (google.api.resource_reference) = {
3238      type: "vmwareengine.googleapis.com/ManagementDnsZoneBinding"
3239    }
3240  ];
3241
3242  // Optional. A request ID to identify requests. Specify a unique request ID
3243  // so that if you must retry your request, the server will know to ignore
3244  // the request if it has already been completed. The server guarantees that a
3245  // request doesn't result in creation of duplicate commitments for at least 60
3246  // minutes.
3247  //
3248  // For example, consider a situation where you make an initial request and the
3249  // request times out. If you make the request again with the same request
3250  // ID, the server can check if the original operation with the same request ID
3251  // was received, and if so, will ignore the second request. This prevents
3252  // clients from accidentally creating duplicate commitments.
3253  //
3254  // The request ID must be a valid UUID with the exception that zero UUID is
3255  // not supported (00000000-0000-0000-0000-000000000000).
3256  string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
3257}
3258
3259// Request message for [VmwareEngine.RepairManagementDnsZoneBindings][]
3260message RepairManagementDnsZoneBindingRequest {
3261  // Required. The resource name of the management DNS zone binding to repair.
3262  // Resource names are schemeless URIs that follow the conventions in
3263  // https://cloud.google.com/apis/design/resource_names.
3264  // For example:
3265  // `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/managementDnsZoneBindings/my-management-dns-zone-binding`
3266  string name = 1 [
3267    (google.api.field_behavior) = REQUIRED,
3268    (google.api.resource_reference) = {
3269      type: "vmwareengine.googleapis.com/ManagementDnsZoneBinding"
3270    }
3271  ];
3272
3273  // Optional. A request ID to identify requests. Specify a unique request ID
3274  // so that if you must retry your request, the server will know to ignore
3275  // the request if it has already been completed. The server guarantees that a
3276  // request doesn't result in creation of duplicate commitments for at least 60
3277  // minutes.
3278  //
3279  // For example, consider a situation where you make an initial request and the
3280  // request times out. If you make the request again with the same request ID,
3281  // the server can check if the original operation with the same request ID was
3282  // received, and if so, will ignore the second request. This prevents clients
3283  // from accidentally creating duplicate commitments.
3284  //
3285  // The request ID must be a valid UUID with the exception that zero UUID is
3286  // not supported (00000000-0000-0000-0000-000000000000).
3287  string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
3288}
3289
3290// Request message for
3291// [VmwareEngine.CreateVmwareEngineNetwork][google.cloud.vmwareengine.v1.VmwareEngine.CreateVmwareEngineNetwork]
3292message CreateVmwareEngineNetworkRequest {
3293  // Required. The resource name of the location to create the new VMware Engine
3294  // network in. A VMware Engine network of type
3295  // `LEGACY` is a regional resource, and a VMware
3296  // Engine network of type `STANDARD` is a global resource.
3297  // Resource names are schemeless URIs that follow the conventions in
3298  // https://cloud.google.com/apis/design/resource_names. For example:
3299  // `projects/my-project/locations/global`
3300  string parent = 1 [
3301    (google.api.field_behavior) = REQUIRED,
3302    (google.api.resource_reference) = {
3303      child_type: "vmwareengine.googleapis.com/VmwareEngineNetwork"
3304    }
3305  ];
3306
3307  // Required. The user-provided identifier of the new VMware Engine network.
3308  // This identifier must be unique among VMware Engine network resources
3309  // within the parent and becomes the final token in the name URI. The
3310  // identifier must meet the following requirements:
3311  //
3312  // * For networks of type LEGACY, adheres to the format:
3313  // `{region-id}-default`. Replace `{region-id}` with the region where you want
3314  // to create the VMware Engine network. For example, "us-central1-default".
3315  // * Only contains 1-63 alphanumeric characters and hyphens
3316  // * Begins with an alphabetical character
3317  // * Ends with a non-hyphen character
3318  // * Not formatted as a UUID
3319  // * Complies with [RFC 1034](https://datatracker.ietf.org/doc/html/rfc1034)
3320  // (section 3.5)
3321  string vmware_engine_network_id = 2 [(google.api.field_behavior) = REQUIRED];
3322
3323  // Required. The initial description of the new VMware Engine network.
3324  VmwareEngineNetwork vmware_engine_network = 3
3325      [(google.api.field_behavior) = REQUIRED];
3326
3327  // Optional. A request ID to identify requests. Specify a unique request ID
3328  // so that if you must retry your request, the server will know to ignore
3329  // the request if it has already been completed. The server guarantees that a
3330  // request doesn't result in creation of duplicate commitments for at least 60
3331  // minutes.
3332  //
3333  // For example, consider a situation where you make an initial request and the
3334  // request times out. If you make the request again with the same request
3335  // ID, the server can check if original operation with the same request ID
3336  // was received, and if so, will ignore the second request. This prevents
3337  // clients from accidentally creating duplicate commitments.
3338  //
3339  // The request ID must be a valid UUID with the exception that zero UUID is
3340  // not supported (00000000-0000-0000-0000-000000000000).
3341  string request_id = 4 [(google.api.field_behavior) = OPTIONAL];
3342}
3343
3344// Request message for
3345// [VmwareEngine.UpdateVmwareEngineNetwork][google.cloud.vmwareengine.v1.VmwareEngine.UpdateVmwareEngineNetwork]
3346message UpdateVmwareEngineNetworkRequest {
3347  // Required. VMware Engine network description.
3348  VmwareEngineNetwork vmware_engine_network = 1
3349      [(google.api.field_behavior) = REQUIRED];
3350
3351  // Required. Field mask is used to specify the fields to be overwritten in the
3352  // VMware Engine network resource by the update.
3353  // The fields specified in the `update_mask` are relative to the resource, not
3354  // the full request. A field will be overwritten if it is in the mask. If the
3355  // user does not provide a mask then all fields will be overwritten. Only the
3356  // following fields can be updated: `description`.
3357  google.protobuf.FieldMask update_mask = 2
3358      [(google.api.field_behavior) = REQUIRED];
3359
3360  // Optional. A request ID to identify requests. Specify a unique request ID
3361  // so that if you must retry your request, the server will know to ignore
3362  // the request if it has already been completed. The server guarantees that a
3363  // request doesn't result in creation of duplicate commitments for at least 60
3364  // minutes.
3365  //
3366  // For example, consider a situation where you make an initial request and the
3367  // request times out. If you make the request again with the same request
3368  // ID, the server can check if original operation with the same request ID
3369  // was received, and if so, will ignore the second request. This prevents
3370  // clients from accidentally creating duplicate commitments.
3371  //
3372  // The request ID must be a valid UUID with the exception that zero UUID is
3373  // not supported (00000000-0000-0000-0000-000000000000).
3374  string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
3375}
3376
3377// Request message for
3378// [VmwareEngine.DeleteVmwareEngineNetwork][google.cloud.vmwareengine.v1.VmwareEngine.DeleteVmwareEngineNetwork]
3379message DeleteVmwareEngineNetworkRequest {
3380  // Required. The resource name of the VMware Engine network to be deleted.
3381  // Resource names are schemeless URIs that follow the conventions in
3382  // https://cloud.google.com/apis/design/resource_names.
3383  // For example:
3384  // `projects/my-project/locations/global/vmwareEngineNetworks/my-network`
3385  string name = 1 [
3386    (google.api.field_behavior) = REQUIRED,
3387    (google.api.resource_reference) = {
3388      type: "vmwareengine.googleapis.com/VmwareEngineNetwork"
3389    }
3390  ];
3391
3392  // Optional. A request ID to identify requests. Specify a unique request ID
3393  // so that if you must retry your request, the server will know to ignore
3394  // the request if it has already been completed. The server guarantees that a
3395  // request doesn't result in creation of duplicate commitments for at least 60
3396  // minutes.
3397  //
3398  // For example, consider a situation where you make an initial request and the
3399  // request times out. If you make the request again with the same request
3400  // ID, the server can check if original operation with the same request ID
3401  // was received, and if so, will ignore the second request. This prevents
3402  // clients from accidentally creating duplicate commitments.
3403  //
3404  // The request ID must be a valid UUID with the exception that zero UUID is
3405  // not supported (00000000-0000-0000-0000-000000000000).
3406  string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
3407
3408  // Optional. Checksum used to ensure that the user-provided value is up to
3409  // date before the server processes the request. The server compares provided
3410  // checksum with the current checksum of the resource. If the user-provided
3411  // value is out of date, this request returns an `ABORTED` error.
3412  string etag = 3 [(google.api.field_behavior) = OPTIONAL];
3413}
3414
3415// Request message for
3416// [VmwareEngine.GetVmwareEngineNetwork][google.cloud.vmwareengine.v1.VmwareEngine.GetVmwareEngineNetwork]
3417message GetVmwareEngineNetworkRequest {
3418  // Required. The resource name of the VMware Engine network to retrieve.
3419  // Resource names are schemeless URIs that follow the conventions in
3420  // https://cloud.google.com/apis/design/resource_names.
3421  // For example:
3422  // `projects/my-project/locations/global/vmwareEngineNetworks/my-network`
3423  string name = 1 [
3424    (google.api.field_behavior) = REQUIRED,
3425    (google.api.resource_reference) = {
3426      type: "vmwareengine.googleapis.com/VmwareEngineNetwork"
3427    }
3428  ];
3429}
3430
3431// Request message for
3432// [VmwareEngine.ListVmwareEngineNetworks][google.cloud.vmwareengine.v1.VmwareEngine.ListVmwareEngineNetworks]
3433message ListVmwareEngineNetworksRequest {
3434  // Required. The resource name of the location to query for
3435  // VMware Engine networks. Resource names are schemeless URIs that follow the
3436  // conventions in https://cloud.google.com/apis/design/resource_names. For
3437  // example: `projects/my-project/locations/global`
3438  string parent = 1 [
3439    (google.api.field_behavior) = REQUIRED,
3440    (google.api.resource_reference) = {
3441      type: "locations.googleapis.com/Location"
3442    }
3443  ];
3444
3445  // The maximum number of results to return in one page.
3446  // The maximum value is coerced to 1000.
3447  // The default value of this field is 500.
3448  int32 page_size = 2;
3449
3450  // A page token, received from a previous `ListVmwareEngineNetworks` call.
3451  // Provide this to retrieve the subsequent page.
3452  //
3453  // When paginating, all other parameters provided to
3454  // `ListVmwareEngineNetworks` must match the call that provided the page
3455  // token.
3456  string page_token = 3;
3457
3458  // A filter expression that matches resources returned in the response.
3459  // The expression must specify the field name, a comparison
3460  // operator, and the value that you want to use for filtering. The value
3461  // must be a string, a number, or a boolean. The comparison operator
3462  // must be `=`, `!=`, `>`, or `<`.
3463  //
3464  // For example, if you are filtering a list of network peerings, you can
3465  // exclude the ones named `example-network` by specifying
3466  // `name != "example-network"`.
3467  //
3468  // To filter on multiple expressions, provide each separate expression within
3469  // parentheses. For example:
3470  // ```
3471  // (name = "example-network")
3472  // (createTime > "2021-04-12T08:15:10.40Z")
3473  // ```
3474  //
3475  // By default, each expression is an `AND` expression. However, you
3476  // can include `AND` and `OR` expressions explicitly.
3477  // For example:
3478  // ```
3479  // (name = "example-network-1") AND
3480  // (createTime > "2021-04-12T08:15:10.40Z") OR
3481  // (name = "example-network-2")
3482  // ```
3483  string filter = 4;
3484
3485  // Sorts list results by a certain order. By default, returned results
3486  // are ordered by `name` in ascending order.
3487  // You can also sort results in descending order based on the `name` value
3488  // using `orderBy="name desc"`.
3489  // Currently, only ordering by `name` is supported.
3490  string order_by = 5;
3491}
3492
3493// Response message for
3494// [VmwareEngine.ListVmwareEngineNetworks][google.cloud.vmwareengine.v1.VmwareEngine.ListVmwareEngineNetworks]
3495message ListVmwareEngineNetworksResponse {
3496  // A list of VMware Engine networks.
3497  repeated VmwareEngineNetwork vmware_engine_networks = 1;
3498
3499  // A token, which can be sent as `page_token` to retrieve the next page.
3500  // If this field is omitted, there are no subsequent pages.
3501  string next_page_token = 2;
3502
3503  // Unreachable resources.
3504  repeated string unreachable = 3;
3505}
3506
3507// Request message for
3508// [VmwareEngine.CreatePrivateConnection][google.cloud.vmwareengine.v1.VmwareEngine.CreatePrivateConnection]
3509message CreatePrivateConnectionRequest {
3510  // Required. The resource name of the location to create the new private
3511  // connection in. Private connection is a regional resource.
3512  // Resource names are schemeless URIs that follow the conventions in
3513  // https://cloud.google.com/apis/design/resource_names. For example:
3514  // `projects/my-project/locations/us-central1`
3515  string parent = 1 [
3516    (google.api.field_behavior) = REQUIRED,
3517    (google.api.resource_reference) = {
3518      child_type: "vmwareengine.googleapis.com/PrivateConnection"
3519    }
3520  ];
3521
3522  // Required. The user-provided identifier of the new private connection.
3523  // This identifier must be unique among private connection resources
3524  // within the parent and becomes the final token in the name URI. The
3525  // identifier must meet the following requirements:
3526  //
3527  // * Only contains 1-63 alphanumeric characters and hyphens
3528  // * Begins with an alphabetical character
3529  // * Ends with a non-hyphen character
3530  // * Not formatted as a UUID
3531  // * Complies with [RFC 1034](https://datatracker.ietf.org/doc/html/rfc1034)
3532  // (section 3.5)
3533  string private_connection_id = 2 [(google.api.field_behavior) = REQUIRED];
3534
3535  // Required. The initial description of the new private connection.
3536  PrivateConnection private_connection = 3
3537      [(google.api.field_behavior) = REQUIRED];
3538
3539  // Optional. A request ID to identify requests. Specify a unique request ID
3540  // so that if you must retry your request, the server will know to ignore
3541  // the request if it has already been completed. The server guarantees that a
3542  // request doesn't result in creation of duplicate commitments for at least 60
3543  // minutes.
3544  //
3545  // For example, consider a situation where you make an initial request and the
3546  // request times out. If you make the request again with the same request
3547  // ID, the server can check if original operation with the same request ID
3548  // was received, and if so, will ignore the second request. This prevents
3549  // clients from accidentally creating duplicate commitments.
3550  //
3551  // The request ID must be a valid UUID with the exception that zero UUID is
3552  // not supported (00000000-0000-0000-0000-000000000000).
3553  string request_id = 4 [(google.api.field_behavior) = OPTIONAL];
3554}
3555
3556// Request message for
3557// [VmwareEngine.GetPrivateConnection][google.cloud.vmwareengine.v1.VmwareEngine.GetPrivateConnection]
3558message GetPrivateConnectionRequest {
3559  // Required. The resource name of the private connection to retrieve.
3560  // Resource names are schemeless URIs that follow the conventions in
3561  // https://cloud.google.com/apis/design/resource_names.
3562  // For example:
3563  // `projects/my-project/locations/us-central1/privateConnections/my-connection`
3564  string name = 1 [
3565    (google.api.field_behavior) = REQUIRED,
3566    (google.api.resource_reference) = {
3567      type: "vmwareengine.googleapis.com/PrivateConnection"
3568    }
3569  ];
3570}
3571
3572// Request message for
3573// [VmwareEngine.ListPrivateConnections][google.cloud.vmwareengine.v1.VmwareEngine.ListPrivateConnections]
3574message ListPrivateConnectionsRequest {
3575  // Required. The resource name of the location to query for
3576  // private connections. Resource names are schemeless URIs that follow the
3577  // conventions in https://cloud.google.com/apis/design/resource_names. For
3578  // example: `projects/my-project/locations/us-central1`
3579  string parent = 1 [
3580    (google.api.field_behavior) = REQUIRED,
3581    (google.api.resource_reference) = {
3582      child_type: "vmwareengine.googleapis.com/PrivateConnection"
3583    }
3584  ];
3585
3586  // The maximum number of private connections to return in one page.
3587  // The maximum value is coerced to 1000.
3588  // The default value of this field is 500.
3589  int32 page_size = 2;
3590
3591  // A page token, received from a previous `ListPrivateConnections` call.
3592  // Provide this to retrieve the subsequent page.
3593  //
3594  // When paginating, all other parameters provided to
3595  // `ListPrivateConnections` must match the call that provided the page
3596  // token.
3597  string page_token = 3;
3598
3599  // A filter expression that matches resources returned in the response.
3600  // The expression must specify the field name, a comparison
3601  // operator, and the value that you want to use for filtering. The value
3602  // must be a string, a number, or a boolean. The comparison operator
3603  // must be `=`, `!=`, `>`, or `<`.
3604  //
3605  // For example, if you are filtering a list of private connections, you can
3606  // exclude the ones named `example-connection` by specifying
3607  // `name != "example-connection"`.
3608  //
3609  // To filter on multiple expressions, provide each separate expression within
3610  // parentheses. For example:
3611  // ```
3612  // (name = "example-connection")
3613  // (createTime > "2022-09-22T08:15:10.40Z")
3614  // ```
3615  //
3616  // By default, each expression is an `AND` expression. However, you
3617  // can include `AND` and `OR` expressions explicitly.
3618  // For example:
3619  // ```
3620  // (name = "example-connection-1") AND
3621  // (createTime > "2021-04-12T08:15:10.40Z") OR
3622  // (name = "example-connection-2")
3623  // ```
3624  string filter = 4;
3625
3626  // Sorts list results by a certain order. By default, returned results
3627  // are ordered by `name` in ascending order.
3628  // You can also sort results in descending order based on the `name` value
3629  // using `orderBy="name desc"`.
3630  // Currently, only ordering by `name` is supported.
3631  string order_by = 5;
3632}
3633
3634// Response message for
3635// [VmwareEngine.ListPrivateConnections][google.cloud.vmwareengine.v1.VmwareEngine.ListPrivateConnections]
3636message ListPrivateConnectionsResponse {
3637  // A list of private connections.
3638  repeated PrivateConnection private_connections = 1;
3639
3640  // A token, which can be sent as `page_token` to retrieve the next page.
3641  // If this field is omitted, there are no subsequent pages.
3642  string next_page_token = 2;
3643
3644  // Unreachable resources.
3645  repeated string unreachable = 3;
3646}
3647
3648// Request message for
3649// [VmwareEngine.UpdatePrivateConnection][google.cloud.vmwareengine.v1.VmwareEngine.UpdatePrivateConnection]
3650message UpdatePrivateConnectionRequest {
3651  // Required. Private connection description.
3652  PrivateConnection private_connection = 1
3653      [(google.api.field_behavior) = REQUIRED];
3654
3655  // Required. Field mask is used to specify the fields to be overwritten in the
3656  // `PrivateConnection` resource by the update.
3657  // The fields specified in the `update_mask` are relative to the resource, not
3658  // the full request. A field will be overwritten if it is in the mask. If the
3659  // user does not provide a mask then all fields will be overwritten.
3660  google.protobuf.FieldMask update_mask = 2
3661      [(google.api.field_behavior) = REQUIRED];
3662
3663  // Optional. A request ID to identify requests. Specify a unique request ID
3664  // so that if you must retry your request, the server will know to ignore
3665  // the request if it has already been completed. The server guarantees that a
3666  // request doesn't result in creation of duplicate commitments for at least 60
3667  // minutes.
3668  //
3669  // For example, consider a situation where you make an initial request and the
3670  // request times out. If you make the request again with the same request
3671  // ID, the server can check if original operation with the same request ID
3672  // was received, and if so, will ignore the second request. This prevents
3673  // clients from accidentally creating duplicate commitments.
3674  //
3675  // The request ID must be a valid UUID with the exception that zero UUID is
3676  // not supported (00000000-0000-0000-0000-000000000000).
3677  string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
3678}
3679
3680// Request message for
3681// [VmwareEngine.DeletePrivateConnection][google.cloud.vmwareengine.v1.VmwareEngine.DeletePrivateConnection]
3682message DeletePrivateConnectionRequest {
3683  // Required. The resource name of the private connection to be deleted.
3684  // Resource names are schemeless URIs that follow the conventions in
3685  // https://cloud.google.com/apis/design/resource_names.
3686  // For example:
3687  // `projects/my-project/locations/us-central1/privateConnections/my-connection`
3688  string name = 1 [
3689    (google.api.field_behavior) = REQUIRED,
3690    (google.api.resource_reference) = {
3691      type: "vmwareengine.googleapis.com/PrivateConnection"
3692    }
3693  ];
3694
3695  // Optional. A request ID to identify requests. Specify a unique request ID
3696  // so that if you must retry your request, the server will know to ignore
3697  // the request if it has already been completed. The server guarantees that a
3698  // request doesn't result in creation of duplicate commitments for at least 60
3699  // minutes.
3700  //
3701  // For example, consider a situation where you make an initial request and the
3702  // request times out. If you make the request again with the same request
3703  // ID, the server can check if original operation with the same request ID
3704  // was received, and if so, will ignore the second request. This prevents
3705  // clients from accidentally creating duplicate commitments.
3706  //
3707  // The request ID must be a valid UUID with the exception that zero UUID is
3708  // not supported (00000000-0000-0000-0000-000000000000).
3709  string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
3710}
3711
3712// Request message for
3713// [VmwareEngine.ListPrivateConnectionPeeringRoutes][google.cloud.vmwareengine.v1.VmwareEngine.ListPrivateConnectionPeeringRoutes]
3714message ListPrivateConnectionPeeringRoutesRequest {
3715  // Required. The resource name of the private connection to retrieve peering
3716  // routes from. Resource names are schemeless URIs that follow the conventions
3717  // in https://cloud.google.com/apis/design/resource_names. For example:
3718  // `projects/my-project/locations/us-west1/privateConnections/my-connection`
3719  string parent = 1 [
3720    (google.api.field_behavior) = REQUIRED,
3721    (google.api.resource_reference) = {
3722      type: "vmwareengine.googleapis.com/PrivateConnection"
3723    }
3724  ];
3725
3726  // The maximum number of peering routes to return in one page.
3727  // The service may return fewer than this value.
3728  // The maximum value is coerced to 1000.
3729  // The default value of this field is 500.
3730  int32 page_size = 2;
3731
3732  // A page token, received from a previous `ListPrivateConnectionPeeringRoutes`
3733  // call. Provide this to retrieve the subsequent page. When paginating, all
3734  // other parameters provided to `ListPrivateConnectionPeeringRoutes` must
3735  // match the call that provided the page token.
3736  string page_token = 3;
3737}
3738
3739// Response message for
3740// [VmwareEngine.ListPrivateConnectionPeeringRoutes][google.cloud.vmwareengine.v1.VmwareEngine.ListPrivateConnectionPeeringRoutes]
3741message ListPrivateConnectionPeeringRoutesResponse {
3742  // A list of peering routes.
3743  repeated PeeringRoute peering_routes = 1;
3744
3745  // A token, which can be sent as `page_token` to retrieve the next page.
3746  // If this field is omitted, there are no subsequent pages.
3747  string next_page_token = 2;
3748}
3749
3750// Request message for
3751// [VmwareEngine.GrantDnsBindPermission][google.cloud.vmwareengine.v1.VmwareEngine.GrantDnsBindPermission]
3752message GrantDnsBindPermissionRequest {
3753  // Required. The name of the resource which stores the users/service accounts
3754  // having the permission to bind to the corresponding intranet VPC of the
3755  // consumer project. DnsBindPermission is a global resource. Resource names
3756  // are schemeless URIs that follow the conventions in
3757  // https://cloud.google.com/apis/design/resource_names. For example:
3758  // `projects/my-project/locations/global/dnsBindPermission`
3759  string name = 1 [
3760    (google.api.field_behavior) = REQUIRED,
3761    (google.api.resource_reference) = {
3762      type: "vmwareengine.googleapis.com/DnsBindPermission"
3763    }
3764  ];
3765
3766  // Required. The consumer provided user/service account which needs to be
3767  // granted permission to bind with the intranet VPC corresponding to the
3768  // consumer project.
3769  Principal principal = 2 [(google.api.field_behavior) = REQUIRED];
3770
3771  // Optional. A request ID to identify requests. Specify a unique request ID
3772  // so that if you must retry your request, the server will know to ignore
3773  // the request if it has already been completed. The server guarantees that a
3774  // request doesn't result in creation of duplicate commitments for at least 60
3775  // minutes.
3776  //
3777  // For example, consider a situation where you make an initial request and the
3778  // request times out. If you make the request again with the same request
3779  // ID, the server can check if original operation with the same request ID
3780  // was received, and if so, will ignore the second request. This prevents
3781  // clients from accidentally creating duplicate commitments.
3782  //
3783  // The request ID must be a valid UUID with the exception that zero UUID is
3784  // not supported (00000000-0000-0000-0000-000000000000).
3785  string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
3786}
3787
3788// Request message for
3789// [VmwareEngine.RevokeDnsBindPermission][google.cloud.vmwareengine.v1.VmwareEngine.RevokeDnsBindPermission]
3790message RevokeDnsBindPermissionRequest {
3791  // Required. The name of the resource which stores the users/service accounts
3792  // having the permission to bind to the corresponding intranet VPC of the
3793  // consumer project. DnsBindPermission is a global resource. Resource names
3794  // are schemeless URIs that follow the conventions in
3795  // https://cloud.google.com/apis/design/resource_names. For example:
3796  // `projects/my-project/locations/global/dnsBindPermission`
3797  string name = 1 [
3798    (google.api.field_behavior) = REQUIRED,
3799    (google.api.resource_reference) = {
3800      type: "vmwareengine.googleapis.com/DnsBindPermission"
3801    }
3802  ];
3803
3804  // Required. The consumer provided user/service account which needs to be
3805  // granted permission to bind with the intranet VPC corresponding to the
3806  // consumer project.
3807  Principal principal = 2 [(google.api.field_behavior) = REQUIRED];
3808
3809  // Optional. A request ID to identify requests. Specify a unique request ID
3810  // so that if you must retry your request, the server will know to ignore
3811  // the request if it has already been completed. The server guarantees that a
3812  // request doesn't result in creation of duplicate commitments for at least 60
3813  // minutes.
3814  //
3815  // For example, consider a situation where you make an initial request and the
3816  // request times out. If you make the request again with the same request
3817  // ID, the server can check if original operation with the same request ID
3818  // was received, and if so, will ignore the second request. This prevents
3819  // clients from accidentally creating duplicate commitments.
3820  //
3821  // The request ID must be a valid UUID with the exception that zero UUID is
3822  // not supported (00000000-0000-0000-0000-000000000000).
3823  string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
3824}
3825
3826// Request message for
3827// [VmwareEngine.GetDnsBindPermission][google.cloud.vmwareengine.v1.VmwareEngine.GetDnsBindPermission]
3828message GetDnsBindPermissionRequest {
3829  // Required. The name of the resource which stores the users/service accounts
3830  // having the permission to bind to the corresponding intranet VPC of the
3831  // consumer project. DnsBindPermission is a global resource. Resource names
3832  // are schemeless URIs that follow the conventions in
3833  // https://cloud.google.com/apis/design/resource_names. For example:
3834  // `projects/my-project/locations/global/dnsBindPermission`
3835  string name = 1 [
3836    (google.api.field_behavior) = REQUIRED,
3837    (google.api.resource_reference) = {
3838      type: "vmwareengine.googleapis.com/DnsBindPermission"
3839    }
3840  ];
3841}
3842