blob: b8265deb63be2cbe1096d4e50208ab20b21efe69 [file] [log] [blame]
---
# ----------------------------------------------------------------------------
#
# *** AUTO GENERATED CODE *** Type: MMv1 ***
#
# ----------------------------------------------------------------------------
#
# This file is automatically generated by Magic Modules and manual
# changes will be clobbered when the file is regenerated.
#
# Please read more about how to change this file in
# .github/CONTRIBUTING.md.
#
# ----------------------------------------------------------------------------
subcategory: "Cloud VMware Engine"
description: |-
Represents a private cloud resource.
---
# google\_vmwareengine\_private\_cloud
Represents a private cloud resource. Private clouds are zonal resources.
To get more information about PrivateCloud, see:
* [API documentation](https://cloud.google.com/vmware-engine/docs/reference/rest/v1/projects.locations.privateClouds)
## Example Usage - Vmware Engine Private Cloud Basic
```hcl
resource "google_vmwareengine_private_cloud" "vmw-engine-pc" {
location = "us-west1-a"
name = "sample-pc"
description = "Sample test PC."
network_config {
management_cidr = "192.168.30.0/24"
vmware_engine_network = google_vmwareengine_network.pc-nw.id
}
management_cluster {
cluster_id = "sample-mgmt-cluster"
node_type_configs {
node_type_id = "standard-72"
node_count = 3
}
}
}
resource "google_vmwareengine_network" "pc-nw" {
name = "pc-nw"
location = "global"
type = "STANDARD"
description = "PC network description."
}
```
## Example Usage - Vmware Engine Private Cloud Full
```hcl
resource "google_vmwareengine_private_cloud" "vmw-engine-pc" {
location = "us-west1-a"
name = "sample-pc"
description = "Sample test PC."
type = "TIME_LIMITED"
network_config {
management_cidr = "192.168.30.0/24"
vmware_engine_network = google_vmwareengine_network.pc-nw.id
}
management_cluster {
cluster_id = "sample-mgmt-cluster"
node_type_configs {
node_type_id = "standard-72"
node_count = 1
custom_core_count = 32
}
}
}
resource "google_vmwareengine_network" "pc-nw" {
name = "pc-nw"
location = "global"
type = "STANDARD"
description = "PC network description."
}
```
## Argument Reference
The following arguments are supported:
* `network_config` -
(Required)
Network configuration in the consumer project with which the peering has to be done.
Structure is [documented below](#nested_network_config).
* `management_cluster` -
(Required)
The management cluster for this private cloud. This used for creating and managing the default cluster.
Structure is [documented below](#nested_management_cluster).
* `location` -
(Required)
The location where the PrivateCloud should reside.
* `name` -
(Required)
The ID of the PrivateCloud.
<a name="nested_network_config"></a>The `network_config` block supports:
* `management_cidr` -
(Required)
Management CIDR used by VMware management appliances.
* `vmware_engine_network` -
(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/{vmwareEngineNetworkId}
where {project} can either be a project number or a project ID.
* `vmware_engine_network_canonical` -
(Output)
The canonical name of the VMware Engine network in
the form: projects/{project_number}/locations/{location}/vmwareEngineNetworks/{vmwareEngineNetworkId}
* `management_ip_address_layout_version` -
(Output)
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.
* `dns_server_ip` -
(Output)
DNS Server IP of the Private Cloud.
<a name="nested_management_cluster"></a>The `management_cluster` block supports:
* `cluster_id` -
(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)
* `node_type_configs` -
(Optional)
The map of cluster node types in this cluster,
where the key is canonical identifier of the node type (corresponds to the NodeType).
Structure is [documented below](#nested_node_type_configs).
<a name="nested_node_type_configs"></a>The `node_type_configs` block supports:
* `node_type_id` - (Required) The identifier for this object. Format specified above.
* `node_count` -
(Required)
The number of nodes of this type in the cluster.
* `custom_core_count` -
(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.
This cannot be changed once the PrivateCloud is created.
- - -
* `description` -
(Optional)
User-provided description for this private cloud.
* `type` -
(Optional)
Initial type of the private cloud.
Possible values are: `STANDARD`, `TIME_LIMITED`.
* `project` - (Optional) The ID of the project in which the resource belongs.
If it is not provided, the provider project is used.
## Attributes Reference
In addition to the arguments listed above, the following computed attributes are exported:
* `id` - an identifier for the resource with format `projects/{{project}}/locations/{{location}}/privateClouds/{{name}}`
* `uid` -
System-generated unique identifier for the resource.
* `state` -
State of the resource. New values may be added to this enum when appropriate.
* `hcx` -
Details about a HCX Cloud Manager appliance.
Structure is [documented below](#nested_hcx).
* `nsx` -
Details about a NSX Manager appliance.
Structure is [documented below](#nested_nsx).
* `vcenter` -
Details about a vCenter Server management appliance.
Structure is [documented below](#nested_vcenter).
<a name="nested_hcx"></a>The `hcx` block contains:
* `internal_ip` -
(Optional)
Internal IP address of the appliance.
* `version` -
(Optional)
Version of the appliance.
* `state` -
(Optional)
State of the appliance.
Possible values are: `ACTIVE`, `CREATING`.
* `fqdn` -
(Optional)
Fully qualified domain name of the appliance.
<a name="nested_nsx"></a>The `nsx` block contains:
* `internal_ip` -
(Optional)
Internal IP address of the appliance.
* `version` -
(Optional)
Version of the appliance.
* `state` -
(Optional)
State of the appliance.
Possible values are: `ACTIVE`, `CREATING`.
* `fqdn` -
(Optional)
Fully qualified domain name of the appliance.
<a name="nested_vcenter"></a>The `vcenter` block contains:
* `internal_ip` -
(Optional)
Internal IP address of the appliance.
* `version` -
(Optional)
Version of the appliance.
* `state` -
(Optional)
State of the appliance.
Possible values are: `ACTIVE`, `CREATING`.
* `fqdn` -
(Optional)
Fully qualified domain name of the appliance.
## Timeouts
This resource provides the following
[Timeouts](https://developer.hashicorp.com/terraform/plugin/sdkv2/resources/retries-and-customizable-timeouts) configuration options:
- `create` - Default is 240 minutes.
- `update` - Default is 190 minutes.
- `delete` - Default is 150 minutes.
## Import
PrivateCloud can be imported using any of these accepted formats:
* `projects/{{project}}/locations/{{location}}/privateClouds/{{name}}`
* `{{project}}/{{location}}/{{name}}`
* `{{location}}/{{name}}`
In Terraform v1.5.0 and later, use an [`import` block](https://developer.hashicorp.com/terraform/language/import) to import PrivateCloud using one of the formats above. For example:
```tf
import {
id = "projects/{{project}}/locations/{{location}}/privateClouds/{{name}}"
to = google_vmwareengine_private_cloud.default
}
```
When using the [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import), PrivateCloud can be imported using one of the formats above. For example:
```
$ terraform import google_vmwareengine_private_cloud.default projects/{{project}}/locations/{{location}}/privateClouds/{{name}}
$ terraform import google_vmwareengine_private_cloud.default {{project}}/{{location}}/{{name}}
$ terraform import google_vmwareengine_private_cloud.default {{location}}/{{name}}
```
## User Project Overrides
This resource supports [User Project Overrides](https://registry.terraform.io/providers/hashicorp/google/latest/docs/guides/provider_reference#user_project_override).