Skip to content

Commit 3ede499

Browse files
Updated AlertPolicy resource to include sql condition types. (#12971) (#3413)
[upstream:131d591d87fe5afe50153e760ec6b1057be7ae7a] Signed-off-by: Modular Magician <[email protected]>
1 parent 8e6db89 commit 3ede499

File tree

3 files changed

+268
-3
lines changed

3 files changed

+268
-3
lines changed

go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ require (
1111
github.com/hashicorp/hcl/v2 v2.20.1
1212
github.com/hashicorp/terraform-json v0.22.1
1313
github.com/hashicorp/terraform-plugin-sdk/v2 v2.33.0
14-
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20250205234801-53d29ac0d727
14+
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20250206180149-bbc689d69a4e
1515
github.com/mitchellh/go-homedir v1.1.0 // indirect
1616
github.com/pkg/errors v0.9.1
1717
github.com/stretchr/testify v1.9.0

go.sum

+2-2
Original file line numberDiff line numberDiff line change
@@ -172,8 +172,8 @@ github.com/hashicorp/terraform-plugin-sdk/v2 v2.33.0 h1:qHprzXy/As0rxedphECBEQAh
172172
github.com/hashicorp/terraform-plugin-sdk/v2 v2.33.0/go.mod h1:H+8tjs9TjV2w57QFVSMBQacf8k/E1XwLXGCARgViC6A=
173173
github.com/hashicorp/terraform-plugin-testing v1.5.1 h1:T4aQh9JAhmWo4+t1A7x+rnxAJHCDIYW9kXyo4sVO92c=
174174
github.com/hashicorp/terraform-plugin-testing v1.5.1/go.mod h1:dg8clO6K59rZ8w9EshBmDp1CxTIPu3yA4iaDpX1h5u0=
175-
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20250205234801-53d29ac0d727 h1:sdZ9XMYnqhTZRsiTCEuDNRvXOhJx664bDcP+d+v2YWw=
176-
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20250205234801-53d29ac0d727/go.mod h1:IkJf/cFmSb0kvMORnXqL/PqiMSLMSAuOKHzH60Fea58=
175+
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20250206180149-bbc689d69a4e h1:EShfLXw+6Yy3OSKrTRf9HJCaqKylZvu4stjajGLlDcs=
176+
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20250206180149-bbc689d69a4e/go.mod h1:IkJf/cFmSb0kvMORnXqL/PqiMSLMSAuOKHzH60Fea58=
177177
github.com/hashicorp/terraform-registry-address v0.2.3 h1:2TAiKJ1A3MAkZlH1YI/aTVcLZRu7JseiXNRHbOAyoTI=
178178
github.com/hashicorp/terraform-registry-address v0.2.3/go.mod h1:lFHA76T8jfQteVfT7caREqguFrW3c4MFSPhZB7HHgUM=
179179
github.com/hashicorp/terraform-svchost v0.1.1 h1:EZZimZ1GxdqFRinZ1tpJwVxxt49xc/S52uzrw4x0jKQ=

tfplan2cai/converters/google/resources/services/monitoring/monitoring_alert_policy.go

+265
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,13 @@ func expandMonitoringAlertPolicyConditions(v interface{}, d tpgresource.Terrafor
190190
transformed["conditionPrometheusQueryLanguage"] = transformedConditionPrometheusQueryLanguage
191191
}
192192

193+
transformedConditionSql, err := expandMonitoringAlertPolicyConditionsConditionSql(original["condition_sql"], d, config)
194+
if err != nil {
195+
return nil, err
196+
} else if val := reflect.ValueOf(transformedConditionSql); val.IsValid() && !tpgresource.IsEmptyValue(val) {
197+
transformed["conditionSql"] = transformedConditionSql
198+
}
199+
193200
req = append(req, transformed)
194201
}
195202
return req, nil
@@ -848,6 +855,264 @@ func expandMonitoringAlertPolicyConditionsConditionPrometheusQueryLanguageDisabl
848855
return v, nil
849856
}
850857

