@@ -147,6 +147,12 @@ func GetSpannerInstanceApiObject(d tpgresource.TerraformResourceData, config *tr
147
147
} else if v , ok := d .GetOkExists ("processing_units" ); ! tpgresource .IsEmptyValue (reflect .ValueOf (processingUnitsProp )) && (ok || ! reflect .DeepEqual (v , processingUnitsProp )) {
148
148
obj ["processingUnits" ] = processingUnitsProp
149
149
}
150
+ autoscalingConfigProp , err := expandSpannerInstanceAutoscalingConfig (d .Get ("autoscaling_config" ), d , config )
151
+ if err != nil {
152
+ return nil , err
153
+ } else if v , ok := d .GetOkExists ("autoscaling_config" ); ! tpgresource .IsEmptyValue (reflect .ValueOf (autoscalingConfigProp )) && (ok || ! reflect .DeepEqual (v , autoscalingConfigProp )) {
154
+ obj ["autoscalingConfig" ] = autoscalingConfigProp
155
+ }
150
156
labelsProp , err := expandSpannerInstanceEffectiveLabels (d .Get ("effective_labels" ), d , config )
151
157
if err != nil {
152
158
return nil , err
@@ -158,8 +164,8 @@ func GetSpannerInstanceApiObject(d tpgresource.TerraformResourceData, config *tr
158
164
}
159
165
160
166
func resourceSpannerInstanceEncoder (d tpgresource.TerraformResourceData , meta interface {}, obj map [string ]interface {}) (map [string ]interface {}, error ) {
161
- // Temp Logic to accommodate processing_units and num_nodes
162
- if obj ["processingUnits" ] == nil && obj ["nodeCount" ] == nil {
167
+ // Temp Logic to accommodate autoscaling_config, processing_units and num_nodes
168
+ if obj ["processingUnits" ] == nil && obj ["nodeCount" ] == nil && obj [ "autoscalingConfig" ] == nil {
163
169
obj ["nodeCount" ] = 1
164
170
}
165
171
newObj := make (map [string ]interface {})
@@ -206,6 +212,100 @@ func expandSpannerInstanceProcessingUnits(v interface{}, d tpgresource.Terraform
206
212
return v , nil
207
213
}
208
214
215
+ func expandSpannerInstanceAutoscalingConfig (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
216
+ l := v .([]interface {})
217
+ if len (l ) == 0 || l [0 ] == nil {
218
+ return nil , nil
219
+ }
220
+ raw := l [0 ]
221
+ original := raw .(map [string ]interface {})
222
+ transformed := make (map [string ]interface {})
223
+
224
+ transformedAutoscalingLimits , err := expandSpannerInstanceAutoscalingConfigAutoscalingLimits (original ["autoscaling_limits" ], d , config )
225
+ if err != nil {
226
+ return nil , err
227
+ } else if val := reflect .ValueOf (transformedAutoscalingLimits ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
228
+ transformed ["autoscalingLimits" ] = transformedAutoscalingLimits
229
+ }
230
+
231
+ transformedAutoscalingTargets , err := expandSpannerInstanceAutoscalingConfigAutoscalingTargets (original ["autoscaling_targets" ], d , config )
232
+ if err != nil {
233
+ return nil , err
234
+ } else if val := reflect .ValueOf (transformedAutoscalingTargets ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
235
+ transformed ["autoscalingTargets" ] = transformedAutoscalingTargets
236
+ }
237
+
238
+ return transformed , nil
239
+ }
240
+
241
+ func expandSpannerInstanceAutoscalingConfigAutoscalingLimits (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
242
+ l := v .([]interface {})
243
+ if len (l ) == 0 || l [0 ] == nil {
244
+ return nil , nil
245
+ }
246
+ raw := l [0 ]
247
+ original := raw .(map [string ]interface {})
248
+ transformed := make (map [string ]interface {})
249
+
250
+ transformedMinProcessingUnits , err := expandSpannerInstanceAutoscalingConfigAutoscalingLimitsMinProcessingUnits (original ["min_processing_units" ], d , config )
251
+ if err != nil {
252
+ return nil , err
253
+ } else if val := reflect .ValueOf (transformedMinProcessingUnits ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
254
+ transformed ["minProcessingUnits" ] = transformedMinProcessingUnits
255
+ }
256
+
257
+ transformedMaxProcessingUnits , err := expandSpannerInstanceAutoscalingConfigAutoscalingLimitsMaxProcessingUnits (original ["max_processing_units" ], d , config )
258
+ if err != nil {
259
+ return nil , err
260
+ } else if val := reflect .ValueOf (transformedMaxProcessingUnits ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
261
+ transformed ["maxProcessingUnits" ] = transformedMaxProcessingUnits
262
+ }
263
+
264
+ return transformed , nil
265
+ }
266
+
267
+ func expandSpannerInstanceAutoscalingConfigAutoscalingLimitsMinProcessingUnits (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
268
+ return v , nil
269
+ }
270
+
271
+ func expandSpannerInstanceAutoscalingConfigAutoscalingLimitsMaxProcessingUnits (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
272
+ return v , nil
273
+ }
274
+
275
+ func expandSpannerInstanceAutoscalingConfigAutoscalingTargets (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
276
+ l := v .([]interface {})
277
+ if len (l ) == 0 || l [0 ] == nil {
278
+ return nil , nil
279
+ }
280
+ raw := l [0 ]
281
+ original := raw .(map [string ]interface {})
282
+ transformed := make (map [string ]interface {})
283
+
284
+ transformedHighPriorityCpuUtilizationPercent , err := expandSpannerInstanceAutoscalingConfigAutoscalingTargetsHighPriorityCpuUtilizationPercent (original ["high_priority_cpu_utilization_percent" ], d , config )
285
+ if err != nil {
286
+ return nil , err
287
+ } else if val := reflect .ValueOf (transformedHighPriorityCpuUtilizationPercent ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
288
+ transformed ["highPriorityCpuUtilizationPercent" ] = transformedHighPriorityCpuUtilizationPercent
289
+ }
290
+
291
+ transformedStorageUtilizationPercent , err := expandSpannerInstanceAutoscalingConfigAutoscalingTargetsStorageUtilizationPercent (original ["storage_utilization_percent" ], d , config )
292
+ if err != nil {
293
+ return nil , err
294
+ } else if val := reflect .ValueOf (transformedStorageUtilizationPercent ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
295
+ transformed ["storageUtilizationPercent" ] = transformedStorageUtilizationPercent
296
+ }
297
+
298
+ return transformed , nil
299
+ }
300
+
301
+ func expandSpannerInstanceAutoscalingConfigAutoscalingTargetsHighPriorityCpuUtilizationPercent (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
302
+ return v , nil
303
+ }
304
+
305
+ func expandSpannerInstanceAutoscalingConfigAutoscalingTargetsStorageUtilizationPercent (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
306
+ return v , nil
307
+ }
308
+
209
309
func expandSpannerInstanceEffectiveLabels (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (map [string ]string , error ) {
210
310
if v == nil {
211
311
return map [string ]string {}, nil
0 commit comments