-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAlert.hs
More file actions
129 lines (100 loc) · 3.86 KB
/
Alert.hs
File metadata and controls
129 lines (100 loc) · 3.86 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
{-
Alertmanager API
API of the Prometheus Alertmanager (https://github.com/prometheus/alertmanager)
OpenAPI Version: 3.0.1
Alertmanager API API version: 0.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
-}
{-|
Module : Network.Alertmanager.OpenAPI.API.Alert
-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MonoLocalBinds #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE OverloadedStrings #-}
{-# OPTIONS_GHC -fno-warn-name-shadowing -fno-warn-unused-binds -fno-warn-unused-imports #-}
module Network.Alertmanager.OpenAPI.API.Alert where
import Network.Alertmanager.OpenAPI.Core
import Network.Alertmanager.OpenAPI.MimeTypes
import Network.Alertmanager.OpenAPI.Model as M
import qualified Data.Aeson as A
import qualified Data.ByteString as B
import qualified Data.ByteString.Lazy as BL
import qualified Data.Data as P (Typeable, TypeRep, typeOf, typeRep)
import qualified Data.Foldable as P
import qualified Data.Map as Map
import qualified Data.Maybe as P
import qualified Data.Proxy as P (Proxy(..))
import qualified Data.Set as Set
import qualified Data.String as P
import qualified Data.Text as T
import qualified Data.Text.Encoding as T
import qualified Data.Text.Lazy as TL
import qualified Data.Text.Lazy.Encoding as TL
import qualified Data.Time as TI
import qualified Network.HTTP.Client.MultipartFormData as NH
import qualified Network.HTTP.Media as ME
import qualified Network.HTTP.Types as NH
import qualified Web.FormUrlEncoded as WH
import qualified Web.HttpApiData as WH
import Data.Text (Text)
import GHC.Base ((<|>))
import Prelude ((==),(/=),($), (.),(<$>),(<*>),(>>=),Maybe(..),Bool(..),Char,Double,FilePath,Float,Int,Integer,String,fmap,undefined,mempty,maybe,pure,Monad,Applicative,Functor)
import qualified Prelude as P
-- * Operations
-- ** Alert
-- *** getAlerts
-- | @GET \/alerts@
--
-- Get a list of alerts
--
getAlerts
:: AlertmanagerRequest GetAlerts MimeNoContent [GettableAlert] MimeJSON
getAlerts =
_mkRequest "GET" ["/alerts"]
data GetAlerts
-- | /Optional Param/ "active" - Show active alerts
instance HasOptionalParam GetAlerts Active where
applyOptionalParam req (Active xs) =
req `addQuery` toQuery ("active", Just xs)
-- | /Optional Param/ "silenced" - Show silenced alerts
instance HasOptionalParam GetAlerts Silenced where
applyOptionalParam req (Silenced xs) =
req `addQuery` toQuery ("silenced", Just xs)
-- | /Optional Param/ "inhibited" - Show inhibited alerts
instance HasOptionalParam GetAlerts Inhibited where
applyOptionalParam req (Inhibited xs) =
req `addQuery` toQuery ("inhibited", Just xs)
-- | /Optional Param/ "unprocessed" - Show unprocessed alerts
instance HasOptionalParam GetAlerts Unprocessed where
applyOptionalParam req (Unprocessed xs) =
req `addQuery` toQuery ("unprocessed", Just xs)
-- | /Optional Param/ "filter" - A list of matchers to filter alerts by
instance HasOptionalParam GetAlerts Filter where
applyOptionalParam req (Filter xs) =
req `addQuery` toQueryColl MultiParamArray ("filter", Just xs)
-- | /Optional Param/ "receiver" - A regex matching receivers to filter alerts by
instance HasOptionalParam GetAlerts Receiver2 where
applyOptionalParam req (Receiver2 xs) =
req `addQuery` toQuery ("receiver", Just xs)
-- | @application/json@
instance Produces GetAlerts MimeJSON
-- *** postAlerts
-- | @POST \/alerts@
--
-- Create new Alerts
--
postAlerts
:: (Consumes PostAlerts MimeJSON, MimeRender MimeJSON Alerts)
=> Alerts -- ^ "alerts" - The alerts to create
-> AlertmanagerRequest PostAlerts MimeJSON NoContent MimeNoContent
postAlerts alerts =
_mkRequest "POST" ["/alerts"]
`setBodyParam` alerts
data PostAlerts
-- | /Body Param/ "alerts" - The alerts to create
instance HasBodyParam PostAlerts Alerts
-- | @application/json@
instance Consumes PostAlerts MimeJSON
instance Produces PostAlerts MimeNoContent