-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmonitors.go
More file actions
45 lines (36 loc) · 1.39 KB
/
monitors.go
File metadata and controls
45 lines (36 loc) · 1.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package flashduty
import (
"context"
)
// QueryMonitorRuleStatusInput contains parameters for querying monitor rule status
type QueryMonitorRuleStatusInput struct {
// Deprecated: /monit/rule/counter/status does not currently accept request filters.
TeamID int64
}
// MonitorRuleFolderStatus contains monitor rule counts for a single folder family.
type MonitorRuleFolderStatus struct {
FolderID int64 `json:"folder_id"`
FolderName string `json:"folder_name,omitempty"`
RuleTotal int64 `json:"rule_total"`
TriggeredRuleCount int64 `json:"triggered_rule_count"`
}
// QueryMonitorRuleStatusOutput contains monitor rule status summaries.
type QueryMonitorRuleStatusOutput struct {
Statuses []MonitorRuleFolderStatus `json:"statuses"`
}
// QueryMonitorRuleStatus queries monitor rule status counts grouped by folder family.
func (c *Client) QueryMonitorRuleStatus(ctx context.Context, input *QueryMonitorRuleStatusInput) (*QueryMonitorRuleStatusOutput, error) {
if input == nil {
input = &QueryMonitorRuleStatusInput{}
}
requestBody := map[string]any{}
statuses, err := postData[[]MonitorRuleFolderStatus](c, ctx, "/monit/rule/counter/status", requestBody, "failed to query monitor rule status")
if err != nil {
return nil, err
}
out := []MonitorRuleFolderStatus{}
if statuses != nil {
out = *statuses
}
return &QueryMonitorRuleStatusOutput{Statuses: out}, nil
}