{-# 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.ActiveViolation 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 qualified Amazonka.Prelude as Prelude
data ActiveViolation = ActiveViolation'
{
ActiveViolation -> Maybe Behavior
behavior :: Prelude.Maybe Behavior,
ActiveViolation -> Maybe POSIX
lastViolationTime :: Prelude.Maybe Data.POSIX,
ActiveViolation -> Maybe MetricValue
lastViolationValue :: Prelude.Maybe MetricValue,
ActiveViolation -> Maybe Text
securityProfileName :: Prelude.Maybe Prelude.Text,
ActiveViolation -> Maybe Text
thingName :: Prelude.Maybe Prelude.Text,
ActiveViolation -> Maybe VerificationState
verificationState :: Prelude.Maybe VerificationState,
ActiveViolation -> Maybe Text
verificationStateDescription :: Prelude.Maybe Prelude.Text,
ActiveViolation -> Maybe ViolationEventAdditionalInfo
violationEventAdditionalInfo :: Prelude.Maybe ViolationEventAdditionalInfo,
ActiveViolation -> Maybe Text
violationId :: Prelude.Maybe Prelude.Text,
ActiveViolation -> Maybe POSIX
violationStartTime :: Prelude.Maybe Data.POSIX
}
deriving (ActiveViolation -> ActiveViolation -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ActiveViolation -> ActiveViolation -> Bool
$c/= :: ActiveViolation -> ActiveViolation -> Bool
== :: ActiveViolation -> ActiveViolation -> Bool
$c== :: ActiveViolation -> ActiveViolation -> Bool
Prelude.Eq, ReadPrec [ActiveViolation]
ReadPrec ActiveViolation
Int -> ReadS ActiveViolation
ReadS [ActiveViolation]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ActiveViolation]
$creadListPrec :: ReadPrec [ActiveViolation]
readPrec :: ReadPrec ActiveViolation
$creadPrec :: ReadPrec ActiveViolation
readList :: ReadS [ActiveViolation]
$creadList :: ReadS [ActiveViolation]
readsPrec :: Int -> ReadS ActiveViolation
$creadsPrec :: Int -> ReadS ActiveViolation
Prelude.Read, Int -> ActiveViolation -> ShowS
[ActiveViolation] -> ShowS
ActiveViolation -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ActiveViolation] -> ShowS
$cshowList :: [ActiveViolation] -> ShowS
show :: ActiveViolation -> String
$cshow :: ActiveViolation -> String
showsPrec :: Int -> ActiveViolation -> ShowS
$cshowsPrec :: Int -> ActiveViolation -> ShowS
Prelude.Show, forall x. Rep ActiveViolation x -> ActiveViolation
forall x. ActiveViolation -> Rep ActiveViolation x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ActiveViolation x -> ActiveViolation
$cfrom :: forall x. ActiveViolation -> Rep ActiveViolation x
Prelude.Generic)
newActiveViolation ::
ActiveViolation
newActiveViolation :: ActiveViolation
newActiveViolation =
ActiveViolation'
{ $sel:behavior:ActiveViolation' :: Maybe Behavior
behavior = forall a. Maybe a
Prelude.Nothing,
$sel:lastViolationTime:ActiveViolation' :: Maybe POSIX
lastViolationTime = forall a. Maybe a
Prelude.Nothing,
$sel:lastViolationValue:ActiveViolation' :: Maybe MetricValue
lastViolationValue = forall a. Maybe a
Prelude.Nothing,
$sel:securityProfileName:ActiveViolation' :: Maybe Text
securityProfileName = forall a. Maybe a
Prelude.Nothing,
$sel:thingName:ActiveViolation' :: Maybe Text
thingName = forall a. Maybe a
Prelude.Nothing,
$sel:verificationState:ActiveViolation' :: Maybe VerificationState
verificationState = forall a. Maybe a
Prelude.Nothing,
$sel:verificationStateDescription:ActiveViolation' :: Maybe Text
verificationStateDescription = forall a. Maybe a
Prelude.Nothing,
$sel:violationEventAdditionalInfo:ActiveViolation' :: Maybe ViolationEventAdditionalInfo
violationEventAdditionalInfo = forall a. Maybe a
Prelude.Nothing,
$sel:violationId:ActiveViolation' :: Maybe Text
violationId = forall a. Maybe a
Prelude.Nothing,
$sel:violationStartTime:ActiveViolation' :: Maybe POSIX
violationStartTime = forall a. Maybe a
Prelude.Nothing
}
activeViolation_behavior :: Lens.Lens' ActiveViolation (Prelude.Maybe Behavior)
activeViolation_behavior :: Lens' ActiveViolation (Maybe Behavior)
activeViolation_behavior = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ActiveViolation' {Maybe Behavior
behavior :: Maybe Behavior
$sel:behavior:ActiveViolation' :: ActiveViolation -> Maybe Behavior
behavior} -> Maybe Behavior
behavior) (\s :: ActiveViolation
s@ActiveViolation' {} Maybe Behavior
a -> ActiveViolation
s {$sel:behavior:ActiveViolation' :: Maybe Behavior
behavior = Maybe Behavior
a} :: ActiveViolation)
activeViolation_lastViolationTime :: Lens.Lens' ActiveViolation (Prelude.Maybe Prelude.UTCTime)
activeViolation_lastViolationTime :: Lens' ActiveViolation (Maybe UTCTime)
activeViolation_lastViolationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ActiveViolation' {Maybe POSIX
lastViolationTime :: Maybe POSIX
$sel:lastViolationTime:ActiveViolation' :: ActiveViolation -> Maybe POSIX
lastViolationTime} -> Maybe POSIX
lastViolationTime) (\s :: ActiveViolation
s@ActiveViolation' {} Maybe POSIX
a -> ActiveViolation
s {$sel:lastViolationTime:ActiveViolation' :: Maybe POSIX
lastViolationTime = Maybe POSIX
a} :: ActiveViolation) 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
activeViolation_lastViolationValue :: Lens.Lens' ActiveViolation (Prelude.Maybe MetricValue)
activeViolation_lastViolationValue :: Lens' ActiveViolation (Maybe MetricValue)
activeViolation_lastViolationValue = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ActiveViolation' {Maybe MetricValue
lastViolationValue :: Maybe MetricValue
$sel:lastViolationValue:ActiveViolation' :: ActiveViolation -> Maybe MetricValue
lastViolationValue} -> Maybe MetricValue
lastViolationValue) (\s :: ActiveViolation
s@ActiveViolation' {} Maybe MetricValue
a -> ActiveViolation
s {$sel:lastViolationValue:ActiveViolation' :: Maybe MetricValue
lastViolationValue = Maybe MetricValue
a} :: ActiveViolation)
activeViolation_securityProfileName :: Lens.Lens' ActiveViolation (Prelude.Maybe Prelude.Text)
activeViolation_securityProfileName :: Lens' ActiveViolation (Maybe Text)
activeViolation_securityProfileName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ActiveViolation' {Maybe Text
securityProfileName :: Maybe Text
$sel:securityProfileName:ActiveViolation' :: ActiveViolation -> Maybe Text
securityProfileName} -> Maybe Text
securityProfileName) (\s :: ActiveViolation
s@ActiveViolation' {} Maybe Text
a -> ActiveViolation
s {$sel:securityProfileName:ActiveViolation' :: Maybe Text
securityProfileName = Maybe Text
a} :: ActiveViolation)
activeViolation_thingName :: Lens.Lens' ActiveViolation (Prelude.Maybe Prelude.Text)
activeViolation_thingName :: Lens' ActiveViolation (Maybe Text)
activeViolation_thingName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ActiveViolation' {Maybe Text
thingName :: Maybe Text
$sel:thingName:ActiveViolation' :: ActiveViolation -> Maybe Text
thingName} -> Maybe Text
thingName) (\s :: ActiveViolation
s@ActiveViolation' {} Maybe Text
a -> ActiveViolation
s {$sel:thingName:ActiveViolation' :: Maybe Text
thingName = Maybe Text
a} :: ActiveViolation)
activeViolation_verificationState :: Lens.Lens' ActiveViolation (Prelude.Maybe VerificationState)
activeViolation_verificationState :: Lens' ActiveViolation (Maybe VerificationState)
activeViolation_verificationState = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ActiveViolation' {Maybe VerificationState
verificationState :: Maybe VerificationState
$sel:verificationState:ActiveViolation' :: ActiveViolation -> Maybe VerificationState
verificationState} -> Maybe VerificationState
verificationState) (\s :: ActiveViolation
s@ActiveViolation' {} Maybe VerificationState
a -> ActiveViolation
s {$sel:verificationState:ActiveViolation' :: Maybe VerificationState
verificationState = Maybe VerificationState
a} :: ActiveViolation)
activeViolation_verificationStateDescription :: Lens.Lens' ActiveViolation (Prelude.Maybe Prelude.Text)
activeViolation_verificationStateDescription :: Lens' ActiveViolation (Maybe Text)
activeViolation_verificationStateDescription = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ActiveViolation' {Maybe Text
verificationStateDescription :: Maybe Text
$sel:verificationStateDescription:ActiveViolation' :: ActiveViolation -> Maybe Text
verificationStateDescription} -> Maybe Text
verificationStateDescription) (\s :: ActiveViolation
s@ActiveViolation' {} Maybe Text
a -> ActiveViolation
s {$sel:verificationStateDescription:ActiveViolation' :: Maybe Text
verificationStateDescription = Maybe Text
a} :: ActiveViolation)
activeViolation_violationEventAdditionalInfo :: Lens.Lens' ActiveViolation (Prelude.Maybe ViolationEventAdditionalInfo)
activeViolation_violationEventAdditionalInfo :: Lens' ActiveViolation (Maybe ViolationEventAdditionalInfo)
activeViolation_violationEventAdditionalInfo = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ActiveViolation' {Maybe ViolationEventAdditionalInfo
violationEventAdditionalInfo :: Maybe ViolationEventAdditionalInfo
$sel:violationEventAdditionalInfo:ActiveViolation' :: ActiveViolation -> Maybe ViolationEventAdditionalInfo
violationEventAdditionalInfo} -> Maybe ViolationEventAdditionalInfo
violationEventAdditionalInfo) (\s :: ActiveViolation
s@ActiveViolation' {} Maybe ViolationEventAdditionalInfo
a -> ActiveViolation
s {$sel:violationEventAdditionalInfo:ActiveViolation' :: Maybe ViolationEventAdditionalInfo
violationEventAdditionalInfo = Maybe ViolationEventAdditionalInfo
a} :: ActiveViolation)
activeViolation_violationId :: Lens.Lens' ActiveViolation (Prelude.Maybe Prelude.Text)
activeViolation_violationId :: Lens' ActiveViolation (Maybe Text)
activeViolation_violationId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ActiveViolation' {Maybe Text
violationId :: Maybe Text
$sel:violationId:ActiveViolation' :: ActiveViolation -> Maybe Text
violationId} -> Maybe Text
violationId) (\s :: ActiveViolation
s@ActiveViolation' {} Maybe Text
a -> ActiveViolation
s {$sel:violationId:ActiveViolation' :: Maybe Text
violationId = Maybe Text
a} :: ActiveViolation)
activeViolation_violationStartTime :: Lens.Lens' ActiveViolation (Prelude.Maybe Prelude.UTCTime)
activeViolation_violationStartTime :: Lens' ActiveViolation (Maybe UTCTime)
activeViolation_violationStartTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ActiveViolation' {Maybe POSIX
violationStartTime :: Maybe POSIX
$sel:violationStartTime:ActiveViolation' :: ActiveViolation -> Maybe POSIX
violationStartTime} -> Maybe POSIX
violationStartTime) (\s :: ActiveViolation
s@ActiveViolation' {} Maybe POSIX
a -> ActiveViolation
s {$sel:violationStartTime:ActiveViolation' :: Maybe POSIX
violationStartTime = Maybe POSIX
a} :: ActiveViolation) 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
instance Data.FromJSON ActiveViolation where
parseJSON :: Value -> Parser ActiveViolation
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"ActiveViolation"
( \Object
x ->
Maybe Behavior
-> Maybe POSIX
-> Maybe MetricValue
-> Maybe Text
-> Maybe Text
-> Maybe VerificationState
-> Maybe Text
-> Maybe ViolationEventAdditionalInfo
-> Maybe Text
-> Maybe POSIX
-> ActiveViolation
ActiveViolation'
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
"lastViolationTime")
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
"lastViolationValue")
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
"violationId")
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
"violationStartTime")
)
instance Prelude.Hashable ActiveViolation where
hashWithSalt :: Int -> ActiveViolation -> Int
hashWithSalt Int
_salt ActiveViolation' {Maybe Text
Maybe POSIX
Maybe MetricValue
Maybe Behavior
Maybe VerificationState
Maybe ViolationEventAdditionalInfo
violationStartTime :: Maybe POSIX
violationId :: Maybe Text
violationEventAdditionalInfo :: Maybe ViolationEventAdditionalInfo
verificationStateDescription :: Maybe Text
verificationState :: Maybe VerificationState
thingName :: Maybe Text
securityProfileName :: Maybe Text
lastViolationValue :: Maybe MetricValue
lastViolationTime :: Maybe POSIX
behavior :: Maybe Behavior
$sel:violationStartTime:ActiveViolation' :: ActiveViolation -> Maybe POSIX
$sel:violationId:ActiveViolation' :: ActiveViolation -> Maybe Text
$sel:violationEventAdditionalInfo:ActiveViolation' :: ActiveViolation -> Maybe ViolationEventAdditionalInfo
$sel:verificationStateDescription:ActiveViolation' :: ActiveViolation -> Maybe Text
$sel:verificationState:ActiveViolation' :: ActiveViolation -> Maybe VerificationState
$sel:thingName:ActiveViolation' :: ActiveViolation -> Maybe Text
$sel:securityProfileName:ActiveViolation' :: ActiveViolation -> Maybe Text
$sel:lastViolationValue:ActiveViolation' :: ActiveViolation -> Maybe MetricValue
$sel:lastViolationTime:ActiveViolation' :: ActiveViolation -> Maybe POSIX
$sel:behavior:ActiveViolation' :: ActiveViolation -> 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 POSIX
lastViolationTime
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe MetricValue
lastViolationValue
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 Text
violationId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
violationStartTime
instance Prelude.NFData ActiveViolation where
rnf :: ActiveViolation -> ()
rnf ActiveViolation' {Maybe Text
Maybe POSIX
Maybe MetricValue
Maybe Behavior
Maybe VerificationState
Maybe ViolationEventAdditionalInfo
violationStartTime :: Maybe POSIX
violationId :: Maybe Text
violationEventAdditionalInfo :: Maybe ViolationEventAdditionalInfo
verificationStateDescription :: Maybe Text
verificationState :: Maybe VerificationState
thingName :: Maybe Text
securityProfileName :: Maybe Text
lastViolationValue :: Maybe MetricValue
lastViolationTime :: Maybe POSIX
behavior :: Maybe Behavior
$sel:violationStartTime:ActiveViolation' :: ActiveViolation -> Maybe POSIX
$sel:violationId:ActiveViolation' :: ActiveViolation -> Maybe Text
$sel:violationEventAdditionalInfo:ActiveViolation' :: ActiveViolation -> Maybe ViolationEventAdditionalInfo
$sel:verificationStateDescription:ActiveViolation' :: ActiveViolation -> Maybe Text
$sel:verificationState:ActiveViolation' :: ActiveViolation -> Maybe VerificationState
$sel:thingName:ActiveViolation' :: ActiveViolation -> Maybe Text
$sel:securityProfileName:ActiveViolation' :: ActiveViolation -> Maybe Text
$sel:lastViolationValue:ActiveViolation' :: ActiveViolation -> Maybe MetricValue
$sel:lastViolationTime:ActiveViolation' :: ActiveViolation -> Maybe POSIX
$sel:behavior:ActiveViolation' :: ActiveViolation -> 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 POSIX
lastViolationTime
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe MetricValue
lastViolationValue
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 Text
violationId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
violationStartTime