packages feed

amazonka-cloudwatch-2.0: gen/Amazonka/CloudWatch/Types/CompositeAlarm.hs

{-# 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.CloudWatch.Types.CompositeAlarm
-- 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.CloudWatch.Types.CompositeAlarm where

import Amazonka.CloudWatch.Types.ActionsSuppressedBy
import Amazonka.CloudWatch.Types.StateValue
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude

-- | The details about a composite alarm.
--
-- /See:/ 'newCompositeAlarm' smart constructor.
data CompositeAlarm = CompositeAlarm'
  { -- | Indicates whether actions should be executed during any changes to the
    -- alarm state.
    actionsEnabled :: Prelude.Maybe Prelude.Bool,
    -- | When the value is @ALARM@, it means that the actions are suppressed
    -- because the suppressor alarm is in @ALARM@ When the value is
    -- @WaitPeriod@, it means that the actions are suppressed because the
    -- composite alarm is waiting for the suppressor alarm to go into into the
    -- @ALARM@ state. The maximum waiting time is as specified in
    -- @ActionsSuppressorWaitPeriod@. After this time, the composite alarm
    -- performs its actions. When the value is @ExtensionPeriod@, it means that
    -- the actions are suppressed because the composite alarm is waiting after
    -- the suppressor alarm went out of the @ALARM@ state. The maximum waiting
    -- time is as specified in @ActionsSuppressorExtensionPeriod@. After this
    -- time, the composite alarm performs its actions.
    actionsSuppressedBy :: Prelude.Maybe ActionsSuppressedBy,
    -- | Captures the reason for action suppression.
    actionsSuppressedReason :: Prelude.Maybe Prelude.Text,
    -- | Actions will be suppressed if the suppressor alarm is in the @ALARM@
    -- state. @ActionsSuppressor@ can be an AlarmName or an Amazon Resource
    -- Name (ARN) from an existing alarm.
    actionsSuppressor :: Prelude.Maybe Prelude.Text,
    -- | The maximum time in seconds that the composite alarm waits after
    -- suppressor alarm goes out of the @ALARM@ state. After this time, the
    -- composite alarm performs its actions.
    --
    -- @ExtensionPeriod@ is required only when @ActionsSuppressor@ is
    -- specified.
    actionsSuppressorExtensionPeriod :: Prelude.Maybe Prelude.Int,
    -- | The maximum time in seconds that the composite alarm waits for the
    -- suppressor alarm to go into the @ALARM@ state. After this time, the
    -- composite alarm performs its actions.
    --
    -- @WaitPeriod@ is required only when @ActionsSuppressor@ is specified.
    actionsSuppressorWaitPeriod :: Prelude.Maybe Prelude.Int,
    -- | The actions to execute when this alarm transitions to the ALARM state
    -- from any other state. Each action is specified as an Amazon Resource
    -- Name (ARN).
    alarmActions :: Prelude.Maybe [Prelude.Text],
    -- | The Amazon Resource Name (ARN) of the alarm.
    alarmArn :: Prelude.Maybe Prelude.Text,
    -- | The time stamp of the last update to the alarm configuration.
    alarmConfigurationUpdatedTimestamp :: Prelude.Maybe Data.ISO8601,
    -- | The description of the alarm.
    alarmDescription :: Prelude.Maybe Prelude.Text,
    -- | The name of the alarm.
    alarmName :: Prelude.Maybe Prelude.Text,
    -- | The rule that this alarm uses to evaluate its alarm state.
    alarmRule :: Prelude.Maybe Prelude.Text,
    -- | The actions to execute when this alarm transitions to the
    -- INSUFFICIENT_DATA state from any other state. Each action is specified
    -- as an Amazon Resource Name (ARN).
    insufficientDataActions :: Prelude.Maybe [Prelude.Text],
    -- | The actions to execute when this alarm transitions to the OK state from
    -- any other state. Each action is specified as an Amazon Resource Name
    -- (ARN).
    oKActions :: Prelude.Maybe [Prelude.Text],
    -- | An explanation for the alarm state, in text format.
    stateReason :: Prelude.Maybe Prelude.Text,
    -- | An explanation for the alarm state, in JSON format.
    stateReasonData :: Prelude.Maybe Prelude.Text,
    -- | The timestamp of the last change to the alarm\'s @StateValue@.
    stateTransitionedTimestamp :: Prelude.Maybe Data.ISO8601,
    -- | Tracks the timestamp of any state update, even if @StateValue@ doesn\'t
    -- change.
    stateUpdatedTimestamp :: Prelude.Maybe Data.ISO8601,
    -- | The state value for the alarm.
    stateValue :: Prelude.Maybe StateValue
  }
  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)

