...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package client
18
19
20
21
22 import (
23 "github.com/go-openapi/runtime"
24 httptransport "github.com/go-openapi/runtime/client"
25 "github.com/go-openapi/strfmt"
26
27 "github.com/prometheus/alertmanager/api/v2/client/alert"
28 "github.com/prometheus/alertmanager/api/v2/client/alertgroup"
29 "github.com/prometheus/alertmanager/api/v2/client/general"
30 "github.com/prometheus/alertmanager/api/v2/client/receiver"
31 "github.com/prometheus/alertmanager/api/v2/client/silence"
32 )
33
34
35 var Default = NewHTTPClient(nil)
36
37 const (
38
39
40 DefaultHost string = "localhost"
41
42
43 DefaultBasePath string = "/api/v2/"
44 )
45
46
47 var DefaultSchemes = []string{"http"}
48
49
50 func NewHTTPClient(formats strfmt.Registry) *AlertmanagerAPI {
51 return NewHTTPClientWithConfig(formats, nil)
52 }
53
54
55
56 func NewHTTPClientWithConfig(formats strfmt.Registry, cfg *TransportConfig) *AlertmanagerAPI {
57
58 if cfg == nil {
59 cfg = DefaultTransportConfig()
60 }
61
62
63 transport := httptransport.New(cfg.Host, cfg.BasePath, cfg.Schemes)
64 return New(transport, formats)
65 }
66
67
68 func New(transport runtime.ClientTransport, formats strfmt.Registry) *AlertmanagerAPI {
69
70 if formats == nil {
71 formats = strfmt.Default
72 }
73
74 cli := new(AlertmanagerAPI)
75 cli.Transport = transport
76 cli.Alert = alert.New(transport, formats)
77 cli.Alertgroup = alertgroup.New(transport, formats)
78 cli.General = general.New(transport, formats)
79 cli.Receiver = receiver.New(transport, formats)
80 cli.Silence = silence.New(transport, formats)
81 return cli
82 }
83
84
85
86 func DefaultTransportConfig() *TransportConfig {
87 return &TransportConfig{
88 Host: DefaultHost,
89 BasePath: DefaultBasePath,
90 Schemes: DefaultSchemes,
91 }
92 }
93
94
95
96 type TransportConfig struct {
97 Host string
98 BasePath string
99 Schemes []string
100 }
101
102
103
104 func (cfg *TransportConfig) WithHost(host string) *TransportConfig {
105 cfg.Host = host
106 return cfg
107 }
108
109
110
111 func (cfg *TransportConfig) WithBasePath(basePath string) *TransportConfig {
112 cfg.BasePath = basePath
113 return cfg
114 }
115
116
117
118 func (cfg *TransportConfig) WithSchemes(schemes []string) *TransportConfig {
119 cfg.Schemes = schemes
120 return cfg
121 }
122
123
124 type AlertmanagerAPI struct {
125 Alert alert.ClientService
126
127 Alertgroup alertgroup.ClientService
128
129 General general.ClientService
130
131 Receiver receiver.ClientService
132
133 Silence silence.ClientService
134
135 Transport runtime.ClientTransport
136 }
137
138
139 func (c *AlertmanagerAPI) SetTransport(transport runtime.ClientTransport) {
140 c.Transport = transport
141 c.Alert.SetTransport(transport)
142 c.Alertgroup.SetTransport(transport)
143 c.General.SetTransport(transport)
144 c.Receiver.SetTransport(transport)
145 c.Silence.SetTransport(transport)
146 }
147
View as plain text