858+
func expandMonitoringAlertPolicyConditionsConditionSql(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
859+
l := v.([]interface{})
860+
if len(l) == 0 || l[0] == nil {
861+
return nil, nil
862+
}
863+
raw := l[0]
864+
original := raw.(map[string]interface{})
865+
transformed := make(map[string]interface{})
866+
867+
transformedQuery, err := expandMonitoringAlertPolicyConditionsConditionSqlQuery(original["query"], d, config)
868+
if err != nil {
869+
return nil, err
870+
} else if val := reflect.ValueOf(transformedQuery); val.IsValid() && !tpgresource.IsEmptyValue(val) {
871+
transformed["query"] = transformedQuery
872+
}
873+
874+
transformedMinutes, err := expandMonitoringAlertPolicyConditionsConditionSqlMinutes(original["minutes"], d, config)
875+
if err != nil {
876+
return nil, err
877+
} else if val := reflect.ValueOf(transformedMinutes); val.IsValid() && !tpgresource.IsEmptyValue(val) {
878+
transformed["minutes"] = transformedMinutes
879+
}
880+
881+
transformedHourly, err := expandMonitoringAlertPolicyConditionsConditionSqlHourly(original["hourly"], d, config)
882+
if err != nil {
883+
return nil, err
884+
} else if val := reflect.ValueOf(transformedHourly); val.IsValid() && !tpgresource.IsEmptyValue(val) {
885+
transformed["hourly"] = transformedHourly
886+
}
887+
888+
transformedDaily, err := expandMonitoringAlertPolicyConditionsConditionSqlDaily(original["daily"], d, config)
889+
if err != nil {
890+
return nil, err
891+
} else if val := reflect.ValueOf(transformedDaily); val.IsValid() && !tpgresource.IsEmptyValue(val) {
892+
transformed["daily"] = transformedDaily
893+
}
894+
895+
transformedRowCountTest, err := expandMonitoringAlertPolicyConditionsConditionSqlRowCountTest(original["row_count_test"], d, config)
896+
if err != nil {
897+
return nil, err
898+
} else if val := reflect.ValueOf(transformedRowCountTest); val.IsValid() && !tpgresource.IsEmptyValue(val) {
899+
transformed["rowCountTest"] = transformedRowCountTest
900+
}
901+
902+
transformedBooleanTest, err := expandMonitoringAlertPolicyConditionsConditionSqlBooleanTest(original["boolean_test"], d, config)
903+
if err != nil {
904+
return nil, err
905+
} else if val := reflect.ValueOf(transformedBooleanTest); val.IsValid() && !tpgresource.IsEmptyValue(val) {
906+
transformed["booleanTest"] = transformedBooleanTest
907+
}
908+
909+
return transformed, nil
910+
}
911+
912+
func expandMonitoringAlertPolicyConditionsConditionSqlQuery(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
913+
return v, nil
914+
}
915+
916+
func expandMonitoringAlertPolicyConditionsConditionSqlMinutes(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
917+
l := v.([]interface{})
918+
if len(l) == 0 || l[0] == nil {
919+
return nil, nil
920+
}
921+
raw := l[0]
922+
original := raw.(map[string]interface{})
923+
transformed := make(map[string]interface{})
924+
925+
transformedPeriodicity, err := expandMonitoringAlertPolicyConditionsConditionSqlMinutesPeriodicity(original["periodicity"], d, config)
926+
if err != nil {
927+
return nil, err
928+
} else if val := reflect.ValueOf(transformedPeriodicity); val.IsValid() && !tpgresource.IsEmptyValue(val) {
929+
transformed["periodicity"] = transformedPeriodicity
930+
}
931+
932+
return transformed, nil
933+
}
934+
935+
func expandMonitoringAlertPolicyConditionsConditionSqlMinutesPeriodicity(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
936+
return v, nil
937+
}
938+
939+
func expandMonitoringAlertPolicyConditionsConditionSqlHourly(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
940+
l := v.([]interface{})
941+
if len(l) == 0 || l[0] == nil {
942+
return nil, nil
943+
}
944+
raw := l[0]
945+
original := raw.(map[string]interface{})
946+
transformed := make(map[string]interface{})
947+
948+
transformedPeriodicity, err := expandMonitoringAlertPolicyConditionsConditionSqlHourlyPeriodicity(original["periodicity"], d, config)
949+
if err != nil {
950+
return nil, err
951+
} else if val := reflect.ValueOf(transformedPeriodicity); val.IsValid() && !tpgresource.IsEmptyValue(val) {
952+
transformed["periodicity"] = transformedPeriodicity
953+
}
954+
955+
transformedMinuteOffset, err := expandMonitoringAlertPolicyConditionsConditionSqlHourlyMinuteOffset(original["minute_offset"], d, config)
956+
if err != nil {
957+
return nil, err
958+
} else if val := reflect.ValueOf(transformedMinuteOffset); val.IsValid() && !tpgresource.IsEmptyValue(val) {
959+
transformed["minuteOffset"] = transformedMinuteOffset
960+
}
961+
962+
return transformed, nil
963+
}
964+
965+
func expandMonitoringAlertPolicyConditionsConditionSqlHourlyPeriodicity(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
966+
return v, nil
967+
}
968+
969+
func expandMonitoringAlertPolicyConditionsConditionSqlHourlyMinuteOffset(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
970+
return v, nil
971+
}
972+
973+
func expandMonitoringAlertPolicyConditionsConditionSqlDaily(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
974+
l := v.([]interface{})
975+
if len(l) == 0 || l[0] == nil {
976+
return nil, nil
977+
}
978+
raw := l[0]
979+
original := raw.(map[string]interface{})
980+
transformed := make(map[string]interface{})
981+
982+
transformedPeriodicity, err := expandMonitoringAlertPolicyConditionsConditionSqlDailyPeriodicity(original["periodicity"], d, config)
983+
if err != nil {
984+
return nil, err
985+
} else if val := reflect.ValueOf(transformedPeriodicity); val.IsValid() && !tpgresource.IsEmptyValue(val) {
986+
transformed["periodicity"] = transformedPeriodicity
987+
}
988+
989+
transformedExecutionTime, err := expandMonitoringAlertPolicyConditionsConditionSqlDailyExecutionTime(original["execution_time"], d, config)
990+
if err != nil {
991+
return nil, err
992+
} else if val := reflect.ValueOf(transformedExecutionTime); val.IsValid() && !tpgresource.IsEmptyValue(val) {
993+
transformed["executionTime"] = transformedExecutionTime
994+
}
995+
996+
return transformed, nil
997+
}
998+
999+
func expandMonitoringAlertPolicyConditionsConditionSqlDailyPeriodicity(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
1000+
return v, nil
1001+
}
1002+
1003+
func expandMonitoringAlertPolicyConditionsConditionSqlDailyExecutionTime(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
1004+
l := v.([]interface{})
1005+
if len(l) == 0 || l[0] == nil {
1006+
return nil, nil
1007+
}
1008+
raw := l[0]
1009+
original := raw.(map[string]interface{})
1010+
transformed := make(map[string]interface{})
1011+
1012+
transformedHours, err := expandMonitoringAlertPolicyConditionsConditionSqlDailyExecutionTimeHours(original["hours"], d, config)
1013+
if err != nil {
1014+
return nil, err
1015+
} else if val := reflect.ValueOf(transformedHours); val.IsValid() && !tpgresource.IsEmptyValue(val) {
1016+
transformed["hours"] = transformedHours
1017+
}
1018+
1019+
transformedMinutes, err := expandMonitoringAlertPolicyConditionsConditionSqlDailyExecutionTimeMinutes(original["minutes"], d, config)
1020+
if err != nil {
1021+
return nil, err
1022+
} else if val := reflect.ValueOf(transformedMinutes); val.IsValid() && !tpgresource.IsEmptyValue(val) {
1023+
transformed["minutes"] = transformedMinutes
1024+
}
1025+
1026+
transformedSeconds, err := expandMonitoringAlertPolicyConditionsConditionSqlDailyExecutionTimeSeconds(original["seconds"], d, config)
1027+
if err != nil {
1028+
return nil, err
1029+
} else if val := reflect.ValueOf(transformedSeconds); val.IsValid() && !tpgresource.IsEmptyValue(val) {
1030+
transformed["seconds"] = transformedSeconds
1031+
}
1032+
1033+
transformedNanos, err := expandMonitoringAlertPolicyConditionsConditionSqlDailyExecutionTimeNanos(original["nanos"], d, config)
1034+
if err != nil {
1035+
return nil, err
1036+
} else if val := reflect.ValueOf(transformedNanos); val.IsValid() && !tpgresource.IsEmptyValue(val) {
1037+
transformed["nanos"] = transformedNanos
1038+
}
1039+
1040+
return transformed, nil
1041+
}
1042+
1043+
func expandMonitoringAlertPolicyConditionsConditionSqlDailyExecutionTimeHours(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
1044+
return v, nil
1045+
}
1046+
1047+
func expandMonitoringAlertPolicyConditionsConditionSqlDailyExecutionTimeMinutes(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
1048+
return v, nil
1049+
}
1050+
1051+
func expandMonitoringAlertPolicyConditionsConditionSqlDailyExecutionTimeSeconds(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
1052+
return v, nil
1053+
}
1054+
1055+
func expandMonitoringAlertPolicyConditionsConditionSqlDailyExecutionTimeNanos(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
1056+
return v, nil
1057+
}
1058+
1059+
func expandMonitoringAlertPolicyConditionsConditionSqlRowCountTest(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
1060+
l := v.([]interface{})
1061+
if len(l) == 0 || l[0] == nil {
1062+
return nil, nil
1063+
}
1064+
raw := l[0]
1065+
original := raw.(map[string]interface{})
1066+
transformed := make(map[string]interface{})
1067+
1068+
transformedComparison, err := expandMonitoringAlertPolicyConditionsConditionSqlRowCountTestComparison(original["comparison"], d, config)
1069+
if err != nil {
1070+
return nil, err
1071+
} else if val := reflect.ValueOf(transformedComparison); val.IsValid() && !tpgresource.IsEmptyValue(val) {
1072+
transformed["comparison"] = transformedComparison
1073+
}
1074+
1075+
transformedThreshold, err := expandMonitoringAlertPolicyConditionsConditionSqlRowCountTestThreshold(original["threshold"], d, config)
1076+
if err != nil {
1077+
return nil, err
1078+
} else if val := reflect.ValueOf(transformedThreshold); val.IsValid() && !tpgresource.IsEmptyValue(val) {
1079+
transformed["threshold"] = transformedThreshold
1080+
}
1081+
1082+
return transformed, nil
1083+
}
1084+
1085+
func expandMonitoringAlertPolicyConditionsConditionSqlRowCountTestComparison(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
1086+
return v, nil
1087+
}
1088+
1089+
func expandMonitoringAlertPolicyConditionsConditionSqlRowCountTestThreshold(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
1090+
return v, nil
1091+
}
1092+
1093+
func expandMonitoringAlertPolicyConditionsConditionSqlBooleanTest(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
1094+
l := v.([]interface{})
1095+
if len(l) == 0 || l[0] == nil {
1096+
return nil, nil
1097+
}
1098+
raw := l[0]
1099+
original := raw.(map[string]interface{})
1100+
transformed := make(map[string]interface{})
1101+
1102+
transformedColumn, err := expandMonitoringAlertPolicyConditionsConditionSqlBooleanTestColumn(original["column"], d, config)
1103+
if err != nil {
1104+
return nil, err
1105+
} else if val := reflect.ValueOf(transformedColumn); val.IsValid() && !tpgresource.IsEmptyValue(val) {
1106+
transformed["column"] = transformedColumn
1107+
}
1108+
1109+
return transformed, nil
1110+
}
1111+
1112+
func expandMonitoringAlertPolicyConditionsConditionSqlBooleanTestColumn(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
1113+
return v, nil
1114+
}
1115+
8511116
func expandMonitoringAlertPolicyNotificationChannels(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
8521117
return v, nil
8531118
}

0 commit comments

Comments
 (0)