datadog-0.2.0.0: src/Network/Datadog/Host.hs
{-# LANGUAGE OverloadedStrings #-}
{-|
Controls host muting in Datadog.
-}
module Network.Datadog.Host
( muteHost
, unmuteHost
) where
import Control.Monad (void)
import Data.Aeson
import Data.Text (Text, unpack)
import Data.Time.Clock
import Data.Time.Clock.POSIX
import Network.HTTP.Types
import Network.Datadog.Internal
muteHost :: Environment -> Text -> Maybe UTCTime -> Bool -> IO ()
-- ^ Do not allow alerts to trigger on a specific host
muteHost env hostname mtime override =
let path = "host/" ++ unpack hostname ++ "/mute"
q = [("override", "true") | override]
body = object $
prependMaybe (\a -> "end" .= (ceiling (utcTimeToPOSIXSeconds a) :: Integer)) mtime $
prependBool override ("override" .= True)
["hostname" .= hostname]
in void $ datadogHttp env path q POST $ Just $ encode body
unmuteHost :: Environment -> Text -> IO ()
-- ^ Allow alerts to trigger on a specific host
unmuteHost env hostname =
let path = "host/" ++ unpack hostname ++ "/unmute"
body = object ["hostname" .= hostname]
in void $ datadogHttp env path [] POST $ Just $ encode body