-- |
-- Create a value of 'CompositeAlarm' 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:
--
-- 'actionsEnabled', 'compositeAlarm_actionsEnabled' - Indicates whether actions should be executed during any changes to the
-- alarm state.
--
-- 'actionsSuppressedBy', 'compositeAlarm_actionsSuppressedBy' - When the value is @ALARM@, it means that the actions are suppressed
-- because the suppressor alarm is in @ALARM@ When the value is
-- @WaitPeriod@, it means that the actions are suppressed because the
-- composite alarm is waiting for the suppressor alarm to go into into the
-- @ALARM@ state. The maximum waiting time is as specified in
-- @ActionsSuppressorWaitPeriod@. After this time, the composite alarm
-- performs its actions. When the value is @ExtensionPeriod@, it means that
-- the actions are suppressed because the composite alarm is waiting after
-- the suppressor alarm went out of the @ALARM@ state. The maximum waiting
-- time is as specified in @ActionsSuppressorExtensionPeriod@. After this
-- time, the composite alarm performs its actions.
--
-- 'actionsSuppressedReason', 'compositeAlarm_actionsSuppressedReason' - Captures the reason for action suppression.
--
-- 'actionsSuppressor', 'compositeAlarm_actionsSuppressor' - Actions will be suppressed if the suppressor alarm is in the @ALARM@
-- state. @ActionsSuppressor@ can be an AlarmName or an Amazon Resource
-- Name (ARN) from an existing alarm.
--
-- 'actionsSuppressorExtensionPeriod', 'compositeAlarm_actionsSuppressorExtensionPeriod' - The maximum time in seconds that the composite alarm waits after
-- suppressor alarm goes out of the @ALARM@ state. After this time, the
-- composite alarm performs its actions.
--
-- @ExtensionPeriod@ is required only when @ActionsSuppressor@ is
-- specified.
--
-- 'actionsSuppressorWaitPeriod', 'compositeAlarm_actionsSuppressorWaitPeriod' - The maximum time in seconds that the composite alarm waits for the
-- suppressor alarm to go into the @ALARM@ state. After this time, the
-- composite alarm performs its actions.
--
-- @WaitPeriod@ is required only when @ActionsSuppressor@ is specified.
--
-- 'alarmActions', 'compositeAlarm_alarmActions' - The actions to execute when this alarm transitions to the ALARM state
-- from any other state. Each action is specified as an Amazon Resource
-- Name (ARN).
--
-- 'alarmArn', 'compositeAlarm_alarmArn' - The Amazon Resource Name (ARN) of the alarm.
--
-- 'alarmConfigurationUpdatedTimestamp', 'compositeAlarm_alarmConfigurationUpdatedTimestamp' - The time stamp of the last update to the alarm configuration.
--
-- 'alarmDescription', 'compositeAlarm_alarmDescription' - The description of the alarm.
--
-- 'alarmName', 'compositeAlarm_alarmName' - The name of the alarm.
--
-- 'alarmRule', 'compositeAlarm_alarmRule' - The rule that this alarm uses to evaluate its alarm state.
--
-- 'insufficientDataActions', 'compositeAlarm_insufficientDataActions' - The actions to execute when this alarm transitions to the
-- INSUFFICIENT_DATA state from any other state. Each action is specified
-- as an Amazon Resource Name (ARN).
--
-- 'oKActions', 'compositeAlarm_oKActions' - The actions to execute when this alarm transitions to the OK state from
-- any other state. Each action is specified as an Amazon Resource Name
-- (ARN).
--
-- 'stateReason', 'compositeAlarm_stateReason' - An explanation for the alarm state, in text format.
--
-- 'stateReasonData', 'compositeAlarm_stateReasonData' - An explanation for the alarm state, in JSON format.
--
-- 'stateTransitionedTimestamp', 'compositeAlarm_stateTransitionedTimestamp' - The timestamp of the last change to the alarm\'s @StateValue@.
--
-- 'stateUpdatedTimestamp', 'compositeAlarm_stateUpdatedTimestamp' - Tracks the timestamp of any state update, even if @StateValue@ doesn\'t
-- change.
--
-- 'stateValue', 'compositeAlarm_stateValue' - The state value for the alarm.
newCompositeAlarm ::
  CompositeAlarm
