{-# LANGUAGE OverloadedStrings #-}
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 ()
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 ()
unmuteHost env hostname =
let path = "host/" ++ unpack hostname ++ "/unmute"
body = object ["hostname" .= hostname]
in void $ datadogHttp env path [] POST $ Just $ encode body