module HNormalise.Internal where
import Data.Aeson (FromJSON, ToJSON, toEncoding,
toJSON)
import Data.Text (Text)
import Data.Time.LocalTime (ZonedTime)
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 :: !ZonedTime
, hostname :: !Text
, syslogtag :: !Text
, inputname :: !Text
, fromhost :: !Text
, fromhost_ip :: !Text
, pri :: !(Maybe Int)
, version :: !(Maybe Int)
, syslogfacility :: !Text
, syslogseverity :: !Text
, timegenerated :: !(Maybe ZonedTime)
, programname :: !Text
, protocol_version :: !Text
, app_name :: !Text
, procid :: !Text
} deriving (Show, Generic)
data NormalisedRsyslog = NRsyslog
{ rsyslog :: Rsyslog
, normalised :: ParseResult
, jsonkey :: Text
, fields :: Maybe [(Text, Text)]
} deriving (Show, Generic)