newCompositeAlarm =
  CompositeAlarm'
    { actionsEnabled = Prelude.Nothing,
      actionsSuppressedBy = Prelude.Nothing,
      actionsSuppressedReason = Prelude.Nothing,
      actionsSuppressor = Prelude.Nothing,
      actionsSuppressorExtensionPeriod = Prelude.Nothing,
      actionsSuppressorWaitPeriod = Prelude.Nothing,
      alarmActions = Prelude.Nothing,
      alarmArn = Prelude.Nothing,
      alarmConfigurationUpdatedTimestamp = Prelude.Nothing,
      alarmDescription = Prelude.Nothing,
      alarmName = Prelude.Nothing,
      alarmRule = Prelude.Nothing,
      insufficientDataActions = Prelude.Nothing,
      oKActions = Prelude.Nothing,
      stateReason = Prelude.Nothing,
      stateReasonData = Prelude.Nothing,
      stateTransitionedTimestamp = Prelude.Nothing,
      stateUpdatedTimestamp = Prelude.Nothing,
      stateValue = Prelude.Nothing
    }

-- | Indicates whether actions should be executed during any changes to the
-- alarm state.
compositeAlarm_actionsEnabled :: Lens.Lens' CompositeAlarm (Prelude.Maybe Prelude.Bool)
compositeAlarm_actionsEnabled = Lens.lens (\CompositeAlarm' {actionsEnabled} -> actionsEnabled) (\s@CompositeAlarm' {} a -> s {actionsEnabled = a} :: CompositeAlarm)

-- | When the value is @ALARM@, it means that the actions are suppressed
-- because the suppressor alarm is in @ALARM@ When the value is
-- @WaitPeriod@, it means that the actions are suppressed because the
-- composite alarm is waiting for the suppressor alarm to go into into the
-- @ALARM@ state. The maximum waiting time is as specified in
-- @ActionsSuppressorWaitPeriod@. After this time, the composite alarm
-- performs its actions. When the value is @ExtensionPeriod@, it means that
-- the actions are suppressed because the composite alarm is waiting after
-- the suppressor alarm went out of the @ALARM@ state. The maximum waiting
-- time is as specified in @ActionsSuppressorExtensionPeriod@. After this
-- time, the composite alarm performs its actions.
compositeAlarm_actionsSuppressedBy :: Lens.Lens' CompositeAlarm (Prelude.Maybe ActionsSuppressedBy)
compositeAlarm_actionsSuppressedBy = Lens.lens (\CompositeAlarm' {actionsSuppressedBy} -> actionsSuppressedBy) (\s@CompositeAlarm' {} a -> s {actionsSuppressedBy = a} :: CompositeAlarm)

-- | Captures the reason for action suppression.
compositeAlarm_actionsSuppressedReason :: Lens.Lens' CompositeAlarm (Prelude.Maybe Prelude.Text)
compositeAlarm_actionsSuppressedReason = Lens.lens (\CompositeAlarm' {actionsSuppressedReason} -> actionsSuppressedReason) (\s@CompositeAlarm' {} a -> s {actionsSuppressedReason = a} :: CompositeAlarm)

-- | Actions will be suppressed if the suppressor alarm is in the @ALARM@
-- state. @ActionsSuppressor@ can be an AlarmName or an Amazon Resource
-- Name (ARN) from an existing alarm.
compositeAlarm_actionsSuppressor :: Lens.Lens' CompositeAlarm (Prelude.Maybe Prelude.Text)
compositeAlarm_actionsSuppressor = Lens.lens (\CompositeAlarm' {actionsSuppressor} -> actionsSuppressor) (\s@CompositeAlarm' {} a -> s {actionsSuppressor = a} :: CompositeAlarm)

