Skip to content

Commit 90ef069

Browse files
committed
Add runbook field to alert resources
This update introduces a `runbook` field across various alert-related resources, allowing users to specify URLs for troubleshooting documentation. Additionally, the `redirects` field is added to HTTP check resources to manage redirect behavior. These enhancements improve resource configurability and documentation accessibility.
1 parent e0792d2 commit 90ef069

19 files changed

+74
-0
lines changed

docs/resources/check_dns.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ resource "rmon_check_dns" "example" {
6161
- `resolver` (String) DNS server where resolve DNS query.
6262
- `slack_channel_id` (Number) Slack channel ID for alerts.
6363
- `telegram_channel_id` (Number) Telegram channel ID for alerts.
64+
- `runbook` (String) Runbook URL for alerts.
6465
- `timeouts` (Block, Optional) (see [below for nested schema](#nestedblock--timeouts))
6566

6667
### Read-Only

docs/resources/check_http.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,12 @@ EOF
6161
- `ignore_ssl_error` (Boolean) Ignore TLS/SSL error.
6262
- `interval` (Number) Interval in seconds between checks.
6363
- `retries`: (Number) Number of retries before check is marked down.
64+
- `redirects`: (Number) Maximum number of redirects to follow. Set to 0 to disable redirects.
6465
- `mm_channel_id` (Number) Mattermost channel ID for alerts.
6566
- `pd_channel_id` (Number) PagerDuty channel ID for alerts.
6667
- `slack_channel_id` (Number) Slack channel ID for alerts.
6768
- `telegram_channel_id` (Number) Telegram channel ID for alerts.
69+
- `runbook` (String) Runbook URL for alerts.
6870
- `timeouts` (Block, Optional) (see [below for nested schema](#nestedblock--timeouts))
6971

7072
### Read-Only

docs/resources/check_ping.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ resource "rmon_check_ping" "example" {
5656
- `pd_channel_id` (Number) PagerDuty channel ID for alerts.
5757
- `slack_channel_id` (Number) Slack channel ID for alerts.
5858
- `telegram_channel_id` (Number) Telegram channel ID for alerts.
59+
- `runbook` (String) Runbook URL for alerts.
5960
- `timeouts` (Block, Optional) (see [below for nested schema](#nestedblock--timeouts))
6061

6162
### Read-Only

docs/resources/check_rabbitmq.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ resource "rmon_check_rabbitmq" "example" {
6262
- `port` (Number) RabbitMQ server port.
6363
- `slack_channel_id` (Number) Slack channel ID for alerts.
6464
- `telegram_channel_id` (Number) Telegram channel ID for alerts.
65+
- `runbook` (String) Runbook URL for alerts.
6566
- `timeouts` (Block, Optional) (see [below for nested schema](#nestedblock--timeouts))
6667

6768
### Read-Only

docs/resources/check_smtp.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ resource "rmon_check_smtp" "example" {
6262
- `port` (Number) SMTP server port.
6363
- `slack_channel_id` (Number) Slack channel ID for alerts.
6464
- `telegram_channel_id` (Number) Telegram channel ID for alerts.
65+
- `runbook` (String) Runbook URL for alerts.
6566
- `timeouts` (Block, Optional) (see [below for nested schema](#nestedblock--timeouts))
6667

6768
### Read-Only

docs/resources/check_tcp.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ resource "rmon_check_tcp" "example" {
5757
- `pd_channel_id` (Number) PagerDuty channel ID for alerts.
5858
- `slack_channel_id` (Number) Slack channel ID for alerts.
5959
- `telegram_channel_id` (Number) Telegram channel ID for alerts.
60+
- `runbook` (String) Runbook URL for alerts.
6061
- `timeouts` (Block, Optional) (see [below for nested schema](#nestedblock--timeouts))
6162

6263
### Read-Only

rmon/check_fields.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,6 @@ const (
2323
UserNameField = "username"
2424
VhostField = "vhost"
2525
RetriesField = "retries"
26+
RedirectsField = "redirects"
27+
RunbookField = "runbook"
2628
)

rmon/resource_rmon_check_dns.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,11 @@ func resourceCheckDns() *schema.Resource {
141141
ValidateFunc: validation.IntAtLeast(0),
142142
Default: 3,
143143
},
144+
RunbookField: {
145+
Type: schema.TypeString,
146+
Optional: true,
147+
Description: "Runbook URL for alerts.",
148+
},
144149
},
145150
}
146151
}
@@ -170,6 +175,7 @@ func resourceCheckDnsCreate(ctx context.Context, d *schema.ResourceData, m inter
170175
ResolverField: d.Get(ResolverField),
171176
RecordTypeField: d.Get(RecordTypeField),
172177
RetriesField: d.Get(RetriesField).(int),
178+
RunbookField: d.Get(RunbookField).(string),
173179
}
174180

175181
resp, err := client.doRequest("POST", "/api/v1.0/rmon/check/dns", server)
@@ -229,6 +235,7 @@ func resourceCheckDnsRead(ctx context.Context, d *schema.ResourceData, m interfa
229235
d.Set(ResolverField, result[ResolverField])
230236
d.Set(RecordTypeField, result[RecordTypeField])
231237
d.Set(RetriesField, result[RetriesField])
238+
d.Set(RunbookField, result[RunbookField])
232239

233240
return nil
234241
}
@@ -259,6 +266,7 @@ func resourceCheckDnsUpdate(ctx context.Context, d *schema.ResourceData, m inter
259266
ResolverField: d.Get(ResolverField),
260267
RecordTypeField: d.Get(RecordTypeField),
261268
RetriesField: d.Get(RetriesField).(int),
269+
RunbookField: d.Get(RunbookField).(string),
262270
}
263271

264272
_, err := client.doRequest("PUT", fmt.Sprintf("/api/v1.0/rmon/check/dns/%s", id), server)

rmon/resource_rmon_check_http.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,18 @@ func resourceCheckHttp() *schema.Resource {
155155
ValidateFunc: validation.IntAtLeast(0),
156156
Default: 3,
157157
},
158+
RedirectsField: {
159+
Type: schema.TypeInt,
160+
Optional: true,
161+
Description: "Maximum number of redirects to follow. Set to 0 to disable redirects.",
162+
ValidateFunc: validation.IntAtLeast(0),
163+
Default: 3,
164+
},
165+
RunbookField: {
166+
Type: schema.TypeString,
167+
Optional: true,
168+
Description: "Runbook URL for alerts.",
169+
},
158170
},
159171
}
160172
}
@@ -187,6 +199,8 @@ func resourceCheckHttpCreate(ctx context.Context, d *schema.ResourceData, m inte
187199
BodyRequestField: d.Get(BodyRequestField),
188200
HeaderRequestField: d.Get(HeaderRequestField),
189201
RetriesField: d.Get(RetriesField).(int),
202+
RedirectsField: d.Get(RedirectsField).(int),
203+
RunbookField: d.Get(RunbookField).(string),
190204
}
191205

192206
resp, err := client.doRequest("POST", "/api/v1.0/rmon/check/http", server)
@@ -249,6 +263,8 @@ func resourceCheckHttpRead(ctx context.Context, d *schema.ResourceData, m interf
249263
d.Set(BodyRequestField, result[BodyRequestField])
250264
d.Set(HeaderRequestField, result[HeaderRequestField])
251265
d.Set(RetriesField, result[RetriesField])
266+
d.Set(RedirectsField, result[RedirectsField])
267+
d.Set(RunbookField, result[RunbookField])
252268

253269
return nil
254270
}
@@ -282,6 +298,8 @@ func resourceCheckHttpUpdate(ctx context.Context, d *schema.ResourceData, m inte
282298
BodyRequestField: d.Get(BodyRequestField),
283299
HeaderRequestField: d.Get(HeaderRequestField),
284300
RetriesField: d.Get(RetriesField).(int),
301+
RedirectsField: d.Get(RedirectsField).(int),
302+
RunbookField: d.Get(RunbookField).(string),
285303
}
286304

287305
if d.HasChange(PortField) {

rmon/resource_rmon_check_ping.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,11 @@ func resourceCheckPing() *schema.Resource {
119119
ValidateFunc: validation.IntAtLeast(0),
120120
Default: 3,
121121
},
122+
RunbookField: {
123+
Type: schema.TypeString,
124+
Optional: true,
125+
Description: "Runbook URL for alerts.",
126+
},
122127
},
123128
}
124129
}
@@ -146,6 +151,7 @@ func resourceCheckPingCreate(ctx context.Context, d *schema.ResourceData, m inte
146151
PacketSizeField: d.Get(PacketSizeField).(int),
147152
IPField: d.Get(IPField),
148153
RetriesField: d.Get(RetriesField).(int),
154+
RunbookField: d.Get(RunbookField).(string),
149155
}
150156

151157
resp, err := client.doRequest("POST", "/api/v1.0/rmon/check/ping", server)
@@ -203,6 +209,7 @@ func resourceCheckPingRead(ctx context.Context, d *schema.ResourceData, m interf
203209
d.Set(PacketSizeField, result[PacketSizeField])
204210
d.Set(IPField, result[IPField])
205211
d.Set(RetriesField, result[RetriesField])
212+
d.Set(RunbookField, result[RunbookField])
206213

207214
return nil
208215
}
@@ -231,6 +238,7 @@ func resourceCheckPingUpdate(ctx context.Context, d *schema.ResourceData, m inte
231238
PacketSizeField: d.Get(PacketSizeField).(int),
232239
IPField: d.Get(IPField),
233240
RetriesField: d.Get(RetriesField).(int),
241+
RunbookField: d.Get(RunbookField).(string),
234242
}
235243

236244
if d.HasChange(PortField) {

0 commit comments

Comments
 (0)