{-# 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 #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.IoT.Types.ViolationEvent
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
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

-- | Information about a Device Defender security profile behavior violation.
--
-- /See:/ 'newViolationEvent' smart constructor.
data ViolationEvent = ViolationEvent'
  { -- | The behavior that was violated.
    ViolationEvent -> Maybe Behavior
behavior :: Prelude.Maybe Behavior,
    -- | The value of the metric (the measurement).
    ViolationEvent -> Maybe MetricValue
metricValue :: Prelude.Maybe MetricValue,
    -- | The name of the security profile whose behavior was violated.
    ViolationEvent -> Maybe Text
securityProfileName :: Prelude.Maybe Prelude.Text,
    -- | The name of the thing responsible for the violation event.
    ViolationEvent -> Maybe Text
thingName :: Prelude.Maybe Prelude.Text,
    -- | The verification state of the violation (detect alarm).
    ViolationEvent -> Maybe VerificationState
verificationState :: Prelude.Maybe VerificationState,
    -- | The description of the verification state of the violation.
    ViolationEvent -> Maybe Text
verificationStateDescription :: Prelude.Maybe Prelude.Text,
    -- | The details of a violation event.
    ViolationEvent -> Maybe ViolationEventAdditionalInfo
violationEventAdditionalInfo :: Prelude.Maybe ViolationEventAdditionalInfo,
    -- | The time the violation event occurred.
    ViolationEvent -> Maybe POSIX
violationEventTime :: Prelude.Maybe Data.POSIX,
    -- | The type of violation event.
    ViolationEvent -> Maybe ViolationEventType
violationEventType :: Prelude.Maybe ViolationEventType,
    -- | The ID of the violation event.
    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)

-- |
-- Create a value of 'ViolationEvent' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'behavior', 'violationEvent_behavior' - The behavior that was violated.
--
-- 'metricValue', 'violationEvent_metricValue' - The value of the metric (the measurement).
--
-- 'securityProfileName', 'violationEvent_securityProfileName' - The name of the security profile whose behavior was violated.
--
-- 'thingName', 'violationEvent_thingName' - The name of the thing responsible for the violation event.
--
-- 'verificationState', 'violationEvent_verificationState' - The verification state of the violation (detect alarm).
--
-- 'verificationStateDescription', 'violationEvent_verificationStateDescription' - The description of the verification state of the violation.
--
-- 'violationEventAdditionalInfo', 'violationEvent_violationEventAdditionalInfo' - The details of a violation event.
--
-- 'violationEventTime', 'violationEvent_violationEventTime' - The time the violation event occurred.
--
-- 'violationEventType', 'violationEvent_violationEventType' - The type of violation event.
--
-- 'violationId', 'violationEvent_violationId' - The ID of the violation event.
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
    }

-- | The behavior that was violated.
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)

-- | The value of the metric (the measurement).
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)

-- | The name of the security profile whose behavior was violated.
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)

-- | The name of the thing responsible for the violation event.
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)

-- | The verification state of the violation (detect alarm).
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)

-- | The description of the verification state of the violation.
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)

-- | The details of a violation event.
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)

-- | The time the violation event occurred.
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

-- | The type of violation event.
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)

-- | The ID of the violation event.
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