@@ -78,6 +78,16 @@ to the BackendService.`,
78
78
ForceNew : true ,
79
79
Description : `An optional description of this resource.` ,
80
80
},
81
+ "http_keep_alive_timeout_sec" : {
82
+ Type : schema .TypeInt ,
83
+ Optional : true ,
84
+ ForceNew : true ,
85
+ Description : `Specifies how long to keep a connection open, after completing a response,
86
+ while there is no matching traffic (in seconds). If an HTTP keepalive is
87
+ not specified, a default value (600 seconds) will be used. For Regional
88
+ HTTP(S) load balancer, the minimum allowed value is 5 seconds and the
89
+ maximum allowed value is 600 seconds.` ,
90
+ },
81
91
"region" : {
82
92
Type : schema .TypeString ,
83
93
Computed : true ,
@@ -138,6 +148,12 @@ func resourceComputeRegionTargetHttpProxyCreate(d *schema.ResourceData, meta int
138
148
} else if v , ok := d .GetOkExists ("url_map" ); ! tpgresource .IsEmptyValue (reflect .ValueOf (urlMapProp )) && (ok || ! reflect .DeepEqual (v , urlMapProp )) {
139
149
obj ["urlMap" ] = urlMapProp
140
150
}
151
+ httpKeepAliveTimeoutSecProp , err := expandComputeRegionTargetHttpProxyHttpKeepAliveTimeoutSec (d .Get ("http_keep_alive_timeout_sec" ), d , config )
152
+ if err != nil {
153
+ return err
154
+ } else if v , ok := d .GetOkExists ("http_keep_alive_timeout_sec" ); ! tpgresource .IsEmptyValue (reflect .ValueOf (httpKeepAliveTimeoutSecProp )) && (ok || ! reflect .DeepEqual (v , httpKeepAliveTimeoutSecProp )) {
155
+ obj ["httpKeepAliveTimeoutSec" ] = httpKeepAliveTimeoutSecProp
156
+ }
141
157
regionProp , err := expandComputeRegionTargetHttpProxyRegion (d .Get ("region" ), d , config )
142
158
if err != nil {
143
159
return err
@@ -258,6 +274,9 @@ func resourceComputeRegionTargetHttpProxyRead(d *schema.ResourceData, meta inter
258
274
if err := d .Set ("url_map" , flattenComputeRegionTargetHttpProxyUrlMap (res ["urlMap" ], d , config )); err != nil {
259
275
return fmt .Errorf ("Error reading RegionTargetHttpProxy: %s" , err )
260
276
}
277
+ if err := d .Set ("http_keep_alive_timeout_sec" , flattenComputeRegionTargetHttpProxyHttpKeepAliveTimeoutSec (res ["httpKeepAliveTimeoutSec" ], d , config )); err != nil {
278
+ return fmt .Errorf ("Error reading RegionTargetHttpProxy: %s" , err )
279
+ }
261
280
if err := d .Set ("region" , flattenComputeRegionTargetHttpProxyRegion (res ["region" ], d , config )); err != nil {
262
281
return fmt .Errorf ("Error reading RegionTargetHttpProxy: %s" , err )
263
282
}
@@ -449,6 +468,23 @@ func flattenComputeRegionTargetHttpProxyUrlMap(v interface{}, d *schema.Resource
449
468
return tpgresource .ConvertSelfLinkToV1 (v .(string ))
450
469
}
451
470
471
+ func flattenComputeRegionTargetHttpProxyHttpKeepAliveTimeoutSec (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
472
+ // Handles the string fixed64 format
473
+ if strVal , ok := v .(string ); ok {
474
+ if intVal , err := tpgresource .StringToFixed64 (strVal ); err == nil {
475
+ return intVal
476
+ }
477
+ }
478
+
479
+ // number values are represented as float64
480
+ if floatVal , ok := v .(float64 ); ok {
481
+ intVal := int (floatVal )
482
+ return intVal
483
+ }
484
+
485
+ return v // let terraform core handle it otherwise
486
+ }
487
+
452
488
func flattenComputeRegionTargetHttpProxyRegion (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
453
489
if v == nil {
454
490
return v
@@ -472,6 +508,10 @@ func expandComputeRegionTargetHttpProxyUrlMap(v interface{}, d tpgresource.Terra
472
508
return f .RelativeLink (), nil
473
509
}
474
510
511
+ func expandComputeRegionTargetHttpProxyHttpKeepAliveTimeoutSec (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
512
+ return v , nil
513
+ }
514
+
475
515
func expandComputeRegionTargetHttpProxyRegion (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
476
516
f , err := tpgresource .ParseGlobalFieldValue ("regions" , v .(string ), "project" , d , config , true )
477
517
if err != nil {
0 commit comments