Skip to content

Commit 7664d60

Browse files
Add type field to PrivateCloud in Vmwareengine (#9608) (#16781)
[upstream:e87ca382d9e0e077426c1061920f1c69c63f3eee] Signed-off-by: Modular Magician <[email protected]>
1 parent 270ad86 commit 7664d60

File tree

4 files changed

+35
-4
lines changed

4 files changed

+35
-4
lines changed

.changelog/9608.txt

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:enhancement
2+
vmwareengine: added `type` field to `google_vmwareengine_private_cloud` resource
3+
```

google/services/vmwareengine/resource_vmwareengine_private_cloud.go

+18
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,14 @@ the form: projects/{project_number}/locations/{location}/vmwareEngineNetworks/{v
163163
Optional: true,
164164
Description: `User-provided description for this private cloud.`,
165165
},
166+
"type": {
167+
Type: schema.TypeString,
168+
Optional: true,
169+
ForceNew: true,
170+
ValidateFunc: verify.ValidateEnum([]string{"STANDARD", "TIME_LIMITED", ""}),
171+
Description: `Initial type of the private cloud. Default value: "STANDARD" Possible values: ["STANDARD", "TIME_LIMITED"]`,
172+
Default: "STANDARD",
173+
},
166174
"hcx": {
167175
Type: schema.TypeList,
168176
Computed: true,
@@ -300,6 +308,12 @@ func resourceVmwareenginePrivateCloudCreate(d *schema.ResourceData, meta interfa
300308
} else if v, ok := d.GetOkExists("management_cluster"); !tpgresource.IsEmptyValue(reflect.ValueOf(managementClusterProp)) && (ok || !reflect.DeepEqual(v, managementClusterProp)) {
301309
obj["managementCluster"] = managementClusterProp
302310
}
311+
typeProp, err := expandVmwareenginePrivateCloudType(d.Get("type"), d, config)
312+
if err != nil {
313+
return err
314+
} else if v, ok := d.GetOkExists("type"); !tpgresource.IsEmptyValue(reflect.ValueOf(typeProp)) && (ok || !reflect.DeepEqual(v, typeProp)) {
315+
obj["type"] = typeProp
316+
}
303317

304318
url, err := tpgresource.ReplaceVars(d, config, "{{VmwareengineBasePath}}projects/{{project}}/locations/{{location}}/privateClouds?privateCloudId={{name}}")
305319
if err != nil {
@@ -1059,6 +1073,10 @@ func expandVmwareenginePrivateCloudManagementClusterNodeTypeConfigsCustomCoreCou
10591073
return v, nil
10601074
}
10611075

1076+
func expandVmwareenginePrivateCloudType(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
1077+
return v, nil
1078+
}
1079+
10621080
func resourceVmwareenginePrivateCloudUpdateEncoder(d *schema.ResourceData, meta interface{}, obj map[string]interface{}) (map[string]interface{}, error) {
10631081
delete(obj, "managementCluster")
10641082
return obj, nil

google/services/vmwareengine/resource_vmwareengine_private_cloud_test.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ func TestAccVmwareenginePrivateCloud_vmwareEnginePrivateCloudUpdate(t *testing.T
2929
CheckDestroy: testAccCheckVmwareenginePrivateCloudDestroyProducer(t),
3030
Steps: []resource.TestStep{
3131
{
32-
Config: testPrivateCloudUpdateConfig(context, "description1", 3),
32+
Config: testPrivateCloudUpdateConfig(context, "description1", 1),
3333
Check: resource.ComposeTestCheckFunc(
3434
acctest.CheckDataSourceStateMatchesResourceStateWithIgnores("data.google_vmwareengine_private_cloud.ds", "google_vmwareengine_private_cloud.vmw-engine-pc", map[string]struct{}{}),
3535
testAccCheckGoogleVmwareengineNsxCredentialsMeta("data.google_vmwareengine_nsx_credentials.nsx-ds"),
@@ -80,6 +80,7 @@ resource "google_vmwareengine_private_cloud" "vmw-engine-pc" {
8080
location = "%{region}-a"
8181
name = "tf-test-sample-pc%{random_suffix}"
8282
description = "%{description}"
83+
type = "TIME_LIMITED"
8384
network_config {
8485
management_cidr = "192.168.30.0/24"
8586
vmware_engine_network = google_vmwareengine_network.default-nw.id
@@ -106,6 +107,7 @@ data "google_vmwareengine_private_cloud" "ds" {
106107
data "google_vmwareengine_nsx_credentials" "nsx-ds" {
107108
parent = google_vmwareengine_private_cloud.vmw-engine-pc.id
108109
}
110+
109111
data "google_vmwareengine_vcenter_credentials" "vcenter-ds" {
110112
parent = google_vmwareengine_private_cloud.vmw-engine-pc.id
111113
}

website/docs/r/vmwareengine_private_cloud.html.markdown

+11-3
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@
1414
# ----------------------------------------------------------------------------
1515
subcategory: "Cloud VMware Engine"
1616
description: |-
17-
/ Represents a private cloud resource.
17+
Represents a private cloud resource.
1818
---
1919

2020
# google\_vmwareengine\_private\_cloud
2121

22-
/ Represents a private cloud resource. Private clouds are zonal resources.
22+
Represents a private cloud resource. Private clouds are zonal resources.
2323

2424

2525
To get more information about PrivateCloud, see:
@@ -63,6 +63,7 @@ resource "google_vmwareengine_private_cloud" "vmw-engine-pc" {
6363
location = "us-west1-a"
6464
name = "sample-pc"
6565
description = "Sample test PC."
66+
type = "TIME_LIMITED"
6667
network_config {
6768
management_cidr = "192.168.30.0/24"
6869
vmware_engine_network = google_vmwareengine_network.pc-nw.id
@@ -72,7 +73,7 @@ resource "google_vmwareengine_private_cloud" "vmw-engine-pc" {
7273
cluster_id = "sample-mgmt-cluster"
7374
node_type_configs {
7475
node_type_id = "standard-72"
75-
node_count = 3
76+
node_count = 1
7677
custom_core_count = 32
7778
}
7879
}
@@ -83,6 +84,7 @@ resource "google_vmwareengine_network" "pc-nw" {
8384
location = "global"
8485
type = "STANDARD"
8586
description = "PC network description."
87+
}
8688
```
8789

8890
## Argument Reference
@@ -179,6 +181,12 @@ The following arguments are supported:
179181
(Optional)
180182
User-provided description for this private cloud.
181183

184+
* `type` -
185+
(Optional)
186+
Initial type of the private cloud.
187+
Default value is `STANDARD`.
188+
Possible values are: `STANDARD`, `TIME_LIMITED`.
189+
182190
* `project` - (Optional) The ID of the project in which the resource belongs.
183191
If it is not provided, the provider project is used.
184192

0 commit comments

Comments
 (0)