1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package restapi
18
19
20
21
22 import (
23 "encoding/json"
24 )
25
26 var (
27
28 SwaggerJSON json.RawMessage
29
30 FlatSwaggerJSON json.RawMessage
31 )
32
33 func init() {
34 SwaggerJSON = json.RawMessage([]byte(`{
35 "consumes": [
36 "application/json"
37 ],
38 "produces": [
39 "application/json"
40 ],
41 "swagger": "2.0",
42 "info": {
43 "description": "API of the Prometheus Alertmanager (https://github.com/prometheus/alertmanager)",
44 "title": "Alertmanager API",
45 "license": {
46 "name": "Apache 2.0",
47 "url": "http://www.apache.org/licenses/LICENSE-2.0.html"
48 },
49 "version": "0.0.1"
50 },
51 "basePath": "/api/v2/",
52 "paths": {
53 "/alerts": {
54 "get": {
55 "description": "Get a list of alerts",
56 "tags": [
57 "alert"
58 ],
59 "operationId": "getAlerts",
60 "parameters": [
61 {
62 "type": "boolean",
63 "default": true,
64 "description": "Show active alerts",
65 "name": "active",
66 "in": "query"
67 },
68 {
69 "type": "boolean",
70 "default": true,
71 "description": "Show silenced alerts",
72 "name": "silenced",
73 "in": "query"
74 },
75 {
76 "type": "boolean",
77 "default": true,
78 "description": "Show inhibited alerts",
79 "name": "inhibited",
80 "in": "query"
81 },
82 {
83 "type": "boolean",
84 "default": true,
85 "description": "Show unprocessed alerts",
86 "name": "unprocessed",
87 "in": "query"
88 },
89 {
90 "type": "array",
91 "items": {
92 "type": "string"
93 },
94 "collectionFormat": "multi",
95 "description": "A list of matchers to filter alerts by",
96 "name": "filter",
97 "in": "query"
98 },
99 {
100 "type": "string",
101 "description": "A regex matching receivers to filter alerts by",
102 "name": "receiver",
103 "in": "query"
104 }
105 ],
106 "responses": {
107 "200": {
108 "description": "Get alerts response",
109 "schema": {
110 "$ref": "#/definitions/gettableAlerts"
111 }
112 },
113 "400": {
114 "$ref": "#/responses/BadRequest"
115 },
116 "500": {
117 "$ref": "#/responses/InternalServerError"
118 }
119 }
120 },
121 "post": {
122 "description": "Create new Alerts",
123 "tags": [
124 "alert"
125 ],
126 "operationId": "postAlerts",
127 "parameters": [
128 {
129 "description": "The alerts to create",
130 "name": "alerts",
131 "in": "body",
132 "required": true,
133 "schema": {
134 "$ref": "#/definitions/postableAlerts"
135 }
136 }
137 ],
138 "responses": {
139 "200": {
140 "description": "Create alerts response"
141 },
142 "400": {
143 "$ref": "#/responses/BadRequest"
144 },
145 "500": {
146 "$ref": "#/responses/InternalServerError"
147 }
148 }
149 }
150 },
151 "/alerts/groups": {
152 "get": {
153 "description": "Get a list of alert groups",
154 "tags": [
155 "alertgroup"
156 ],
157 "operationId": "getAlertGroups",
158 "parameters": [
159 {
160 "type": "boolean",
161 "default": true,
162 "description": "Show active alerts",
163 "name": "active",
164 "in": "query"
165 },
166 {
167 "type": "boolean",
168 "default": true,
169 "description": "Show silenced alerts",
170 "name": "silenced",
171 "in": "query"
172 },
173 {
174 "type": "boolean",
175 "default": true,
176 "description": "Show inhibited alerts",
177 "name": "inhibited",
178 "in": "query"
179 },
180 {
181 "type": "array",
182 "items": {
183 "type": "string"
184 },
185 "collectionFormat": "multi",
186 "description": "A list of matchers to filter alerts by",
187 "name": "filter",
188 "in": "query"
189 },
190 {
191 "type": "string",
192 "description": "A regex matching receivers to filter alerts by",
193 "name": "receiver",
194 "in": "query"
195 }
196 ],
197 "responses": {
198 "200": {
199 "description": "Get alert groups response",
200 "schema": {
201 "$ref": "#/definitions/alertGroups"
202 }
203 },
204 "400": {
205 "$ref": "#/responses/BadRequest"
206 },
207 "500": {
208 "$ref": "#/responses/InternalServerError"
209 }
210 }
211 }
212 },
213 "/receivers": {
214 "get": {
215 "description": "Get list of all receivers (name of notification integrations)",
216 "tags": [
217 "receiver"
218 ],
219 "operationId": "getReceivers",
220 "responses": {
221 "200": {
222 "description": "Get receivers response",
223 "schema": {
224 "type": "array",
225 "items": {
226 "$ref": "#/definitions/receiver"
227 }
228 }
229 }
230 }
231 }
232 },
233 "/silence/{silenceID}": {
234 "get": {
235 "description": "Get a silence by its ID",
236 "tags": [
237 "silence"
238 ],
239 "operationId": "getSilence",
240 "responses": {
241 "200": {
242 "description": "Get silence response",
243 "schema": {
244 "$ref": "#/definitions/gettableSilence"
245 }
246 },
247 "404": {
248 "description": "A silence with the specified ID was not found"
249 },
250 "500": {
251 "$ref": "#/responses/InternalServerError"
252 }
253 }
254 },
255 "delete": {
256 "description": "Delete a silence by its ID",
257 "tags": [
258 "silence"
259 ],
260 "operationId": "deleteSilence",
261 "parameters": [
262 {
263 "type": "string",
264 "format": "uuid",
265 "description": "ID of the silence to get",
266 "name": "silenceID",
267 "in": "path",
268 "required": true
269 }
270 ],
271 "responses": {
272 "200": {
273 "description": "Delete silence response"
274 },
275 "500": {
276 "$ref": "#/responses/InternalServerError"
277 }
278 }
279 },
280 "parameters": [
281 {
282 "type": "string",
283 "format": "uuid",
284 "description": "ID of the silence to get",
285 "name": "silenceID",
286 "in": "path",
287 "required": true
288 }
289 ]
290 },
291 "/silences": {
292 "get": {
293 "description": "Get a list of silences",
294 "tags": [
295 "silence"
296 ],
297 "operationId": "getSilences",
298 "parameters": [
299 {
300 "type": "array",
301 "items": {
302 "type": "string"
303 },
304 "collectionFormat": "multi",
305 "description": "A list of matchers to filter silences by",
306 "name": "filter",
307 "in": "query"
308 }
309 ],
310 "responses": {
311 "200": {
312 "description": "Get silences response",
313 "schema": {
314 "$ref": "#/definitions/gettableSilences"
315 }
316 },
317 "500": {
318 "$ref": "#/responses/InternalServerError"
319 }
320 }
321 },
322 "post": {
323 "description": "Post a new silence or update an existing one",
324 "tags": [
325 "silence"
326 ],
327 "operationId": "postSilences",
328 "parameters": [
329 {
330 "description": "The silence to create",
331 "name": "silence",
332 "in": "body",
333 "required": true,
334 "schema": {
335 "$ref": "#/definitions/postableSilence"
336 }
337 }
338 ],
339 "responses": {
340 "200": {
341 "description": "Create / update silence response",
342 "schema": {
343 "type": "object",
344 "properties": {
345 "silenceID": {
346 "type": "string"
347 }
348 }
349 }
350 },
351 "400": {
352 "$ref": "#/responses/BadRequest"
353 },
354 "404": {
355 "description": "A silence with the specified ID was not found",
356 "schema": {
357 "type": "string"
358 }
359 }
360 }
361 }
362 },
363 "/status": {
364 "get": {
365 "description": "Get current status of an Alertmanager instance and its cluster",
366 "tags": [
367 "general"
368 ],
369 "operationId": "getStatus",
370 "responses": {
371 "200": {
372 "description": "Get status response",
373 "schema": {
374 "$ref": "#/definitions/alertmanagerStatus"
375 }
376 }
377 }
378 }
379 }
380 },
381 "definitions": {
382 "alert": {
383 "type": "object",
384 "required": [
385 "labels"
386 ],
387 "properties": {
388 "generatorURL": {
389 "type": "string",
390 "format": "uri"
391 },
392 "labels": {
393 "$ref": "#/definitions/labelSet"
394 }
395 }
396 },
397 "alertGroup": {
398 "type": "object",
399 "required": [
400 "labels",
401 "receiver",
402 "alerts"
403 ],
404 "properties": {
405 "alerts": {
406 "type": "array",
407 "items": {
408 "$ref": "#/definitions/gettableAlert"
409 }
410 },
411 "labels": {
412 "$ref": "#/definitions/labelSet"
413 },
414 "receiver": {
415 "$ref": "#/definitions/receiver"
416 }
417 }
418 },
419 "alertGroups": {
420 "type": "array",
421 "items": {
422 "$ref": "#/definitions/alertGroup"
423 }
424 },
425 "alertStatus": {
426 "type": "object",
427 "required": [
428 "state",
429 "silencedBy",
430 "inhibitedBy"
431 ],
432 "properties": {
433 "inhibitedBy": {
434 "type": "array",
435 "items": {
436 "type": "string"
437 }
438 },
439 "silencedBy": {
440 "type": "array",
441 "items": {
442 "type": "string"
443 }
444 },
445 "state": {
446 "type": "string",
447 "enum": [
448 "unprocessed",
449 "active",
450 "suppressed"
451 ]
452 }
453 }
454 },
455 "alertmanagerConfig": {
456 "type": "object",
457 "required": [
458 "original"
459 ],
460 "properties": {
461 "original": {
462 "type": "string"
463 }
464 }
465 },
466 "alertmanagerStatus": {
467 "type": "object",
468 "required": [
469 "cluster",
470 "versionInfo",
471 "config",
472 "uptime"
473 ],
474 "properties": {
475 "cluster": {
476 "$ref": "#/definitions/clusterStatus"
477 },
478 "config": {
479 "$ref": "#/definitions/alertmanagerConfig"
480 },
481 "uptime": {
482 "type": "string",
483 "format": "date-time"
484 },
485 "versionInfo": {
486 "$ref": "#/definitions/versionInfo"
487 }
488 }
489 },
490 "clusterStatus": {
491 "type": "object",
492 "required": [
493 "status"
494 ],
495 "properties": {
496 "name": {
497 "type": "string"
498 },
499 "peers": {
500 "type": "array",
501 "items": {
502 "$ref": "#/definitions/peerStatus"
503 }
504 },
505 "status": {
506 "type": "string",
507 "enum": [
508 "ready",
509 "settling",
510 "disabled"
511 ]
512 }
513 }
514 },
515 "gettableAlert": {
516 "allOf": [
517 {
518 "type": "object",
519 "required": [
520 "receivers",
521 "fingerprint",
522 "startsAt",
523 "updatedAt",
524 "endsAt",
525 "annotations",
526 "status"
527 ],
528 "properties": {
529 "annotations": {
530 "$ref": "#/definitions/labelSet"
531 },
532 "endsAt": {
533 "type": "string",
534 "format": "date-time"
535 },
536 "fingerprint": {
537 "type": "string"
538 },
539 "receivers": {
540 "type": "array",
541 "items": {
542 "$ref": "#/definitions/receiver"
543 }
544 },
545 "startsAt": {
546 "type": "string",
547 "format": "date-time"
548 },
549 "status": {
550 "$ref": "#/definitions/alertStatus"
551 },
552 "updatedAt": {
553 "type": "string",
554 "format": "date-time"
555 }
556 }
557 },
558 {
559 "$ref": "#/definitions/alert"
560 }
561 ]
562 },
563 "gettableAlerts": {
564 "type": "array",
565 "items": {
566 "$ref": "#/definitions/gettableAlert"
567 }
568 },
569 "gettableSilence": {
570 "allOf": [
571 {
572 "type": "object",
573 "required": [
574 "id",
575 "status",
576 "updatedAt"
577 ],
578 "properties": {
579 "id": {
580 "type": "string"
581 },
582 "status": {
583 "$ref": "#/definitions/silenceStatus"
584 },
585 "updatedAt": {
586 "type": "string",
587 "format": "date-time"
588 }
589 }
590 },
591 {
592 "$ref": "#/definitions/silence"
593 }
594 ]
595 },
596 "gettableSilences": {
597 "type": "array",
598 "items": {
599 "$ref": "#/definitions/gettableSilence"
600 }
601 },
602 "labelSet": {
603 "type": "object",
604 "additionalProperties": {
605 "type": "string"
606 }
607 },
608 "matcher": {
609 "type": "object",
610 "required": [
611 "name",
612 "value",
613 "isRegex"
614 ],
615 "properties": {
616 "isEqual": {
617 "type": "boolean",
618 "default": true
619 },
620 "isRegex": {
621 "type": "boolean"
622 },
623 "name": {
624 "type": "string"
625 },
626 "value": {
627 "type": "string"
628 }
629 }
630 },
631 "matchers": {
632 "type": "array",
633 "minItems": 1,
634 "items": {
635 "$ref": "#/definitions/matcher"
636 }
637 },
638 "peerStatus": {
639 "type": "object",
640 "required": [
641 "name",
642 "address"
643 ],
644 "properties": {
645 "address": {
646 "type": "string"
647 },
648 "name": {
649 "type": "string"
650 }
651 }
652 },
653 "postableAlert": {
654 "allOf": [
655 {
656 "type": "object",
657 "properties": {
658 "annotations": {
659 "$ref": "#/definitions/labelSet"
660 },
661 "endsAt": {
662 "type": "string",
663 "format": "date-time"
664 },
665 "startsAt": {
666 "type": "string",
667 "format": "date-time"
668 }
669 }
670 },
671 {
672 "$ref": "#/definitions/alert"
673 }
674 ]
675 },
676 "postableAlerts": {
677 "type": "array",
678 "items": {
679 "$ref": "#/definitions/postableAlert"
680 }
681 },
682 "postableSilence": {
683 "allOf": [
684 {
685 "type": "object",
686 "properties": {
687 "id": {
688 "type": "string"
689 }
690 }
691 },
692 {
693 "$ref": "#/definitions/silence"
694 }
695 ]
696 },
697 "receiver": {
698 "type": "object",
699 "required": [
700 "name"
701 ],
702 "properties": {
703 "name": {
704 "type": "string"
705 }
706 }
707 },
708 "silence": {
709 "type": "object",
710 "required": [
711 "matchers",
712 "startsAt",
713 "endsAt",
714 "createdBy",
715 "comment"
716 ],
717 "properties": {
718 "comment": {
719 "type": "string"
720 },
721 "createdBy": {
722 "type": "string"
723 },
724 "endsAt": {
725 "type": "string",
726 "format": "date-time"
727 },
728 "matchers": {
729 "$ref": "#/definitions/matchers"
730 },
731 "startsAt": {
732 "type": "string",
733 "format": "date-time"
734 }
735 }
736 },
737 "silenceStatus": {
738 "type": "object",
739 "required": [
740 "state"
741 ],
742 "properties": {
743 "state": {
744 "type": "string",
745 "enum": [
746 "expired",
747 "active",
748 "pending"
749 ]
750 }
751 }
752 },
753 "versionInfo": {
754 "type": "object",
755 "required": [
756 "version",
757 "revision",
758 "branch",
759 "buildUser",
760 "buildDate",
761 "goVersion"
762 ],
763 "properties": {
764 "branch": {
765 "type": "string"
766 },
767 "buildDate": {
768 "type": "string"
769 },
770 "buildUser": {
771 "type": "string"
772 },
773 "goVersion": {
774 "type": "string"
775 },
776 "revision": {
777 "type": "string"
778 },
779 "version": {
780 "type": "string"
781 }
782 }
783 }
784 },
785 "responses": {
786 "BadRequest": {
787 "description": "Bad request",
788 "schema": {
789 "type": "string"
790 }
791 },
792 "InternalServerError": {
793 "description": "Internal server error",
794 "schema": {
795 "type": "string"
796 }
797 }
798 },
799 "tags": [
800 {
801 "description": "General Alertmanager operations",
802 "name": "general"
803 },
804 {
805 "description": "Everything related to Alertmanager receivers",
806 "name": "receiver"
807 },
808 {
809 "description": "Everything related to Alertmanager silences",
810 "name": "silence"
811 },
812 {
813 "description": "Everything related to Alertmanager alerts",
814 "name": "alert"
815 }
816 ]
817 }`))
818 FlatSwaggerJSON = json.RawMessage([]byte(`{
819 "consumes": [
820 "application/json"
821 ],
822 "produces": [
823 "application/json"
824 ],
825 "swagger": "2.0",
826 "info": {
827 "description": "API of the Prometheus Alertmanager (https://github.com/prometheus/alertmanager)",
828 "title": "Alertmanager API",
829 "license": {
830 "name": "Apache 2.0",
831 "url": "http://www.apache.org/licenses/LICENSE-2.0.html"
832 },
833 "version": "0.0.1"
834 },
835 "basePath": "/api/v2/",
836 "paths": {
837 "/alerts": {
838 "get": {
839 "description": "Get a list of alerts",
840 "tags": [
841 "alert"
842 ],
843 "operationId": "getAlerts",
844 "parameters": [
845 {
846 "type": "boolean",
847 "default": true,
848 "description": "Show active alerts",
849 "name": "active",
850 "in": "query"
851 },
852 {
853 "type": "boolean",
854 "default": true,
855 "description": "Show silenced alerts",
856 "name": "silenced",
857 "in": "query"
858 },
859 {
860 "type": "boolean",
861 "default": true,
862 "description": "Show inhibited alerts",
863 "name": "inhibited",
864 "in": "query"
865 },
866 {
867 "type": "boolean",
868 "default": true,
869 "description": "Show unprocessed alerts",
870 "name": "unprocessed",
871 "in": "query"
872 },
873 {
874 "type": "array",
875 "items": {
876 "type": "string"
877 },
878 "collectionFormat": "multi",
879 "description": "A list of matchers to filter alerts by",
880 "name": "filter",
881 "in": "query"
882 },
883 {
884 "type": "string",
885 "description": "A regex matching receivers to filter alerts by",
886 "name": "receiver",
887 "in": "query"
888 }
889 ],
890 "responses": {
891 "200": {
892 "description": "Get alerts response",
893 "schema": {
894 "$ref": "#/definitions/gettableAlerts"
895 }
896 },
897 "400": {
898 "description": "Bad request",
899 "schema": {
900 "type": "string"
901 }
902 },
903 "500": {
904 "description": "Internal server error",
905 "schema": {
906 "type": "string"
907 }
908 }
909 }
910 },
911 "post": {
912 "description": "Create new Alerts",
913 "tags": [
914 "alert"
915 ],
916 "operationId": "postAlerts",
917 "parameters": [
918 {
919 "description": "The alerts to create",
920 "name": "alerts",
921 "in": "body",
922 "required": true,
923 "schema": {
924 "$ref": "#/definitions/postableAlerts"
925 }
926 }
927 ],
928 "responses": {
929 "200": {
930 "description": "Create alerts response"
931 },
932 "400": {
933 "description": "Bad request",
934 "schema": {
935 "type": "string"
936 }
937 },
938 "500": {
939 "description": "Internal server error",
940 "schema": {
941 "type": "string"
942 }
943 }
944 }
945 }
946 },
947 "/alerts/groups": {
948 "get": {
949 "description": "Get a list of alert groups",
950 "tags": [
951 "alertgroup"
952 ],
953 "operationId": "getAlertGroups",
954 "parameters": [
955 {
956 "type": "boolean",
957 "default": true,
958 "description": "Show active alerts",
959 "name": "active",
960 "in": "query"
961 },
962 {
963 "type": "boolean",
964 "default": true,
965 "description": "Show silenced alerts",
966 "name": "silenced",
967 "in": "query"
968 },
969 {
970 "type": "boolean",
971 "default": true,
972 "description": "Show inhibited alerts",
973 "name": "inhibited",
974 "in": "query"
975 },
976 {
977 "type": "array",
978 "items": {
979 "type": "string"
980 },
981 "collectionFormat": "multi",
982 "description": "A list of matchers to filter alerts by",
983 "name": "filter",
984 "in": "query"
985 },
986 {
987 "type": "string",
988 "description": "A regex matching receivers to filter alerts by",
989 "name": "receiver",
990 "in": "query"
991 }
992 ],
993 "responses": {
994 "200": {
995 "description": "Get alert groups response",
996 "schema": {
997 "$ref": "#/definitions/alertGroups"
998 }
999 },
1000 "400": {
1001 "description": "Bad request",
1002 "schema": {
1003 "type": "string"
1004 }
1005 },
1006 "500": {
1007 "description": "Internal server error",
1008 "schema": {
1009 "type": "string"
1010 }
1011 }
1012 }
1013 }
1014 },
1015 "/receivers": {
1016 "get": {
1017 "description": "Get list of all receivers (name of notification integrations)",
1018 "tags": [
1019 "receiver"
1020 ],
1021 "operationId": "getReceivers",
1022 "responses": {
1023 "200": {
1024 "description": "Get receivers response",
1025 "schema": {
1026 "type": "array",
1027 "items": {
1028 "$ref": "#/definitions/receiver"
1029 }
1030 }
1031 }
1032 }
1033 }
1034 },
1035 "/silence/{silenceID}": {
1036 "get": {
1037 "description": "Get a silence by its ID",
1038 "tags": [
1039 "silence"
1040 ],
1041 "operationId": "getSilence",
1042 "responses": {
1043 "200": {
1044 "description": "Get silence response",
1045 "schema": {
1046 "$ref": "#/definitions/gettableSilence"
1047 }
1048 },
1049 "404": {
1050 "description": "A silence with the specified ID was not found"
1051 },
1052 "500": {
1053 "description": "Internal server error",
1054 "schema": {
1055 "type": "string"
1056 }
1057 }
1058 }
1059 },
1060 "delete": {
1061 "description": "Delete a silence by its ID",
1062 "tags": [
1063 "silence"
1064 ],
1065 "operationId": "deleteSilence",
1066 "parameters": [
1067 {
1068 "type": "string",
1069 "format": "uuid",
1070 "description": "ID of the silence to get",
1071 "name": "silenceID",
1072 "in": "path",
1073 "required": true
1074 }
1075 ],
1076 "responses": {
1077 "200": {
1078 "description": "Delete silence response"
1079 },
1080 "500": {
1081 "description": "Internal server error",
1082 "schema": {
1083 "type": "string"
1084 }
1085 }
1086 }
1087 },
1088 "parameters": [
1089 {
1090 "type": "string",
1091 "format": "uuid",
1092 "description": "ID of the silence to get",
1093 "name": "silenceID",
1094 "in": "path",
1095 "required": true
1096 }
1097 ]
1098 },
1099 "/silences": {
1100 "get": {
1101 "description": "Get a list of silences",
1102 "tags": [
1103 "silence"
1104 ],
1105 "operationId": "getSilences",
1106 "parameters": [
1107 {
1108 "type": "array",
1109 "items": {
1110 "type": "string"
1111 },
1112 "collectionFormat": "multi",
1113 "description": "A list of matchers to filter silences by",
1114 "name": "filter",
1115 "in": "query"
1116 }
1117 ],
1118 "responses": {
1119 "200": {
1120 "description": "Get silences response",
1121 "schema": {
1122 "$ref": "#/definitions/gettableSilences"
1123 }
1124 },
1125 "500": {
1126 "description": "Internal server error",
1127 "schema": {
1128 "type": "string"
1129 }
1130 }
1131 }
1132 },
1133 "post": {
1134 "description": "Post a new silence or update an existing one",
1135 "tags": [
1136 "silence"
1137 ],
1138 "operationId": "postSilences",
1139 "parameters": [
1140 {
1141 "description": "The silence to create",
1142 "name": "silence",
1143 "in": "body",
1144 "required": true,
1145 "schema": {
1146 "$ref": "#/definitions/postableSilence"
1147 }
1148 }
1149 ],
1150 "responses": {
1151 "200": {
1152 "description": "Create / update silence response",
1153 "schema": {
1154 "type": "object",
1155 "properties": {
1156 "silenceID": {
1157 "type": "string"
1158 }
1159 }
1160 }
1161 },
1162 "400": {
1163 "description": "Bad request",
1164 "schema": {
1165 "type": "string"
1166 }
1167 },
1168 "404": {
1169 "description": "A silence with the specified ID was not found",
1170 "schema": {
1171 "type": "string"
1172 }
1173 }
1174 }
1175 }
1176 },
1177 "/status": {
1178 "get": {
1179 "description": "Get current status of an Alertmanager instance and its cluster",
1180 "tags": [
1181 "general"
1182 ],
1183 "operationId": "getStatus",
1184 "responses": {
1185 "200": {
1186 "description": "Get status response",
1187 "schema": {
1188 "$ref": "#/definitions/alertmanagerStatus"
1189 }
1190 }
1191 }
1192 }
1193 }
1194 },
1195 "definitions": {
1196 "alert": {
1197 "type": "object",
1198 "required": [
1199 "labels"
1200 ],
1201 "properties": {
1202 "generatorURL": {
1203 "type": "string",
1204 "format": "uri"
1205 },
1206 "labels": {
1207 "$ref": "#/definitions/labelSet"
1208 }
1209 }
1210 },
1211 "alertGroup": {
1212 "type": "object",
1213 "required": [
1214 "labels",
1215 "receiver",
1216 "alerts"
1217 ],
1218 "properties": {
1219 "alerts": {
1220 "type": "array",
1221 "items": {
1222 "$ref": "#/definitions/gettableAlert"
1223 }
1224 },
1225 "labels": {
1226 "$ref": "#/definitions/labelSet"
1227 },
1228 "receiver": {
1229 "$ref": "#/definitions/receiver"
1230 }
1231 }
1232 },
1233 "alertGroups": {
1234 "type": "array",
1235 "items": {
1236 "$ref": "#/definitions/alertGroup"
1237 }
1238 },
1239 "alertStatus": {
1240 "type": "object",
1241 "required": [
1242 "state",
1243 "silencedBy",
1244 "inhibitedBy"
1245 ],
1246 "properties": {
1247 "inhibitedBy": {
1248 "type": "array",
1249 "items": {
1250 "type": "string"
1251 }
1252 },
1253 "silencedBy": {
1254 "type": "array",
1255 "items": {
1256 "type": "string"
1257 }
1258 },
1259 "state": {
1260 "type": "string",
1261 "enum": [
1262 "unprocessed",
1263 "active",
1264 "suppressed"
1265 ]
1266 }
1267 }
1268 },
1269 "alertmanagerConfig": {
1270 "type": "object",
1271 "required": [
1272 "original"
1273 ],
1274 "properties": {
1275 "original": {
1276 "type": "string"
1277 }
1278 }
1279 },
1280 "alertmanagerStatus": {
1281 "type": "object",
1282 "required": [
1283 "cluster",
1284 "versionInfo",
1285 "config",
1286 "uptime"
1287 ],
1288 "properties": {
1289 "cluster": {
1290 "$ref": "#/definitions/clusterStatus"
1291 },
1292 "config": {
1293 "$ref": "#/definitions/alertmanagerConfig"
1294 },
1295 "uptime": {
1296 "type": "string",
1297 "format": "date-time"
1298 },
1299 "versionInfo": {
1300 "$ref": "#/definitions/versionInfo"
1301 }
1302 }
1303 },
1304 "clusterStatus": {
1305 "type": "object",
1306 "required": [
1307 "status"
1308 ],
1309 "properties": {
1310 "name": {
1311 "type": "string"
1312 },
1313 "peers": {
1314 "type": "array",
1315 "items": {
1316 "$ref": "#/definitions/peerStatus"
1317 }
1318 },
1319 "status": {
1320 "type": "string",
1321 "enum": [
1322 "ready",
1323 "settling",
1324 "disabled"
1325 ]
1326 }
1327 }
1328 },
1329 "gettableAlert": {
1330 "allOf": [
1331 {
1332 "type": "object",
1333 "required": [
1334 "receivers",
1335 "fingerprint",
1336 "startsAt",
1337 "updatedAt",
1338 "endsAt",
1339 "annotations",
1340 "status"
1341 ],
1342 "properties": {
1343 "annotations": {
1344 "$ref": "#/definitions/labelSet"
1345 },
1346 "endsAt": {
1347 "type": "string",
1348 "format": "date-time"
1349 },
1350 "fingerprint": {
1351 "type": "string"
1352 },
1353 "receivers": {
1354 "type": "array",
1355 "items": {
1356 "$ref": "#/definitions/receiver"
1357 }
1358 },
1359 "startsAt": {
1360 "type": "string",
1361 "format": "date-time"
1362 },
1363 "status": {
1364 "$ref": "#/definitions/alertStatus"
1365 },
1366 "updatedAt": {
1367 "type": "string",
1368 "format": "date-time"
1369 }
1370 }
1371 },
1372 {
1373 "$ref": "#/definitions/alert"
1374 }
1375 ]
1376 },
1377 "gettableAlerts": {
1378 "type": "array",
1379 "items": {
1380 "$ref": "#/definitions/gettableAlert"
1381 }
1382 },
1383 "gettableSilence": {
1384 "allOf": [
1385 {
1386 "type": "object",
1387 "required": [
1388 "id",
1389 "status",
1390 "updatedAt"
1391 ],
1392 "properties": {
1393 "id": {
1394 "type": "string"
1395 },
1396 "status": {
1397 "$ref": "#/definitions/silenceStatus"
1398 },
1399 "updatedAt": {
1400 "type": "string",
1401 "format": "date-time"
1402 }
1403 }
1404 },
1405 {
1406 "$ref": "#/definitions/silence"
1407 }
1408 ]
1409 },
1410 "gettableSilences": {
1411 "type": "array",
1412 "items": {
1413 "$ref": "#/definitions/gettableSilence"
1414 }
1415 },
1416 "labelSet": {
1417 "type": "object",
1418 "additionalProperties": {
1419 "type": "string"
1420 }
1421 },
1422 "matcher": {
1423 "type": "object",
1424 "required": [
1425 "name",
1426 "value",
1427 "isRegex"
1428 ],
1429 "properties": {
1430 "isEqual": {
1431 "type": "boolean",
1432 "default": true
1433 },
1434 "isRegex": {
1435 "type": "boolean"
1436 },
1437 "name": {
1438 "type": "string"
1439 },
1440 "value": {
1441 "type": "string"
1442 }
1443 }
1444 },
1445 "matchers": {
1446 "type": "array",
1447 "minItems": 1,
1448 "items": {
1449 "$ref": "#/definitions/matcher"
1450 }
1451 },
1452 "peerStatus": {
1453 "type": "object",
1454 "required": [
1455 "name",
1456 "address"
1457 ],
1458 "properties": {
1459 "address": {
1460 "type": "string"
1461 },
1462 "name": {
1463 "type": "string"
1464 }
1465 }
1466 },
1467 "postableAlert": {
1468 "allOf": [
1469 {
1470 "type": "object",
1471 "properties": {
1472 "annotations": {
1473 "$ref": "#/definitions/labelSet"
1474 },
1475 "endsAt": {
1476 "type": "string",
1477 "format": "date-time"
1478 },
1479 "startsAt": {
1480 "type": "string",
1481 "format": "date-time"
1482 }
1483 }
1484 },
1485 {
1486 "$ref": "#/definitions/alert"
1487 }
1488 ]
1489 },
1490 "postableAlerts": {
1491 "type": "array",
1492 "items": {
1493 "$ref": "#/definitions/postableAlert"
1494 }
1495 },
1496 "postableSilence": {
1497 "allOf": [
1498 {
1499 "type": "object",
1500 "properties": {
1501 "id": {
1502 "type": "string"
1503 }
1504 }
1505 },
1506 {
1507 "$ref": "#/definitions/silence"
1508 }
1509 ]
1510 },
1511 "receiver": {
1512 "type": "object",
1513 "required": [
1514 "name"
1515 ],
1516 "properties": {
1517 "name": {
1518 "type": "string"
1519 }
1520 }
1521 },
1522 "silence": {
1523 "type": "object",
1524 "required": [
1525 "matchers",
1526 "startsAt",
1527 "endsAt",
1528 "createdBy",
1529 "comment"
1530 ],
1531 "properties": {
1532 "comment": {
1533 "type": "string"
1534 },
1535 "createdBy": {
1536 "type": "string"
1537 },
1538 "endsAt": {
1539 "type": "string",
1540 "format": "date-time"
1541 },
1542 "matchers": {
1543 "$ref": "#/definitions/matchers"
1544 },
1545 "startsAt": {
1546 "type": "string",
1547 "format": "date-time"
1548 }
1549 }
1550 },
1551 "silenceStatus": {
1552 "type": "object",
1553 "required": [
1554 "state"
1555 ],
1556 "properties": {
1557 "state": {
1558 "type": "string",
1559 "enum": [
1560 "expired",
1561 "active",
1562 "pending"
1563 ]
1564 }
1565 }
1566 },
1567 "versionInfo": {
1568 "type": "object",
1569 "required": [
1570 "version",
1571 "revision",
1572 "branch",
1573 "buildUser",
1574 "buildDate",
1575 "goVersion"
1576 ],
1577 "properties": {
1578 "branch": {
1579 "type": "string"
1580 },
1581 "buildDate": {
1582 "type": "string"
1583 },
1584 "buildUser": {
1585 "type": "string"
1586 },
1587 "goVersion": {
1588 "type": "string"
1589 },
1590 "revision": {
1591 "type": "string"
1592 },
1593 "version": {
1594 "type": "string"
1595 }
1596 }
1597 }
1598 },
1599 "responses": {
1600 "BadRequest": {
1601 "description": "Bad request",
1602 "schema": {
1603 "type": "string"
1604 }
1605 },
1606 "InternalServerError": {
1607 "description": "Internal server error",
1608 "schema": {
1609 "type": "string"
1610 }
1611 }
1612 },
1613 "tags": [
1614 {
1615 "description": "General Alertmanager operations",
1616 "name": "general"
1617 },
1618 {
1619 "description": "Everything related to Alertmanager receivers",
1620 "name": "receiver"
1621 },
1622 {
1623 "description": "Everything related to Alertmanager silences",
1624 "name": "silence"
1625 },
1626 {
1627 "description": "Everything related to Alertmanager alerts",
1628 "name": "alert"
1629 }
1630 ]
1631 }`))
1632 }
1633
View as plain text