googleapis/google/cloud/vmwareengine/v1/vmwareengine.proto
Google APIs 8a7b363add docs: update location in docstrings to use us-central1
PiperOrigin-RevId: 501066392
2023-01-10 12:36:32 -08:00

2291 lines
91 KiB
Protocol Buffer

// Copyright 2022 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.vmwareengine.v1;
import "google/api/annotations.proto";
import "google/api/client.proto";
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/longrunning/operations.proto";
import "google/protobuf/field_mask.proto";
import "google/protobuf/timestamp.proto";
option csharp_namespace = "Google.Cloud.VmwareEngine.V1";
option go_package = "google.golang.org/genproto/googleapis/cloud/vmwareengine/v1;vmwareengine";
option java_multiple_files = true;
option java_outer_classname = "VmwareengineProto";
option java_package = "com.google.cloud.vmwareengine.v1";
option php_namespace = "Google\\Cloud\\VmwareEngine\\V1";
option ruby_package = "Google::Cloud::VmwareEngine::V1";
option (google.api.resource_definition) = {
type: "compute.googleapis.com/Network"
pattern: "projects/{project}/global/networks/{network}"
};
// VMwareEngine manages VMware's private clusters in the Cloud.
service VmwareEngine {
option (google.api.default_host) = "vmwareengine.googleapis.com";
option (google.api.oauth_scopes) =
"https://www.googleapis.com/auth/cloud-platform";
// Lists `PrivateCloud` resources in a given project and location.
rpc ListPrivateClouds(ListPrivateCloudsRequest)
returns (ListPrivateCloudsResponse) {
option (google.api.http) = {
get: "/v1/{parent=projects/*/locations/*}/privateClouds"
};
option (google.api.method_signature) = "parent";
}
// Retrieves a `PrivateCloud` resource by its resource name.
rpc GetPrivateCloud(GetPrivateCloudRequest) returns (PrivateCloud) {
option (google.api.http) = {
get: "/v1/{name=projects/*/locations/*/privateClouds/*}"
};
option (google.api.method_signature) = "name";
}
// Creates a new `PrivateCloud` resource in a given project and location.
// Private clouds can only be created in zones, regional private clouds are
// not supported.
//
// Creating a private cloud also creates a [management
// cluster](https://cloud.google.com/vmware-engine/docs/concepts-vmware-components)
// for that private cloud.
rpc CreatePrivateCloud(CreatePrivateCloudRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1/{parent=projects/*/locations/*}/privateClouds"
body: "private_cloud"
};
option (google.api.method_signature) =
"parent,private_cloud,private_cloud_id";
option (google.longrunning.operation_info) = {
response_type: "PrivateCloud"
metadata_type: "OperationMetadata"
};
}
// Modifies a `PrivateCloud` resource. Only the following fields can be
// updated: `description`.
// Only fields specified in `updateMask` are applied.
//
// During operation processing, the resource is temporarily in the `ACTIVE`
// state before the operation fully completes. For that period of time, you
// can't update the resource. Use the operation status to determine when the
// processing fully completes.
rpc UpdatePrivateCloud(UpdatePrivateCloudRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
patch: "/v1/{private_cloud.name=projects/*/locations/*/privateClouds/*}"
body: "private_cloud"
};
option (google.api.method_signature) = "private_cloud,update_mask";
option (google.longrunning.operation_info) = {
response_type: "PrivateCloud"
metadata_type: "OperationMetadata"
};
}
// Schedules a `PrivateCloud` resource for deletion.
//
// A `PrivateCloud` resource scheduled for deletion has `PrivateCloud.state`
// set to `DELETED` and `expireTime` set to the time when deletion is final
// and can no longer be reversed. The delete operation is marked as done
// as soon as the `PrivateCloud` is successfully scheduled for deletion
// (this also applies when `delayHours` is set to zero), and the operation is
// not kept in pending state until `PrivateCloud` is purged.
// `PrivateCloud` can be restored using `UndeletePrivateCloud` method before
// the `expireTime` elapses. When `expireTime` is reached, deletion is final
// and all private cloud resources are irreversibly removed and billing stops.
// During the final removal process, `PrivateCloud.state` is set to `PURGING`.
// `PrivateCloud` can be polled using standard `GET` method for the whole
// period of deletion and purging. It will not be returned only
// when it is completely purged.
rpc DeletePrivateCloud(DeletePrivateCloudRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
delete: "/v1/{name=projects/*/locations/*/privateClouds/*}"
};
option (google.api.method_signature) = "name";
option (google.longrunning.operation_info) = {
response_type: "PrivateCloud"
metadata_type: "OperationMetadata"
};
}
// Restores a private cloud that was previously scheduled for deletion by
// `DeletePrivateCloud`. A `PrivateCloud` resource scheduled for deletion has
// `PrivateCloud.state` set to `DELETED` and `PrivateCloud.expireTime` set to
// the time when deletion can no longer be reversed.
rpc UndeletePrivateCloud(UndeletePrivateCloudRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1/{name=projects/*/locations/*/privateClouds/*}:undelete"
body: "*"
};
option (google.api.method_signature) = "name";
option (google.longrunning.operation_info) = {
response_type: "PrivateCloud"
metadata_type: "OperationMetadata"
};
}
// Lists `Cluster` resources in a given private cloud.
rpc ListClusters(ListClustersRequest) returns (ListClustersResponse) {
option (google.api.http) = {
get: "/v1/{parent=projects/*/locations/*/privateClouds/*}/clusters"
};
option (google.api.method_signature) = "parent";
}
// Retrieves a `Cluster` resource by its resource name.
rpc GetCluster(GetClusterRequest) returns (Cluster) {
option (google.api.http) = {
get: "/v1/{name=projects/*/locations/*/privateClouds/*/clusters/*}"
};
option (google.api.method_signature) = "name";
}
// Creates a new cluster in a given private cloud.
// Creating a new cluster provides additional nodes for
// use in the parent private cloud and requires sufficient [node
// quota](https://cloud.google.com/vmware-engine/quotas).
rpc CreateCluster(CreateClusterRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1/{parent=projects/*/locations/*/privateClouds/*}/clusters"
body: "cluster"
};
option (google.api.method_signature) = "parent,cluster,cluster_id";
option (google.longrunning.operation_info) = {
response_type: "Cluster"
metadata_type: "OperationMetadata"
};
}
// Modifies a `Cluster` resource. Only the following fields can be updated:
// `node_type_configs.*.node_count`. Only fields specified in `updateMask` are
// applied.
//
// During operation processing, the resource is temporarily in the `ACTIVE`
// state before the operation fully completes. For that period of time, you
// can't update the resource. Use the operation status to determine when the
// processing fully completes.
rpc UpdateCluster(UpdateClusterRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
patch: "/v1/{cluster.name=projects/*/locations/*/privateClouds/*/clusters/*}"
body: "cluster"
};
option (google.api.method_signature) = "cluster,update_mask";
option (google.longrunning.operation_info) = {
response_type: "Cluster"
metadata_type: "OperationMetadata"
};
}
// Deletes a `Cluster` resource. To avoid unintended data loss, migrate or
// gracefully shut down any workloads running on the cluster before deletion.
// You cannot delete the management cluster of a private cloud using this
// method.
rpc DeleteCluster(DeleteClusterRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
delete: "/v1/{name=projects/*/locations/*/privateClouds/*/clusters/*}"
};
option (google.api.method_signature) = "name";
option (google.longrunning.operation_info) = {
response_type: "google.protobuf.Empty"
metadata_type: "OperationMetadata"
};
}
// Lists subnets in a given private cloud.
rpc ListSubnets(ListSubnetsRequest) returns (ListSubnetsResponse) {
option (google.api.http) = {
get: "/v1/{parent=projects/*/locations/*/privateClouds/*}/subnets"
};
option (google.api.method_signature) = "parent";
}
// Lists node types
rpc ListNodeTypes(ListNodeTypesRequest) returns (ListNodeTypesResponse) {
option (google.api.http) = {
get: "/v1/{parent=projects/*/locations/*}/nodeTypes"
};
option (google.api.method_signature) = "parent";
}
// Gets details of a single `NodeType`.
rpc GetNodeType(GetNodeTypeRequest) returns (NodeType) {
option (google.api.http) = {
get: "/v1/{name=projects/*/locations/*/nodeTypes/*}"
};
option (google.api.method_signature) = "name";
}
// Gets details of credentials for NSX appliance.
rpc ShowNsxCredentials(ShowNsxCredentialsRequest) returns (Credentials) {
option (google.api.http) = {
get: "/v1/{private_cloud=projects/*/locations/*/privateClouds/*}:showNsxCredentials"
};
option (google.api.method_signature) = "private_cloud";
}
// Gets details of credentials for Vcenter appliance.
rpc ShowVcenterCredentials(ShowVcenterCredentialsRequest)
returns (Credentials) {
option (google.api.http) = {
get: "/v1/{private_cloud=projects/*/locations/*/privateClouds/*}:showVcenterCredentials"
};
option (google.api.method_signature) = "private_cloud";
}
// Resets credentials of the NSX appliance.
rpc ResetNsxCredentials(ResetNsxCredentialsRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1/{private_cloud=projects/*/locations/*/privateClouds/*}:resetNsxCredentials"
body: "*"
};
option (google.api.method_signature) = "private_cloud";
option (google.longrunning.operation_info) = {
response_type: "PrivateCloud"
metadata_type: "OperationMetadata"
};
}
// Resets credentials of the Vcenter appliance.
rpc ResetVcenterCredentials(ResetVcenterCredentialsRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1/{private_cloud=projects/*/locations/*/privateClouds/*}:resetVcenterCredentials"
body: "*"
};
option (google.api.method_signature) = "private_cloud";
option (google.longrunning.operation_info) = {
response_type: "PrivateCloud"
metadata_type: "OperationMetadata"
};
}
// Creates a new HCX activation key in a given private cloud.
rpc CreateHcxActivationKey(CreateHcxActivationKeyRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1/{parent=projects/*/locations/*/privateClouds/*}/hcxActivationKeys"
body: "hcx_activation_key"
};
option (google.api.method_signature) =
"parent,hcx_activation_key,hcx_activation_key_id";
option (google.longrunning.operation_info) = {
response_type: "HcxActivationKey"
metadata_type: "OperationMetadata"
};
}
// Lists `HcxActivationKey` resources in a given private cloud.
rpc ListHcxActivationKeys(ListHcxActivationKeysRequest)
returns (ListHcxActivationKeysResponse) {
option (google.api.http) = {
get: "/v1/{parent=projects/*/locations/*/privateClouds/*}/hcxActivationKeys"
};
option (google.api.method_signature) = "parent";
}
// Retrieves a `HcxActivationKey` resource by its resource name.
rpc GetHcxActivationKey(GetHcxActivationKeyRequest)
returns (HcxActivationKey) {
option (google.api.http) = {
get: "/v1/{name=projects/*/locations/*/privateClouds/*/hcxActivationKeys/*}"
};
option (google.api.method_signature) = "name";
}
// Retrieves a `NetworkPolicy` resource by its resource name.
rpc GetNetworkPolicy(GetNetworkPolicyRequest) returns (NetworkPolicy) {
option (google.api.http) = {
get: "/v1/{name=projects/*/locations/*/networkPolicies/*}"
};
option (google.api.method_signature) = "name";
}
// Lists `NetworkPolicy` resources in a specified project and location.
rpc ListNetworkPolicies(ListNetworkPoliciesRequest)
returns (ListNetworkPoliciesResponse) {
option (google.api.http) = {
get: "/v1/{parent=projects/*/locations/*}/networkPolicies"
};
option (google.api.method_signature) = "parent";
}
// Creates a new network policy in a given VMware Engine network of a
// project and location (region). A new network policy cannot be created if
// another network policy already exists in the same scope.
rpc CreateNetworkPolicy(CreateNetworkPolicyRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1/{parent=projects/*/locations/*}/networkPolicies"
body: "network_policy"
};
option (google.api.method_signature) =
"parent,network_policy,network_policy_id";
option (google.longrunning.operation_info) = {
response_type: "NetworkPolicy"
metadata_type: "OperationMetadata"
};
}
// Modifies a `NetworkPolicy` resource. Only the following fields can be
// updated: `internet_access`, `external_ip`, `edge_services_cidr`.
// Only fields specified in `updateMask` are applied. When updating a network
// policy, the external IP network service can only be disabled if there are
// no external IP addresses present in the scope of the policy. Also, a
// `NetworkService` cannot be updated when `NetworkService.state` is set
// to `RECONCILING`.
//
// During operation processing, the resource is temporarily in the `ACTIVE`
// state before the operation fully completes. For that period of time, you
// can't update the resource. Use the operation status to determine when the
// processing fully completes.
rpc UpdateNetworkPolicy(UpdateNetworkPolicyRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
patch: "/v1/{network_policy.name=projects/*/locations/*/networkPolicies/*}"
body: "network_policy"
};
option (google.api.method_signature) = "network_policy,update_mask";
option (google.longrunning.operation_info) = {
response_type: "NetworkPolicy"
metadata_type: "OperationMetadata"
};
}
// Deletes a `NetworkPolicy` resource. A network policy cannot be deleted
// when `NetworkService.state` is set to `RECONCILING` for either its external
// IP or internet access service.
rpc DeleteNetworkPolicy(DeleteNetworkPolicyRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
delete: "/v1/{name=projects/*/locations/*/networkPolicies/*}"
};
option (google.api.method_signature) = "name";
option (google.longrunning.operation_info) = {
response_type: "google.protobuf.Empty"
metadata_type: "OperationMetadata"
};
}
// Creates a new VMware Engine network that can be used by a private cloud.
rpc CreateVmwareEngineNetwork(CreateVmwareEngineNetworkRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1/{parent=projects/*/locations/*}/vmwareEngineNetworks"
body: "vmware_engine_network"
};
option (google.api.method_signature) =
"parent,vmware_engine_network,vmware_engine_network_id";
option (google.longrunning.operation_info) = {
response_type: "VmwareEngineNetwork"
metadata_type: "OperationMetadata"
};
}
// Modifies a VMware Engine network resource. Only the following fields can be
// updated: `description`. Only fields specified in `updateMask` are
// applied.
rpc UpdateVmwareEngineNetwork(UpdateVmwareEngineNetworkRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
patch: "/v1/{vmware_engine_network.name=projects/*/locations/*/vmwareEngineNetworks/*}"
body: "vmware_engine_network"
};
option (google.api.method_signature) = "vmware_engine_network,update_mask";
option (google.longrunning.operation_info) = {
response_type: "VmwareEngineNetwork"
metadata_type: "OperationMetadata"
};
}
// Deletes a `VmwareEngineNetwork` resource. You can only delete a VMware
// Engine network after all resources that refer to it are deleted. For
// example, a private cloud, a network peering, and a network policy can all
// refer to the same VMware Engine network.
rpc DeleteVmwareEngineNetwork(DeleteVmwareEngineNetworkRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
delete: "/v1/{name=projects/*/locations/*/vmwareEngineNetworks/*}"
};
option (google.api.method_signature) = "name";
option (google.longrunning.operation_info) = {
response_type: "google.protobuf.Empty"
metadata_type: "OperationMetadata"
};
}
// Retrieves a `VmwareEngineNetwork` resource by its resource name. The
// resource contains details of the VMware Engine network, such as its VMware
// Engine network type, peered networks in a service project, and state
// (for example, `CREATING`, `ACTIVE`, `DELETING`).
rpc GetVmwareEngineNetwork(GetVmwareEngineNetworkRequest)
returns (VmwareEngineNetwork) {
option (google.api.http) = {
get: "/v1/{name=projects/*/locations/*/vmwareEngineNetworks/*}"
};
option (google.api.method_signature) = "name";
}
// Lists `VmwareEngineNetwork` resources in a given project and location.
rpc ListVmwareEngineNetworks(ListVmwareEngineNetworksRequest)
returns (ListVmwareEngineNetworksResponse) {
option (google.api.http) = {
get: "/v1/{parent=projects/*/locations/*}/vmwareEngineNetworks"
};
option (google.api.method_signature) = "parent";
}
}
// Network configuration in the consumer project
// with which the peering has to be done.
message NetworkConfig {
// Required. Management CIDR used by VMware management appliances.
string management_cidr = 4 [(google.api.field_behavior) = REQUIRED];
// Optional. The relative resource name of the VMware Engine network attached
// to the private cloud. Specify the name in the following form:
// `projects/{project}/locations/{location}/vmwareEngineNetworks/{vmware_engine_network_id}`
// where `{project}` can either be a project number or a project ID.
string vmware_engine_network = 5 [
(google.api.field_behavior) = OPTIONAL,
(google.api.resource_reference) = {
type: "vmwareengine.googleapis.com/VmwareEngineNetwork"
}
];
// Output only. The canonical name of the VMware Engine network in the form:
// `projects/{project_number}/locations/{location}/vmwareEngineNetworks/{vmware_engine_network_id}`
string vmware_engine_network_canonical = 6 [
(google.api.field_behavior) = OUTPUT_ONLY,
(google.api.resource_reference) = {
type: "vmwareengine.googleapis.com/VmwareEngineNetwork"
}
];
// Output only. The IP address layout version of the management IP address
// range. Possible versions include:
// * `managementIpAddressLayoutVersion=1`: Indicates the legacy IP address
// layout used by some existing private clouds. This is no longer supported
// for new private clouds as it does not support all features.
// * `managementIpAddressLayoutVersion=2`: Indicates the latest IP address
// layout used by all newly created private clouds. This version supports all
// current features.
int32 management_ip_address_layout_version = 8
[(google.api.field_behavior) = OUTPUT_ONLY];
}
// Information about the type and number of nodes associated with the cluster.
message NodeTypeConfig {
// Required. The number of nodes of this type in the cluster
int32 node_count = 1 [(google.api.field_behavior) = REQUIRED];
// Optional. Customized number of cores available to each node of the type.
// This number must always be one of `nodeType.availableCustomCoreCounts`.
// If zero is provided max value from `nodeType.availableCustomCoreCounts`
// will be used.
int32 custom_core_count = 2 [(google.api.field_behavior) = OPTIONAL];
}
// Represents a private cloud resource. Private clouds are zonal resources.
message PrivateCloud {
option (google.api.resource) = {
type: "vmwareengine.googleapis.com/PrivateCloud"
pattern: "projects/{project}/locations/{location}/privateClouds/{private_cloud}"
};
// Enum State defines possible states of private clouds.
enum State {
// The default value. This value should never be used.
STATE_UNSPECIFIED = 0;
// The private cloud is ready.
ACTIVE = 1;
// The private cloud is being created.
CREATING = 2;
// The private cloud is being updated.
UPDATING = 3;
// The private cloud is in failed state.
FAILED = 5;
// The private cloud is scheduled for deletion. The deletion process can be
// cancelled by using the corresponding undelete method.
DELETED = 6;
// The private cloud is irreversibly deleted and is being removed from the
// system.
PURGING = 7;
}
// Management cluster configuration.
message ManagementCluster {
// Required. The user-provided identifier of the new `Cluster`.
// The identifier must meet the following requirements:
//
// * Only contains 1-63 alphanumeric characters and hyphens
// * Begins with an alphabetical character
// * Ends with a non-hyphen character
// * Not formatted as a UUID
// * Complies with [RFC
// 1034](https://datatracker.ietf.org/doc/html/rfc1034) (section 3.5)
string cluster_id = 1 [(google.api.field_behavior) = REQUIRED];
// Required. The map of cluster node types in this cluster, where the key is
// canonical identifier of the node type (corresponds to the `NodeType`).
map<string, NodeTypeConfig> node_type_configs = 7
[(google.api.field_behavior) = REQUIRED];
}
// Output only. The resource name of this private cloud.
// Resource names are schemeless URIs that follow the conventions in
// https://cloud.google.com/apis/design/resource_names.
// For example:
// `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Creation time of this resource.
google.protobuf.Timestamp create_time = 2
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Last update time of this resource.
google.protobuf.Timestamp update_time = 3
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Time when the resource was scheduled for deletion.
google.protobuf.Timestamp delete_time = 4
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Time when the resource will be irreversibly deleted.
google.protobuf.Timestamp expire_time = 5
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. State of the resource. New values may be added to this enum
// when appropriate.
State state = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
// Required. Network configuration of the private cloud.
NetworkConfig network_config = 9 [(google.api.field_behavior) = REQUIRED];
// Input only. The management cluster for this private cloud.
// This field is required during creation of the private cloud to provide
// details for the default cluster.
//
// The following fields can't be changed after private cloud creation:
// `ManagementCluster.clusterId`, `ManagementCluster.nodeTypeId`.
ManagementCluster management_cluster = 10
[(google.api.field_behavior) = INPUT_ONLY];
// User-provided description for this private cloud.
string description = 11;
// Output only. HCX appliance.
Hcx hcx = 17 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. NSX appliance.
Nsx nsx = 18 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Vcenter appliance.
Vcenter vcenter = 19 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. System-generated unique identifier for the resource.
string uid = 20 [(google.api.field_behavior) = OUTPUT_ONLY];
}
// Request message for
// [VmwareEngine.ListPrivateClouds][google.cloud.vmwareengine.v1.VmwareEngine.ListPrivateClouds]
message ListPrivateCloudsRequest {
// Required. The resource name of the private cloud to be queried for
// clusters. Resource names are schemeless URIs that follow the conventions in
// https://cloud.google.com/apis/design/resource_names.
// For example:
// `projects/my-project/locations/us-central1-a`
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "locations.googleapis.com/Location"
}
];
// The maximum number of private clouds to return in one page.
// The service may return fewer than this value.
// The maximum value is coerced to 1000.
// The default value of this field is 500.
int32 page_size = 2;
// A page token, received from a previous `ListPrivateClouds` call.
// Provide this to retrieve the subsequent page.
//
// When paginating, all other parameters provided to `ListPrivateClouds` must
// match the call that provided the page token.
string page_token = 3;
// A filter expression that matches resources returned in the response.
// The expression must specify the field name, a comparison operator, and the
// value that you want to use for filtering. The value must be a string, a
// number, or a boolean. The comparison operator must be `=`, `!=`, `>`, or
// `<`.
//
// For example, if you are filtering a list of private clouds, you can exclude
// the ones named `example-pc` by specifying `name != "example-pc"`.
//
// You can also filter nested fields. For example, you could specify
// `networkConfig.managementCidr = "192.168.0.0/24"` to include private clouds
// only if they have a matching address in their network configuration.
//
// To filter on multiple expressions, provide each separate expression within
// parentheses. For example:
// ```
// (name = "example-pc")
// (createTime > "2021-04-12T08:15:10.40Z")
// ```
//
// By default, each expression is an `AND` expression. However, you can
// include `AND` and `OR` expressions explicitly. For example:
// ```
// (name = "private-cloud-1") AND
// (createTime > "2021-04-12T08:15:10.40Z") OR
// (name = "private-cloud-2")
// ```
string filter = 4;
// Sorts list results by a certain order. By default, returned results are
// ordered by `name` in ascending order. You can also sort results in
// descending order based on the `name` value using `orderBy="name desc"`.
// Currently, only ordering by `name` is supported.
string order_by = 5;
}
// Response message for
// [VmwareEngine.ListPrivateClouds][google.cloud.vmwareengine.v1.VmwareEngine.ListPrivateClouds]
message ListPrivateCloudsResponse {
// A list of private clouds.
repeated PrivateCloud private_clouds = 1;
// A token, which can be sent as `page_token` to retrieve the next page.
// If this field is omitted, there are no subsequent pages.
string next_page_token = 2;
// Locations that could not be reached when making an aggregated query using
// wildcards.
repeated string unreachable = 3;
}
// Request message for
// [VmwareEngine.GetPrivateCloud][google.cloud.vmwareengine.v1.VmwareEngine.GetPrivateCloud]
message GetPrivateCloudRequest {
// Required. The resource name of the private cloud to retrieve.
// Resource names are schemeless URIs that follow the conventions in
// https://cloud.google.com/apis/design/resource_names.
// For example:
// `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "vmwareengine.googleapis.com/PrivateCloud"
}
];
}
// Request message for
// [VmwareEngine.CreatePrivateCloud][google.cloud.vmwareengine.v1.VmwareEngine.CreatePrivateCloud]
message CreatePrivateCloudRequest {
// Required. The resource name of the location to create the new
// private cloud in. Resource names are schemeless URIs that follow the
// conventions in https://cloud.google.com/apis/design/resource_names.
// For example:
// `projects/my-project/locations/us-central1-a`
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "locations.googleapis.com/Location"
}
];
// Required. The user-provided identifier of the private cloud to be created.
// This identifier must be unique among each `PrivateCloud` within the parent
// and becomes the final token in the name URI.
// The identifier must meet the following requirements:
//
// * Only contains 1-63 alphanumeric characters and hyphens
// * Begins with an alphabetical character
// * Ends with a non-hyphen character
// * Not formatted as a UUID
// * Complies with [RFC 1034](https://datatracker.ietf.org/doc/html/rfc1034)
// (section 3.5)
string private_cloud_id = 2 [(google.api.field_behavior) = REQUIRED];
// Required. The initial description of the new private cloud.
PrivateCloud private_cloud = 3 [(google.api.field_behavior) = REQUIRED];
// Optional. The request ID must be a valid UUID with the exception that zero
// UUID is not supported (00000000-0000-0000-0000-000000000000).
string request_id = 4 [(google.api.field_behavior) = OPTIONAL];
// Optional. True if you want the request to be validated and not executed;
// false otherwise.
bool validate_only = 5 [(google.api.field_behavior) = OPTIONAL];
}
// Request message for
// [VmwareEngine.UpdatePrivateCloud][google.cloud.vmwareengine.v1.VmwareEngine.UpdatePrivateCloud]
message UpdatePrivateCloudRequest {
// Required. Private cloud description.
PrivateCloud private_cloud = 1 [(google.api.field_behavior) = REQUIRED];
// Required. Field mask is used to specify the fields to be overwritten in the
// `PrivateCloud` resource by the update. The fields specified in `updateMask`
// are relative to the resource, not the full request. A field will be
// overwritten if it is in the mask. If the user does not provide a mask then
// all fields will be overwritten.
google.protobuf.FieldMask update_mask = 2
[(google.api.field_behavior) = REQUIRED];
// Optional. The request ID must be a valid UUID with the exception that zero
// UUID is not supported (00000000-0000-0000-0000-000000000000).
string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
}
// Request message for
// [VmwareEngine.DeletePrivateCloud][google.cloud.vmwareengine.v1.VmwareEngine.DeletePrivateCloud]
message DeletePrivateCloudRequest {
// Required. The resource name of the private cloud to delete.
// Resource names are schemeless URIs that follow the conventions in
// https://cloud.google.com/apis/design/resource_names.
// For example:
// `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "vmwareengine.googleapis.com/PrivateCloud"
}
];
// Optional. The request ID must be a valid UUID with the exception that zero
// UUID is not supported (00000000-0000-0000-0000-000000000000).
string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. If set to true, cascade delete is enabled and all children of
// this private cloud resource are also deleted. When this flag is set to
// false, the private cloud will not be deleted if there are any children
// other than the management cluster. The management cluster is always
// deleted.
bool force = 3 [(google.api.field_behavior) = OPTIONAL];
// Optional. Time delay of the deletion specified in hours. The default value
// is `3`. Specifying a non-zero value for this field changes the value of
// `PrivateCloud.state` to `DELETED` and sets `expire_time` to the planned
// deletion time. Deletion can be cancelled before `expire_time` elapses using
// [VmwareEngine.UndeletePrivateCloud][google.cloud.vmwareengine.v1.VmwareEngine.UndeletePrivateCloud].
// Specifying a value of `0` for this field instead begins the deletion
// process and ceases billing immediately. During the final deletion process,
// the value of `PrivateCloud.state` becomes `PURGING`.
optional int32 delay_hours = 4 [(google.api.field_behavior) = OPTIONAL];
}
// Request message for
// [VmwareEngine.UndeletePrivateCloud][google.cloud.vmwareengine.v1.VmwareEngine.UndeletePrivateCloud]
message UndeletePrivateCloudRequest {
// Required. The resource name of the private cloud scheduled for deletion.
// Resource names are schemeless URIs that follow the conventions in
// https://cloud.google.com/apis/design/resource_names.
// For example:
// `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "vmwareengine.googleapis.com/PrivateCloud"
}
];
// Optional. The request ID must be a valid UUID with the exception that zero
// UUID is not supported (00000000-0000-0000-0000-000000000000).
string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
}
// A cluster in a private cloud.
message Cluster {
option (google.api.resource) = {
type: "vmwareengine.googleapis.com/Cluster"
pattern: "projects/{project}/locations/{location}/privateClouds/{private_cloud}/clusters/{cluster}"
};
// Enum State defines possible states of private cloud clusters.
enum State {
// The default value. This value should never be used.
STATE_UNSPECIFIED = 0;
// The Cluster is operational and can be used by the user.
ACTIVE = 1;
// The Cluster is being deployed.
CREATING = 2;
// Adding or removing of a node to the cluster, any other cluster specific
// updates.
UPDATING = 3;
// The Cluster is being deleted.
DELETING = 4;
// The Cluster is undergoing maintenance, for example: a failed node is
// getting replaced.
REPAIRING = 5;
}
// Output only. The resource name of this cluster.
// Resource names are schemeless URIs that follow the conventions in
// https://cloud.google.com/apis/design/resource_names.
// For example:
// `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/clusters/my-cluster`
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Creation time of this resource.
google.protobuf.Timestamp create_time = 2
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Last update time of this resource.
google.protobuf.Timestamp update_time = 3
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. State of the resource.
State state = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. True if the cluster is a management cluster; false otherwise.
// There can only be one management cluster in a private cloud
// and it has to be the first one.
bool management = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. System-generated unique identifier for the resource.
string uid = 14 [(google.api.field_behavior) = OUTPUT_ONLY];
// Required. The map of cluster node types in this cluster, where the key is
// canonical identifier of the node type (corresponds to the `NodeType`).
map<string, NodeTypeConfig> node_type_configs = 16
[(google.api.field_behavior) = REQUIRED];
}
// Request message for
// [VmwareEngine.ListClusters][google.cloud.vmwareengine.v1.VmwareEngine.ListClusters]
message ListClustersRequest {
// Required. The resource name of the private cloud to query for clusters.
// Resource names are schemeless URIs that follow the conventions in
// https://cloud.google.com/apis/design/resource_names.
// For example:
// `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "vmwareengine.googleapis.com/PrivateCloud"
}
];
// The maximum number of clusters to return in one page.
// The service may return fewer than this value.
// The maximum value is coerced to 1000.
// The default value of this field is 500.
int32 page_size = 2;
// A page token, received from a previous `ListClusters` call.
// Provide this to retrieve the subsequent page.
//
// When paginating, all other parameters provided to `ListClusters`
// must match the call that provided the page token.
string page_token = 3;
//
// To filter on multiple expressions, provide each separate expression within
// parentheses. For example:
// ```
// (name = "example-cluster")
// (nodeCount = "3")
// ```
//
// By default, each expression is an `AND` expression. However, you can
// include `AND` and `OR` expressions explicitly. For example:
// ```
// (name = "example-cluster-1") AND
// (createTime > "2021-04-12T08:15:10.40Z") OR
// (name = "example-cluster-2")
// ```
string filter = 4;
// Sorts list results by a certain order. By default, returned results are
// ordered by `name` in ascending order. You can also sort results in
// descending order based on the `name` value using `orderBy="name desc"`.
// Currently, only ordering by `name` is supported.
string order_by = 5;
}
// Response message for
// [VmwareEngine.ListClusters][google.cloud.vmwareengine.v1.VmwareEngine.ListClusters]
message ListClustersResponse {
// A list of private cloud clusters.
repeated Cluster clusters = 1;
// A token, which can be sent as `page_token` to retrieve the next page.
// If this field is omitted, there are no subsequent pages.
string next_page_token = 2;
// Locations that could not be reached when making an aggregated query using
// wildcards.
repeated string unreachable = 3;
}
// Request message for
// [VmwareEngine.GetCluster][google.cloud.vmwareengine.v1.VmwareEngine.GetCluster]
message GetClusterRequest {
// Required. The cluster resource name to retrieve.
// Resource names are schemeless URIs that follow the conventions in
// https://cloud.google.com/apis/design/resource_names.
// For example:
// `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/clusters/my-cluster`
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "vmwareengine.googleapis.com/Cluster"
}
];
}
// Request message for
// [VmwareEngine.CreateCluster][google.cloud.vmwareengine.v1.VmwareEngine.CreateCluster]
message CreateClusterRequest {
// Required. The resource name of the private cloud to create a new cluster
// in. Resource names are schemeless URIs that follow the conventions in
// https://cloud.google.com/apis/design/resource_names.
// For example:
// `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "vmwareengine.googleapis.com/PrivateCloud"
}
];
// Required. The user-provided identifier of the new `Cluster`.
// This identifier must be unique among clusters within the parent and becomes
// the final token in the name URI.
// The identifier must meet the following requirements:
//
// * Only contains 1-63 alphanumeric characters and hyphens
// * Begins with an alphabetical character
// * Ends with a non-hyphen character
// * Not formatted as a UUID
// * Complies with [RFC 1034](https://datatracker.ietf.org/doc/html/rfc1034)
// (section 3.5)
string cluster_id = 2 [(google.api.field_behavior) = REQUIRED];
// Required. The initial description of the new cluster.
Cluster cluster = 3 [(google.api.field_behavior) = REQUIRED];
// Optional. The request ID must be a valid UUID with the exception that zero
// UUID is not supported (00000000-0000-0000-0000-000000000000).
string request_id = 4 [(google.api.field_behavior) = OPTIONAL];
// Optional. True if you want the request to be validated and not executed;
// false otherwise.
bool validate_only = 5 [(google.api.field_behavior) = OPTIONAL];
}
// Request message for
// [VmwareEngine.UpdateCluster][google.cloud.vmwareengine.v1.VmwareEngine.UpdateCluster]
message UpdateClusterRequest {
// Required. Field mask is used to specify the fields to be overwritten in the
// `Cluster` resource by the update. The fields specified in the `updateMask`
// are relative to the resource, not the full request. A field will be
// overwritten if it is in the mask. If the user does not provide a mask then
// all fields will be overwritten.
google.protobuf.FieldMask update_mask = 1
[(google.api.field_behavior) = REQUIRED];
// Required. The description of the cluster.
Cluster cluster = 2 [(google.api.field_behavior) = REQUIRED];
// Optional. The request ID must be a valid UUID with the exception that
// zero UUID is not supported (00000000-0000-0000-0000-000000000000).
string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
// Optional. True if you want the request to be validated and not executed;
// false otherwise.
bool validate_only = 4 [(google.api.field_behavior) = OPTIONAL];
}
// Request message for
// [VmwareEngine.DeleteCluster][google.cloud.vmwareengine.v1.VmwareEngine.DeleteCluster]
message DeleteClusterRequest {
// Required. The resource name of the cluster to delete.
// Resource names are schemeless URIs that follow the conventions in
// https://cloud.google.com/apis/design/resource_names.
// For example:
// `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/clusters/my-cluster`
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "vmwareengine.googleapis.com/Cluster"
}
];
// Optional. The request ID must be a valid UUID with the exception that zero
// UUID is not supported (00000000-0000-0000-0000-000000000000).
string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
}
// Subnet in a private cloud. Either `management` subnets (such as vMotion) that
// are read-only, or `userDefined`, which can also be updated.
message Subnet {
option (google.api.resource) = {
type: "vmwareengine.googleapis.com/Subnet"
pattern: "projects/{project}/locations/{location}/privateClouds/{private_cloud}/subnets/{subnet}"
};
// Defines possible states of subnets.
enum State {
// The default value. This value should never be used.
STATE_UNSPECIFIED = 0;
// The subnet is ready.
ACTIVE = 1;
// The subnet is being created.
CREATING = 2;
// The subnet is being updated.
UPDATING = 3;
// The subnet is being deleted.
DELETING = 4;
}
// Output only. The resource name of this subnet.
// Resource names are schemeless URIs that follow the conventions in
// https://cloud.google.com/apis/design/resource_names.
// For example:
// `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/subnets/my-subnet`
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// The IP address range of the subnet in CIDR format '10.0.0.0/24'.
string ip_cidr_range = 7;
// The IP address of the gateway of this subnet.
// Must fall within the IP prefix defined above.
string gateway_ip = 8;
// Output only. The type of the subnet. For example "management" or
// "userDefined".
string type = 11 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The state of the resource.
State state = 13 [(google.api.field_behavior) = OUTPUT_ONLY];
}
// Request message for
// [VmwareEngine.ListSubnets][google.cloud.vmwareengine.v1.VmwareEngine.ListSubnets]
message ListSubnetsRequest {
// Required. The resource name of the private cloud to be queried for
// subnets.
// Resource names are schemeless URIs that follow the conventions in
// https://cloud.google.com/apis/design/resource_names.
// For example:
// `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "vmwareengine.googleapis.com/PrivateCloud"
}
];
// The maximum number of subnets to return in one page.
// The service may return fewer than this value.
// The maximum value is coerced to 1000.
// The default value of this field is 500.
int32 page_size = 2;
// A page token, received from a previous `ListSubnetsRequest` call.
// Provide this to retrieve the subsequent page.
//
// When paginating, all other parameters provided to
// `ListSubnetsRequest` must match the call that provided the page token.
string page_token = 3;
}
// Response message for
// [VmwareEngine.ListSubnets][google.cloud.vmwareengine.v1.VmwareEngine.ListSubnets]
message ListSubnetsResponse {
// A list of subnets.
repeated Subnet subnets = 1;
// A token, which can be sent as `page_token` to retrieve the next page.
// If this field is omitted, there are no subsequent pages.
string next_page_token = 2;
}
// Represents the metadata of the long-running operation.
message OperationMetadata {
// Output only. The time the operation was created.
google.protobuf.Timestamp create_time = 1
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The time the operation finished running.
google.protobuf.Timestamp end_time = 2
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Server-defined resource path for the target of the operation.
string target = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Name of the verb executed by the operation.
string verb = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Human-readable status of the operation, if any.
string status_message = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. True if the user has requested cancellation
// of the operation; false otherwise.
// Operations that have successfully been cancelled
// have [Operation.error][] value with a
// [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to
// `Code.CANCELLED`.
bool requested_cancellation = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. API version used to start the operation.
string api_version = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
}
// Describes node type.
message NodeType {
option (google.api.resource) = {
type: "vmwareengine.googleapis.com/NodeType"
pattern: "projects/{project}/locations/{location}/nodeTypes/{node_type}"
};
// Output only. The resource name of this node type.
// Resource names are schemeless URIs that follow the conventions in
// https://cloud.google.com/apis/design/resource_names.
// For example:
// `projects/my-proj/locations/us-central1-a/nodeTypes/standard-72`
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The canonical identifier of the node type
// (corresponds to the `NodeType`). For example: standard-72.
string node_type_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The friendly name for this node type.
// For example: ve1-standard-72
string display_name = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The total number of virtual CPUs in a single node.
int32 virtual_cpu_count = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The total number of CPU cores in a single node.
int32 total_core_count = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The amount of physical memory available, defined in GB.
int32 memory_gb = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The amount of storage available, defined in GB.
int32 disk_size_gb = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. List of possible values of custom core count.
repeated int32 available_custom_core_counts = 11
[(google.api.field_behavior) = OUTPUT_ONLY];
}
// Request message for
// [VmwareEngine.ListNodeTypes][google.cloud.vmwareengine.v1.VmwareEngine.ListNodeTypes]
message ListNodeTypesRequest {
// Required. The resource name of the location to be queried for node types.
// Resource names are schemeless URIs that follow the conventions in
// https://cloud.google.com/apis/design/resource_names.
// For example:
// `projects/my-project/locations/us-central1-a`
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "locations.googleapis.com/Location"
}
];
// The maximum number of node types to return in one page.
// The service may return fewer than this value.
// The maximum value is coerced to 1000.
// The default value of this field is 500.
int32 page_size = 2;
// A page token, received from a previous `ListNodeTypes` call.
// Provide this to retrieve the subsequent page.
//
// When paginating, all other parameters provided to
// `ListNodeTypes` must match the call that provided the page token.
string page_token = 3;
// A filter expression that matches resources returned in the response.
// The expression must specify the field name, a comparison
// operator, and the value that you want to use for filtering. The value
// must be a string, a number, or a boolean. The comparison operator
// must be `=`, `!=`, `>`, or `<`.
//
// For example, if you are filtering a list of node types, you can
// exclude the ones named `standard-72` by specifying
// `name != "standard-72"`.
//
// To filter on multiple expressions, provide each separate expression within
// parentheses. For example:
// ```
// (name = "standard-72")
// (virtual_cpu_count > 2)
// ```
//
// By default, each expression is an `AND` expression. However, you
// can include `AND` and `OR` expressions explicitly.
// For example:
// ```
// (name = "standard-96") AND
// (virtual_cpu_count > 2) OR
// (name = "standard-72")
// ```
string filter = 4;
}
// Response message for
// [VmwareEngine.ListNodeTypes][google.cloud.vmwareengine.v1.VmwareEngine.ListNodeTypes]
message ListNodeTypesResponse {
// A list of Node Types.
repeated NodeType node_types = 1;
// A token, which can be sent as `page_token` to retrieve the next page.
// If this field is omitted, there are no subsequent pages.
string next_page_token = 2;
// Locations that could not be reached when making an aggregated query using
// wildcards.
repeated string unreachable = 3;
}
// Request message for
// [VmwareEngine.GetNodeType][google.cloud.vmwareengine.v1.VmwareEngine.GetNodeType]
message GetNodeTypeRequest {
// Required. The resource name of the node type to retrieve.
// Resource names are schemeless URIs that follow the conventions in
// https://cloud.google.com/apis/design/resource_names.
// For example:
// `projects/my-proj/locations/us-central1-a/nodeTypes/standard-72`
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "vmwareengine.googleapis.com/NodeType"
}
];
}
// Credentials for a private cloud.
message Credentials {
// Initial username.
string username = 1;
// Initial password.
string password = 2;
}
// Request message for
// [VmwareEngine.ShowNsxCredentials][google.cloud.vmwareengine.v1.VmwareEngine.ShowNsxCredentials]
message ShowNsxCredentialsRequest {
// Required. The resource name of the private cloud
// to be queried for credentials.
// Resource names are schemeless URIs that follow the conventions in
// https://cloud.google.com/apis/design/resource_names.
// For example:
// `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`
string private_cloud = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "vmwareengine.googleapis.com/PrivateCloud"
}
];
}
// Request message for
// [VmwareEngine.ShowVcenterCredentials][google.cloud.vmwareengine.v1.VmwareEngine.ShowVcenterCredentials]
message ShowVcenterCredentialsRequest {
// Required. The resource name of the private cloud
// to be queried for credentials.
// Resource names are schemeless URIs that follow the conventions in
// https://cloud.google.com/apis/design/resource_names.
// For example:
// `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`
string private_cloud = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "vmwareengine.googleapis.com/PrivateCloud"
}
];
}
// Request message for
// [VmwareEngine.ResetNsxCredentials][google.cloud.vmwareengine.v1.VmwareEngine.ResetNsxCredentials]
message ResetNsxCredentialsRequest {
// Required. The resource name of the private cloud
// to reset credentials for.
// Resource names are schemeless URIs that follow the conventions in
// https://cloud.google.com/apis/design/resource_names.
// For example:
// `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`
string private_cloud = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "vmwareengine.googleapis.com/PrivateCloud"
}
];
// Optional. A request ID to identify requests. Specify a unique request ID
// so that if you must retry your request, the server will know to ignore
// the request if it has already been completed. The server guarantees that a
// request doesn't result in creation of duplicate commitments for at least 60
// minutes.
//
// For example, consider a situation where you make an initial request and the
// request times out. If you make the request again with the same request
// ID, the server can check if original operation with the same request ID
// was received, and if so, will ignore the second request. This prevents
// clients from accidentally creating duplicate commitments.
//
// The request ID must be a valid UUID with the exception that zero UUID is
// not supported (00000000-0000-0000-0000-000000000000).
string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
}
// Request message for
// [VmwareEngine.ResetVcenterCredentials][google.cloud.vmwareengine.v1.VmwareEngine.ResetVcenterCredentials]
message ResetVcenterCredentialsRequest {
// Required. The resource name of the private cloud
// to reset credentials for.
// Resource names are schemeless URIs that follow the conventions in
// https://cloud.google.com/apis/design/resource_names.
// For example:
// `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`
string private_cloud = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "vmwareengine.googleapis.com/PrivateCloud"
}
];
// Optional. A request ID to identify requests. Specify a unique request ID
// so that if you must retry your request, the server will know to ignore
// the request if it has already been completed. The server guarantees that a
// request doesn't result in creation of duplicate commitments for at least 60
// minutes.
//
// For example, consider a situation where you make an initial request and the
// request times out. If you make the request again with the same request
// ID, the server can check if original operation with the same request ID
// was received, and if so, will ignore the second request. This prevents
// clients from accidentally creating duplicate commitments.
//
// The request ID must be a valid UUID with the exception that zero UUID is
// not supported (00000000-0000-0000-0000-000000000000).
string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
}
// Response message for
// [VmwareEngine.ListHcxActivationKeys][google.cloud.vmwareengine.v1.VmwareEngine.ListHcxActivationKeys]
message ListHcxActivationKeysResponse {
// List of HCX activation keys.
repeated HcxActivationKey hcx_activation_keys = 1;
// A token, which can be sent as `page_token` to retrieve the next page.
// If this field is omitted, there are no subsequent pages.
string next_page_token = 2;
// Locations that could not be reached when making an aggregated query using
// wildcards.
repeated string unreachable = 3;
}
// HCX activation key. A default key is created during
// private cloud provisioning, but this behavior is subject to change
// and you should always verify active keys.
// Use
// [VmwareEngine.ListHcxActivationKeys][google.cloud.vmwareengine.v1.VmwareEngine.ListHcxActivationKeys]
// to retrieve existing keys and
// [VmwareEngine.CreateHcxActivationKey][google.cloud.vmwareengine.v1.VmwareEngine.CreateHcxActivationKey]
// to create new ones.
message HcxActivationKey {
option (google.api.resource) = {
type: "vmwareengine.googleapis.com/HcxActivationKey"
pattern: "projects/{project}/locations/{location}/privateClouds/{private_cloud}/hcxActivationKeys/{hcx_activation_key}"
};
// State of HCX activation key
enum State {
// Unspecified state.
STATE_UNSPECIFIED = 0;
// State of a newly generated activation key.
AVAILABLE = 1;
// State of key when it has been used to activate HCX appliance.
CONSUMED = 2;
// State of key when it is being created.
CREATING = 3;
}
// Output only. The resource name of this HcxActivationKey.
// Resource names are schemeless URIs that follow the conventions in
// https://cloud.google.com/apis/design/resource_names.
// For example:
// `projects/my-project/locations/us-central1/privateClouds/my-cloud/hcxActivationKeys/my-key`
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Creation time of HCX activation key.
google.protobuf.Timestamp create_time = 2
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. State of HCX activation key.
State state = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. HCX activation key.
string activation_key = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. System-generated unique identifier for the resource.
string uid = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
}
// Request message for
// [VmwareEngine.ListHcxActivationKeys][google.cloud.vmwareengine.v1.VmwareEngine.ListHcxActivationKeys]
message ListHcxActivationKeysRequest {
// Required. The resource name of the private cloud
// to be queried for HCX activation keys.
// Resource names are schemeless URIs that follow the conventions in
// https://cloud.google.com/apis/design/resource_names.
// For example:
// `projects/my-project/locations/us-central1/privateClouds/my-cloud`
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "vmwareengine.googleapis.com/PrivateCloud"
}
];
// The maximum number of HCX activation keys to return in one page.
// The service may return fewer than this value.
// The maximum value is coerced to 1000.
// The default value of this field is 500.
int32 page_size = 2;
// A page token, received from a previous `ListHcxActivationKeys` call.
// Provide this to retrieve the subsequent page.
//
// When paginating, all other parameters provided to
// `ListHcxActivationKeys` must match the call that provided the page
// token.
string page_token = 3;
}
// Request message for [VmwareEngine.GetHcxActivationKeys][]
message GetHcxActivationKeyRequest {
// Required. The resource name of the HCX activation key to retrieve.
// Resource names are schemeless URIs that follow the conventions in
// https://cloud.google.com/apis/design/resource_names.
// For example:
// `projects/my-project/locations/us-central1/privateClouds/my-cloud/hcxActivationKeys/my-key`
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "vmwareengine.googleapis.com/HcxActivationKey"
}
];
}
// Request message for
// [VmwareEngine.CreateHcxActivationKey][google.cloud.vmwareengine.v1.VmwareEngine.CreateHcxActivationKey]
message CreateHcxActivationKeyRequest {
// Required. The resource name of the private cloud to create the key for.
// Resource names are schemeless URIs that follow the conventions in
// https://cloud.google.com/apis/design/resource_names.
// For example:
// `projects/my-project/locations/us-central1/privateClouds/my-cloud`
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "vmwareengine.googleapis.com/PrivateCloud"
}
];
// Required. The initial description of a new HCX activation key. When
// creating a new key, this field must be an empty object.
HcxActivationKey hcx_activation_key = 2
[(google.api.field_behavior) = REQUIRED];
// Required. The user-provided identifier of the `HcxActivationKey` to be
// created. This identifier must be unique among `HcxActivationKey` resources
// within the parent and becomes the final token in the name URI.
// The identifier must meet the following requirements:
//
// * Only contains 1-63 alphanumeric characters and hyphens
// * Begins with an alphabetical character
// * Ends with a non-hyphen character
// * Not formatted as a UUID
// * Complies with [RFC 1034](https://datatracker.ietf.org/doc/html/rfc1034)
// (section 3.5)
string hcx_activation_key_id = 3 [(google.api.field_behavior) = REQUIRED];
// A request ID to identify requests. Specify a unique request ID
// so that if you must retry your request, the server will know to ignore
// the request if it has already been completed. The server guarantees that a
// request doesn't result in creation of duplicate commitments for at least 60
// minutes.
//
// For example, consider a situation where you make an initial request and the
// request times out. If you make the request again with the same request ID,
// the server can check if original operation with the same request ID was
// received, and if so, will ignore the second request. This prevents clients
// from accidentally creating duplicate commitments.
//
// The request ID must be a valid UUID with the exception that zero UUID is
// not supported (00000000-0000-0000-0000-000000000000).
string request_id = 4;
}
// Details about a HCX Cloud Manager appliance.
message Hcx {
// State of the appliance
enum State {
// Unspecified appliance state. This is the default value.
STATE_UNSPECIFIED = 0;
// The appliance is operational and can be used.
ACTIVE = 1;
// The appliance is being deployed.
CREATING = 2;
}
// Internal IP address of the appliance.
string internal_ip = 2;
// Version of the appliance.
string version = 4;
// Output only. The state of the appliance.
State state = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
// Fully qualified domain name of the appliance.
string fqdn = 6;
}
// Details about a NSX Manager appliance.
message Nsx {
// State of the appliance
enum State {
// Unspecified appliance state. This is the default value.
STATE_UNSPECIFIED = 0;
// The appliance is operational and can be used.
ACTIVE = 1;
// The appliance is being deployed.
CREATING = 2;
}
// Internal IP address of the appliance.
string internal_ip = 2;
// Version of the appliance.
string version = 4;
// Output only. The state of the appliance.
State state = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
// Fully qualified domain name of the appliance.
string fqdn = 6;
}
// Details about a vCenter Server management appliance.
message Vcenter {
// State of the appliance
enum State {
// Unspecified appliance state. This is the default value.
STATE_UNSPECIFIED = 0;
// The appliance is operational and can be used.
ACTIVE = 1;
// The appliance is being deployed.
CREATING = 2;
}
// Internal IP address of the appliance.
string internal_ip = 2;
// Version of the appliance.
string version = 4;
// Output only. The state of the appliance.
State state = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
// Fully qualified domain name of the appliance.
string fqdn = 6;
}
// Represents a network policy resource. Network policies are regional
// resources. You can use a network policy to enable or disable internet access
// and external IP access. Network policies are associated with a VMware Engine
// network, which might span across regions. For a given region, a network
// policy applies to all private clouds in the VMware Engine network associated
// with the policy.
message NetworkPolicy {
option (google.api.resource) = {
type: "vmwareengine.googleapis.com/NetworkPolicy"
pattern: "projects/{project}/locations/{location}/networkPolicies/{network_policy}"
};
// Represents a network service that is managed by a `NetworkPolicy` resource.
// A network service provides a way to control an aspect of external access to
// VMware workloads. For example, whether the VMware workloads in the
// private clouds governed by a network policy can access or be accessed from
// the internet.
message NetworkService {
// Enum State defines possible states of a network policy controlled
// service.
enum State {
// Unspecified service state. This is the default value.
STATE_UNSPECIFIED = 0;
// Service is not provisioned.
UNPROVISIONED = 1;
// Service is in the process of being provisioned/deprovisioned.
RECONCILING = 2;
// Service is active.
ACTIVE = 3;
}
// True if the service is enabled; false otherwise.
bool enabled = 1;
// Output only. State of the service. New values may be added to this enum
// when appropriate.
State state = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
}
// Output only. The resource name of this network policy.
// Resource names are schemeless URIs that follow the conventions in
// https://cloud.google.com/apis/design/resource_names.
// For example:
// `projects/my-project/locations/us-central1/networkPolicies/my-network-policy`
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Creation time of this resource.
google.protobuf.Timestamp create_time = 2
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Last update time of this resource.
google.protobuf.Timestamp update_time = 3
[(google.api.field_behavior) = OUTPUT_ONLY];
// Network service that allows VMware workloads to access the internet.
NetworkService internet_access = 6;
// Network service that allows External IP addresses to be assigned to VMware
// workloads. This service can only be enabled when `internet_access` is also
// enabled.
NetworkService external_ip = 7;
// Required. IP address range in CIDR notation used to create internet access
// and external IP access. An RFC 1918 CIDR block, with a "/26" prefix, is
// required. The range cannot overlap with any prefixes either in the consumer
// VPC network or in use by the private clouds attached to that VPC network.
string edge_services_cidr = 9 [(google.api.field_behavior) = REQUIRED];
// Output only. System-generated unique identifier for the resource.
string uid = 10 [(google.api.field_behavior) = OUTPUT_ONLY];
// Optional. The relative resource name of the VMware Engine network.
// Specify the name in the following form:
// `projects/{project}/locations/{location}/vmwareEngineNetworks/{vmware_engine_network_id}`
// where `{project}` can either be a project number or a project ID.
string vmware_engine_network = 12 [
(google.api.field_behavior) = OPTIONAL,
(google.api.resource_reference) = {
type: "vmwareengine.googleapis.com/VmwareEngineNetwork"
}
];
// Optional. User-provided description for this network policy.
string description = 13 [(google.api.field_behavior) = OPTIONAL];
// Output only. The canonical name of the VMware Engine network in the form:
// `projects/{project_number}/locations/{location}/vmwareEngineNetworks/{vmware_engine_network_id}`
string vmware_engine_network_canonical = 14 [
(google.api.field_behavior) = OUTPUT_ONLY,
(google.api.resource_reference) = {
type: "vmwareengine.googleapis.com/VmwareEngineNetwork"
}
];
}
// Request message for
// [VmwareEngine.ListNetworkPolicies][google.cloud.vmwareengine.v1.VmwareEngine.ListNetworkPolicies]
message ListNetworkPoliciesRequest {
// Required. The resource name of the location (region) to query for
// network policies. Resource names are schemeless URIs that follow the
// conventions in https://cloud.google.com/apis/design/resource_names. For
// example: `projects/my-project/locations/us-central1`
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
child_type: "vmwareengine.googleapis.com/NetworkPolicy"
}
];
// The maximum number of network policies to return in one page.
// The service may return fewer than this value.
// The maximum value is coerced to 1000.
// The default value of this field is 500.
int32 page_size = 2;
// A page token, received from a previous `ListNetworkPolicies` call.
// Provide this to retrieve the subsequent page.
//
// When paginating, all other parameters provided to
// `ListNetworkPolicies` must match the call that provided the page
// token.
string page_token = 3;
// A filter expression that matches resources returned in the response.
// The expression must specify the field name, a comparison
// operator, and the value that you want to use for filtering. The value
// must be a string, a number, or a boolean. The comparison operator
// must be `=`, `!=`, `>`, or `<`.
//
// For example, if you are filtering a list of network policies, you can
// exclude the ones named `example-policy` by specifying
// `name != "example-policy"`.
//
// To filter on multiple expressions, provide each separate expression within
// parentheses. For example:
// ```
// (name = "example-policy")
// (createTime > "2021-04-12T08:15:10.40Z")
// ```
//
// By default, each expression is an `AND` expression. However, you
// can include `AND` and `OR` expressions explicitly.
// For example:
// ```
// (name = "example-policy-1") AND
// (createTime > "2021-04-12T08:15:10.40Z") OR
// (name = "example-policy-2")
// ```
string filter = 4;
// Sorts list results by a certain order. By default, returned results
// are ordered by `name` in ascending order.
// You can also sort results in descending order based on the `name` value
// using `orderBy="name desc"`.
// Currently, only ordering by `name` is supported.
string order_by = 5;
}
// Response message for
// [VmwareEngine.ListNetworkPolicies][google.cloud.vmwareengine.v1.VmwareEngine.ListNetworkPolicies]
message ListNetworkPoliciesResponse {
// A list of network policies.
repeated NetworkPolicy network_policies = 1;
// A token, which can be send as `page_token` to retrieve the next page.
// If this field is omitted, there are no subsequent pages.
string next_page_token = 2;
// Locations that could not be reached when making an aggregated query using
// wildcards.
repeated string unreachable = 3;
}
// Request message for
// [VmwareEngine.GetNetworkPolicy][google.cloud.vmwareengine.v1.VmwareEngine.GetNetworkPolicy]
message GetNetworkPolicyRequest {
// Required. The resource name of the network policy to retrieve.
// Resource names are schemeless URIs that follow the conventions in
// https://cloud.google.com/apis/design/resource_names.
// For example:
// `projects/my-project/locations/us-central1/networkPolicies/my-network-policy`
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "vmwareengine.googleapis.com/NetworkPolicy"
}
];
}
// Request message for
// [VmwareEngine.UpdateNetworkPolicy][google.cloud.vmwareengine.v1.VmwareEngine.UpdateNetworkPolicy]
message UpdateNetworkPolicyRequest {
// Required. Network policy description.
NetworkPolicy network_policy = 1 [(google.api.field_behavior) = REQUIRED];
// Required. Field mask is used to specify the fields to be overwritten in the
// `NetworkPolicy` resource by the update.
// The fields specified in the `update_mask` are relative to the resource, not
// the full request. A field will be overwritten if it is in the mask. If the
// user does not provide a mask then all fields will be overwritten.
google.protobuf.FieldMask update_mask = 2
[(google.api.field_behavior) = REQUIRED];
// Optional. A request ID to identify requests. Specify a unique request ID
// so that if you must retry your request, the server will know to ignore
// the request if it has already been completed. The server guarantees that a
// request doesn't result in creation of duplicate commitments for at least 60
// minutes.
//
// For example, consider a situation where you make an initial request and the
// request times out. If you make the request again with the same request
// ID, the server can check if original operation with the same request ID
// was received, and if so, will ignore the second request. This prevents
// clients from accidentally creating duplicate commitments.
//
// The request ID must be a valid UUID with the exception that zero UUID is
// not supported (00000000-0000-0000-0000-000000000000).
string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
}
// Request message for
// [VmwareEngine.CreateNetworkPolicy][google.cloud.vmwareengine.v1.VmwareEngine.CreateNetworkPolicy]
message CreateNetworkPolicyRequest {
// Required. The resource name of the location (region)
// to create the new network policy in.
// Resource names are schemeless URIs that follow the conventions in
// https://cloud.google.com/apis/design/resource_names.
// For example:
// `projects/my-project/locations/us-central1`
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
child_type: "vmwareengine.googleapis.com/NetworkPolicy"
}
];
// Required. The user-provided identifier of the network policy to be created.
// This identifier must be unique within parent
// `projects/{my-project}/locations/{us-central1}/networkPolicies` and becomes
// the final token in the name URI.
// The identifier must meet the following requirements:
//
// * Only contains 1-63 alphanumeric characters and hyphens
// * Begins with an alphabetical character
// * Ends with a non-hyphen character
// * Not formatted as a UUID
// * Complies with [RFC 1034](https://datatracker.ietf.org/doc/html/rfc1034)
// (section 3.5)
string network_policy_id = 2 [(google.api.field_behavior) = REQUIRED];
// Required. The network policy configuration to use in the request.
NetworkPolicy network_policy = 3 [(google.api.field_behavior) = REQUIRED];
// Optional. A request ID to identify requests. Specify a unique request ID
// so that if you must retry your request, the server will know to ignore
// the request if it has already been completed. The server guarantees that a
// request doesn't result in creation of duplicate commitments for at least 60
// minutes.
//
// For example, consider a situation where you make an initial request and the
// request times out. If you make the request again with the same request
// ID, the server can check if original operation with the same request ID
// was received, and if so, will ignore the second request. This prevents
// clients from accidentally creating duplicate commitments.
//
// The request ID must be a valid UUID with the exception that zero UUID is
// not supported (00000000-0000-0000-0000-000000000000).
string request_id = 4 [(google.api.field_behavior) = OPTIONAL];
}
// Request message for
// [VmwareEngine.DeleteNetworkPolicy][google.cloud.vmwareengine.v1.VmwareEngine.DeleteNetworkPolicy]
message DeleteNetworkPolicyRequest {
// Required. The resource name of the network policy to delete.
// Resource names are schemeless URIs that follow the conventions in
// https://cloud.google.com/apis/design/resource_names.
// For example:
// `projects/my-project/locations/us-central1/networkPolicies/my-network-policy`
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "vmwareengine.googleapis.com/NetworkPolicy"
}
];
// Optional. A request ID to identify requests. Specify a unique request ID
// so that if you must retry your request, the server will know to ignore
// the request if it has already been completed. The server guarantees that a
// request doesn't result in creation of duplicate commitments for at least 60
// minutes.
//
// For example, consider a situation where you make an initial request and the
// request times out. If you make the request again with the same request
// ID, the server can check if original operation with the same request ID
// was received, and if so, will ignore the second request. This prevents
// clients from accidentally creating duplicate commitments.
//
// The request ID must be a valid UUID with the exception that zero UUID is
// not supported (00000000-0000-0000-0000-000000000000).
string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
}
// VMware Engine network resource that provides connectivity for VMware Engine
// private clouds.
message VmwareEngineNetwork {
option (google.api.resource) = {
type: "vmwareengine.googleapis.com/VmwareEngineNetwork"
pattern: "projects/{project}/locations/{location}/vmwareEngineNetworks/{vmware_engine_network}"
};
// Represents a VMware Engine VPC network that is managed by a
// VMware Engine network resource.
message VpcNetwork {
// Enum Type defines possible types of a VMware Engine network controlled
// service.
enum Type {
// The default value. This value should never be used.
TYPE_UNSPECIFIED = 0;
// VPC network that will be peered with a consumer VPC network or the
// intranet VPC of another VMware Engine network. Access a private cloud
// through Compute Engine VMs on a peered VPC network or an on-premises
// resource connected to a peered consumer VPC network.
INTRANET = 1;
// VPC network used for internet access to and from a private cloud.
INTERNET = 2;
// VPC network used for access to Google Cloud services like
// Cloud Storage.
GOOGLE_CLOUD = 3;
}
// Output only. Type of VPC network (INTRANET, INTERNET, or
// GOOGLE_CLOUD)
Type type = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The relative resource name of the service VPC network this
// VMware Engine network is attached to. For example:
// `projects/123123/global/networks/my-network`
string network = 2 [
(google.api.field_behavior) = OUTPUT_ONLY,
(google.api.resource_reference) = {
type: "compute.googleapis.com/Network"
}
];
}
// Enum State defines possible states of VMware Engine network.
enum State {
// The default value. This value is used if the state is omitted.
STATE_UNSPECIFIED = 0;
// The VMware Engine network is being created.
CREATING = 1;
// The VMware Engine network is ready.
ACTIVE = 2;
// The VMware Engine network is being updated.
UPDATING = 3;
// The VMware Engine network is being deleted.
DELETING = 4;
}
// Enum Type defines possible types of VMware Engine network.
enum Type {
// The default value. This value should never be used.
TYPE_UNSPECIFIED = 0;
// Network type used by private clouds created in projects without a network
// of type `STANDARD`. This network type is no longer used for new VMware
// Engine private cloud deployments.
LEGACY = 1;
}
// Output only. The resource name of the VMware Engine network.
// Resource names are schemeless URIs that follow the conventions in
// https://cloud.google.com/apis/design/resource_names.
// For example:
// `projects/my-project/locations/global/vmwareEngineNetworks/my-network`
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Creation time of this resource.
google.protobuf.Timestamp create_time = 2
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Last update time of this resource.
google.protobuf.Timestamp update_time = 3
[(google.api.field_behavior) = OUTPUT_ONLY];
// User-provided description for this VMware Engine network.
string description = 5;
// Output only. VMware Engine service VPC networks that provide connectivity
// from a private cloud to customer projects, the internet, and other Google
// Cloud services.
repeated VpcNetwork vpc_networks = 6
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. State of the VMware Engine network.
State state = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
// Required. VMware Engine network type.
Type type = 8 [(google.api.field_behavior) = REQUIRED];
// Output only. System-generated unique identifier for the resource.
string uid = 9 [(google.api.field_behavior) = OUTPUT_ONLY];
// Checksum that may be sent on update and delete requests to ensure that the
// user-provided value is up to date before the server processes a request.
// The server computes checksums based on the value of other fields in the
// request.
string etag = 10;
}
// Request message for
// [VmwareEngine.CreateVmwareEngineNetwork][google.cloud.vmwareengine.v1.VmwareEngine.CreateVmwareEngineNetwork]
message CreateVmwareEngineNetworkRequest {
// Required. The resource name of the location to create the new VMware Engine
// network in. A VMware Engine network of type
// `LEGACY` is a regional resource, and a VMware
// Engine network of type `STANDARD` is a global resource.
// Resource names are schemeless URIs that follow the conventions in
// https://cloud.google.com/apis/design/resource_names. For example:
// `projects/my-project/locations/global`
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
child_type: "vmwareengine.googleapis.com/VmwareEngineNetwork"
}
];
// Required. The user-provided identifier of the new VMware Engine network.
// This identifier must be unique among VMware Engine network resources
// within the parent and becomes the final token in the name URI. The
// identifier must meet the following requirements:
//
// * For networks of type LEGACY, adheres to the format:
// `{region-id}-default`. Replace `{region-id}` with the region where you want
// to create the VMware Engine network. For example, "us-central1-default".
// * Only contains 1-63 alphanumeric characters and hyphens
// * Begins with an alphabetical character
// * Ends with a non-hyphen character
// * Not formatted as a UUID
// * Complies with [RFC 1034](https://datatracker.ietf.org/doc/html/rfc1034)
// (section 3.5)
string vmware_engine_network_id = 2 [(google.api.field_behavior) = REQUIRED];
// Required. The initial description of the new VMware Engine network.
VmwareEngineNetwork vmware_engine_network = 3
[(google.api.field_behavior) = REQUIRED];
// Optional. A request ID to identify requests. Specify a unique request ID
// so that if you must retry your request, the server will know to ignore
// the request if it has already been completed. The server guarantees that a
// request doesn't result in creation of duplicate commitments for at least 60
// minutes.
//
// For example, consider a situation where you make an initial request and the
// request times out. If you make the request again with the same request
// ID, the server can check if original operation with the same request ID
// was received, and if so, will ignore the second request. This prevents
// clients from accidentally creating duplicate commitments.
//
// The request ID must be a valid UUID with the exception that zero UUID is
// not supported (00000000-0000-0000-0000-000000000000).
string request_id = 4 [(google.api.field_behavior) = OPTIONAL];
}
// Request message for
// [VmwareEngine.UpdateVmwareEngineNetwork][google.cloud.vmwareengine.v1.VmwareEngine.UpdateVmwareEngineNetwork]
message UpdateVmwareEngineNetworkRequest {
// Required. VMware Engine network description.
VmwareEngineNetwork vmware_engine_network = 1
[(google.api.field_behavior) = REQUIRED];
// Required. Field mask is used to specify the fields to be overwritten in the
// VMware Engine network resource by the update.
// The fields specified in the `update_mask` are relative to the resource, not
// the full request. A field will be overwritten if it is in the mask. If the
// user does not provide a mask then all fields will be overwritten. Only the
// following fields can be updated: `description`.
google.protobuf.FieldMask update_mask = 2
[(google.api.field_behavior) = REQUIRED];
// Optional. A request ID to identify requests. Specify a unique request ID
// so that if you must retry your request, the server will know to ignore
// the request if it has already been completed. The server guarantees that a
// request doesn't result in creation of duplicate commitments for at least 60
// minutes.
//
// For example, consider a situation where you make an initial request and the
// request times out. If you make the request again with the same request
// ID, the server can check if original operation with the same request ID
// was received, and if so, will ignore the second request. This prevents
// clients from accidentally creating duplicate commitments.
//
// The request ID must be a valid UUID with the exception that zero UUID is
// not supported (00000000-0000-0000-0000-000000000000).
string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
}
// Request message for
// [VmwareEngine.DeleteVmwareEngineNetwork][google.cloud.vmwareengine.v1.VmwareEngine.DeleteVmwareEngineNetwork]
message DeleteVmwareEngineNetworkRequest {
// Required. The resource name of the VMware Engine network to be deleted.
// Resource names are schemeless URIs that follow the conventions in
// https://cloud.google.com/apis/design/resource_names.
// For example:
// `projects/my-project/locations/global/vmwareEngineNetworks/my-network`
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "vmwareengine.googleapis.com/VmwareEngineNetwork"
}
];
// Optional. A request ID to identify requests. Specify a unique request ID
// so that if you must retry your request, the server will know to ignore
// the request if it has already been completed. The server guarantees that a
// request doesn't result in creation of duplicate commitments for at least 60
// minutes.
//
// For example, consider a situation where you make an initial request and the
// request times out. If you make the request again with the same request
// ID, the server can check if original operation with the same request ID
// was received, and if so, will ignore the second request. This prevents
// clients from accidentally creating duplicate commitments.
//
// The request ID must be a valid UUID with the exception that zero UUID is
// not supported (00000000-0000-0000-0000-000000000000).
string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. Checksum used to ensure that the user-provided value is up to
// date before the server processes the request. The server compares provided
// checksum with the current checksum of the resource. If the user-provided
// value is out of date, this request returns an `ABORTED` error.
string etag = 3 [(google.api.field_behavior) = OPTIONAL];
}
// Request message for
// [VmwareEngine.GetVmwareEngineNetwork][google.cloud.vmwareengine.v1.VmwareEngine.GetVmwareEngineNetwork]
message GetVmwareEngineNetworkRequest {
// Required. The resource name of the VMware Engine network to retrieve.
// Resource names are schemeless URIs that follow the conventions in
// https://cloud.google.com/apis/design/resource_names.
// For example:
// `projects/my-project/locations/global/vmwareEngineNetworks/my-network`
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "vmwareengine.googleapis.com/VmwareEngineNetwork"
}
];
}
// Request message for
// [VmwareEngine.ListVmwareEngineNetworks][google.cloud.vmwareengine.v1.VmwareEngine.ListVmwareEngineNetworks]
message ListVmwareEngineNetworksRequest {
// Required. The resource name of the location to query for
// VMware Engine networks. Resource names are schemeless URIs that follow the
// conventions in https://cloud.google.com/apis/design/resource_names. For
// example: `projects/my-project/locations/global`
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "locations.googleapis.com/Location"
}
];
// The maximum number of results to return in one page.
// The maximum value is coerced to 1000.
// The default value of this field is 500.
int32 page_size = 2;
// A page token, received from a previous `ListVmwareEngineNetworks` call.
// Provide this to retrieve the subsequent page.
//
// When paginating, all other parameters provided to
// `ListVmwareEngineNetworks` must match the call that provided the page
// token.
string page_token = 3;
// A filter expression that matches resources returned in the response.
// The expression must specify the field name, a comparison
// operator, and the value that you want to use for filtering. The value
// must be a string, a number, or a boolean. The comparison operator
// must be `=`, `!=`, `>`, or `<`.
//
// For example, if you are filtering a list of network peerings, you can
// exclude the ones named `example-network` by specifying
// `name != "example-network"`.
//
// To filter on multiple expressions, provide each separate expression within
// parentheses. For example:
// ```
// (name = "example-network")
// (createTime > "2021-04-12T08:15:10.40Z")
// ```
//
// By default, each expression is an `AND` expression. However, you
// can include `AND` and `OR` expressions explicitly.
// For example:
// ```
// (name = "example-network-1") AND
// (createTime > "2021-04-12T08:15:10.40Z") OR
// (name = "example-network-2")
// ```
string filter = 4;
// Sorts list results by a certain order. By default, returned results
// are ordered by `name` in ascending order.
// You can also sort results in descending order based on the `name` value
// using `orderBy="name desc"`.
// Currently, only ordering by `name` is supported.
string order_by = 5;
}
// Response message for
// [VmwareEngine.ListVmwareEngineNetworks][google.cloud.vmwareengine.v1.VmwareEngine.ListVmwareEngineNetworks]
message ListVmwareEngineNetworksResponse {
// A list of VMware Engine networks.
repeated VmwareEngineNetwork vmware_engine_networks = 1;
// A token, which can be sent as `page_token` to retrieve the next page.
// If this field is omitted, there are no subsequent pages.
string next_page_token = 2;
// Unreachable resources.
repeated string unreachable = 3;
}