...
1---
2
3swagger: '2.0'
4
5info:
6 version: 0.0.1
7 title: Alertmanager API
8 description: API of the Prometheus Alertmanager (https://github.com/prometheus/alertmanager)
9 license:
10 name: Apache 2.0
11 url: http://www.apache.org/licenses/LICENSE-2.0.html
12
13consumes:
14 - "application/json"
15produces:
16 - "application/json"
17
18basePath: "/api/v2/"
19
20paths:
21 /status:
22 get:
23 tags:
24 - general
25 operationId: getStatus
26 description: Get current status of an Alertmanager instance and its cluster
27 responses:
28 '200':
29 description: Get status response
30 schema:
31 $ref: '#/definitions/alertmanagerStatus'
32 /receivers:
33 get:
34 tags:
35 - receiver
36 operationId: getReceivers
37 description: Get list of all receivers (name of notification integrations)
38 responses:
39 '200':
40 description: Get receivers response
41 schema:
42 type: array
43 items:
44 $ref: '#/definitions/receiver'
45 /silences:
46 get:
47 tags:
48 - silence
49 operationId: getSilences
50 description: Get a list of silences
51 responses:
52 '200':
53 description: Get silences response
54 schema:
55 $ref: '#/definitions/gettableSilences'
56 '500':
57 $ref: '#/responses/InternalServerError'
58 parameters:
59 - name: filter
60 in: query
61 description: A list of matchers to filter silences by
62 required: false
63 type: array
64 collectionFormat: multi
65 items:
66 type: string
67 post:
68 tags:
69 - silence
70 operationId: postSilences
71 description: Post a new silence or update an existing one
72 parameters:
73 - in: body
74 name: silence
75 description: The silence to create
76 required: true
77 schema:
78 $ref: '#/definitions/postableSilence'
79 responses:
80 '200':
81 description: Create / update silence response
82 schema:
83 type: object
84 properties:
85 silenceID:
86 type: string
87 '400':
88 $ref: '#/responses/BadRequest'
89 '404':
90 description: A silence with the specified ID was not found
91 schema:
92 type: string
93 /silence/{silenceID}:
94 parameters:
95 - in: path
96 name: silenceID
97 type: string
98 format: uuid
99 required: true
100 description: ID of the silence to get
101 get:
102 tags:
103 - silence
104 operationId: getSilence
105 description: Get a silence by its ID
106 responses:
107 '200':
108 description: Get silence response
109 schema:
110 $ref: '#/definitions/gettableSilence'
111 '404':
112 description: A silence with the specified ID was not found
113 '500':
114 $ref: '#/responses/InternalServerError'
115 delete:
116 tags:
117 - silence
118 operationId: deleteSilence
119 description: Delete a silence by its ID
120 parameters:
121 - in: path
122 name: silenceID
123 type: string
124 format: uuid
125 required: true
126 description: ID of the silence to get
127 responses:
128 '200':
129 description: Delete silence response
130 '500':
131 $ref: '#/responses/InternalServerError'
132 /alerts:
133 get:
134 tags:
135 - alert
136 operationId: getAlerts
137 description: Get a list of alerts
138 parameters:
139 - in: query
140 name: active
141 type: boolean
142 description: Show active alerts
143 default: true
144 - in: query
145 name: silenced
146 type: boolean
147 description: Show silenced alerts
148 default: true
149 - in: query
150 name: inhibited
151 type: boolean
152 description: Show inhibited alerts
153 default: true
154 - in: query
155 name: unprocessed
156 type: boolean
157 description: Show unprocessed alerts
158 default: true
159 - name: filter
160 in: query
161 description: A list of matchers to filter alerts by
162 required: false
163 type: array
164 collectionFormat: multi
165 items:
166 type: string
167 - name: receiver
168 in: query
169 description: A regex matching receivers to filter alerts by
170 required: false
171 type: string
172 responses:
173 '200':
174 description: Get alerts response
175 schema:
176 '$ref': '#/definitions/gettableAlerts'
177 '400':
178 $ref: '#/responses/BadRequest'
179 '500':
180 $ref: '#/responses/InternalServerError'
181 post:
182 tags:
183 - alert
184 operationId: postAlerts
185 description: Create new Alerts
186 parameters:
187 - in: body
188 name: alerts
189 description: The alerts to create
190 required: true
191 schema:
192 $ref: '#/definitions/postableAlerts'
193 responses:
194 '200':
195 description: Create alerts response
196 '500':
197 $ref: '#/responses/InternalServerError'
198 '400':
199 $ref: '#/responses/BadRequest'
200 /alerts/groups:
201 get:
202 tags:
203 - alertgroup
204 operationId: getAlertGroups
205 description: Get a list of alert groups
206 parameters:
207 - in: query
208 name: active
209 type: boolean
210 description: Show active alerts
211 default: true
212 - in: query
213 name: silenced
214 type: boolean
215 description: Show silenced alerts
216 default: true
217 - in: query
218 name: inhibited
219 type: boolean
220 description: Show inhibited alerts
221 default: true
222 - name: filter
223 in: query
224 description: A list of matchers to filter alerts by
225 required: false
226 type: array
227 collectionFormat: multi
228 items:
229 type: string
230 - name: receiver
231 in: query
232 description: A regex matching receivers to filter alerts by
233 required: false
234 type: string
235 responses:
236 '200':
237 description: Get alert groups response
238 schema:
239 '$ref': '#/definitions/alertGroups'
240 '400':
241 $ref: '#/responses/BadRequest'
242 '500':
243 $ref: '#/responses/InternalServerError'
244
245responses:
246 BadRequest:
247 description: Bad request
248 schema:
249 type: string
250 InternalServerError:
251 description: Internal server error
252 schema:
253 type: string
254
255
256definitions:
257 alertmanagerStatus:
258 type: object
259 properties:
260 cluster:
261 $ref: '#/definitions/clusterStatus'
262 versionInfo:
263 $ref: '#/definitions/versionInfo'
264 config:
265 $ref: '#/definitions/alertmanagerConfig'
266 uptime:
267 type: string
268 format: date-time
269 required:
270 - cluster
271 - versionInfo
272 - config
273 - uptime
274 clusterStatus:
275 type: object
276 properties:
277 name:
278 type: string
279 status:
280 type: string
281 enum: ["ready", "settling", "disabled"]
282 peers:
283 type: array
284 items:
285 $ref: '#/definitions/peerStatus'
286 required:
287 - status
288 alertmanagerConfig:
289 type: object
290 properties:
291 original:
292 type: string
293 required:
294 - original
295 versionInfo:
296 type: object
297 properties:
298 version:
299 type: string
300 revision:
301 type: string
302 branch:
303 type: string
304 buildUser:
305 type: string
306 buildDate:
307 type: string
308 goVersion:
309 type: string
310 required:
311 - version
312 - revision
313 - branch
314 - buildUser
315 - buildDate
316 - goVersion
317 peerStatus:
318 type: object
319 properties:
320 name:
321 type: string
322 address:
323 type: string
324 required:
325 - name
326 - address
327 silence:
328 type: object
329 properties:
330 matchers:
331 $ref: '#/definitions/matchers'
332 startsAt:
333 type: string
334 format: date-time
335 endsAt:
336 type: string
337 format: date-time
338 createdBy:
339 type: string
340 comment:
341 type: string
342 required:
343 - matchers
344 - startsAt
345 - endsAt
346 - createdBy
347 - comment
348 gettableSilence:
349 allOf:
350 - type: object
351 properties:
352 id:
353 type: string
354 status:
355 $ref: '#/definitions/silenceStatus'
356 updatedAt:
357 type: string
358 format: date-time
359 required:
360 - id
361 - status
362 - updatedAt
363 - $ref: '#/definitions/silence'
364 postableSilence:
365 allOf:
366 - type: object
367 properties:
368 id:
369 type: string
370 - $ref: '#/definitions/silence'
371 silenceStatus:
372 type: object
373 properties:
374 state:
375 type: string
376 enum: ["expired", "active", "pending"]
377 required:
378 - state
379 gettableSilences:
380 type: array
381 items:
382 $ref: '#/definitions/gettableSilence'
383 matchers:
384 type: array
385 items:
386 $ref: '#/definitions/matcher'
387 minItems: 1
388 matcher:
389 type: object
390 properties:
391 name:
392 type: string
393 value:
394 type: string
395 isRegex:
396 type: boolean
397 isEqual:
398 type: boolean
399 default: true
400 required:
401 - name
402 - value
403 - isRegex
404 alert:
405 type: object
406 properties:
407 labels:
408 $ref: '#/definitions/labelSet'
409 generatorURL:
410 type: string
411 format: uri
412 required:
413 - labels
414 gettableAlerts:
415 type: array
416 items:
417 $ref: '#/definitions/gettableAlert'
418 gettableAlert:
419 allOf:
420 - type: object
421 properties:
422 annotations:
423 $ref: '#/definitions/labelSet'
424 receivers:
425 type: array
426 items:
427 $ref: '#/definitions/receiver'
428 fingerprint:
429 type: string
430 startsAt:
431 type: string
432 format: date-time
433 updatedAt:
434 type: string
435 format: date-time
436 endsAt:
437 type: string
438 format: date-time
439 status:
440 $ref: '#/definitions/alertStatus'
441 required:
442 - receivers
443 - fingerprint
444 - startsAt
445 - updatedAt
446 - endsAt
447 - annotations
448 - status
449 - $ref: '#/definitions/alert'
450 postableAlerts:
451 type: array
452 items:
453 $ref: '#/definitions/postableAlert'
454 postableAlert:
455 allOf:
456 - type: object
457 properties:
458 startsAt:
459 type: string
460 format: date-time
461 endsAt:
462 type: string
463 format: date-time
464 annotations:
465 $ref: '#/definitions/labelSet'
466 - $ref: '#/definitions/alert'
467 alertGroups:
468 type: array
469 items:
470 $ref: '#/definitions/alertGroup'
471 alertGroup:
472 type: object
473 properties:
474 labels:
475 $ref: '#/definitions/labelSet'
476 receiver:
477 $ref: '#/definitions/receiver'
478 alerts:
479 type: array
480 items:
481 $ref: '#/definitions/gettableAlert'
482 required:
483 - labels
484 - receiver
485 - alerts
486 alertStatus:
487 type: object
488 properties:
489 state:
490 type: string
491 enum: ['unprocessed', 'active', 'suppressed']
492 silencedBy:
493 type: array
494 items:
495 type: string
496 inhibitedBy:
497 type: array
498 items:
499 type: string
500 required:
501 - state
502 - silencedBy
503 - inhibitedBy
504 receiver:
505 type: object
506 properties:
507 name:
508 type: string
509 required:
510 - name
511 labelSet:
512 type: object
513 additionalProperties:
514 type: string
515
516
517tags:
518 - name: general
519 description: General Alertmanager operations
520 - name: receiver
521 description: Everything related to Alertmanager receivers
522 - name: silence
523 description: Everything related to Alertmanager silences
524 - name: alert
525 description: Everything related to Alertmanager alerts
View as plain text