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/api/field_behavior.proto"; 20import "google/api/resource.proto"; 21import "google/protobuf/timestamp.proto"; 22 23option csharp_namespace = "Google.Cloud.VmwareEngine.V1"; 24option go_package = "cloud.google.com/go/vmwareengine/apiv1/vmwareenginepb;vmwareenginepb"; 25option java_multiple_files = true; 26option java_outer_classname = "VmwareengineResourcesProto"; 27option java_package = "com.google.cloud.vmwareengine.v1"; 28option php_namespace = "Google\\Cloud\\VmwareEngine\\V1"; 29option ruby_package = "Google::Cloud::VmwareEngine::V1"; 30 31// Network configuration in the consumer project 32// with which the peering has to be done. 33message NetworkConfig { 34 // Required. Management CIDR used by VMware management appliances. 35 string management_cidr = 4 [(google.api.field_behavior) = REQUIRED]; 36 37 // Optional. The relative resource name of the VMware Engine network attached 38 // to the private cloud. Specify the name in the following form: 39 // `projects/{project}/locations/{location}/vmwareEngineNetworks/{vmware_engine_network_id}` 40 // where `{project}` can either be a project number or a project ID. 41 string vmware_engine_network = 5 [ 42 (google.api.field_behavior) = OPTIONAL, 43 (google.api.resource_reference) = { 44 type: "vmwareengine.googleapis.com/VmwareEngineNetwork" 45 } 46 ]; 47 48 // Output only. The canonical name of the VMware Engine network in the form: 49 // `projects/{project_number}/locations/{location}/vmwareEngineNetworks/{vmware_engine_network_id}` 50 string vmware_engine_network_canonical = 6 [ 51 (google.api.field_behavior) = OUTPUT_ONLY, 52 (google.api.resource_reference) = { 53 type: "vmwareengine.googleapis.com/VmwareEngineNetwork" 54 } 55 ]; 56 57 // Output only. The IP address layout version of the management IP address 58 // range. Possible versions include: 59 // * `managementIpAddressLayoutVersion=1`: Indicates the legacy IP address 60 // layout used by some existing private clouds. This is no longer supported 61 // for new private clouds as it does not support all features. 62 // * `managementIpAddressLayoutVersion=2`: Indicates the latest IP address 63 // layout used by all newly created private clouds. This version supports all 64 // current features. 65 int32 management_ip_address_layout_version = 8 66 [(google.api.field_behavior) = OUTPUT_ONLY]; 67 68 // Output only. DNS Server IP of the Private Cloud. 69 // All DNS queries can be forwarded to this address for name resolution of 70 // Private Cloud's management entities like vCenter, NSX-T Manager and 71 // ESXi hosts. 72 string dns_server_ip = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; 73} 74 75// Information about the type and number of nodes associated with the cluster. 76message NodeTypeConfig { 77 // Required. The number of nodes of this type in the cluster 78 int32 node_count = 1 [(google.api.field_behavior) = REQUIRED]; 79 80 // Optional. Customized number of cores available to each node of the type. 81 // This number must always be one of `nodeType.availableCustomCoreCounts`. 82 // If zero is provided max value from `nodeType.availableCustomCoreCounts` 83 // will be used. 84 int32 custom_core_count = 2 [(google.api.field_behavior) = OPTIONAL]; 85} 86 87// Configuration of a stretched cluster. 88message StretchedClusterConfig { 89 // Required. Zone that will remain operational when connection between the two 90 // zones is lost. Specify the resource name of a zone that belongs to the 91 // region of the private cloud. For example: 92 // `projects/{project}/locations/europe-west3-a` where `{project}` can either 93 // be a project number or a project ID. 94 string preferred_location = 1 [ 95 (google.api.field_behavior) = REQUIRED, 96 (google.api.resource_reference) = { 97 type: "locations.googleapis.com/Location" 98 } 99 ]; 100 101 // Required. Additional zone for a higher level of availability and load 102 // balancing. Specify the resource name of a zone that belongs to the region 103 // of the private cloud. For example: 104 // `projects/{project}/locations/europe-west3-b` where `{project}` can either 105 // be a project number or a project ID. 106 string secondary_location = 2 [ 107 (google.api.field_behavior) = REQUIRED, 108 (google.api.resource_reference) = { 109 type: "locations.googleapis.com/Location" 110 } 111 ]; 112} 113 114// Represents a private cloud resource. Private clouds of type `STANDARD` and 115// `TIME_LIMITED` are zonal resources, `STRETCHED` private clouds are 116// regional. 117message PrivateCloud { 118 option (google.api.resource) = { 119 type: "vmwareengine.googleapis.com/PrivateCloud" 120 pattern: "projects/{project}/locations/{location}/privateClouds/{private_cloud}" 121 }; 122 123 // Enum State defines possible states of private clouds. 124 enum State { 125 // The default value. This value should never be used. 126 STATE_UNSPECIFIED = 0; 127 128 // The private cloud is ready. 129 ACTIVE = 1; 130 131 // The private cloud is being created. 132 CREATING = 2; 133 134 // The private cloud is being updated. 135 UPDATING = 3; 136 137 // The private cloud is in failed state. 138 FAILED = 5; 139 140 // The private cloud is scheduled for deletion. The deletion process can be 141 // cancelled by using the corresponding undelete method. 142 DELETED = 6; 143 144 // The private cloud is irreversibly deleted and is being removed from the 145 // system. 146 PURGING = 7; 147 } 148 149 // Management cluster configuration. 150 message ManagementCluster { 151 // Required. The user-provided identifier of the new `Cluster`. 152 // The identifier must meet the following requirements: 153 // 154 // * Only contains 1-63 alphanumeric characters and hyphens 155 // * Begins with an alphabetical character 156 // * Ends with a non-hyphen character 157 // * Not formatted as a UUID 158 // * Complies with [RFC 159 // 1034](https://datatracker.ietf.org/doc/html/rfc1034) (section 3.5) 160 string cluster_id = 1 [(google.api.field_behavior) = REQUIRED]; 161 162 // Required. The map of cluster node types in this cluster, where the key is 163 // canonical identifier of the node type (corresponds to the `NodeType`). 164 map<string, NodeTypeConfig> node_type_configs = 7 165 [(google.api.field_behavior) = REQUIRED]; 166 167 // Optional. Configuration of a stretched cluster. Required for STRETCHED 168 // private clouds. 169 StretchedClusterConfig stretched_cluster_config = 8 170 [(google.api.field_behavior) = OPTIONAL]; 171 } 172 173 // Enum Type defines private cloud type. 174 enum Type { 175 // Standard private is a zonal resource, with 3+ nodes. Default type. 176 STANDARD = 0; 177 178 // Time limited private cloud is a zonal resource, can have only 1 node and 179 // has limited life span. Will be deleted after defined period of time, 180 // can be converted into standard private cloud by expanding it up to 3 181 // or more nodes. 182 TIME_LIMITED = 1; 183 184 // Stretched private cloud is a regional resource with redundancy, 185 // with a minimum of 6 nodes, nodes count has to be even. 186 STRETCHED = 2; 187 } 188 189 // Output only. The resource name of this private cloud. 190 // Resource names are schemeless URIs that follow the conventions in 191 // https://cloud.google.com/apis/design/resource_names. 192 // For example: 193 // `projects/my-project/locations/us-central1-a/privateClouds/my-cloud` 194 string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 195 196 // Output only. Creation time of this resource. 197 google.protobuf.Timestamp create_time = 2 198 [(google.api.field_behavior) = OUTPUT_ONLY]; 199 200 // Output only. Last update time of this resource. 201 google.protobuf.Timestamp update_time = 3 202 [(google.api.field_behavior) = OUTPUT_ONLY]; 203 204 // Output only. Time when the resource was scheduled for deletion. 205 google.protobuf.Timestamp delete_time = 4 206 [(google.api.field_behavior) = OUTPUT_ONLY]; 207 208 // Output only. Time when the resource will be irreversibly deleted. 209 google.protobuf.Timestamp expire_time = 5 210 [(google.api.field_behavior) = OUTPUT_ONLY]; 211 212 // Output only. State of the resource. New values may be added to this enum 213 // when appropriate. 214 State state = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; 215 216 // Required. Network configuration of the private cloud. 217 NetworkConfig network_config = 9 [(google.api.field_behavior) = REQUIRED]; 218 219 // Required. Input only. The management cluster for this private cloud. 220 // This field is required during creation of the private cloud to provide 221 // details for the default cluster. 222 // 223 // The following fields can't be changed after private cloud creation: 224 // `ManagementCluster.clusterId`, `ManagementCluster.nodeTypeId`. 225 ManagementCluster management_cluster = 10 [ 226 (google.api.field_behavior) = INPUT_ONLY, 227 (google.api.field_behavior) = REQUIRED 228 ]; 229 230 // User-provided description for this private cloud. 231 string description = 11; 232 233 // Output only. HCX appliance. 234 Hcx hcx = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; 235 236 // Output only. NSX appliance. 237 Nsx nsx = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; 238 239 // Output only. Vcenter appliance. 240 Vcenter vcenter = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; 241 242 // Output only. System-generated unique identifier for the resource. 243 string uid = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; 244 245 // Optional. Type of the private cloud. Defaults to STANDARD. 246 Type type = 22 [(google.api.field_behavior) = OPTIONAL]; 247} 248 249// A cluster in a private cloud. 250message Cluster { 251 option (google.api.resource) = { 252 type: "vmwareengine.googleapis.com/Cluster" 253 pattern: "projects/{project}/locations/{location}/privateClouds/{private_cloud}/clusters/{cluster}" 254 }; 255 256 // Enum State defines possible states of private cloud clusters. 257 enum State { 258 // The default value. This value should never be used. 259 STATE_UNSPECIFIED = 0; 260 261 // The Cluster is operational and can be used by the user. 262 ACTIVE = 1; 263 264 // The Cluster is being deployed. 265 CREATING = 2; 266 267 // Adding or removing of a node to the cluster, any other cluster specific 268 // updates. 269 UPDATING = 3; 270 271 // The Cluster is being deleted. 272 DELETING = 4; 273 274 // The Cluster is undergoing maintenance, for example: a failed node is 275 // getting replaced. 276 REPAIRING = 5; 277 } 278 279 // Output only. The resource name of this cluster. 280 // Resource names are schemeless URIs that follow the conventions in 281 // https://cloud.google.com/apis/design/resource_names. 282 // For example: 283 // `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/clusters/my-cluster` 284 string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 285 286 // Output only. Creation time of this resource. 287 google.protobuf.Timestamp create_time = 2 288 [(google.api.field_behavior) = OUTPUT_ONLY]; 289 290 // Output only. Last update time of this resource. 291 google.protobuf.Timestamp update_time = 3 292 [(google.api.field_behavior) = OUTPUT_ONLY]; 293 294 // Output only. State of the resource. 295 State state = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; 296 297 // Output only. True if the cluster is a management cluster; false otherwise. 298 // There can only be one management cluster in a private cloud 299 // and it has to be the first one. 300 bool management = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; 301 302 // Output only. System-generated unique identifier for the resource. 303 string uid = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; 304 305 // Required. The map of cluster node types in this cluster, where the key is 306 // canonical identifier of the node type (corresponds to the `NodeType`). 307 map<string, NodeTypeConfig> node_type_configs = 16 308 [(google.api.field_behavior) = REQUIRED]; 309 310 // Optional. Configuration of a stretched cluster. Required for clusters that 311 // belong to a STRETCHED private cloud. 312 StretchedClusterConfig stretched_cluster_config = 17 313 [(google.api.field_behavior) = OPTIONAL]; 314} 315 316// Node in a cluster. 317message Node { 318 option (google.api.resource) = { 319 type: "vmwareengine.googleapis.com/Node" 320 pattern: "projects/{project}/locations/{location}/privateClouds/{private_cloud}/clusters/{cluster}/nodes/{node}" 321 }; 322 323 // Enum State defines possible states of a node in a cluster. 324 enum State { 325 // The default value. This value should never be used. 326 STATE_UNSPECIFIED = 0; 327 328 // Node is operational and can be used by the user. 329 ACTIVE = 1; 330 331 // Node is being provisioned. 332 CREATING = 2; 333 334 // Node is in a failed state. 335 FAILED = 3; 336 337 // Node is undergoing maintenance, e.g.: during private cloud upgrade. 338 UPGRADING = 4; 339 } 340 341 // Output only. The resource name of this node. 342 // Resource names are schemeless URIs that follow the conventions in 343 // https://cloud.google.com/apis/design/resource_names. 344 // For example: 345 // projects/my-project/locations/us-central1-a/privateClouds/my-cloud/clusters/my-cluster/nodes/my-node 346 string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 347 348 // Output only. Fully qualified domain name of the node. 349 string fqdn = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; 350 351 // Output only. Internal IP address of the node. 352 string internal_ip = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; 353 354 // Output only. The canonical identifier of the node type (corresponds to the 355 // `NodeType`). 356 // For example: standard-72. 357 string node_type_id = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; 358 359 // Output only. The version number of the VMware ESXi 360 // management component in this cluster. 361 string version = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; 362 363 // Output only. Customized number of cores 364 int64 custom_core_count = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; 365 366 // Output only. The state of the appliance. 367 State state = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; 368} 369 370// Represents an allocated external IP address and its corresponding internal IP 371// address in a private cloud. 372message ExternalAddress { 373 option (google.api.resource) = { 374 type: "vmwareengine.googleapis.com/ExternalAddress" 375 pattern: "projects/{project}/locations/{location}/privateClouds/{private_cloud}/externalAddresses/{external_address}" 376 }; 377 378 // Enum State defines possible states of external addresses. 379 enum State { 380 // The default value. This value should never be used. 381 STATE_UNSPECIFIED = 0; 382 383 // The address is ready. 384 ACTIVE = 1; 385 386 // The address is being created. 387 CREATING = 2; 388 389 // The address is being updated. 390 UPDATING = 3; 391 392 // The address is being deleted. 393 DELETING = 4; 394 } 395 396 // Output only. The resource name of this external IP address. 397 // Resource names are schemeless URIs that follow the conventions in 398 // https://cloud.google.com/apis/design/resource_names. 399 // For example: 400 // `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/externalAddresses/my-address` 401 string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 402 403 // Output only. Creation time of this resource. 404 google.protobuf.Timestamp create_time = 2 405 [(google.api.field_behavior) = OUTPUT_ONLY]; 406 407 // Output only. Last update time of this resource. 408 google.protobuf.Timestamp update_time = 3 409 [(google.api.field_behavior) = OUTPUT_ONLY]; 410 411 // The internal IP address of a workload VM. 412 string internal_ip = 6; 413 414 // Output only. The external IP address of a workload VM. 415 string external_ip = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; 416 417 // Output only. The state of the resource. 418 State state = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; 419 420 // Output only. System-generated unique identifier for the resource. 421 string uid = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; 422 423 // User-provided description for this resource. 424 string description = 11; 425} 426 427// Subnet in a private cloud. Either `management` subnets (such as vMotion) that 428// are read-only, or `userDefined`, which can also be updated. 429message Subnet { 430 option (google.api.resource) = { 431 type: "vmwareengine.googleapis.com/Subnet" 432 pattern: "projects/{project}/locations/{location}/privateClouds/{private_cloud}/subnets/{subnet}" 433 }; 434 435 // Defines possible states of subnets. 436 enum State { 437 // The default value. This value should never be used. 438 STATE_UNSPECIFIED = 0; 439 440 // The subnet is ready. 441 ACTIVE = 1; 442 443 // The subnet is being created. 444 CREATING = 2; 445 446 // The subnet is being updated. 447 UPDATING = 3; 448 449 // The subnet is being deleted. 450 DELETING = 4; 451 452 // Changes requested in the last operation are being propagated. 453 RECONCILING = 5; 454 455 // Last operation on the subnet did not succeed. Subnet's payload is 456 // reverted back to its most recent working state. 457 FAILED = 6; 458 } 459 460 // Output only. The resource name of this subnet. 461 // Resource names are schemeless URIs that follow the conventions in 462 // https://cloud.google.com/apis/design/resource_names. 463 // For example: 464 // `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/subnets/my-subnet` 465 string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 466 467 // The IP address range of the subnet in CIDR format '10.0.0.0/24'. 468 string ip_cidr_range = 7; 469 470 // The IP address of the gateway of this subnet. 471 // Must fall within the IP prefix defined above. 472 string gateway_ip = 8; 473 474 // Output only. The type of the subnet. For example "management" or 475 // "userDefined". 476 string type = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; 477 478 // Output only. The state of the resource. 479 State state = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; 480 481 // Output only. VLAN ID of the VLAN on which the subnet is configured 482 int32 vlan_id = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; 483} 484 485// External access firewall rules for filtering incoming traffic destined to 486// `ExternalAddress` resources. 487message ExternalAccessRule { 488 option (google.api.resource) = { 489 type: "vmwareengine.googleapis.com/ExternalAccessRule" 490 pattern: "projects/{project}/locations/{location}/networkPolicies/{network_policy}/externalAccessRules/{external_access_rule}" 491 }; 492 493 // Action determines whether the external access rule permits or blocks 494 // traffic, subject to the other components of the rule matching the traffic. 495 enum Action { 496 // Defaults to allow. 497 ACTION_UNSPECIFIED = 0; 498 499 // Allows connections that match the other specified components. 500 ALLOW = 1; 501 502 // Blocks connections that match the other specified components. 503 DENY = 2; 504 } 505 506 // An IP range provided in any one of the supported formats. 507 message IpRange { 508 oneof ip_range { 509 // A single IP address. For example: `10.0.0.5`. 510 string ip_address = 1; 511 512 // An IP address range in the CIDR format. For example: `10.0.0.0/24`. 513 string ip_address_range = 2; 514 515 // The name of an `ExternalAddress` resource. The external address must 516 // have been reserved in the scope of this external access rule's parent 517 // network policy. Provide the external address name in the form of 518 // `projects/{project}/locations/{location}/privateClouds/{private_cloud}/externalAddresses/{external_address}`. 519 // For example: 520 // `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/externalAddresses/my-address`. 521 string external_address = 3 [(google.api.resource_reference) = { 522 type: "vmwareengine.googleapis.com/ExternalAddress" 523 }]; 524 } 525 } 526 527 // Defines possible states of external access firewall rules. 528 enum State { 529 // The default value. This value is used if the state is omitted. 530 STATE_UNSPECIFIED = 0; 531 532 // The rule is ready. 533 ACTIVE = 1; 534 535 // The rule is being created. 536 CREATING = 2; 537 538 // The rule is being updated. 539 UPDATING = 3; 540 541 // The rule is being deleted. 542 DELETING = 4; 543 } 544 545 // Output only. The resource name of this external access rule. 546 // Resource names are schemeless URIs that follow the conventions in 547 // https://cloud.google.com/apis/design/resource_names. 548 // For example: 549 // `projects/my-project/locations/us-central1/networkPolicies/my-policy/externalAccessRules/my-rule` 550 string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 551 552 // Output only. Creation time of this resource. 553 google.protobuf.Timestamp create_time = 2 554 [(google.api.field_behavior) = OUTPUT_ONLY]; 555 556 // Output only. Last update time of this resource. 557 google.protobuf.Timestamp update_time = 3 558 [(google.api.field_behavior) = OUTPUT_ONLY]; 559 560 // User-provided description for this external access rule. 561 string description = 5; 562 563 // External access rule priority, which determines the external access rule to 564 // use when multiple rules apply. If multiple rules have the same priority, 565 // their ordering is non-deterministic. If specific ordering is required, 566 // assign unique priorities to enforce such ordering. The external access rule 567 // priority is an integer from 100 to 4096, both inclusive. Lower integers 568 // indicate higher precedence. For example, a rule with priority `100` has 569 // higher precedence than a rule with priority `101`. 570 int32 priority = 6; 571 572 // The action that the external access rule performs. 573 Action action = 7; 574 575 // The IP protocol to which the external access rule applies. This value can 576 // be one of the following three protocol strings (not case-sensitive): 577 // `tcp`, `udp`, or `icmp`. 578 string ip_protocol = 8; 579 580 // If source ranges are specified, the external access rule applies only to 581 // traffic that has a source IP address in these ranges. These ranges can 582 // either be expressed in the CIDR format or as an IP address. As only inbound 583 // rules are supported, `ExternalAddress` resources cannot be the source IP 584 // addresses of an external access rule. To match all source addresses, 585 // specify `0.0.0.0/0`. 586 repeated IpRange source_ip_ranges = 9; 587 588 // A list of source ports to which the external access rule applies. This 589 // field is only applicable for the UDP or TCP protocol. 590 // Each entry must be either an integer or a range. For example: `["22"]`, 591 // `["80","443"]`, or `["12345-12349"]`. To match all source ports, specify 592 // `["0-65535"]`. 593 repeated string source_ports = 10; 594 595 // If destination ranges are specified, the external access rule applies only 596 // to the traffic that has a destination IP address in these ranges. The 597 // specified IP addresses must have reserved external IP addresses in the 598 // scope of the parent network policy. To match all external IP addresses in 599 // the scope of the parent network policy, specify `0.0.0.0/0`. To match a 600 // specific external IP address, specify it using the 601 // `IpRange.external_address` property. 602 repeated IpRange destination_ip_ranges = 11; 603 604 // A list of destination ports to which the external access rule applies. This 605 // field is only applicable for the UDP or TCP protocol. 606 // Each entry must be either an integer or a range. For example: `["22"]`, 607 // `["80","443"]`, or `["12345-12349"]`. To match all destination ports, 608 // specify `["0-65535"]`. 609 repeated string destination_ports = 12; 610 611 // Output only. The state of the resource. 612 State state = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; 613 614 // Output only. System-generated unique identifier for the resource. 615 string uid = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; 616} 617 618// Logging server to receive vCenter or ESXi logs. 619message LoggingServer { 620 option (google.api.resource) = { 621 type: "vmwareengine.googleapis.com/LoggingServer" 622 pattern: "projects/{project}/locations/{location}/privateClouds/{private_cloud}/loggingServers/{logging_server}" 623 }; 624 625 // Defines possible protocols used to send logs to 626 // a logging server. 627 enum Protocol { 628 // Unspecified communications protocol. This is the default value. 629 PROTOCOL_UNSPECIFIED = 0; 630 631 // UDP 632 UDP = 1; 633 634 // TCP 635 TCP = 2; 636 } 637 638 // Defines possible types of component that produces logs. 639 enum SourceType { 640 // The default value. This value should never be used. 641 SOURCE_TYPE_UNSPECIFIED = 0; 642 643 // Logs produced by ESXI hosts 644 ESXI = 1; 645 646 // Logs produced by vCenter server 647 VCSA = 2; 648 } 649 650 // Output only. The resource name of this logging server. 651 // Resource names are schemeless URIs that follow the conventions in 652 // https://cloud.google.com/apis/design/resource_names. 653 // For example: 654 // `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/loggingServers/my-logging-server` 655 string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 656 657 // Output only. Creation time of this resource. 658 google.protobuf.Timestamp create_time = 2 659 [(google.api.field_behavior) = OUTPUT_ONLY]; 660 661 // Output only. Last update time of this resource. 662 google.protobuf.Timestamp update_time = 3 663 [(google.api.field_behavior) = OUTPUT_ONLY]; 664 665 // Required. Fully-qualified domain name (FQDN) or IP Address of the logging 666 // server. 667 string hostname = 5 [(google.api.field_behavior) = REQUIRED]; 668 669 // Required. Port number at which the logging server receives logs. 670 int32 port = 7 [(google.api.field_behavior) = REQUIRED]; 671 672 // Required. Protocol used by vCenter to send logs to a logging server. 673 Protocol protocol = 6 [(google.api.field_behavior) = REQUIRED]; 674 675 // Required. The type of component that produces logs that will be forwarded 676 // to this logging server. 677 SourceType source_type = 10 [(google.api.field_behavior) = REQUIRED]; 678 679 // Output only. System-generated unique identifier for the resource. 680 string uid = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; 681} 682 683// Describes node type. 684message NodeType { 685 option (google.api.resource) = { 686 type: "vmwareengine.googleapis.com/NodeType" 687 pattern: "projects/{project}/locations/{location}/nodeTypes/{node_type}" 688 }; 689 690 // Enum Kind defines possible types of a NodeType. 691 enum Kind { 692 // The default value. This value should never be used. 693 KIND_UNSPECIFIED = 0; 694 695 // Standard HCI node. 696 STANDARD = 1; 697 698 // Storage only Node. 699 STORAGE_ONLY = 2; 700 } 701 702 // Capability of a node type. 703 enum Capability { 704 // The default value. This value is used if the capability is omitted or 705 // unknown. 706 CAPABILITY_UNSPECIFIED = 0; 707 708 // This node type supports stretch clusters. 709 STRETCHED_CLUSTERS = 1; 710 } 711 712 // Output only. The resource name of this node type. 713 // Resource names are schemeless URIs that follow the conventions in 714 // https://cloud.google.com/apis/design/resource_names. 715 // For example: 716 // `projects/my-proj/locations/us-central1-a/nodeTypes/standard-72` 717 string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 718 719 // Output only. The canonical identifier of the node type 720 // (corresponds to the `NodeType`). For example: standard-72. 721 string node_type_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; 722 723 // Output only. The friendly name for this node type. 724 // For example: ve1-standard-72 725 string display_name = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; 726 727 // Output only. The total number of virtual CPUs in a single node. 728 int32 virtual_cpu_count = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; 729 730 // Output only. The total number of CPU cores in a single node. 731 int32 total_core_count = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; 732 733 // Output only. The amount of physical memory available, defined in GB. 734 int32 memory_gb = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; 735 736 // Output only. The amount of storage available, defined in GB. 737 int32 disk_size_gb = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; 738 739 // Output only. List of possible values of custom core count. 740 repeated int32 available_custom_core_counts = 11 741 [(google.api.field_behavior) = OUTPUT_ONLY]; 742 743 // Output only. The type of the resource. 744 Kind kind = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; 745 746 // Output only. Families of the node type. 747 // For node types to be in the same cluster 748 // they must share at least one element in the `families`. 749 repeated string families = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; 750 751 // Output only. Capabilities of this node type. 752 repeated Capability capabilities = 14 753 [(google.api.field_behavior) = OUTPUT_ONLY]; 754} 755 756// Credentials for a private cloud. 757message Credentials { 758 // Initial username. 759 string username = 1; 760 761 // Initial password. 762 string password = 2; 763} 764 765// HCX activation key. A default key is created during 766// private cloud provisioning, but this behavior is subject to change 767// and you should always verify active keys. 768// Use 769// [VmwareEngine.ListHcxActivationKeys][google.cloud.vmwareengine.v1.VmwareEngine.ListHcxActivationKeys] 770// to retrieve existing keys and 771// [VmwareEngine.CreateHcxActivationKey][google.cloud.vmwareengine.v1.VmwareEngine.CreateHcxActivationKey] 772// to create new ones. 773message HcxActivationKey { 774 option (google.api.resource) = { 775 type: "vmwareengine.googleapis.com/HcxActivationKey" 776 pattern: "projects/{project}/locations/{location}/privateClouds/{private_cloud}/hcxActivationKeys/{hcx_activation_key}" 777 }; 778 779 // State of HCX activation key 780 enum State { 781 // Unspecified state. 782 STATE_UNSPECIFIED = 0; 783 784 // State of a newly generated activation key. 785 AVAILABLE = 1; 786 787 // State of key when it has been used to activate HCX appliance. 788 CONSUMED = 2; 789 790 // State of key when it is being created. 791 CREATING = 3; 792 } 793 794 // Output only. The resource name of this HcxActivationKey. 795 // Resource names are schemeless URIs that follow the conventions in 796 // https://cloud.google.com/apis/design/resource_names. 797 // For example: 798 // `projects/my-project/locations/us-central1/privateClouds/my-cloud/hcxActivationKeys/my-key` 799 string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 800 801 // Output only. Creation time of HCX activation key. 802 google.protobuf.Timestamp create_time = 2 803 [(google.api.field_behavior) = OUTPUT_ONLY]; 804 805 // Output only. State of HCX activation key. 806 State state = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; 807 808 // Output only. HCX activation key. 809 string activation_key = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; 810 811 // Output only. System-generated unique identifier for the resource. 812 string uid = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; 813} 814 815// Details about a HCX Cloud Manager appliance. 816message Hcx { 817 // State of the appliance 818 enum State { 819 // Unspecified appliance state. This is the default value. 820 STATE_UNSPECIFIED = 0; 821 822 // The appliance is operational and can be used. 823 ACTIVE = 1; 824 825 // The appliance is being deployed. 826 CREATING = 2; 827 } 828 829 // Internal IP address of the appliance. 830 string internal_ip = 2; 831 832 // Version of the appliance. 833 string version = 4; 834 835 // Output only. The state of the appliance. 836 State state = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; 837 838 // Fully qualified domain name of the appliance. 839 string fqdn = 6; 840} 841 842// Details about a NSX Manager appliance. 843message Nsx { 844 // State of the appliance 845 enum State { 846 // Unspecified appliance state. This is the default value. 847 STATE_UNSPECIFIED = 0; 848 849 // The appliance is operational and can be used. 850 ACTIVE = 1; 851 852 // The appliance is being deployed. 853 CREATING = 2; 854 } 855 856 // Internal IP address of the appliance. 857 string internal_ip = 2; 858 859 // Version of the appliance. 860 string version = 4; 861 862 // Output only. The state of the appliance. 863 State state = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; 864 865 // Fully qualified domain name of the appliance. 866 string fqdn = 6; 867} 868 869// Details about a vCenter Server management appliance. 870message Vcenter { 871 // State of the appliance 872 enum State { 873 // Unspecified appliance state. This is the default value. 874 STATE_UNSPECIFIED = 0; 875 876 // The appliance is operational and can be used. 877 ACTIVE = 1; 878 879 // The appliance is being deployed. 880 CREATING = 2; 881 } 882 883 // Internal IP address of the appliance. 884 string internal_ip = 2; 885 886 // Version of the appliance. 887 string version = 4; 888 889 // Output only. The state of the appliance. 890 State state = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; 891 892 // Fully qualified domain name of the appliance. 893 string fqdn = 6; 894} 895 896// DNS forwarding config. 897// This config defines a list of domain to name server mappings, 898// and is attached to the private cloud for custom domain resolution. 899message DnsForwarding { 900 option (google.api.resource) = { 901 type: "vmwareengine.googleapis.com/DnsForwarding" 902 pattern: "projects/{project}/locations/{location}/privateClouds/{private_cloud}/dnsForwarding" 903 }; 904 905 // A forwarding rule is a mapping of a `domain` to `name_servers`. 906 // This mapping allows VMware Engine to resolve domains for attached private 907 // clouds by forwarding DNS requests for a given domain to the specified 908 // nameservers. 909 message ForwardingRule { 910 // Required. Domain used to resolve a `name_servers` list. 911 string domain = 1 [(google.api.field_behavior) = REQUIRED]; 912 913 // Required. List of DNS servers to use for domain resolution 914 repeated string name_servers = 2 [(google.api.field_behavior) = REQUIRED]; 915 } 916 917 // Output only. The resource name of this DNS profile. 918 // Resource names are schemeless URIs that follow the conventions in 919 // https://cloud.google.com/apis/design/resource_names. 920 // For example: 921 // `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/dnsForwarding` 922 string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 923 924 // Output only. Creation time of this resource. 925 google.protobuf.Timestamp create_time = 2 926 [(google.api.field_behavior) = OUTPUT_ONLY]; 927 928 // Output only. Last update time of this resource. 929 google.protobuf.Timestamp update_time = 3 930 [(google.api.field_behavior) = OUTPUT_ONLY]; 931 932 // Required. List of domain mappings to configure 933 repeated ForwardingRule forwarding_rules = 4 934 [(google.api.field_behavior) = REQUIRED]; 935} 936 937// Details of a network peering. 938message NetworkPeering { 939 option (google.api.resource) = { 940 type: "vmwareengine.googleapis.com/NetworkPeering" 941 pattern: "projects/{project}/locations/{location}/networkPeerings/{network_peering}" 942 }; 943 944 // Possible states of a network peering. 945 enum State { 946 // Unspecified network peering state. This is the default value. 947 STATE_UNSPECIFIED = 0; 948 949 // The peering is not active. 950 INACTIVE = 1; 951 952 // The peering is active. 953 ACTIVE = 2; 954 955 // The peering is being created. 956 CREATING = 3; 957 958 // The peering is being deleted. 959 DELETING = 4; 960 } 961 962 // Type or purpose of the network peering connection. 963 enum PeerNetworkType { 964 // Unspecified 965 PEER_NETWORK_TYPE_UNSPECIFIED = 0; 966 967 // Peering connection used for connecting to another VPC network established 968 // by the same user. For example, a peering connection to another VPC 969 // network in the same project or to an on-premises network. 970 STANDARD = 1; 971 972 // Peering connection used for connecting to another VMware Engine network. 973 VMWARE_ENGINE_NETWORK = 2; 974 975 // Peering connection used for establishing [private services 976 // access](https://cloud.google.com/vpc/docs/private-services-access). 977 PRIVATE_SERVICES_ACCESS = 3; 978 979 // Peering connection used for connecting to NetApp Cloud Volumes. 980 NETAPP_CLOUD_VOLUMES = 4; 981 982 // Peering connection used for connecting to third-party services. Most 983 // third-party services require manual setup of reverse peering on the VPC 984 // network associated with the third-party service. 985 THIRD_PARTY_SERVICE = 5; 986 987 // Peering connection used for connecting to Dell PowerScale Filers 988 DELL_POWERSCALE = 6; 989 } 990 991 // Output only. The resource name of the network peering. NetworkPeering is a 992 // global resource and location can only be global. Resource names are 993 // scheme-less URIs that follow the conventions in 994 // https://cloud.google.com/apis/design/resource_names. 995 // For example: 996 // `projects/my-project/locations/global/networkPeerings/my-peering` 997 string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 998 999 // Output only. Creation time of this resource. 1000 google.protobuf.Timestamp create_time = 2 1001 [(google.api.field_behavior) = OUTPUT_ONLY]; 1002 1003 // Output only. Last update time of this resource. 1004 google.protobuf.Timestamp update_time = 3 1005 [(google.api.field_behavior) = OUTPUT_ONLY]; 1006 1007 // Required. The relative resource name of the network to peer with 1008 // a standard VMware Engine network. The provided network can be a 1009 // consumer VPC network or another standard VMware Engine network. If the 1010 // `peer_network_type` is VMWARE_ENGINE_NETWORK, specify the name in the form: 1011 // `projects/{project}/locations/global/vmwareEngineNetworks/{vmware_engine_network_id}`. 1012 // Otherwise specify the name in the form: 1013 // `projects/{project}/global/networks/{network_id}`, where 1014 // `{project}` can either be a project number or a project ID. 1015 string peer_network = 5 [(google.api.field_behavior) = REQUIRED]; 1016 1017 // Optional. True if custom routes are exported to the peered network; 1018 // false otherwise. The default value is true. 1019 optional bool export_custom_routes = 8 1020 [(google.api.field_behavior) = OPTIONAL]; 1021 1022 // Optional. True if custom routes are imported from the peered network; 1023 // false otherwise. The default value is true. 1024 optional bool import_custom_routes = 9 1025 [(google.api.field_behavior) = OPTIONAL]; 1026 1027 // Optional. True if full mesh connectivity is created and managed 1028 // automatically between peered networks; false otherwise. Currently this 1029 // field is always true because Google Compute Engine automatically creates 1030 // and manages subnetwork routes between two VPC networks when peering state 1031 // is 'ACTIVE'. 1032 optional bool exchange_subnet_routes = 10 1033 [(google.api.field_behavior) = OPTIONAL]; 1034 1035 // Optional. True if all subnet routes with a public IP address range are 1036 // exported; false otherwise. The default value is true. IPv4 special-use 1037 // ranges (https://en.wikipedia.org/wiki/IPv4#Special_addresses) are always 1038 // exported to peers and are not controlled by this field. 1039 optional bool export_custom_routes_with_public_ip = 11 1040 [(google.api.field_behavior) = OPTIONAL]; 1041 1042 // Optional. True if all subnet routes with public IP address range are 1043 // imported; false otherwise. The default value is true. IPv4 special-use 1044 // ranges (https://en.wikipedia.org/wiki/IPv4#Special_addresses) are always 1045 // imported to peers and are not controlled by this field. 1046 optional bool import_custom_routes_with_public_ip = 12 1047 [(google.api.field_behavior) = OPTIONAL]; 1048 1049 // Output only. State of the network peering. This field 1050 // has a value of 'ACTIVE' when there's a matching configuration in the peer 1051 // network. New values may be added to this enum when appropriate. 1052 State state = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; 1053 1054 // Output only. Output Only. Details about the current state of the network 1055 // peering. 1056 string state_details = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; 1057 1058 // Optional. Maximum transmission unit (MTU) in bytes. 1059 // The default value is `1500`. If a value of `0` is provided for this field, 1060 // VMware Engine uses the default value instead. 1061 int32 peer_mtu = 14 [(google.api.field_behavior) = OPTIONAL]; 1062 1063 // Required. The type of the network to peer with the VMware Engine network. 1064 PeerNetworkType peer_network_type = 16 1065 [(google.api.field_behavior) = REQUIRED]; 1066 1067 // Output only. System-generated unique identifier for the resource. 1068 string uid = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; 1069 1070 // Required. The relative resource name of the VMware Engine network. 1071 // Specify the name in the following form: 1072 // `projects/{project}/locations/{location}/vmwareEngineNetworks/{vmware_engine_network_id}` 1073 // where `{project}` can either be a project number or a project ID. 1074 string vmware_engine_network = 20 [ 1075 (google.api.field_behavior) = REQUIRED, 1076 (google.api.resource_reference) = { 1077 type: "vmwareengine.googleapis.com/VmwareEngineNetwork" 1078 } 1079 ]; 1080 1081 // Optional. User-provided description for this network peering. 1082 string description = 21 [(google.api.field_behavior) = OPTIONAL]; 1083} 1084 1085// Exchanged network peering route. 1086message PeeringRoute { 1087 // The type of the peering route. 1088 enum Type { 1089 // Unspecified peering route type. This is the default value. 1090 TYPE_UNSPECIFIED = 0; 1091 1092 // Dynamic routes in the peer network. 1093 DYNAMIC_PEERING_ROUTE = 1; 1094 1095 // Static routes in the peer network. 1096 STATIC_PEERING_ROUTE = 2; 1097 1098 // Created, updated, and removed automatically by Google Cloud when subnets 1099 // are created, modified, or deleted in the peer network. 1100 SUBNET_PEERING_ROUTE = 3; 1101 } 1102 1103 // The direction of the exchanged routes. 1104 enum Direction { 1105 // Unspecified exchanged routes direction. This is default. 1106 DIRECTION_UNSPECIFIED = 0; 1107 1108 // Routes imported from the peer network. 1109 INCOMING = 1; 1110 1111 // Routes exported to the peer network. 1112 OUTGOING = 2; 1113 } 1114 1115 // Output only. Destination range of the peering route in CIDR notation. 1116 string dest_range = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 1117 1118 // Output only. Type of the route in the peer VPC network. 1119 Type type = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; 1120 1121 // Output only. Region containing the next hop of the peering route. This 1122 // field only applies to dynamic routes in the peer VPC network. 1123 string next_hop_region = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; 1124 1125 // Output only. The priority of the peering route. 1126 int64 priority = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; 1127 1128 // Output only. True if the peering route has been imported from a peered 1129 // VPC network; false otherwise. The import happens if the field 1130 // `NetworkPeering.importCustomRoutes` is true for this network, 1131 // `NetworkPeering.exportCustomRoutes` is true for the peer VPC network, and 1132 // the import does not result in a route conflict. 1133 bool imported = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; 1134 1135 // Output only. Direction of the routes exchanged with the peer network, from 1136 // the VMware Engine network perspective: 1137 // 1138 // * Routes of direction `INCOMING` are imported from the peer network. 1139 // * Routes of direction `OUTGOING` are exported from the intranet VPC network 1140 // of the VMware Engine network. 1141 Direction direction = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; 1142} 1143 1144// Represents a network policy resource. Network policies are regional 1145// resources. You can use a network policy to enable or disable internet access 1146// and external IP access. Network policies are associated with a VMware Engine 1147// network, which might span across regions. For a given region, a network 1148// policy applies to all private clouds in the VMware Engine network associated 1149// with the policy. 1150message NetworkPolicy { 1151 option (google.api.resource) = { 1152 type: "vmwareengine.googleapis.com/NetworkPolicy" 1153 pattern: "projects/{project}/locations/{location}/networkPolicies/{network_policy}" 1154 }; 1155 1156 // Represents a network service that is managed by a `NetworkPolicy` resource. 1157 // A network service provides a way to control an aspect of external access to 1158 // VMware workloads. For example, whether the VMware workloads in the 1159 // private clouds governed by a network policy can access or be accessed from 1160 // the internet. 1161 message NetworkService { 1162 // Enum State defines possible states of a network policy controlled 1163 // service. 1164 enum State { 1165 // Unspecified service state. This is the default value. 1166 STATE_UNSPECIFIED = 0; 1167 1168 // Service is not provisioned. 1169 UNPROVISIONED = 1; 1170 1171 // Service is in the process of being provisioned/deprovisioned. 1172 RECONCILING = 2; 1173 1174 // Service is active. 1175 ACTIVE = 3; 1176 } 1177 1178 // True if the service is enabled; false otherwise. 1179 bool enabled = 1; 1180 1181 // Output only. State of the service. New values may be added to this enum 1182 // when appropriate. 1183 State state = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; 1184 } 1185 1186 // Output only. The resource name of this network policy. 1187 // Resource names are schemeless URIs that follow the conventions in 1188 // https://cloud.google.com/apis/design/resource_names. 1189 // For example: 1190 // `projects/my-project/locations/us-central1/networkPolicies/my-network-policy` 1191 string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 1192 1193 // Output only. Creation time of this resource. 1194 google.protobuf.Timestamp create_time = 2 1195 [(google.api.field_behavior) = OUTPUT_ONLY]; 1196 1197 // Output only. Last update time of this resource. 1198 google.protobuf.Timestamp update_time = 3 1199 [(google.api.field_behavior) = OUTPUT_ONLY]; 1200 1201 // Network service that allows VMware workloads to access the internet. 1202 NetworkService internet_access = 6; 1203 1204 // Network service that allows External IP addresses to be assigned to VMware 1205 // workloads. This service can only be enabled when `internet_access` is also 1206 // enabled. 1207 NetworkService external_ip = 7; 1208 1209 // Required. IP address range in CIDR notation used to create internet access 1210 // and external IP access. An RFC 1918 CIDR block, with a "/26" prefix, is 1211 // required. The range cannot overlap with any prefixes either in the consumer 1212 // VPC network or in use by the private clouds attached to that VPC network. 1213 string edge_services_cidr = 9 [(google.api.field_behavior) = REQUIRED]; 1214 1215 // Output only. System-generated unique identifier for the resource. 1216 string uid = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; 1217 1218 // Optional. The relative resource name of the VMware Engine network. 1219 // Specify the name in the following form: 1220 // `projects/{project}/locations/{location}/vmwareEngineNetworks/{vmware_engine_network_id}` 1221 // where `{project}` can either be a project number or a project ID. 1222 string vmware_engine_network = 12 [ 1223 (google.api.field_behavior) = OPTIONAL, 1224 (google.api.resource_reference) = { 1225 type: "vmwareengine.googleapis.com/VmwareEngineNetwork" 1226 } 1227 ]; 1228 1229 // Optional. User-provided description for this network policy. 1230 string description = 13 [(google.api.field_behavior) = OPTIONAL]; 1231 1232 // Output only. The canonical name of the VMware Engine network in the form: 1233 // `projects/{project_number}/locations/{location}/vmwareEngineNetworks/{vmware_engine_network_id}` 1234 string vmware_engine_network_canonical = 14 [ 1235 (google.api.field_behavior) = OUTPUT_ONLY, 1236 (google.api.resource_reference) = { 1237 type: "vmwareengine.googleapis.com/VmwareEngineNetwork" 1238 } 1239 ]; 1240} 1241 1242// Represents a binding between a network and the management DNS zone. 1243// A management DNS zone is the Cloud DNS cross-project binding zone that 1244// VMware Engine creates for each private cloud. It contains FQDNs and 1245// corresponding IP addresses for the private cloud's ESXi hosts and management 1246// VM appliances like vCenter and NSX Manager. 1247message ManagementDnsZoneBinding { 1248 option (google.api.resource) = { 1249 type: "vmwareengine.googleapis.com/ManagementDnsZoneBinding" 1250 pattern: "projects/{project}/locations/{location}/privateClouds/{private_cloud}/managementDnsZoneBindings/{management_dns_zone_binding}" 1251 }; 1252 1253 // Enum State defines possible states of binding between the consumer VPC 1254 // network and the management DNS zone. 1255 enum State { 1256 // The default value. This value should never be used. 1257 STATE_UNSPECIFIED = 0; 1258 1259 // The binding is ready. 1260 ACTIVE = 1; 1261 1262 // The binding is being created. 1263 CREATING = 2; 1264 1265 // The binding is being updated. 1266 UPDATING = 3; 1267 1268 // The binding is being deleted. 1269 DELETING = 4; 1270 1271 // The binding has failed. 1272 FAILED = 5; 1273 } 1274 1275 // Output only. The resource name of this binding. 1276 // Resource names are schemeless URIs that follow the conventions in 1277 // https://cloud.google.com/apis/design/resource_names. 1278 // For example: 1279 // `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/managementDnsZoneBindings/my-management-dns-zone-binding` 1280 string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 1281 1282 // Output only. Creation time of this resource. 1283 google.protobuf.Timestamp create_time = 2 1284 [(google.api.field_behavior) = OUTPUT_ONLY]; 1285 1286 // Output only. Last update time of this resource. 1287 google.protobuf.Timestamp update_time = 3 1288 [(google.api.field_behavior) = OUTPUT_ONLY]; 1289 1290 // Output only. The state of the resource. 1291 State state = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; 1292 1293 // User-provided description for this resource. 1294 string description = 13; 1295 1296 // Required. The relative resource name of the network to bind to the 1297 // management DNS zone. This network can be a consumer VPC network or a 1298 // VMware engine network. 1299 oneof bind_network { 1300 // Network to bind is a standard consumer VPC. 1301 // Specify the name in the following form for consumer 1302 // VPC network: `projects/{project}/global/networks/{network_id}`. 1303 // `{project}` can either be a project number or a project ID. 1304 string vpc_network = 14 [(google.api.resource_reference) = { 1305 type: "compute.googleapis.com/Network" 1306 }]; 1307 1308 // Network to bind is a VMware Engine network. 1309 // Specify the name in the following form for VMware engine network: 1310 // `projects/{project}/locations/global/vmwareEngineNetworks/{vmware_engine_network_id}`. 1311 // `{project}` can either be a project number or a project ID. 1312 string vmware_engine_network = 15 [(google.api.resource_reference) = { 1313 type: "vmwareengine.googleapis.com/VmwareEngineNetwork" 1314 }]; 1315 } 1316 1317 // Output only. System-generated unique identifier for the resource. 1318 string uid = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; 1319} 1320 1321// VMware Engine network resource that provides connectivity for VMware Engine 1322// private clouds. 1323message VmwareEngineNetwork { 1324 option (google.api.resource) = { 1325 type: "vmwareengine.googleapis.com/VmwareEngineNetwork" 1326 pattern: "projects/{project}/locations/{location}/vmwareEngineNetworks/{vmware_engine_network}" 1327 }; 1328 1329 // Represents a VMware Engine VPC network that is managed by a 1330 // VMware Engine network resource. 1331 message VpcNetwork { 1332 // Enum Type defines possible types of a VMware Engine network controlled 1333 // service. 1334 enum Type { 1335 // The default value. This value should never be used. 1336 TYPE_UNSPECIFIED = 0; 1337 1338 // VPC network that will be peered with a consumer VPC network or the 1339 // intranet VPC of another VMware Engine network. Access a private cloud 1340 // through Compute Engine VMs on a peered VPC network or an on-premises 1341 // resource connected to a peered consumer VPC network. 1342 INTRANET = 1; 1343 1344 // VPC network used for internet access to and from a private cloud. 1345 INTERNET = 2; 1346 1347 // VPC network used for access to Google Cloud services like 1348 // Cloud Storage. 1349 GOOGLE_CLOUD = 3; 1350 } 1351 1352 // Output only. Type of VPC network (INTRANET, INTERNET, or 1353 // GOOGLE_CLOUD) 1354 Type type = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 1355 1356 // Output only. The relative resource name of the service VPC network this 1357 // VMware Engine network is attached to. For example: 1358 // `projects/123123/global/networks/my-network` 1359 string network = 2 [ 1360 (google.api.field_behavior) = OUTPUT_ONLY, 1361 (google.api.resource_reference) = { 1362 type: "compute.googleapis.com/Network" 1363 } 1364 ]; 1365 } 1366 1367 // Enum State defines possible states of VMware Engine network. 1368 enum State { 1369 // The default value. This value is used if the state is omitted. 1370 STATE_UNSPECIFIED = 0; 1371 1372 // The VMware Engine network is being created. 1373 CREATING = 1; 1374 1375 // The VMware Engine network is ready. 1376 ACTIVE = 2; 1377 1378 // The VMware Engine network is being updated. 1379 UPDATING = 3; 1380 1381 // The VMware Engine network is being deleted. 1382 DELETING = 4; 1383 } 1384 1385 // Enum Type defines possible types of VMware Engine network. 1386 enum Type { 1387 // The default value. This value should never be used. 1388 TYPE_UNSPECIFIED = 0; 1389 1390 // Network type used by private clouds created in projects without a network 1391 // of type `STANDARD`. This network type is no longer used for new VMware 1392 // Engine private cloud deployments. 1393 LEGACY = 1; 1394 1395 // Standard network type used for private cloud connectivity. 1396 STANDARD = 2; 1397 } 1398 1399 // Output only. The resource name of the VMware Engine network. 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/global/vmwareEngineNetworks/my-network` 1404 string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 1405 1406 // Output only. Creation time of this resource. 1407 google.protobuf.Timestamp create_time = 2 1408 [(google.api.field_behavior) = OUTPUT_ONLY]; 1409 1410 // Output only. Last update time of this resource. 1411 google.protobuf.Timestamp update_time = 3 1412 [(google.api.field_behavior) = OUTPUT_ONLY]; 1413 1414 // User-provided description for this VMware Engine network. 1415 string description = 5; 1416 1417 // Output only. VMware Engine service VPC networks that provide connectivity 1418 // from a private cloud to customer projects, the internet, and other Google 1419 // Cloud services. 1420 repeated VpcNetwork vpc_networks = 6 1421 [(google.api.field_behavior) = OUTPUT_ONLY]; 1422 1423 // Output only. State of the VMware Engine network. 1424 State state = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; 1425 1426 // Required. VMware Engine network type. 1427 Type type = 8 [(google.api.field_behavior) = REQUIRED]; 1428 1429 // Output only. System-generated unique identifier for the resource. 1430 string uid = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; 1431 1432 // Checksum that may be sent on update and delete requests to ensure that the 1433 // user-provided value is up to date before the server processes a request. 1434 // The server computes checksums based on the value of other fields in the 1435 // request. 1436 string etag = 10; 1437} 1438 1439// Private connection resource that provides connectivity for VMware Engine 1440// private clouds. 1441message PrivateConnection { 1442 option (google.api.resource) = { 1443 type: "vmwareengine.googleapis.com/PrivateConnection" 1444 pattern: "projects/{project}/locations/{location}/privateConnections/{private_connection}" 1445 }; 1446 1447 // Enum State defines possible states of private connection. 1448 enum State { 1449 // The default value. This value is used if the state is omitted. 1450 STATE_UNSPECIFIED = 0; 1451 1452 // The private connection is being created. 1453 CREATING = 1; 1454 1455 // The private connection is ready. 1456 ACTIVE = 2; 1457 1458 // The private connection is being updated. 1459 UPDATING = 3; 1460 1461 // The private connection is being deleted. 1462 DELETING = 4; 1463 1464 // The private connection is not provisioned, since no private cloud is 1465 // present for which this private connection is needed. 1466 UNPROVISIONED = 5; 1467 1468 // The private connection is in failed state. 1469 FAILED = 6; 1470 } 1471 1472 // Enum Type defines possible types of private connection. 1473 enum Type { 1474 // The default value. This value should never be used. 1475 TYPE_UNSPECIFIED = 0; 1476 1477 // Connection used for establishing [private services 1478 // access](https://cloud.google.com/vpc/docs/private-services-access). 1479 PRIVATE_SERVICE_ACCESS = 1; 1480 1481 // Connection used for connecting to NetApp Cloud Volumes. 1482 NETAPP_CLOUD_VOLUMES = 2; 1483 1484 // Connection used for connecting to Dell PowerScale. 1485 DELL_POWERSCALE = 3; 1486 1487 // Connection used for connecting to third-party services. 1488 THIRD_PARTY_SERVICE = 4; 1489 } 1490 1491 // Possible types for RoutingMode 1492 enum RoutingMode { 1493 // The default value. This value should never be used. 1494 ROUTING_MODE_UNSPECIFIED = 0; 1495 1496 // Global Routing Mode 1497 GLOBAL = 1; 1498 1499 // Regional Routing Mode 1500 REGIONAL = 2; 1501 } 1502 1503 // Enum PeeringState defines the possible states of peering between service 1504 // network and the vpc network peered to service network 1505 enum PeeringState { 1506 // The default value. This value is used if the peering state is omitted or 1507 // unknown. 1508 PEERING_STATE_UNSPECIFIED = 0; 1509 1510 // The peering is in active state. 1511 PEERING_ACTIVE = 1; 1512 1513 // The peering is in inactive state. 1514 PEERING_INACTIVE = 2; 1515 } 1516 1517 // Output only. The resource name of the private connection. 1518 // Resource names are schemeless URIs that follow the conventions in 1519 // https://cloud.google.com/apis/design/resource_names. 1520 // For example: 1521 // `projects/my-project/locations/us-central1/privateConnections/my-connection` 1522 string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 1523 1524 // Output only. Creation time of this resource. 1525 google.protobuf.Timestamp create_time = 2 1526 [(google.api.field_behavior) = OUTPUT_ONLY]; 1527 1528 // Output only. Last update time of this resource. 1529 google.protobuf.Timestamp update_time = 3 1530 [(google.api.field_behavior) = OUTPUT_ONLY]; 1531 1532 // Optional. User-provided description for this private connection. 1533 string description = 4 [(google.api.field_behavior) = OPTIONAL]; 1534 1535 // Output only. State of the private connection. 1536 State state = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; 1537 1538 // Required. The relative resource name of Legacy VMware Engine network. 1539 // Specify the name in the following form: 1540 // `projects/{project}/locations/{location}/vmwareEngineNetworks/{vmware_engine_network_id}` 1541 // where `{project}`, `{location}` will be same as specified in private 1542 // connection resource name and `{vmware_engine_network_id}` will be in the 1543 // form of `{location}`-default e.g. 1544 // projects/project/locations/us-central1/vmwareEngineNetworks/us-central1-default. 1545 string vmware_engine_network = 8 [ 1546 (google.api.field_behavior) = REQUIRED, 1547 (google.api.resource_reference) = { 1548 type: "vmwareengine.googleapis.com/VmwareEngineNetwork" 1549 } 1550 ]; 1551 1552 // Output only. The canonical name of the VMware Engine network in the form: 1553 // `projects/{project_number}/locations/{location}/vmwareEngineNetworks/{vmware_engine_network_id}` 1554 string vmware_engine_network_canonical = 9 [ 1555 (google.api.field_behavior) = OUTPUT_ONLY, 1556 (google.api.resource_reference) = { 1557 type: "vmwareengine.googleapis.com/VmwareEngineNetwork" 1558 } 1559 ]; 1560 1561 // Required. Private connection type. 1562 Type type = 10 [(google.api.field_behavior) = REQUIRED]; 1563 1564 // Output only. VPC network peering id between given network VPC and 1565 // VMwareEngineNetwork. 1566 string peering_id = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; 1567 1568 // Optional. Routing Mode. 1569 // Default value is set to GLOBAL. 1570 // For type = PRIVATE_SERVICE_ACCESS, this field can be set to GLOBAL or 1571 // REGIONAL, for other types only GLOBAL is supported. 1572 RoutingMode routing_mode = 13 [(google.api.field_behavior) = OPTIONAL]; 1573 1574 // Output only. System-generated unique identifier for the resource. 1575 string uid = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; 1576 1577 // Required. Service network to create private connection. 1578 // Specify the name in the following form: 1579 // `projects/{project}/global/networks/{network_id}` 1580 // For type = PRIVATE_SERVICE_ACCESS, this field represents servicenetworking 1581 // VPC, e.g. projects/project-tp/global/networks/servicenetworking. 1582 // For type = NETAPP_CLOUD_VOLUME, this field represents NetApp service VPC, 1583 // e.g. projects/project-tp/global/networks/netapp-tenant-vpc. 1584 // For type = DELL_POWERSCALE, this field represent Dell service VPC, e.g. 1585 // projects/project-tp/global/networks/dell-tenant-vpc. 1586 // For type= THIRD_PARTY_SERVICE, this field could represent a consumer VPC or 1587 // any other producer VPC to which the VMware Engine Network needs to be 1588 // connected, e.g. projects/project/global/networks/vpc. 1589 string service_network = 16 [ 1590 (google.api.field_behavior) = REQUIRED, 1591 (google.api.resource_reference) = { type: "compute.googleapis.com/Network" } 1592 ]; 1593 1594 // Output only. Peering state between service network and VMware Engine 1595 // network. 1596 PeeringState peering_state = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; 1597} 1598 1599// VmwareEngine specific metadata for the given 1600// [google.cloud.location.Location][google.cloud.location.Location]. It is 1601// returned as a content of the `google.cloud.location.Location.metadata` field. 1602message LocationMetadata { 1603 // Capability of a location. 1604 enum Capability { 1605 // The default value. This value is used if the capability is omitted or 1606 // unknown. 1607 CAPABILITY_UNSPECIFIED = 0; 1608 1609 // Stretch clusters are supported in this location. 1610 STRETCHED_CLUSTERS = 1; 1611 } 1612 1613 // Output only. Capabilities of this location. 1614 repeated Capability capabilities = 1 1615 [(google.api.field_behavior) = OUTPUT_ONLY]; 1616} 1617 1618// DnsBindPermission resource that contains the accounts having the consumer DNS 1619// bind permission on the corresponding intranet VPC of the consumer project. 1620message DnsBindPermission { 1621 option (google.api.resource) = { 1622 type: "vmwareengine.googleapis.com/DnsBindPermission" 1623 pattern: "projects/{project}/locations/{location}/dnsBindPermission" 1624 }; 1625 1626 // Required. Output only. The name of the resource which stores the 1627 // users/service accounts having the permission to bind to the corresponding 1628 // intranet VPC of the consumer project. DnsBindPermission is a global 1629 // resource and location can only be global. Resource names are schemeless 1630 // URIs that follow the conventions in 1631 // https://cloud.google.com/apis/design/resource_names. For example: 1632 // `projects/my-project/locations/global/dnsBindPermission` 1633 string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 1634 1635 // Output only. Users/Service accounts which have access for binding on the 1636 // intranet VPC project corresponding to the consumer project. 1637 repeated Principal principals = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; 1638} 1639 1640// Users/Service accounts which have access for DNS binding on the intranet 1641// VPC corresponding to the consumer project. 1642message Principal { 1643 // The consumer provided user/service account which needs to be 1644 // granted permission to DNS bind with the intranet VPC corresponding to the 1645 // consumer project. 1646 oneof principal { 1647 // The user who needs to be granted permission. 1648 string user = 1; 1649 1650 // The service account which needs to be granted the permission. 1651 string service_account = 2; 1652 } 1653} 1654