Repository navigation
Expand file tree
/
Copy pathalert_rules.go
More file actions
166 lines (151 loc) · 5.66 KB
/
Copy pathalert_rules.go
File metadata and controls
166 lines (151 loc) · 5.66 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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
// Code generated by internal/cmd/gen; DO NOT EDIT.
package flashduty
import "context"
// AlertRulesService handles the "Monitors/Alert rules" API resource.
type AlertRulesService service
// Get rule audit snapshot.
//
// Return the audit record (including the `content` field, a JSON string of the rule snapshot at that point in time).
//
// API: POST /monit/rule/audit/detail (monit-rule-read-audit-detail).
func (s *AlertRulesService) ReadAuditDetail(ctx context.Context, req *AuditRecordIDRequest) (*AlertRuleAudit, *Response, error) {
out := new(AlertRuleAudit)
resp, err := s.client.do(ctx, "/monit/rule/audit/detail", req, out)
if err != nil {
return nil, resp, err
}
return out, resp, nil
}
// List rule change history.
//
// Return the change history (audit records) for an alert rule.
//
// API: POST /monit/rule/audits (monit-rule-read-audits).
func (s *AlertRulesService) ReadAudits(ctx context.Context, req *RuleIDRequest) (*RuleAuditListResponse, *Response, error) {
out := new(RuleAuditListResponse)
resp, err := s.client.do(ctx, "/monit/rule/audits", req, out)
if err != nil {
return nil, resp, err
}
return out, resp, nil
}
// Get rule counts by channel.
//
// Return an object mapping channel name to the number of rules routing alerts to that channel. If a channel name cannot be resolved, the channel ID (as a string) is used as the key.
//
// API: POST /monit/rule/counter/channel (monit-rule-read-counter-channel).
func (s *AlertRulesService) ReadCounterChannel(ctx context.Context) (*RuleCounterChannelResponse, *Response, error) {
out := new(RuleCounterChannelResponse)
resp, err := s.client.do(ctx, "/monit/rule/counter/channel", nil, out)
if err != nil {
return nil, resp, err
}
return out, resp, nil
}
// Get rule counter time series.
//
// Return the stored time series of the total rule count across the account — one sample per `clock` timestamp.
//
// API: POST /monit/rule/counter/total (monit-rule-read-counter-total).
func (s *AlertRulesService) ReadCounterTotal(ctx context.Context) (*RuleCounterTotalResponse, *Response, error) {
out := new(RuleCounterTotalResponse)
resp, err := s.client.do(ctx, "/monit/rule/counter/total", nil, out)
if err != nil {
return nil, resp, err
}
return out, resp, nil
}
// Get alert rule detail (V2).
//
// Return the full V2 configuration of an alert rule by ID, including lifecycle v2 recovery and ending modes.
//
// API: POST /monit/rule/v2/info (monit-rule-read-info-v2).
func (s *AlertRulesService) ReadInfoV2(ctx context.Context, req *RuleIDRequest) (*AlertRuleV2, *Response, error) {
out := new(AlertRuleV2)
resp, err := s.client.do(ctx, "/monit/rule/v2/info", req, out)
if err != nil {
return nil, resp, err
}
return out, resp, nil
}
// List alert rules.
//
// Return the basic information of all alert rules in a folder. For full rule details, call `POST /monit/rule/v2/info`.
//
// API: POST /monit/rule/list/basic (monit-rule-read-list).
func (s *AlertRulesService) ReadList(ctx context.Context, req *RuleListRequest) (*RuleBasicListResponse, *Response, error) {
out := new(RuleBasicListResponse)
resp, err := s.client.do(ctx, "/monit/rule/list/basic", req, out)
if err != nil {
return nil, resp, err
}
return out, resp, nil
}
// Create alert rule (V2).
//
// Create a new V2 alert rule. Returns the created rule with its assigned ID.
//
// API: POST /monit/rule/v2/create (monit-rule-write-create-v2).
func (s *AlertRulesService) WriteCreateV2(ctx context.Context, req *AlertRuleV2) (*AlertRuleV2, *Response, error) {
out := new(AlertRuleV2)
resp, err := s.client.do(ctx, "/monit/rule/v2/create", req, out)
if err != nil {
return nil, resp, err
}
return out, resp, nil
}
// Delete alert rule.
//
// Delete a single alert rule by its ID.
//
// API: POST /monit/rule/delete (monit-rule-write-delete).
func (s *AlertRulesService) WriteDelete(ctx context.Context, req *RuleIDRequest) (*Response, error) {
return s.client.do(ctx, "/monit/rule/delete", req, nil)
}
// Batch delete alert rules.
//
// Delete multiple alert rules in a single request.
//
// API: POST /monit/rule/delete/batch (monit-rule-write-delete-batch).
func (s *AlertRulesService) WriteDeleteBatch(ctx context.Context, req *RuleIDsRequest) (*Response, error) {
return s.client.do(ctx, "/monit/rule/delete/batch", req, nil)
}
// Batch update rule fields.
//
// Update specific fields across multiple alert rules at once. Only the fields listed in `fields` are applied.
//
// API: POST /monit/rule/update/fields (monit-rule-write-fields-update).
func (s *AlertRulesService) WriteFieldsUpdate(ctx context.Context, req *RuleFieldsUpdateRequest) (*RuleNameMessageListResponse, *Response, error) {
out := new(RuleNameMessageListResponse)
resp, err := s.client.do(ctx, "/monit/rule/update/fields", req, out)
if err != nil {
return nil, resp, err
}
return out, resp, nil
}
// Move alert rules to folder.
//
// Move one or more alert rules to a different folder.
//
// API: POST /monit/rule/move (monit-rule-write-move).
func (s *AlertRulesService) WriteMove(ctx context.Context, req *RuleMoveRequest) (*RuleNameMessageListResponse, *Response, error) {
out := new(RuleNameMessageListResponse)
resp, err := s.client.do(ctx, "/monit/rule/move", req, out)
if err != nil {
return nil, resp, err
}
return out, resp, nil
}
// Update alert rule (V2).
//
// Replace an alert rule's V2 configuration in full by ID. Returns the updated rule.
//
// API: POST /monit/rule/v2/update (monit-rule-write-update-v2).
func (s *AlertRulesService) WriteUpdateV2(ctx context.Context, req *AlertRuleV2) (*AlertRuleV2, *Response, error) {
out := new(AlertRuleV2)
resp, err := s.client.do(ctx, "/monit/rule/v2/update", req, out)
if err != nil {
return nil, resp, err
}
return out, resp, nil
}