Skip to content

Commit 8af1e42

Browse files
Add NetworkTier for GlobalForwardingRule. (#12474) (#8838)
[upstream:dc4d9755cb9288177e0996c1c3b3fa9738ebdf89] Signed-off-by: Modular Magician <[email protected]>
1 parent 9593948 commit 8af1e42

File tree

4 files changed

+53
-0
lines changed

4 files changed

+53
-0
lines changed

.changelog/12474.txt

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:enhancement
2+
compute: added `network_tier` field to `google_compute_global_forwarding_rule` resource
3+
```

google-beta/services/compute/resource_compute_global_forwarding_rule.go

+35
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,24 @@ be used.
279279
280280
For Private Service Connect forwarding rules that forward traffic to Google
281281
APIs, a network must be provided.`,
282+
},
283+
"network_tier": {
284+
Type: schema.TypeString,
285+
Computed: true,
286+
Optional: true,
287+
ForceNew: true,
288+
ValidateFunc: verify.ValidateEnum([]string{"PREMIUM", "STANDARD", ""}),
289+
Description: `This signifies the networking tier used for configuring
290+
this load balancer and can only take the following values:
291+
'PREMIUM', 'STANDARD'.
292+
293+
For regional ForwardingRule, the valid values are 'PREMIUM' and
294+
'STANDARD'. For GlobalForwardingRule, the valid value is
295+
'PREMIUM'.
296+
297+
If this field is not specified, it is assumed to be 'PREMIUM'.
298+
If 'IPAddress' is specified, this value must be equal to the
299+
networkTier of the Address. Possible values: ["PREMIUM", "STANDARD"]`,
282300
},
283301
"no_automate_dns_zone": {
284302
Type: schema.TypeBool,
@@ -500,6 +518,12 @@ func resourceComputeGlobalForwardingRuleCreate(d *schema.ResourceData, meta inte
500518
} else if v, ok := d.GetOkExists("target"); !tpgresource.IsEmptyValue(reflect.ValueOf(targetProp)) && (ok || !reflect.DeepEqual(v, targetProp)) {
501519
obj["target"] = targetProp
502520
}
521+
networkTierProp, err := expandComputeGlobalForwardingRuleNetworkTier(d.Get("network_tier"), d, config)
522+
if err != nil {
523+
return err
524+
} else if v, ok := d.GetOkExists("network_tier"); !tpgresource.IsEmptyValue(reflect.ValueOf(networkTierProp)) && (ok || !reflect.DeepEqual(v, networkTierProp)) {
525+
obj["networkTier"] = networkTierProp
526+
}
503527
serviceDirectoryRegistrationsProp, err := expandComputeGlobalForwardingRuleServiceDirectoryRegistrations(d.Get("service_directory_registrations"), d, config)
504528
if err != nil {
505529
return err
@@ -737,6 +761,9 @@ func resourceComputeGlobalForwardingRuleRead(d *schema.ResourceData, meta interf
737761
if err := d.Set("target", flattenComputeGlobalForwardingRuleTarget(res["target"], d, config)); err != nil {
738762
return fmt.Errorf("Error reading GlobalForwardingRule: %s", err)
739763
}
764+
if err := d.Set("network_tier", flattenComputeGlobalForwardingRuleNetworkTier(res["networkTier"], d, config)); err != nil {
765+
return fmt.Errorf("Error reading GlobalForwardingRule: %s", err)
766+
}
740767
if err := d.Set("service_directory_registrations", flattenComputeGlobalForwardingRuleServiceDirectoryRegistrations(res["serviceDirectoryRegistrations"], d, config)); err != nil {
741768
return fmt.Errorf("Error reading GlobalForwardingRule: %s", err)
742769
}
@@ -1097,6 +1124,10 @@ func flattenComputeGlobalForwardingRuleTarget(v interface{}, d *schema.ResourceD
10971124
return v
10981125
}
10991126

1127+
func flattenComputeGlobalForwardingRuleNetworkTier(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
1128+
return v
1129+
}
1130+
11001131
func flattenComputeGlobalForwardingRuleServiceDirectoryRegistrations(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
11011132
if v == nil {
11021133
return v
@@ -1277,6 +1308,10 @@ func expandComputeGlobalForwardingRuleTarget(v interface{}, d tpgresource.Terraf
12771308
return v, nil
12781309
}
12791310

1311+
func expandComputeGlobalForwardingRuleNetworkTier(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
1312+
return v, nil
1313+
}
1314+
12801315
func expandComputeGlobalForwardingRuleServiceDirectoryRegistrations(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
12811316
l := v.([]interface{})
12821317
req := make([]interface{}, 0, len(l))

google-beta/services/compute/resource_compute_global_forwarding_rule_generated_test.go

+1
Original file line numberDiff line numberDiff line change
@@ -636,6 +636,7 @@ resource "google_compute_global_forwarding_rule" "default" {
636636
target = google_compute_target_http_proxy.default.id
637637
port_range = "80"
638638
load_balancing_scheme = "EXTERNAL_MANAGED"
639+
network_tier = "PREMIUM"
639640
}
640641
641642
resource "google_compute_target_http_proxy" "default" {

website/docs/r/compute_global_forwarding_rule.html.markdown

+14
Original file line numberDiff line numberDiff line change
@@ -725,6 +725,7 @@ resource "google_compute_global_forwarding_rule" "default" {
725725
target = google_compute_target_http_proxy.default.id
726726
port_range = "80"
727727
load_balancing_scheme = "EXTERNAL_MANAGED"
728+
network_tier = "PREMIUM"
728729
}
729730
730731
resource "google_compute_target_http_proxy" "default" {
@@ -1348,6 +1349,19 @@ The following arguments are supported:
13481349
However, a subnetwork must be specified if the network is in custom subnet
13491350
mode or when creating external forwarding rule with IPv6.
13501351

1352+
* `network_tier` -
1353+
(Optional)
1354+
This signifies the networking tier used for configuring
1355+
this load balancer and can only take the following values:
1356+
`PREMIUM`, `STANDARD`.
1357+
For regional ForwardingRule, the valid values are `PREMIUM` and
1358+
`STANDARD`. For GlobalForwardingRule, the valid value is
1359+
`PREMIUM`.
1360+
If this field is not specified, it is assumed to be `PREMIUM`.
1361+
If `IPAddress` is specified, this value must be equal to the
1362+
networkTier of the Address.
1363+
Possible values are: `PREMIUM`, `STANDARD`.
1364+
13511365
* `service_directory_registrations` -
13521366
(Optional)
13531367
Service Directory resources to register this forwarding rule with.

0 commit comments

Comments
 (0)