@@ -173,6 +173,7 @@ type emailConfigsModel struct {
173173 AuthPassword types.String `tfsdk:"auth_password"`
174174 AuthUsername types.String `tfsdk:"auth_username"`
175175 From types.String `tfsdk:"from"`
176+ SendResolved types.Bool `tfsdk:"send_resolved"`
176177 Smarthost types.String `tfsdk:"smart_host"`
177178 To types.String `tfsdk:"to"`
178179}
@@ -182,36 +183,41 @@ var emailConfigsTypes = map[string]attr.Type{
182183 "auth_password" : types .StringType ,
183184 "auth_username" : types .StringType ,
184185 "from" : types .StringType ,
186+ "send_resolved" : types .BoolType ,
185187 "smart_host" : types .StringType ,
186188 "to" : types .StringType ,
187189}
188190
189191// Struct corresponding to Model.AlertConfig.receivers.opsGenieConfigs
190192type opsgenieConfigsModel struct {
191- ApiKey types.String `tfsdk:"api_key"`
192- ApiUrl types.String `tfsdk:"api_url"`
193- Tags types.String `tfsdk:"tags"`
194- Priority types.String `tfsdk:"priority"`
193+ ApiKey types.String `tfsdk:"api_key"`
194+ ApiUrl types.String `tfsdk:"api_url"`
195+ Tags types.String `tfsdk:"tags"`
196+ Priority types.String `tfsdk:"priority"`
197+ SendResolved types.Bool `tfsdk:"send_resolved"`
195198}
196199
197200var opsgenieConfigsTypes = map [string ]attr.Type {
198- "api_key" : types .StringType ,
199- "api_url" : types .StringType ,
200- "tags" : types .StringType ,
201- "priority" : types .StringType ,
201+ "api_key" : types .StringType ,
202+ "api_url" : types .StringType ,
203+ "tags" : types .StringType ,
204+ "priority" : types .StringType ,
205+ "send_resolved" : types .BoolType ,
202206}
203207
204208// Struct corresponding to Model.AlertConfig.receivers.webHooksConfigs
205209type webHooksConfigsModel struct {
206- Url types.String `tfsdk:"url"`
207- MsTeams types.Bool `tfsdk:"ms_teams"`
208- GoogleChat types.Bool `tfsdk:"google_chat"`
210+ Url types.String `tfsdk:"url"`
211+ MsTeams types.Bool `tfsdk:"ms_teams"`
212+ GoogleChat types.Bool `tfsdk:"google_chat"`
213+ SendResolved types.Bool `tfsdk:"send_resolved"`
209214}
210215
211216var webHooksConfigsTypes = map [string ]attr.Type {
212- "url" : types .StringType ,
213- "ms_teams" : types .BoolType ,
214- "google_chat" : types .BoolType ,
217+ "url" : types .StringType ,
218+ "ms_teams" : types .BoolType ,
219+ "google_chat" : types .BoolType ,
220+ "send_resolved" : types .BoolType ,
215221}
216222
217223var routeDescriptions = map [string ]string {
@@ -604,6 +610,10 @@ func (r *instanceResource) Schema(_ context.Context, _ resource.SchemaRequest, r
604610 Description : "The sender email address. Must be a valid email address" ,
605611 Optional : true ,
606612 },
613+ "send_resolved" : schema.BoolAttribute {
614+ Description : "Whether to notify about resolved alerts." ,
615+ Optional : true ,
616+ },
607617 "smart_host" : schema.StringAttribute {
608618 Description : "The SMTP host through which emails are sent." ,
609619 Optional : true ,
@@ -639,6 +649,10 @@ func (r *instanceResource) Schema(_ context.Context, _ resource.SchemaRequest, r
639649 Description : "Priority of the alert. " + utils .FormatPossibleValues ("P1" , "P2" , "P3" , "P4" , "P5" ),
640650 Optional : true ,
641651 },
652+ "send_resolved" : schema.BoolAttribute {
653+ Description : "Whether to notify about resolved alerts." ,
654+ Optional : true ,
655+ },
642656 },
643657 },
644658 },
@@ -670,6 +684,10 @@ func (r *instanceResource) Schema(_ context.Context, _ resource.SchemaRequest, r
670684 Computed : true ,
671685 Default : booldefault .StaticBool (false ),
672686 },
687+ "send_resolved" : schema.BoolAttribute {
688+ Description : "Whether to notify about resolved alerts." ,
689+ Optional : true ,
690+ },
673691 },
674692 },
675693 },
@@ -1525,6 +1543,7 @@ func getMockAlertConfig(ctx context.Context) (alertConfigModel, error) {
15251543 mockEmailConfig , diags := types .ObjectValue (emailConfigsTypes , map [string ]attr.Value {
15261544 "to" : types .StringValue ("123@gmail.com" ),
15271545 "smart_host" : types .StringValue ("smtp.gmail.com:587" ),
1546+ "send_resolved" : types .BoolValue (false ),
15281547 "from" : types .StringValue ("xxxx@gmail.com" ),
15291548 "auth_username" : types .StringValue ("xxxx@gmail.com" ),
15301549 "auth_password" : types .StringValue ("xxxxxxxxx" ),
@@ -1672,6 +1691,7 @@ func mapReceiversToAttributes(ctx context.Context, respReceivers *[]observabilit
16721691 "auth_password" : types .StringPointerValue (emailConfig .AuthPassword ),
16731692 "auth_username" : types .StringPointerValue (emailConfig .AuthUsername ),
16741693 "from" : types .StringPointerValue (emailConfig .From ),
1694+ "send_resolved" : types .BoolPointerValue (emailConfig .SendResolved ),
16751695 "smart_host" : types .StringPointerValue (emailConfig .Smarthost ),
16761696 "to" : types .StringPointerValue (emailConfig .To ),
16771697 }
@@ -1687,10 +1707,11 @@ func mapReceiversToAttributes(ctx context.Context, respReceivers *[]observabilit
16871707 if receiver .OpsgenieConfigs != nil {
16881708 for _ , opsgenieConfig := range * receiver .OpsgenieConfigs {
16891709 opsGenieConfigMap := map [string ]attr.Value {
1690- "api_key" : types .StringPointerValue (opsgenieConfig .ApiKey ),
1691- "api_url" : types .StringPointerValue (opsgenieConfig .ApiUrl ),
1692- "tags" : types .StringPointerValue (opsgenieConfig .Tags ),
1693- "priority" : types .StringPointerValue (opsgenieConfig .Priority ),
1710+ "api_key" : types .StringPointerValue (opsgenieConfig .ApiKey ),
1711+ "api_url" : types .StringPointerValue (opsgenieConfig .ApiUrl ),
1712+ "tags" : types .StringPointerValue (opsgenieConfig .Tags ),
1713+ "priority" : types .StringPointerValue (opsgenieConfig .Priority ),
1714+ "send_resolved" : types .BoolPointerValue (opsgenieConfig .SendResolved ),
16941715 }
16951716 opsGenieConfigModel , diags := types .ObjectValue (opsgenieConfigsTypes , opsGenieConfigMap )
16961717 if diags .HasError () {
@@ -1703,13 +1724,11 @@ func mapReceiversToAttributes(ctx context.Context, respReceivers *[]observabilit
17031724 webhooksConfigList := []attr.Value {}
17041725 if receiver .WebHookConfigs != nil {
17051726 for _ , webhookConfig := range * receiver .WebHookConfigs {
1706- msTeamsValue := types .BoolPointerValue (webhookConfig .MsTeams )
1707- googleChatValue := types .BoolPointerValue (webhookConfig .GoogleChat )
1708-
17091727 webHookConfigsMap := map [string ]attr.Value {
1710- "url" : types .StringPointerValue (webhookConfig .Url ),
1711- "ms_teams" : msTeamsValue ,
1712- "google_chat" : googleChatValue ,
1728+ "url" : types .StringPointerValue (webhookConfig .Url ),
1729+ "ms_teams" : types .BoolPointerValue (webhookConfig .MsTeams ),
1730+ "google_chat" : types .BoolPointerValue (webhookConfig .GoogleChat ),
1731+ "send_resolved" : types .BoolPointerValue (webhookConfig .SendResolved ),
17131732 }
17141733 webHookConfigsModel , diags := types .ObjectValue (webHooksConfigsTypes , webHookConfigsMap )
17151734 if diags .HasError () {
@@ -2024,6 +2043,7 @@ func toReceiverPayload(ctx context.Context, model *alertConfigModel) (*[]observa
20242043 AuthPassword : conversion .StringValueToPointer (emailConfig .AuthPassword ),
20252044 AuthUsername : conversion .StringValueToPointer (emailConfig .AuthUsername ),
20262045 From : conversion .StringValueToPointer (emailConfig .From ),
2046+ SendResolved : conversion .BoolValueToPointer (emailConfig .SendResolved ),
20272047 Smarthost : conversion .StringValueToPointer (emailConfig .Smarthost ),
20282048 To : conversion .StringValueToPointer (emailConfig .To ),
20292049 })
@@ -2041,10 +2061,11 @@ func toReceiverPayload(ctx context.Context, model *alertConfigModel) (*[]observa
20412061 for i := range opsgenieConfigs {
20422062 opsgenieConfig := opsgenieConfigs [i ]
20432063 payloadOpsGenieConfigs = append (payloadOpsGenieConfigs , observability.CreateAlertConfigReceiverPayloadOpsgenieConfigsInner {
2044- ApiKey : conversion .StringValueToPointer (opsgenieConfig .ApiKey ),
2045- ApiUrl : conversion .StringValueToPointer (opsgenieConfig .ApiUrl ),
2046- Tags : conversion .StringValueToPointer (opsgenieConfig .Tags ),
2047- Priority : conversion .StringValueToPointer (opsgenieConfig .Priority ),
2064+ ApiKey : conversion .StringValueToPointer (opsgenieConfig .ApiKey ),
2065+ ApiUrl : conversion .StringValueToPointer (opsgenieConfig .ApiUrl ),
2066+ Tags : conversion .StringValueToPointer (opsgenieConfig .Tags ),
2067+ Priority : conversion .StringValueToPointer (opsgenieConfig .Priority ),
2068+ SendResolved : conversion .BoolValueToPointer (opsgenieConfig .SendResolved ),
20482069 })
20492070 }
20502071 receiverPayload .OpsgenieConfigs = & payloadOpsGenieConfigs
@@ -2060,9 +2081,10 @@ func toReceiverPayload(ctx context.Context, model *alertConfigModel) (*[]observa
20602081 for i := range receiverWebHooksConfigs {
20612082 webHooksConfig := receiverWebHooksConfigs [i ]
20622083 payloadWebHooksConfigs = append (payloadWebHooksConfigs , observability.CreateAlertConfigReceiverPayloadWebHookConfigsInner {
2063- Url : conversion .StringValueToPointer (webHooksConfig .Url ),
2064- MsTeams : conversion .BoolValueToPointer (webHooksConfig .MsTeams ),
2065- GoogleChat : conversion .BoolValueToPointer (webHooksConfig .GoogleChat ),
2084+ Url : conversion .StringValueToPointer (webHooksConfig .Url ),
2085+ MsTeams : conversion .BoolValueToPointer (webHooksConfig .MsTeams ),
2086+ GoogleChat : conversion .BoolValueToPointer (webHooksConfig .GoogleChat ),
2087+ SendResolved : conversion .BoolValueToPointer (webHooksConfig .SendResolved ),
20662088 })
20672089 }
20682090 receiverPayload .WebHookConfigs = & payloadWebHooksConfigs
0 commit comments