@@ -32,6 +32,11 @@ const (
32
32
AcFieldOpsgenieAPIKey = "api_key"
33
33
AcFieldOpsgenieRegion = "region"
34
34
AcFieldOpsgeniePriority = "priority"
35
+ AcFieldSendRecovery = "send_recovery"
36
+ AcFieldSendFailure = "send_failure"
37
+ AcFieldSendDegraded = "send_degraded"
38
+ AcFieldSSLExpiry = "ssl_expiry"
39
+ AcFieldSSLExpiryThreshold = "ssl_expiry_threshold"
35
40
)
36
41
37
42
func resourceAlertChannel () * schema.Resource {
@@ -161,14 +166,34 @@ func resourceAlertChannel() *schema.Resource {
161
166
},
162
167
},
163
168
},
169
+ AcFieldSendRecovery : {
170
+ Type : schema .TypeBool ,
171
+ Optional : true ,
172
+ },
173
+ AcFieldSendFailure : {
174
+ Type : schema .TypeBool ,
175
+ Optional : true ,
176
+ },
177
+ AcFieldSendDegraded : {
178
+ Type : schema .TypeBool ,
179
+ Optional : true ,
180
+ },
181
+ AcFieldSSLExpiry : {
182
+ Type : schema .TypeBool ,
183
+ Optional : true ,
184
+ },
185
+ AcFieldSSLExpiryThreshold : {
186
+ Type : schema .TypeInt ,
187
+ Optional : true ,
188
+ },
164
189
},
165
190
}
166
191
}
167
192
168
193
func resourceAlertChannelCreate (d * schema.ResourceData , client interface {}) error {
169
194
ac , err := alertChannelFromResourceData (d )
170
195
if err != nil {
171
- return makeError ("resourceAlertChannelCreate.1" , & ErrorLog {"err" : err })
196
+ return makeError ("resourceAlertChannelCreate.1" , & ErrorLog {"err" : err . Error () })
172
197
}
173
198
resp , err := client .(* checkly.Client ).CreateAlertChannel (ac )
174
199
if err != nil {
@@ -186,7 +211,7 @@ func resourceAlertChannelCreate(d *schema.ResourceData, client interface{}) erro
186
211
func resourceAlertChannelRead (d * schema.ResourceData , client interface {}) error {
187
212
ID , err := resourceIDToInt (d .Id ())
188
213
if err != nil {
189
- return makeError ("resourceAlertChannelRead.1" , & ErrorLog {"err" : err })
214
+ return makeError ("resourceAlertChannelRead.1" , & ErrorLog {"err" : err . Error () })
190
215
}
191
216
ac , err := client .(* checkly.Client ).GetAlertChannel (ID )
192
217
if err != nil {
@@ -196,19 +221,19 @@ func resourceAlertChannelRead(d *schema.ResourceData, client interface{}) error
196
221
d .SetId ("" )
197
222
return nil
198
223
}
199
- return makeError ("resourceAlertChannelRead.2" , & ErrorLog {"err" : err })
224
+ return makeError ("resourceAlertChannelRead.2" , & ErrorLog {"err" : err . Error () })
200
225
}
201
226
return resourceDataFromAlertChannel (ac , d )
202
227
}
203
228
204
229
func resourceAlertChannelUpdate (d * schema.ResourceData , client interface {}) error {
205
230
ac , err := alertChannelFromResourceData (d )
206
231
if err != nil {
207
- return makeError ("resourceAlertChannelUpdate.1" , & ErrorLog {"err" : err })
232
+ return makeError ("resourceAlertChannelUpdate.1" , & ErrorLog {"err" : err . Error () })
208
233
}
209
234
_ , err = client .(* checkly.Client ).UpdateAlertChannel (ac .ID , ac )
210
235
if err != nil {
211
- return makeError ("resourceAlertChannelUpdate.2" , & ErrorLog {"err" : err })
236
+ return makeError ("resourceAlertChannelUpdate.2" , & ErrorLog {"err" : err . Error () })
212
237
}
213
238
d .SetId (fmt .Sprintf ("%d" , ac .ID ))
214
239
return resourceAlertChannelRead (d , client )
@@ -217,10 +242,10 @@ func resourceAlertChannelUpdate(d *schema.ResourceData, client interface{}) erro
217
242
func resourceAlertChannelDelete (d * schema.ResourceData , client interface {}) error {
218
243
ID , err := resourceIDToInt (d .Id ())
219
244
if err != nil {
220
- return makeError ("resourceAlertChannelDelete.1" , & ErrorLog {"err" : err })
245
+ return makeError ("resourceAlertChannelDelete.1" , & ErrorLog {"err" : err . Error () })
221
246
}
222
247
if err := client .(* checkly.Client ).DeleteAlertChannel (ID ); err != nil {
223
- return makeError ("resourceAlertChannelDelete.2" , & ErrorLog {"err" : err })
248
+ return makeError ("resourceAlertChannelDelete.2" , & ErrorLog {"err" : err . Error () })
224
249
}
225
250
return nil
226
251
}
@@ -231,19 +256,48 @@ func resourceDataFromAlertChannel(it *checkly.AlertChannel, d *schema.ResourceDa
231
256
d .Set (AcFieldSlack , setFromSlack (it .Slack ))
232
257
d .Set (AcFieldWebhook , setFromWebhook (it .Webhook ))
233
258
d .Set (AcFieldOpsgenie , setFromOpsgenie (it .Opsgenie ))
259
+ if it .SendRecovery != nil {
260
+ d .Set (AcFieldSendRecovery , * it .SendRecovery )
261
+ }
262
+ if it .SendFailure != nil {
263
+ d .Set (AcFieldSendFailure , * it .SendFailure )
264
+ }
265
+ if it .SendDegraded != nil {
266
+ d .Set (AcFieldSendDegraded , * it .SendDegraded )
267
+ }
268
+ if it .SSLExpiry != nil {
269
+ d .Set (AcFieldSSLExpiry , * it .SSLExpiry )
270
+ }
271
+ if it .SSLExpiryThreshold != nil {
272
+ d .Set (AcFieldSSLExpiryThreshold , * it .SSLExpiryThreshold )
273
+ }
234
274
return nil
235
275
}
236
276
237
277
func alertChannelFromResourceData (d * schema.ResourceData ) (checkly.AlertChannel , error ) {
238
278
ac := checkly.AlertChannel {}
239
279
ID , err := resourceIDToInt (d .Id ())
240
280
if err != nil {
241
- return ac , makeError ("alertChannelFromResourceData.1" , & ErrorLog {"err" : err })
281
+ return ac , makeError ("alertChannelFromResourceData.1" , & ErrorLog {"err" : err . Error () })
242
282
}
243
283
if err == nil {
244
284
ac .ID = ID
245
285
}
246
286
287
+ sr := d .Get (AcFieldSendRecovery ).(bool )
288
+ ac .SendRecovery = & sr
289
+ sf := d .Get (AcFieldSendFailure ).(bool )
290
+ ac .SendFailure = & sf
291
+ sd := d .Get (AcFieldSendDegraded ).(bool )
292
+ ac .SendDegraded = & sd
293
+ expiry := d .Get (AcFieldSSLExpiry ).(bool )
294
+ ac .SSLExpiry = & expiry
295
+ if ac .SSLExpiry != nil {
296
+ et := d .Get (AcFieldSSLExpiryThreshold ).(int )
297
+ if et > 0 {
298
+ ac .SSLExpiryThreshold = & et
299
+ }
300
+ }
247
301
fields := []string {AcFieldEmail , AcFieldSMS , AcFieldSlack , AcFieldWebhook , AcFieldOpsgenie }
248
302
setCount := 0
249
303
for _ , field := range fields {
@@ -252,7 +306,7 @@ func alertChannelFromResourceData(d *schema.ResourceData) (checkly.AlertChannel,
252
306
ac .Type = strings .ToUpper (field )
253
307
c , err := alertChannelConfigFromSet (ac .Type , cfgSet )
254
308
if err != nil {
255
- return ac , makeError ("alertChannelFromResourceData.2" , & ErrorLog {"err" : err })
309
+ return ac , makeError ("alertChannelFromResourceData.2" , & ErrorLog {"err" : err . Error () })
256
310
}
257
311
ac .SetConfig (c )
258
312
setCount ++
0 commit comments