{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Amazonka.IoTEventsData.Types.SystemEvent where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.IoTEventsData.Types.EventType
import Amazonka.IoTEventsData.Types.StateChangeConfiguration
import qualified Amazonka.Prelude as Prelude
data SystemEvent = SystemEvent'
{
SystemEvent -> Maybe EventType
eventType :: Prelude.Maybe EventType,
SystemEvent -> Maybe StateChangeConfiguration
stateChangeConfiguration :: Prelude.Maybe StateChangeConfiguration
}
deriving (SystemEvent -> SystemEvent -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SystemEvent -> SystemEvent -> Bool
$c/= :: SystemEvent -> SystemEvent -> Bool
== :: SystemEvent -> SystemEvent -> Bool
$c== :: SystemEvent -> SystemEvent -> Bool
Prelude.Eq, ReadPrec [SystemEvent]
ReadPrec SystemEvent
Int -> ReadS SystemEvent
ReadS [SystemEvent]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [SystemEvent]
$creadListPrec :: ReadPrec [SystemEvent]
readPrec :: ReadPrec SystemEvent
$creadPrec :: ReadPrec SystemEvent
readList :: ReadS [SystemEvent]
$creadList :: ReadS [SystemEvent]
readsPrec :: Int -> ReadS SystemEvent
$creadsPrec :: Int -> ReadS SystemEvent
Prelude.Read, Int -> SystemEvent -> ShowS
[SystemEvent] -> ShowS
SystemEvent -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SystemEvent] -> ShowS
$cshowList :: [SystemEvent] -> ShowS
show :: SystemEvent -> String
$cshow :: SystemEvent -> String
showsPrec :: Int -> SystemEvent -> ShowS
$cshowsPrec :: Int -> SystemEvent -> ShowS
Prelude.Show, forall x. Rep SystemEvent x -> SystemEvent
forall x. SystemEvent -> Rep SystemEvent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep SystemEvent x -> SystemEvent
$cfrom :: forall x. SystemEvent -> Rep SystemEvent x
Prelude.Generic)
newSystemEvent ::
SystemEvent
newSystemEvent :: SystemEvent
newSystemEvent =
SystemEvent'
{ $sel:eventType:SystemEvent' :: Maybe EventType
eventType = forall a. Maybe a
Prelude.Nothing,
$sel:stateChangeConfiguration:SystemEvent' :: Maybe StateChangeConfiguration
stateChangeConfiguration = forall a. Maybe a
Prelude.Nothing
}
systemEvent_eventType :: Lens.Lens' SystemEvent (Prelude.Maybe EventType)
systemEvent_eventType :: Lens' SystemEvent (Maybe EventType)
systemEvent_eventType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SystemEvent' {Maybe EventType
eventType :: Maybe EventType
$sel:eventType:SystemEvent' :: SystemEvent -> Maybe EventType
eventType} -> Maybe EventType
eventType) (\s :: SystemEvent
s@SystemEvent' {} Maybe EventType
a -> SystemEvent
s {$sel:eventType:SystemEvent' :: Maybe EventType
eventType = Maybe EventType
a} :: SystemEvent)
systemEvent_stateChangeConfiguration :: Lens.Lens' SystemEvent (Prelude.Maybe StateChangeConfiguration)
systemEvent_stateChangeConfiguration :: Lens' SystemEvent (Maybe StateChangeConfiguration)
systemEvent_stateChangeConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SystemEvent' {Maybe StateChangeConfiguration
stateChangeConfiguration :: Maybe StateChangeConfiguration
$sel:stateChangeConfiguration:SystemEvent' :: SystemEvent -> Maybe StateChangeConfiguration
stateChangeConfiguration} -> Maybe StateChangeConfiguration
stateChangeConfiguration) (\s :: SystemEvent
s@SystemEvent' {} Maybe StateChangeConfiguration
a -> SystemEvent
s {$sel:stateChangeConfiguration:SystemEvent' :: Maybe StateChangeConfiguration
stateChangeConfiguration = Maybe StateChangeConfiguration
a} :: SystemEvent)
instance Data.FromJSON SystemEvent where
parseJSON :: Value -> Parser SystemEvent
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"SystemEvent"
( \Object
x ->
Maybe EventType -> Maybe StateChangeConfiguration -> SystemEvent
SystemEvent'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"eventType")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"stateChangeConfiguration")
)
instance Prelude.Hashable SystemEvent where
hashWithSalt :: Int -> SystemEvent -> Int
hashWithSalt Int
_salt SystemEvent' {Maybe EventType
Maybe StateChangeConfiguration
stateChangeConfiguration :: Maybe StateChangeConfiguration
eventType :: Maybe EventType
$sel:stateChangeConfiguration:SystemEvent' :: SystemEvent -> Maybe StateChangeConfiguration
$sel:eventType:SystemEvent' :: SystemEvent -> Maybe EventType
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe EventType
eventType
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe StateChangeConfiguration
stateChangeConfiguration
instance Prelude.NFData SystemEvent where
rnf :: SystemEvent -> ()
rnf SystemEvent' {Maybe EventType
Maybe StateChangeConfiguration
stateChangeConfiguration :: Maybe StateChangeConfiguration
eventType :: Maybe EventType
$sel:stateChangeConfiguration:SystemEvent' :: SystemEvent -> Maybe StateChangeConfiguration
$sel:eventType:SystemEvent' :: SystemEvent -> Maybe EventType
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe EventType
eventType
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe StateChangeConfiguration
stateChangeConfiguration