@@ -273,6 +273,11 @@ region. If not provided, defaults to the same region as the function.`,
273
273
Description : `Whether 100% of traffic is routed to the latest revision. Defaults to true.` ,
274
274
Default : true ,
275
275
},
276
+ "available_cpu" : {
277
+ Type : schema .TypeString ,
278
+ Optional : true ,
279
+ Description : `The number of CPUs used in a single container instance. Default value is calculated from available memory.` ,
280
+ },
276
281
"available_memory" : {
277
282
Type : schema .TypeString ,
278
283
Optional : true ,
@@ -299,6 +304,11 @@ supplied the value is interpreted as bytes.`,
299
304
Description : `The limit on the maximum number of function instances that may coexist at a
300
305
given time.` ,
301
306
},
307
+ "max_instance_request_concurrency" : {
308
+ Type : schema .TypeInt ,
309
+ Optional : true ,
310
+ Description : `Sets the maximum number of concurrent requests that each instance can receive. Defaults to 1.` ,
311
+ },
302
312
"min_instance_count" : {
303
313
Type : schema .TypeInt ,
304
314
Optional : true ,
@@ -1036,6 +1046,10 @@ func flattenCloudfunctions2functionServiceConfig(v interface{}, d *schema.Resour
1036
1046
flattenCloudfunctions2functionServiceConfigTimeoutSeconds (original ["timeoutSeconds" ], d , config )
1037
1047
transformed ["available_memory" ] =
1038
1048
flattenCloudfunctions2functionServiceConfigAvailableMemory (original ["availableMemory" ], d , config )
1049
+ transformed ["max_instance_request_concurrency" ] =
1050
+ flattenCloudfunctions2functionServiceConfigMaxInstanceRequestConcurrency (original ["maxInstanceRequestConcurrency" ], d , config )
1051
+ transformed ["available_cpu" ] =
1052
+ flattenCloudfunctions2functionServiceConfigAvailableCpu (original ["availableCpu" ], d , config )
1039
1053
transformed ["environment_variables" ] =
1040
1054
flattenCloudfunctions2functionServiceConfigEnvironmentVariables (original ["environmentVariables" ], d , config )
1041
1055
transformed ["max_instance_count" ] =
@@ -1087,6 +1101,27 @@ func flattenCloudfunctions2functionServiceConfigAvailableMemory(v interface{}, d
1087
1101
return v
1088
1102
}
1089
1103
1104
+ func flattenCloudfunctions2functionServiceConfigMaxInstanceRequestConcurrency (v interface {}, d * schema.ResourceData , config * Config ) interface {} {
1105
+ // Handles the string fixed64 format
1106
+ if strVal , ok := v .(string ); ok {
1107
+ if intVal , err := stringToFixed64 (strVal ); err == nil {
1108
+ return intVal
1109
+ }
1110
+ }
1111
+
1112
+ // number values are represented as float64
1113
+ if floatVal , ok := v .(float64 ); ok {
1114
+ intVal := int (floatVal )
1115
+ return intVal
1116
+ }
1117
+
1118
+ return v // let terraform core handle it otherwise
1119
+ }
1120
+
1121
+ func flattenCloudfunctions2functionServiceConfigAvailableCpu (v interface {}, d * schema.ResourceData , config * Config ) interface {} {
1122
+ return v
1123
+ }
1124
+
1090
1125
func flattenCloudfunctions2functionServiceConfigEnvironmentVariables (v interface {}, d * schema.ResourceData , config * Config ) interface {} {
1091
1126
return v
1092
1127
}
@@ -1629,6 +1664,20 @@ func expandCloudfunctions2functionServiceConfig(v interface{}, d TerraformResour
1629
1664
transformed ["availableMemory" ] = transformedAvailableMemory
1630
1665
}
1631
1666
1667
+ transformedMaxInstanceRequestConcurrency , err := expandCloudfunctions2functionServiceConfigMaxInstanceRequestConcurrency (original ["max_instance_request_concurrency" ], d , config )
1668
+ if err != nil {
1669
+ return nil , err
1670
+ } else if val := reflect .ValueOf (transformedMaxInstanceRequestConcurrency ); val .IsValid () && ! isEmptyValue (val ) {
1671
+ transformed ["maxInstanceRequestConcurrency" ] = transformedMaxInstanceRequestConcurrency
1672
+ }
1673
+
1674
+ transformedAvailableCpu , err := expandCloudfunctions2functionServiceConfigAvailableCpu (original ["available_cpu" ], d , config )
1675
+ if err != nil {
1676
+ return nil , err
1677
+ } else if val := reflect .ValueOf (transformedAvailableCpu ); val .IsValid () && ! isEmptyValue (val ) {
1678
+ transformed ["availableCpu" ] = transformedAvailableCpu
1679
+ }
1680
+
1632
1681
transformedEnvironmentVariables , err := expandCloudfunctions2functionServiceConfigEnvironmentVariables (original ["environment_variables" ], d , config )
1633
1682
if err != nil {
1634
1683
return nil , err
@@ -1728,6 +1777,14 @@ func expandCloudfunctions2functionServiceConfigAvailableMemory(v interface{}, d
1728
1777
return v , nil
1729
1778
}
1730
1779
1780
+ func expandCloudfunctions2functionServiceConfigMaxInstanceRequestConcurrency (v interface {}, d TerraformResourceData , config * Config ) (interface {}, error ) {
1781
+ return v , nil
1782
+ }
1783
+
1784
+ func expandCloudfunctions2functionServiceConfigAvailableCpu (v interface {}, d TerraformResourceData , config * Config ) (interface {}, error ) {
1785
+ return v , nil
1786
+ }
1787
+
1731
1788
func expandCloudfunctions2functionServiceConfigEnvironmentVariables (v interface {}, d TerraformResourceData , config * Config ) (map [string ]string , error ) {
1732
1789
if v == nil {
1733
1790
return map [string ]string {}, nil
0 commit comments