-- | The maximum time in seconds that the composite alarm waits after
-- suppressor alarm goes out of the @ALARM@ state. After this time, the
-- composite alarm performs its actions.
--
-- @ExtensionPeriod@ is required only when @ActionsSuppressor@ is
-- specified.
compositeAlarm_actionsSuppressorExtensionPeriod :: Lens.Lens' CompositeAlarm (Prelude.Maybe Prelude.Int)
compositeAlarm_actionsSuppressorExtensionPeriod = Lens.lens (\CompositeAlarm' {actionsSuppressorExtensionPeriod} -> actionsSuppressorExtensionPeriod) (\s@CompositeAlarm' {} a -> s {actionsSuppressorExtensionPeriod = a} :: CompositeAlarm)

-- | The maximum time in seconds that the composite alarm waits for the
-- suppressor alarm to go into the @ALARM@ state. After this time, the
-- composite alarm performs its actions.
--
-- @WaitPeriod@ is required only when @ActionsSuppressor@ is specified.
compositeAlarm_actionsSuppressorWaitPeriod :: Lens.Lens' CompositeAlarm (Prelude.Maybe Prelude.Int)
compositeAlarm_actionsSuppressorWaitPeriod = Lens.lens (\CompositeAlarm' {actionsSuppressorWaitPeriod} -> actionsSuppressorWaitPeriod) (\s@CompositeAlarm' {} a -> s {actionsSuppressorWaitPeriod = a} :: CompositeAlarm)

-- | The actions to execute when this alarm transitions to the ALARM state
-- from any other state. Each action is specified as an Amazon Resource
-- Name (ARN).
compositeAlarm_alarmActions :: Lens.Lens' CompositeAlarm (Prelude.Maybe [Prelude.Text])
compositeAlarm_alarmActions = Lens.lens (\CompositeAlarm' {alarmActions} -> alarmActions) (\s@CompositeAlarm' {} a -> s {alarmActions = a} :: CompositeAlarm) Prelude.. Lens.mapping Lens.coerced

-- | The Amazon Resource Name (ARN) of the alarm.
compositeAlarm_alarmArn :: Lens.Lens' CompositeAlarm (Prelude.Maybe Prelude.Text)
compositeAlarm_alarmArn = Lens.lens (\CompositeAlarm' {alarmArn} -> alarmArn) (\s@CompositeAlarm' {} a -> s {alarmArn = a} :: CompositeAlarm)

-- | The time stamp of the last update to the alarm configuration.
compositeAlarm_alarmConfigurationUpdatedTimestamp :: Lens.Lens' CompositeAlarm (Prelude.Maybe Prelude.UTCTime)
compositeAlarm_alarmConfigurationUpdatedTimestamp = Lens.lens (\CompositeAlarm' {alarmConfigurationUpdatedTimestamp} -> alarmConfigurationUpdatedTimestamp) (\s@CompositeAlarm' {} a -> s {alarmConfigurationUpdatedTimestamp = a} :: CompositeAlarm) Prelude.. Lens.mapping Data._Time

-- | The description of the alarm.
compositeAlarm_alarmDescription :: Lens.Lens' CompositeAlarm (Prelude.Maybe Prelude.Text)
compositeAlarm_alarmDescription = Lens.lens (\CompositeAlarm' {alarmDescription} -> alarmDescription) (\s@CompositeAlarm' {} a -> s {alarmDescription = a} :: CompositeAlarm)

-- | The name of the alarm.
compositeAlarm_alarmName :: Lens.Lens' CompositeAlarm (Prelude.Maybe Prelude.Text)
compositeAlarm_alarmName = Lens.lens (\CompositeAlarm' {alarmName} -> alarmName) (\s@CompositeAlarm' {} a -> s {alarmName = a} :: CompositeAlarm)

