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.Snoopy.Internal (Snoopy)
import HNormalise.Snoopy.Json
import HNormalise.Torque.Internal (TorqueJobExit)
import HNormalise.Torque.Json
data ParseResult
= PR_Huppel Huppel
| PR_Lmod LmodLoad
| PR_Shorewall Shorewall
| PR_Snoopy Snoopy
| PR_Torque TorqueJobExit
deriving (Show, Eq, Generic)
instance ToJSON ParseResult where
toEncoding (PR_Huppel v) = toEncoding v
toEncoding (PR_Lmod v) = toEncoding v
toEncoding (PR_Shorewall v) = toEncoding v
toEncoding (PR_Snoopy v) = toEncoding v
toEncoding (PR_Torque 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)