module HNormalise.Internal where
import Data.Aeson (FromJSON, ToJSON, toEncoding,
toJSON)
import Data.Text
import Data.Time.LocalTime
import GHC.Generics (Generic)
import HNormalise.Huppel.Internal (Huppel)
import HNormalise.Huppel.Json
import HNormalise.Lmod.Internal (LmodLoad)
import HNormalise.Lmod.Json
import HNormalise.Shorewall.Internal (Shorewall)
import HNormalise.Shorewall.Json
import HNormalise.Torque.Internal (TorqueJobExit)
import HNormalise.Torque.Json
data ParseResult
= PR_H Huppel
| PR_L LmodLoad
| PR_S Shorewall
| PR_T TorqueJobExit
deriving (Show, Eq, Generic)
instance ToJSON ParseResult where
toEncoding (PR_H v) = toEncoding v
toEncoding (PR_L v) = toEncoding v
toEncoding (PR_S v) = toEncoding v
toEncoding (PR_T v) = toEncoding v
data Rsyslog = Rsyslog
{ msg :: !Text
, timereported :: !(Maybe ZonedTime)
, hostname :: !Text
, syslogtag :: !Text
, inputname :: !Text
, fromhost :: !Text
, fromhost_ip :: !Text
, pri :: !(Maybe Int)
, syslogfacility :: !Text
, syslogseverity :: !Text
, timegenerated :: !ZonedTime
, programname :: !Text
, protocol_version :: !Text
, app_name :: !Text
, procid :: !Text
} deriving (Show, Generic)
data NormalisedRsyslog = NRsyslog
{ rsyslog :: Rsyslog
, normalised :: ParseResult
, jsonkey :: Text
} deriving (Show, Generic)