-- | The rule that this alarm uses to evaluate its alarm state.
compositeAlarm_alarmRule :: Lens.Lens' CompositeAlarm (Prelude.Maybe Prelude.Text)
compositeAlarm_alarmRule = Lens.lens (\CompositeAlarm' {alarmRule} -> alarmRule) (\s@CompositeAlarm' {} a -> s {alarmRule = a} :: CompositeAlarm)

-- | The actions to execute when this alarm transitions to the
-- INSUFFICIENT_DATA state from any other state. Each action is specified
-- as an Amazon Resource Name (ARN).
compositeAlarm_insufficientDataActions :: Lens.Lens' CompositeAlarm (Prelude.Maybe [Prelude.Text])
compositeAlarm_insufficientDataActions = Lens.lens (\CompositeAlarm' {insufficientDataActions} -> insufficientDataActions) (\s@CompositeAlarm' {} a -> s {insufficientDataActions = a} :: CompositeAlarm) Prelude.. Lens.mapping Lens.coerced

-- | The actions to execute when this alarm transitions to the OK state from
-- any other state. Each action is specified as an Amazon Resource Name
-- (ARN).
compositeAlarm_oKActions :: Lens.Lens' CompositeAlarm (Prelude.Maybe [Prelude.Text])
compositeAlarm_oKActions = Lens.lens (\CompositeAlarm' {oKActions} -> oKActions) (\s@CompositeAlarm' {} a -> s {oKActions = a} :: CompositeAlarm) Prelude.. Lens.mapping Lens.coerced

-- | An explanation for the alarm state, in text format.
compositeAlarm_stateReason :: Lens.Lens' CompositeAlarm (Prelude.Maybe Prelude.Text)
compositeAlarm_stateReason = Lens.lens (\CompositeAlarm' {stateReason} -> stateReason) (\s@CompositeAlarm' {} a -> s {stateReason = a} :: CompositeAlarm)

-- | An explanation for the alarm state, in JSON format.
compositeAlarm_stateReasonData :: Lens.Lens' CompositeAlarm (Prelude.Maybe Prelude.Text)
compositeAlarm_stateReasonData = Lens.lens (\CompositeAlarm' {stateReasonData} -> stateReasonData) (\s@CompositeAlarm' {} a -> s {stateReasonData = a} :: CompositeAlarm)

-- | The timestamp of the last change to the alarm\'s @StateValue@.
compositeAlarm_stateTransitionedTimestamp :: Lens.Lens' CompositeAlarm (Prelude.Maybe Prelude.UTCTime)
compositeAlarm_stateTransitionedTimestamp = Lens.lens (\CompositeAlarm' {stateTransitionedTimestamp} -> stateTransitionedTimestamp) (\s@CompositeAlarm' {} a -> s {stateTransitionedTimestamp = a} :: CompositeAlarm) Prelude.. Lens.mapping Data._Time

-- | Tracks the timestamp of any state update, even if @StateValue@ doesn\'t
-- change.
compositeAlarm_stateUpdatedTimestamp :: Lens.Lens' CompositeAlarm (Prelude.Maybe Prelude.UTCTime)
compositeAlarm_stateUpdatedTimestamp = Lens.lens (\CompositeAlarm' {stateUpdatedTimestamp} -> stateUpdatedTimestamp) (\s@CompositeAlarm' {} a -> s {stateUpdatedTimestamp = a} :: CompositeAlarm) Prelude.. Lens.mapping Data._Time

-- | The state value for the alarm.
compositeAlarm_stateValue :: Lens.Lens' CompositeAlarm (Prelude.Maybe StateValue)
compositeAlarm_stateValue = Lens.lens (\CompositeAlarm' {stateValue} -> stateValue) (\s@CompositeAlarm' {} a -> s {stateValue = a} :: CompositeAlarm)

