-
Notifications
You must be signed in to change notification settings - Fork 9
/
service_level_monitor.go
55 lines (44 loc) · 1.29 KB
/
service_level_monitor.go
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
package stingray
import (
"encoding/json"
"net/http"
)
// A ServiceLevelMonitor is a Stingray service level monitor.
type ServiceLevelMonitor struct {
jsonResource `json:"-"`
ServiceLevelMonitorProperties `json:"properties"`
}
type ServiceLevelMonitorProperties struct {
Basic struct {
Note *string `json:"note,omitempty"`
ResponseTime *int `json:"response_time,omitempty"`
SeriousThreshold *int `json:"serious_threshold,omitempty"`
WarningThreshold *int `json:"warning_threshold,omitempty"`
} `json:"basic"`
}
func (r *ServiceLevelMonitor) endpoint() string {
return "service_level_monitors"
}
func (r *ServiceLevelMonitor) String() string {
s, _ := jsonMarshal(r)
return string(s)
}
func (r *ServiceLevelMonitor) decode(data []byte) error {
return json.Unmarshal(data, &r)
}
func NewServiceLevelMonitor(name string) *ServiceLevelMonitor {
r := new(ServiceLevelMonitor)
r.setName(name)
return r
}
func (c *Client) GetServiceLevelMonitor(name string) (*ServiceLevelMonitor, *http.Response, error) {
r := NewServiceLevelMonitor(name)
resp, err := c.Get(r)
if err != nil {
return nil, resp, err
}
return r, resp, nil
}
func (c *Client) ListServiceLevelMonitors() ([]string, *http.Response, error) {
return c.List(&ServiceLevelMonitor{})
}