diff --git a/google/compute_autoscaler.go b/google/compute_autoscaler.go index 0d9c6c771..7cfd081c0 100644 --- a/google/compute_autoscaler.go +++ b/google/compute_autoscaler.go @@ -17,6 +17,8 @@ package google import ( "fmt" "reflect" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) func GetComputeAutoscalerCaiObject(d TerraformResourceData, config *Config) ([]Asset, error) { @@ -149,6 +151,13 @@ func expandComputeAutoscalerAutoscalingPolicy(v interface{}, d TerraformResource transformed["loadBalancingUtilization"] = transformedLoadBalancingUtilization } + transformedScalingSchedules, err := expandComputeAutoscalerAutoscalingPolicyScalingSchedules(original["scaling_schedules"], d, config) + if err != nil { + return nil, err + } else if val := reflect.ValueOf(transformedScalingSchedules); val.IsValid() && !isEmptyValue(val) { + transformed["scalingSchedules"] = transformedScalingSchedules + } + return transformed, nil } @@ -337,6 +346,90 @@ func expandComputeAutoscalerAutoscalingPolicyLoadBalancingUtilizationTarget(v in return v, nil } +func expandComputeAutoscalerAutoscalingPolicyScalingSchedules(v interface{}, d TerraformResourceData, config *Config) (map[string]interface{}, error) { + if v == nil { + return map[string]interface{}{}, nil + } + m := make(map[string]interface{}) + for _, raw := range v.(*schema.Set).List() { + original := raw.(map[string]interface{}) + transformed := make(map[string]interface{}) + + transformedMinRequiredReplicas, err := expandComputeAutoscalerAutoscalingPolicyScalingSchedulesMinRequiredReplicas(original["min_required_replicas"], d, config) + if err != nil { + return nil, err + } else { + transformed["minRequiredReplicas"] = transformedMinRequiredReplicas + } + + transformedSchedule, err := expandComputeAutoscalerAutoscalingPolicyScalingSchedulesSchedule(original["schedule"], d, config) + if err != nil { + return nil, err + } else if val := reflect.ValueOf(transformedSchedule); val.IsValid() && !isEmptyValue(val) { + transformed["schedule"] = transformedSchedule + } + + transformedTimeZone, err := expandComputeAutoscalerAutoscalingPolicyScalingSchedulesTimeZone(original["time_zone"], d, config) + if err != nil { + return nil, err + } else if val := reflect.ValueOf(transformedTimeZone); val.IsValid() && !isEmptyValue(val) { + transformed["timeZone"] = transformedTimeZone + } + + transformedDurationSec, err := expandComputeAutoscalerAutoscalingPolicyScalingSchedulesDurationSec(original["duration_sec"], d, config) + if err != nil { + return nil, err + } else if val := reflect.ValueOf(transformedDurationSec); val.IsValid() && !isEmptyValue(val) { + transformed["durationSec"] = transformedDurationSec + } + + transformedDisabled, err := expandComputeAutoscalerAutoscalingPolicyScalingSchedulesDisabled(original["disabled"], d, config) + if err != nil { + return nil, err + } else if val := reflect.ValueOf(transformedDisabled); val.IsValid() && !isEmptyValue(val) { + transformed["disabled"] = transformedDisabled + } + + transformedDescription, err := expandComputeAutoscalerAutoscalingPolicyScalingSchedulesDescription(original["description"], d, config) + if err != nil { + return nil, err + } else if val := reflect.ValueOf(transformedDescription); val.IsValid() && !isEmptyValue(val) { + transformed["description"] = transformedDescription + } + + transformedName, err := expandString(original["name"], d, config) + if err != nil { + return nil, err + } + m[transformedName] = transformed + } + return m, nil +} + +func expandComputeAutoscalerAutoscalingPolicyScalingSchedulesMinRequiredReplicas(v interface{}, d TerraformResourceData, config *Config) (interface{}, error) { + return v, nil +} + +func expandComputeAutoscalerAutoscalingPolicyScalingSchedulesSchedule(v interface{}, d TerraformResourceData, config *Config) (interface{}, error) { + return v, nil +} + +func expandComputeAutoscalerAutoscalingPolicyScalingSchedulesTimeZone(v interface{}, d TerraformResourceData, config *Config) (interface{}, error) { + return v, nil +} + +func expandComputeAutoscalerAutoscalingPolicyScalingSchedulesDurationSec(v interface{}, d TerraformResourceData, config *Config) (interface{}, error) { + return v, nil +} + +func expandComputeAutoscalerAutoscalingPolicyScalingSchedulesDisabled(v interface{}, d TerraformResourceData, config *Config) (interface{}, error) { + return v, nil +} + +func expandComputeAutoscalerAutoscalingPolicyScalingSchedulesDescription(v interface{}, d TerraformResourceData, config *Config) (interface{}, error) { + return v, nil +} + func expandComputeAutoscalerTarget(v interface{}, d TerraformResourceData, config *Config) (interface{}, error) { if v == nil || v.(string) == "" { return "", nil diff --git a/google/compute_region_autoscaler.go b/google/compute_region_autoscaler.go index ba5969b2f..b9f7dc8fe 100644 --- a/google/compute_region_autoscaler.go +++ b/google/compute_region_autoscaler.go @@ -17,6 +17,8 @@ package google import ( "fmt" "reflect" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) func GetComputeRegionAutoscalerCaiObject(d TerraformResourceData, config *Config) ([]Asset, error) { @@ -149,6 +151,13 @@ func expandComputeRegionAutoscalerAutoscalingPolicy(v interface{}, d TerraformRe transformed["loadBalancingUtilization"] = transformedLoadBalancingUtilization } + transformedScalingSchedules, err := expandComputeRegionAutoscalerAutoscalingPolicyScalingSchedules(original["scaling_schedules"], d, config) + if err != nil { + return nil, err + } else if val := reflect.ValueOf(transformedScalingSchedules); val.IsValid() && !isEmptyValue(val) { + transformed["scalingSchedules"] = transformedScalingSchedules + } + return transformed, nil } @@ -337,6 +346,90 @@ func expandComputeRegionAutoscalerAutoscalingPolicyLoadBalancingUtilizationTarge return v, nil } +func expandComputeRegionAutoscalerAutoscalingPolicyScalingSchedules(v interface{}, d TerraformResourceData, config *Config) (map[string]interface{}, error) { + if v == nil { + return map[string]interface{}{}, nil + } + m := make(map[string]interface{}) + for _, raw := range v.(*schema.Set).List() { + original := raw.(map[string]interface{}) + transformed := make(map[string]interface{}) + + transformedMinRequiredReplicas, err := expandComputeRegionAutoscalerAutoscalingPolicyScalingSchedulesMinRequiredReplicas(original["min_required_replicas"], d, config) + if err != nil { + return nil, err + } else { + transformed["minRequiredReplicas"] = transformedMinRequiredReplicas + } + + transformedSchedule, err := expandComputeRegionAutoscalerAutoscalingPolicyScalingSchedulesSchedule(original["schedule"], d, config) + if err != nil { + return nil, err + } else if val := reflect.ValueOf(transformedSchedule); val.IsValid() && !isEmptyValue(val) { + transformed["schedule"] = transformedSchedule + } + + transformedTimeZone, err := expandComputeRegionAutoscalerAutoscalingPolicyScalingSchedulesTimeZone(original["time_zone"], d, config) + if err != nil { + return nil, err + } else if val := reflect.ValueOf(transformedTimeZone); val.IsValid() && !isEmptyValue(val) { + transformed["timeZone"] = transformedTimeZone + } + + transformedDurationSec, err := expandComputeRegionAutoscalerAutoscalingPolicyScalingSchedulesDurationSec(original["duration_sec"], d, config) + if err != nil { + return nil, err + } else if val := reflect.ValueOf(transformedDurationSec); val.IsValid() && !isEmptyValue(val) { + transformed["durationSec"] = transformedDurationSec + } + + transformedDisabled, err := expandComputeRegionAutoscalerAutoscalingPolicyScalingSchedulesDisabled(original["disabled"], d, config) + if err != nil { + return nil, err + } else if val := reflect.ValueOf(transformedDisabled); val.IsValid() && !isEmptyValue(val) { + transformed["disabled"] = transformedDisabled + } + + transformedDescription, err := expandComputeRegionAutoscalerAutoscalingPolicyScalingSchedulesDescription(original["description"], d, config) + if err != nil { + return nil, err + } else if val := reflect.ValueOf(transformedDescription); val.IsValid() && !isEmptyValue(val) { + transformed["description"] = transformedDescription + } + + transformedName, err := expandString(original["name"], d, config) + if err != nil { + return nil, err + } + m[transformedName] = transformed + } + return m, nil +} + +func expandComputeRegionAutoscalerAutoscalingPolicyScalingSchedulesMinRequiredReplicas(v interface{}, d TerraformResourceData, config *Config) (interface{}, error) { + return v, nil +} + +func expandComputeRegionAutoscalerAutoscalingPolicyScalingSchedulesSchedule(v interface{}, d TerraformResourceData, config *Config) (interface{}, error) { + return v, nil +} + +func expandComputeRegionAutoscalerAutoscalingPolicyScalingSchedulesTimeZone(v interface{}, d TerraformResourceData, config *Config) (interface{}, error) { + return v, nil +} + +func expandComputeRegionAutoscalerAutoscalingPolicyScalingSchedulesDurationSec(v interface{}, d TerraformResourceData, config *Config) (interface{}, error) { + return v, nil +} + +func expandComputeRegionAutoscalerAutoscalingPolicyScalingSchedulesDisabled(v interface{}, d TerraformResourceData, config *Config) (interface{}, error) { + return v, nil +} + +func expandComputeRegionAutoscalerAutoscalingPolicyScalingSchedulesDescription(v interface{}, d TerraformResourceData, config *Config) (interface{}, error) { + return v, nil +} + func expandComputeRegionAutoscalerTarget(v interface{}, d TerraformResourceData, config *Config) (interface{}, error) { return v, nil }