instance Data.FromXML CompositeAlarm where
  parseXML x =
    CompositeAlarm'
      Prelude.<$> (x Data..@? "ActionsEnabled")
      Prelude.<*> (x Data..@? "ActionsSuppressedBy")
      Prelude.<*> (x Data..@? "ActionsSuppressedReason")
      Prelude.<*> (x Data..@? "ActionsSuppressor")
      Prelude.<*> (x Data..@? "ActionsSuppressorExtensionPeriod")
      Prelude.<*> (x Data..@? "ActionsSuppressorWaitPeriod")
      Prelude.<*> ( x
                      Data..@? "AlarmActions"
                      Core..!@ Prelude.mempty
                      Prelude.>>= Core.may (Data.parseXMLList "member")
                  )
      Prelude.<*> (x Data..@? "AlarmArn")
      Prelude.<*> (x Data..@? "AlarmConfigurationUpdatedTimestamp")
      Prelude.<*> (x Data..@? "AlarmDescription")
      Prelude.<*> (x Data..@? "AlarmName")
      Prelude.<*> (x Data..@? "AlarmRule")
      Prelude.<*> ( x
                      Data..@? "InsufficientDataActions"
                      Core..!@ Prelude.mempty
                      Prelude.>>= Core.may (Data.parseXMLList "member")
                  )
      Prelude.<*> ( x
                      Data..@? "OKActions"
                      Core..!@ Prelude.mempty
                      Prelude.>>= Core.may (Data.parseXMLList "member")
                  )
      Prelude.<*> (x Data..@? "StateReason")
      Prelude.<*> (x Data..@? "StateReasonData")
      Prelude.<*> (x Data..@? "StateTransitionedTimestamp")
      Prelude.<*> (x Data..@? "StateUpdatedTimestamp")
      Prelude.<*> (x Data..@? "StateValue")

instance Prelude.Hashable CompositeAlarm where
  hashWithSalt _salt CompositeAlarm' {..} =
    _salt
      `Prelude.hashWithSalt` actionsEnabled
      `Prelude.hashWithSalt` actionsSuppressedBy
      `Prelude.hashWithSalt` actionsSuppressedReason
      `Prelude.hashWithSalt` actionsSuppressor
      `Prelude.hashWithSalt` actionsSuppressorExtensionPeriod
      `Prelude.hashWithSalt` actionsSuppressorWaitPeriod
      `Prelude.hashWithSalt` alarmActions
      `Prelude.hashWithSalt` alarmArn
      `Prelude.hashWithSalt` alarmConfigurationUpdatedTimestamp
      `Prelude.hashWithSalt` alarmDescription
      `Prelude.hashWithSalt` alarmName
      `Prelude.hashWithSalt` alarmRule
      `Prelude.hashWithSalt` insufficientDataActions
      `Prelude.hashWithSalt` oKActions
      `Prelude.hashWithSalt` stateReason
      `Prelude.hashWithSalt` stateReasonData
      `Prelude.hashWithSalt` stateTransitionedTimestamp
      `Prelude.hashWithSalt` stateUpdatedTimestamp
      `Prelude.hashWithSalt` stateValue

instance Prelude.NFData CompositeAlarm where
  rnf CompositeAlarm' {..} =
    Prelude.rnf actionsEnabled
      `Prelude.seq` Prelude.rnf actionsSuppressedBy
      `Prelude.seq` Prelude.rnf actionsSuppressedReason
      `Prelude.seq` Prelude.rnf actionsSuppressor
      `Prelude.seq` Prelude.rnf actionsSuppressorExtensionPeriod
      `Prelude.seq` Prelude.rnf actionsSuppressorWaitPeriod
      `Prelude.seq` Prelude.rnf alarmActions
      `Prelude.seq` Prelude.rnf alarmArn
      `Prelude.seq` Prelude.rnf alarmConfigurationUpdatedTimestamp
      `Prelude.seq` Prelude.rnf alarmDescription
      `Prelude.seq` Prelude.rnf alarmName
      `Prelude.seq` Prelude.rnf alarmRule
      `Prelude.seq` Prelude.rnf insufficientDataActions
      `Prelude.seq` Prelude.rnf oKActions
      `Prelude.seq` Prelude.rnf stateReason
      `Prelude.seq` Prelude.rnf stateReasonData
      `Prelude.seq` Prelude.rnf
        stateTransitionedTimestamp
      `Prelude.seq` Prelude.rnf stateUpdatedTimestamp
      `Prelude.seq` Prelude.rnf stateValue