{-# 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.IoT.Types.ViolationEvent where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.IoT.Types.Behavior
import Amazonka.IoT.Types.MetricValue
import Amazonka.IoT.Types.VerificationState
import Amazonka.IoT.Types.ViolationEventAdditionalInfo
import Amazonka.IoT.Types.ViolationEventType
import qualified Amazonka.Prelude as Prelude
data ViolationEvent = ViolationEvent'
{
ViolationEvent -> Maybe Behavior
behavior :: Prelude.Maybe Behavior,
ViolationEvent -> Maybe MetricValue
metricValue :: Prelude.Maybe MetricValue,
ViolationEvent -> Maybe Text
securityProfileName :: Prelude.Maybe Prelude.Text,
ViolationEvent -> Maybe Text
thingName :: Prelude.Maybe Prelude.Text,
ViolationEvent -> Maybe VerificationState
verificationState :: Prelude.Maybe VerificationState,
ViolationEvent -> Maybe Text
verificationStateDescription :: Prelude.Maybe Prelude.Text,
ViolationEvent -> Maybe ViolationEventAdditionalInfo
violationEventAdditionalInfo :: Prelude.Maybe ViolationEventAdditionalInfo,
ViolationEvent -> Maybe POSIX
violationEventTime :: Prelude.Maybe Data.POSIX,
ViolationEvent -> Maybe ViolationEventType
violationEventType :: Prelude.Maybe ViolationEventType,
ViolationEvent -> Maybe Text
violationId :: Prelude.Maybe Prelude.Text
}
deriving (ViolationEvent -> ViolationEvent -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ViolationEvent -> ViolationEvent -> Bool
$c/= :: ViolationEvent -> ViolationEvent -> Bool
== :: ViolationEvent -> ViolationEvent -> Bool
$c== :: ViolationEvent -> ViolationEvent -> Bool
Prelude.Eq, ReadPrec [ViolationEvent]
ReadPrec ViolationEvent
Int -> ReadS ViolationEvent
ReadS [ViolationEvent]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ViolationEvent]
$creadListPrec :: ReadPrec [ViolationEvent]
readPrec :: ReadPrec ViolationEvent
$creadPrec :: ReadPrec ViolationEvent
readList :: ReadS [ViolationEvent]
$creadList :: ReadS [ViolationEvent]
readsPrec :: Int -> ReadS ViolationEvent
$creadsPrec :: Int -> ReadS ViolationEvent
Prelude.Read, Int -> ViolationEvent -> ShowS
[ViolationEvent] -> ShowS
ViolationEvent -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ViolationEvent] -> ShowS
$cshowList :: [ViolationEvent] -> ShowS
show :: ViolationEvent -> String
$cshow :: ViolationEvent -> String
showsPrec :: Int -> ViolationEvent -> ShowS
$cshowsPrec :: Int -> ViolationEvent -> ShowS
Prelude.Show, forall x. Rep ViolationEvent x -> ViolationEvent
forall x. ViolationEvent -> Rep ViolationEvent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ViolationEvent x -> ViolationEvent
$cfrom :: forall x. ViolationEvent -> Rep ViolationEvent x
Prelude.Generic)
newViolationEvent ::
ViolationEvent
newViolationEvent :: ViolationEvent
newViolationEvent =
ViolationEvent'
{ $sel:behavior:ViolationEvent' :: Maybe Behavior
behavior = forall a. Maybe a
Prelude.Nothing,
$sel:metricValue:ViolationEvent' :: Maybe MetricValue
metricValue = forall a. Maybe a
Prelude.Nothing,
$sel:securityProfileName:ViolationEvent' :: Maybe Text
securityProfileName = forall a. Maybe a
Prelude.Nothing,
$sel:thingName:ViolationEvent' :: Maybe Text
thingName = forall a. Maybe a
Prelude.Nothing,
$sel:verificationState:ViolationEvent' :: Maybe VerificationState
verificationState = forall a. Maybe a
Prelude.Nothing,
$sel:verificationStateDescription:ViolationEvent' :: Maybe Text
verificationStateDescription = forall a. Maybe a
Prelude.Nothing,
$sel:violationEventAdditionalInfo:ViolationEvent' :: Maybe ViolationEventAdditionalInfo
violationEventAdditionalInfo = forall a. Maybe a
Prelude.Nothing,
$sel:violationEventTime:ViolationEvent' :: Maybe POSIX
violationEventTime = forall a. Maybe a
Prelude.Nothing,
$sel:violationEventType:ViolationEvent' :: Maybe ViolationEventType
violationEventType = forall a. Maybe a
Prelude.Nothing,
$sel:violationId:ViolationEvent' :: Maybe Text
violationId = forall a. Maybe a
Prelude.Nothing
}
violationEvent_behavior :: Lens.Lens' ViolationEvent (Prelude.Maybe Behavior)
violationEvent_behavior :: Lens' ViolationEvent (Maybe Behavior)
violationEvent_behavior = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ViolationEvent' {Maybe Behavior
behavior :: Maybe Behavior
$sel:behavior:ViolationEvent' :: ViolationEvent -> Maybe Behavior
behavior} -> Maybe Behavior
behavior) (\s :: ViolationEvent
s@ViolationEvent' {} Maybe Behavior
a -> ViolationEvent
s {$sel:behavior:ViolationEvent' :: Maybe Behavior
behavior = Maybe Behavior
a} :: ViolationEvent)
violationEvent_metricValue :: Lens.Lens' ViolationEvent (Prelude.Maybe MetricValue)
violationEvent_metricValue :: Lens' ViolationEvent (Maybe MetricValue)
violationEvent_metricValue = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ViolationEvent' {Maybe MetricValue
metricValue :: Maybe MetricValue
$sel:metricValue:ViolationEvent' :: ViolationEvent -> Maybe MetricValue
metricValue} -> Maybe MetricValue
metricValue) (\s :: ViolationEvent
s@ViolationEvent' {} Maybe MetricValue
a -> ViolationEvent
s {$sel:metricValue:ViolationEvent' :: Maybe MetricValue
metricValue = Maybe MetricValue
a} :: ViolationEvent)
violationEvent_securityProfileName :: Lens.Lens' ViolationEvent (Prelude.Maybe Prelude.Text)
violationEvent_securityProfileName :: Lens' ViolationEvent (Maybe Text)
violationEvent_securityProfileName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ViolationEvent' {Maybe Text
securityProfileName :: Maybe Text
$sel:securityProfileName:ViolationEvent' :: ViolationEvent -> Maybe Text
securityProfileName} -> Maybe Text
securityProfileName) (\s :: ViolationEvent
s@ViolationEvent' {} Maybe Text
a -> ViolationEvent
s {$sel:securityProfileName:ViolationEvent' :: Maybe Text
securityProfileName = Maybe Text
a} :: ViolationEvent)
violationEvent_thingName :: Lens.Lens' ViolationEvent (Prelude.Maybe Prelude.Text)
violationEvent_thingName :: Lens' ViolationEvent (Maybe Text)
violationEvent_thingName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ViolationEvent' {Maybe Text
thingName :: Maybe Text
$sel:thingName:ViolationEvent' :: ViolationEvent -> Maybe Text
thingName} -> Maybe Text
thingName) (\s :: ViolationEvent
s@ViolationEvent' {} Maybe Text
a -> ViolationEvent
s {$sel:thingName:ViolationEvent' :: Maybe Text
thingName = Maybe Text
a} :: ViolationEvent)
violationEvent_verificationState :: Lens.Lens' ViolationEvent (Prelude.Maybe VerificationState)
violationEvent_verificationState :: Lens' ViolationEvent (Maybe VerificationState)
violationEvent_verificationState = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ViolationEvent' {Maybe VerificationState
verificationState :: Maybe VerificationState
$sel:verificationState:ViolationEvent' :: ViolationEvent -> Maybe VerificationState
verificationState} -> Maybe VerificationState
verificationState) (\s :: ViolationEvent
s@ViolationEvent' {} Maybe VerificationState
a -> ViolationEvent
s {$sel:verificationState:ViolationEvent' :: Maybe VerificationState
verificationState = Maybe VerificationState
a} :: ViolationEvent)
violationEvent_verificationStateDescription :: Lens.Lens' ViolationEvent (Prelude.Maybe Prelude.Text)
violationEvent_verificationStateDescription :: Lens' ViolationEvent (Maybe Text)
violationEvent_verificationStateDescription = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ViolationEvent' {Maybe Text
verificationStateDescription :: Maybe Text
$sel:verificationStateDescription:ViolationEvent' :: ViolationEvent -> Maybe Text
verificationStateDescription} -> Maybe Text
verificationStateDescription) (\s :: ViolationEvent
s@ViolationEvent' {} Maybe Text
a -> ViolationEvent
s {$sel:verificationStateDescription:ViolationEvent' :: Maybe Text
verificationStateDescription = Maybe Text
a} :: ViolationEvent)
violationEvent_violationEventAdditionalInfo :: Lens.Lens' ViolationEvent (Prelude.Maybe ViolationEventAdditionalInfo)
violationEvent_violationEventAdditionalInfo :: Lens' ViolationEvent (Maybe ViolationEventAdditionalInfo)
violationEvent_violationEventAdditionalInfo = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ViolationEvent' {Maybe ViolationEventAdditionalInfo
violationEventAdditionalInfo :: Maybe ViolationEventAdditionalInfo
$sel:violationEventAdditionalInfo:ViolationEvent' :: ViolationEvent -> Maybe ViolationEventAdditionalInfo
violationEventAdditionalInfo} -> Maybe ViolationEventAdditionalInfo
violationEventAdditionalInfo) (\s :: ViolationEvent
s@ViolationEvent' {} Maybe ViolationEventAdditionalInfo
a -> ViolationEvent
s {$sel:violationEventAdditionalInfo:ViolationEvent' :: Maybe ViolationEventAdditionalInfo
violationEventAdditionalInfo = Maybe ViolationEventAdditionalInfo
a} :: ViolationEvent)
violationEvent_violationEventTime :: Lens.Lens' ViolationEvent (Prelude.Maybe Prelude.UTCTime)
violationEvent_violationEventTime :: Lens' ViolationEvent (Maybe UTCTime)
violationEvent_violationEventTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ViolationEvent' {Maybe POSIX
violationEventTime :: Maybe POSIX
$sel:violationEventTime:ViolationEvent' :: ViolationEvent -> Maybe POSIX
violationEventTime} -> Maybe POSIX
violationEventTime) (\s :: ViolationEvent
s@ViolationEvent' {} Maybe POSIX
a -> ViolationEvent
s {$sel:violationEventTime:ViolationEvent' :: Maybe POSIX
violationEventTime = Maybe POSIX
a} :: ViolationEvent) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall (a :: Format). Iso' (Time a) UTCTime
Data._Time
violationEvent_violationEventType :: Lens.Lens' ViolationEvent (Prelude.Maybe ViolationEventType)
violationEvent_violationEventType :: Lens' ViolationEvent (Maybe ViolationEventType)
violationEvent_violationEventType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ViolationEvent' {Maybe ViolationEventType
violationEventType :: Maybe ViolationEventType
$sel:violationEventType:ViolationEvent' :: ViolationEvent -> Maybe ViolationEventType
violationEventType} -> Maybe ViolationEventType
violationEventType) (\s :: ViolationEvent
s@ViolationEvent' {} Maybe ViolationEventType
a -> ViolationEvent
s {$sel:violationEventType:ViolationEvent' :: Maybe ViolationEventType
violationEventType = Maybe ViolationEventType
a} :: ViolationEvent)
violationEvent_violationId :: Lens.Lens' ViolationEvent (Prelude.Maybe Prelude.Text)
violationEvent_violationId :: Lens' ViolationEvent (Maybe Text)
violationEvent_violationId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ViolationEvent' {Maybe Text
violationId :: Maybe Text
$sel:violationId:ViolationEvent' :: ViolationEvent -> Maybe Text
violationId} -> Maybe Text
violationId) (\s :: ViolationEvent
s@ViolationEvent' {} Maybe Text
a -> ViolationEvent
s {$sel:violationId:ViolationEvent' :: Maybe Text
violationId = Maybe Text
a} :: ViolationEvent)
instance Data.FromJSON ViolationEvent where
parseJSON :: Value -> Parser ViolationEvent
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"ViolationEvent"
( \Object
x ->
Maybe Behavior
-> Maybe MetricValue
-> Maybe Text
-> Maybe Text
-> Maybe VerificationState
-> Maybe Text
-> Maybe ViolationEventAdditionalInfo
-> Maybe POSIX
-> Maybe ViolationEventType
-> Maybe Text
-> ViolationEvent
ViolationEvent'
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
"behavior")
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
"metricValue")
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
"securityProfileName")
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
"thingName")
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
"verificationState")
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
"verificationStateDescription")
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
"violationEventAdditionalInfo")
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
"violationEventTime")
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
"violationEventType")
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
"violationId")
)
instance Prelude.Hashable ViolationEvent where
hashWithSalt :: Int -> ViolationEvent -> Int
hashWithSalt Int
_salt ViolationEvent' {Maybe Text
Maybe POSIX
Maybe MetricValue
Maybe Behavior
Maybe VerificationState
Maybe ViolationEventAdditionalInfo
Maybe ViolationEventType
violationId :: Maybe Text
violationEventType :: Maybe ViolationEventType
violationEventTime :: Maybe POSIX
violationEventAdditionalInfo :: Maybe ViolationEventAdditionalInfo
verificationStateDescription :: Maybe Text
verificationState :: Maybe VerificationState
thingName :: Maybe Text
securityProfileName :: Maybe Text
metricValue :: Maybe MetricValue
behavior :: Maybe Behavior
$sel:violationId:ViolationEvent' :: ViolationEvent -> Maybe Text
$sel:violationEventType:ViolationEvent' :: ViolationEvent -> Maybe ViolationEventType
$sel:violationEventTime:ViolationEvent' :: ViolationEvent -> Maybe POSIX
$sel:violationEventAdditionalInfo:ViolationEvent' :: ViolationEvent -> Maybe ViolationEventAdditionalInfo
$sel:verificationStateDescription:ViolationEvent' :: ViolationEvent -> Maybe Text
$sel:verificationState:ViolationEvent' :: ViolationEvent -> Maybe VerificationState
$sel:thingName:ViolationEvent' :: ViolationEvent -> Maybe Text
$sel:securityProfileName:ViolationEvent' :: ViolationEvent -> Maybe Text
$sel:metricValue:ViolationEvent' :: ViolationEvent -> Maybe MetricValue
$sel:behavior:ViolationEvent' :: ViolationEvent -> Maybe Behavior
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Behavior
behavior
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe MetricValue
metricValue
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
securityProfileName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
thingName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe VerificationState
verificationState
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
verificationStateDescription
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ViolationEventAdditionalInfo
violationEventAdditionalInfo
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
violationEventTime
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ViolationEventType
violationEventType
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
violationId
instance Prelude.NFData ViolationEvent where
rnf :: ViolationEvent -> ()
rnf ViolationEvent' {Maybe Text
Maybe POSIX
Maybe MetricValue
Maybe Behavior
Maybe VerificationState
Maybe ViolationEventAdditionalInfo
Maybe ViolationEventType
violationId :: Maybe Text
violationEventType :: Maybe ViolationEventType
violationEventTime :: Maybe POSIX
violationEventAdditionalInfo :: Maybe ViolationEventAdditionalInfo
verificationStateDescription :: Maybe Text
verificationState :: Maybe VerificationState
thingName :: Maybe Text
securityProfileName :: Maybe Text
metricValue :: Maybe MetricValue
behavior :: Maybe Behavior
$sel:violationId:ViolationEvent' :: ViolationEvent -> Maybe Text
$sel:violationEventType:ViolationEvent' :: ViolationEvent -> Maybe ViolationEventType
$sel:violationEventTime:ViolationEvent' :: ViolationEvent -> Maybe POSIX
$sel:violationEventAdditionalInfo:ViolationEvent' :: ViolationEvent -> Maybe ViolationEventAdditionalInfo
$sel:verificationStateDescription:ViolationEvent' :: ViolationEvent -> Maybe Text
$sel:verificationState:ViolationEvent' :: ViolationEvent -> Maybe VerificationState
$sel:thingName:ViolationEvent' :: ViolationEvent -> Maybe Text
$sel:securityProfileName:ViolationEvent' :: ViolationEvent -> Maybe Text
$sel:metricValue:ViolationEvent' :: ViolationEvent -> Maybe MetricValue
$sel:behavior:ViolationEvent' :: ViolationEvent -> Maybe Behavior
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Behavior
behavior
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe MetricValue
metricValue
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
securityProfileName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
thingName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe VerificationState
verificationState
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
verificationStateDescription
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ViolationEventAdditionalInfo
violationEventAdditionalInfo
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
violationEventTime
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ViolationEventType
violationEventType
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
violationId