Skip to content

Commit 40a6d5f

Browse files
Add support for type in ApigeeEnvironment; remove obsolete broken test (#9340) (#16349)
[upstream:127027fb175033d97d86cb241af0ba2ba9fa0729] Signed-off-by: Modular Magician <[email protected]>
1 parent 7047861 commit 40a6d5f

File tree

4 files changed

+48
-3
lines changed

4 files changed

+48
-3
lines changed

.changelog/9340.txt

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:enhancement
2+
apigee: add support for type in `google_apigee_environment`
3+
```

google/services/apigee/resource_apigee_environment.go

+37
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,16 @@ all instances.`,
128128
},
129129
},
130130
},
131+
"type": {
132+
Type: schema.TypeString,
133+
Computed: true,
134+
Optional: true,
135+
ValidateFunc: verify.ValidateEnum([]string{"ENVIRONMENT_TYPE_UNSPECIFIED", "BASE", "INTERMEDIATE", "COMPREHENSIVE", ""}),
136+
Description: `Types that can be selected for an Environment. Each of the types are
137+
limited by capability and capacity. Refer to Apigee's public documentation
138+
to understand about each of these types in details.
139+
An Apigee org can support heterogeneous Environments. Possible values: ["ENVIRONMENT_TYPE_UNSPECIFIED", "BASE", "INTERMEDIATE", "COMPREHENSIVE"]`,
140+
},
131141
},
132142
UseJSONNumber: true,
133143
}
@@ -177,6 +187,12 @@ func resourceApigeeEnvironmentCreate(d *schema.ResourceData, meta interface{}) e
177187
} else if v, ok := d.GetOkExists("node_config"); !tpgresource.IsEmptyValue(reflect.ValueOf(nodeConfigProp)) && (ok || !reflect.DeepEqual(v, nodeConfigProp)) {
178188
obj["nodeConfig"] = nodeConfigProp
179189
}
190+
typeProp, err := expandApigeeEnvironmentType(d.Get("type"), d, config)
191+
if err != nil {
192+
return err
193+
} else if v, ok := d.GetOkExists("type"); !tpgresource.IsEmptyValue(reflect.ValueOf(typeProp)) && (ok || !reflect.DeepEqual(v, typeProp)) {
194+
obj["type"] = typeProp
195+
}
180196

181197
url, err := tpgresource.ReplaceVars(d, config, "{{ApigeeBasePath}}{{org_id}}/environments")
182198
if err != nil {
@@ -288,6 +304,9 @@ func resourceApigeeEnvironmentRead(d *schema.ResourceData, meta interface{}) err
288304
if err := d.Set("node_config", flattenApigeeEnvironmentNodeConfig(res["nodeConfig"], d, config)); err != nil {
289305
return fmt.Errorf("Error reading Environment: %s", err)
290306
}
307+
if err := d.Set("type", flattenApigeeEnvironmentType(res["type"], d, config)); err != nil {
308+
return fmt.Errorf("Error reading Environment: %s", err)
309+
}
291310

292311
return nil
293312
}
@@ -308,6 +327,12 @@ func resourceApigeeEnvironmentUpdate(d *schema.ResourceData, meta interface{}) e
308327
} else if v, ok := d.GetOkExists("node_config"); !tpgresource.IsEmptyValue(reflect.ValueOf(v)) && (ok || !reflect.DeepEqual(v, nodeConfigProp)) {
309328
obj["nodeConfig"] = nodeConfigProp
310329
}
330+
typeProp, err := expandApigeeEnvironmentType(d.Get("type"), d, config)
331+
if err != nil {
332+
return err
333+
} else if v, ok := d.GetOkExists("type"); !tpgresource.IsEmptyValue(reflect.ValueOf(v)) && (ok || !reflect.DeepEqual(v, typeProp)) {
334+
obj["type"] = typeProp
335+
}
311336

312337
url, err := tpgresource.ReplaceVars(d, config, "{{ApigeeBasePath}}{{org_id}}/environments/{{name}}")
313338
if err != nil {
@@ -320,6 +345,10 @@ func resourceApigeeEnvironmentUpdate(d *schema.ResourceData, meta interface{}) e
320345
if d.HasChange("node_config") {
321346
updateMask = append(updateMask, "nodeConfig")
322347
}
348+
349+
if d.HasChange("type") {
350+
updateMask = append(updateMask, "type")
351+
}
323352
// updateMask is a URL parameter but not present in the schema, so ReplaceVars
324353
// won't set it
325354
url, err = transport_tpg.AddQueryParams(url, map[string]string{"updateMask": strings.Join(updateMask, ",")})
@@ -503,6 +532,10 @@ func flattenApigeeEnvironmentNodeConfigCurrentAggregateNodeCount(v interface{},
503532
return v
504533
}
505534

535+
func flattenApigeeEnvironmentType(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
536+
return v
537+
}
538+
506539
func expandApigeeEnvironmentName(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
507540
return v, nil
508541
}
@@ -567,3 +600,7 @@ func expandApigeeEnvironmentNodeConfigMaxNodeCount(v interface{}, d tpgresource.
567600
func expandApigeeEnvironmentNodeConfigCurrentAggregateNodeCount(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
568601
return v, nil
569602
}
603+
604+
func expandApigeeEnvironmentType(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
605+
return v, nil
606+
}

google/services/apigee/resource_apigee_environment_nodeconfig_test.go

-3
This file was deleted.

website/docs/r/apigee_environment.html.markdown

+8
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,14 @@ The following arguments are supported:
115115
NodeConfig for setting the min/max number of nodes associated with the environment.
116116
Structure is [documented below](#nested_node_config).
117117

118+
* `type` -
119+
(Optional)
120+
Types that can be selected for an Environment. Each of the types are
121+
limited by capability and capacity. Refer to Apigee's public documentation
122+
to understand about each of these types in details.
123+
An Apigee org can support heterogeneous Environments.
124+
Possible values are: `ENVIRONMENT_TYPE_UNSPECIFIED`, `BASE`, `INTERMEDIATE`, `COMPREHENSIVE`.
125+
118126

119127
<a name="nested_node_config"></a>The `node_config` block supports:
120128

0 commit comments

Comments
 (0)