{-# 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.IoTEvents.Types.AlarmAction
-- 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.IoTEvents.Types.AlarmAction where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.IoTEvents.Types.DynamoDBAction
import Amazonka.IoTEvents.Types.DynamoDBv2Action
import Amazonka.IoTEvents.Types.FirehoseAction
import Amazonka.IoTEvents.Types.IotEventsAction
import Amazonka.IoTEvents.Types.IotSiteWiseAction
import Amazonka.IoTEvents.Types.IotTopicPublishAction
import Amazonka.IoTEvents.Types.LambdaAction
import Amazonka.IoTEvents.Types.SNSTopicPublishAction
import Amazonka.IoTEvents.Types.SqsAction
import qualified Amazonka.Prelude as Prelude

-- | Specifies one of the following actions to receive notifications when the
-- alarm state changes.
--
-- /See:/ 'newAlarmAction' smart constructor.
data AlarmAction = AlarmAction'
  { AlarmAction -> Maybe DynamoDBAction
dynamoDB :: Prelude.Maybe DynamoDBAction,
    AlarmAction -> Maybe DynamoDBv2Action
dynamoDBv2 :: Prelude.Maybe DynamoDBv2Action,
    AlarmAction -> Maybe FirehoseAction
firehose :: Prelude.Maybe FirehoseAction,
    AlarmAction -> Maybe IotEventsAction
iotEvents :: Prelude.Maybe IotEventsAction,
    AlarmAction -> Maybe IotSiteWiseAction
iotSiteWise :: Prelude.Maybe IotSiteWiseAction,
    AlarmAction -> Maybe IotTopicPublishAction
iotTopicPublish :: Prelude.Maybe IotTopicPublishAction,
    AlarmAction -> Maybe LambdaAction
lambda :: Prelude.Maybe LambdaAction,
    AlarmAction -> Maybe SNSTopicPublishAction
sns :: Prelude.Maybe SNSTopicPublishAction,
    AlarmAction -> Maybe SqsAction
sqs :: Prelude.Maybe SqsAction
  }
  deriving (AlarmAction -> AlarmAction -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AlarmAction -> AlarmAction -> Bool
$c/= :: AlarmAction -> AlarmAction -> Bool
== :: AlarmAction -> AlarmAction -> Bool
$c== :: AlarmAction -> AlarmAction -> Bool
Prelude.Eq, ReadPrec [AlarmAction]
ReadPrec AlarmAction
Int -> ReadS AlarmAction
ReadS [AlarmAction]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [AlarmAction]
$creadListPrec :: ReadPrec [AlarmAction]
readPrec :: ReadPrec AlarmAction
$creadPrec :: ReadPrec AlarmAction
readList :: ReadS [AlarmAction]
$creadList :: ReadS [AlarmAction]
readsPrec :: Int -> ReadS AlarmAction
$creadsPrec :: Int -> ReadS AlarmAction
Prelude.Read, Int -> AlarmAction -> ShowS
[AlarmAction] -> ShowS
AlarmAction -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AlarmAction] -> ShowS
$cshowList :: [AlarmAction] -> ShowS
show :: AlarmAction -> String
$cshow :: AlarmAction -> String
showsPrec :: Int -> AlarmAction -> ShowS
$cshowsPrec :: Int -> AlarmAction -> ShowS
Prelude.Show, forall x. Rep AlarmAction x -> AlarmAction
forall x. AlarmAction -> Rep AlarmAction x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep AlarmAction x -> AlarmAction
$cfrom :: forall x. AlarmAction -> Rep AlarmAction x
Prelude.Generic)

-- |
-- Create a value of 'AlarmAction' 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:
--
-- 'dynamoDB', 'alarmAction_dynamoDB' - Undocumented member.
--
-- 'dynamoDBv2', 'alarmAction_dynamoDBv2' - Undocumented member.
--
-- 'firehose', 'alarmAction_firehose' - Undocumented member.
--
-- 'iotEvents', 'alarmAction_iotEvents' - Undocumented member.
--
-- 'iotSiteWise', 'alarmAction_iotSiteWise' - Undocumented member.
--
-- 'iotTopicPublish', 'alarmAction_iotTopicPublish' - Undocumented member.
--
-- 'lambda', 'alarmAction_lambda' - Undocumented member.
--
-- 'sns', 'alarmAction_sns' - Undocumented member.
--
-- 'sqs', 'alarmAction_sqs' - Undocumented member.
newAlarmAction ::
  AlarmAction
newAlarmAction :: AlarmAction
newAlarmAction =
  AlarmAction'
    { $sel:dynamoDB:AlarmAction' :: Maybe DynamoDBAction
dynamoDB = forall a. Maybe a
Prelude.Nothing,
      $sel:dynamoDBv2:AlarmAction' :: Maybe DynamoDBv2Action
dynamoDBv2 = forall a. Maybe a
Prelude.Nothing,
      $sel:firehose:AlarmAction' :: Maybe FirehoseAction
firehose = forall a. Maybe a
Prelude.Nothing,
      $sel:iotEvents:AlarmAction' :: Maybe IotEventsAction
iotEvents = forall a. Maybe a
Prelude.Nothing,
      $sel:iotSiteWise:AlarmAction' :: Maybe IotSiteWiseAction
iotSiteWise = forall a. Maybe a
Prelude.Nothing,
      $sel:iotTopicPublish:AlarmAction' :: Maybe IotTopicPublishAction
iotTopicPublish = forall a. Maybe a
Prelude.Nothing,
      $sel:lambda:AlarmAction' :: Maybe LambdaAction
lambda = forall a. Maybe a
Prelude.Nothing,
      $sel:sns:AlarmAction' :: Maybe SNSTopicPublishAction
sns = forall a. Maybe a
Prelude.Nothing,
      $sel:sqs:AlarmAction' :: Maybe SqsAction
sqs = forall a. Maybe a
Prelude.Nothing
    }

-- | Undocumented member.
alarmAction_dynamoDB :: Lens.Lens' AlarmAction (Prelude.Maybe DynamoDBAction)
alarmAction_dynamoDB :: Lens' AlarmAction (Maybe DynamoDBAction)
alarmAction_dynamoDB = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AlarmAction' {Maybe DynamoDBAction
dynamoDB :: Maybe DynamoDBAction
$sel:dynamoDB:AlarmAction' :: AlarmAction -> Maybe DynamoDBAction
dynamoDB} -> Maybe DynamoDBAction
dynamoDB) (\s :: AlarmAction
s@AlarmAction' {} Maybe DynamoDBAction
a -> AlarmAction
s {$sel:dynamoDB:AlarmAction' :: Maybe DynamoDBAction
dynamoDB = Maybe DynamoDBAction
a} :: AlarmAction)

-- | Undocumented member.
alarmAction_dynamoDBv2 :: Lens.Lens' AlarmAction (Prelude.Maybe DynamoDBv2Action)
alarmAction_dynamoDBv2 :: Lens' AlarmAction (Maybe DynamoDBv2Action)
alarmAction_dynamoDBv2 = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AlarmAction' {Maybe DynamoDBv2Action
dynamoDBv2 :: Maybe DynamoDBv2Action
$sel:dynamoDBv2:AlarmAction' :: AlarmAction -> Maybe DynamoDBv2Action
dynamoDBv2} -> Maybe DynamoDBv2Action
dynamoDBv2) (\s :: AlarmAction
s@AlarmAction' {} Maybe DynamoDBv2Action
a -> AlarmAction
s {$sel:dynamoDBv2:AlarmAction' :: Maybe DynamoDBv2Action
dynamoDBv2 = Maybe DynamoDBv2Action
a} :: AlarmAction)

-- | Undocumented member.
alarmAction_firehose :: Lens.Lens' AlarmAction (Prelude.Maybe FirehoseAction)
alarmAction_firehose :: Lens' AlarmAction (Maybe FirehoseAction)
alarmAction_firehose = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AlarmAction' {Maybe FirehoseAction
firehose :: Maybe FirehoseAction
$sel:firehose:AlarmAction' :: AlarmAction -> Maybe FirehoseAction
firehose} -> Maybe FirehoseAction
firehose) (\s :: AlarmAction
s@AlarmAction' {} Maybe FirehoseAction
a -> AlarmAction
s {$sel:firehose:AlarmAction' :: Maybe FirehoseAction
firehose = Maybe FirehoseAction
a} :: AlarmAction)

-- | Undocumented member.
alarmAction_iotEvents :: Lens.Lens' AlarmAction (Prelude.Maybe IotEventsAction)
alarmAction_iotEvents :: Lens' AlarmAction (Maybe IotEventsAction)
alarmAction_iotEvents = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AlarmAction' {Maybe IotEventsAction
iotEvents :: Maybe IotEventsAction
$sel:iotEvents:AlarmAction' :: AlarmAction -> Maybe IotEventsAction
iotEvents} -> Maybe IotEventsAction
iotEvents) (\s :: AlarmAction
s@AlarmAction' {} Maybe IotEventsAction
a -> AlarmAction
s {$sel:iotEvents:AlarmAction' :: Maybe IotEventsAction
iotEvents = Maybe IotEventsAction
a} :: AlarmAction)

-- | Undocumented member.
alarmAction_iotSiteWise :: Lens.Lens' AlarmAction (Prelude.Maybe IotSiteWiseAction)
alarmAction_iotSiteWise :: Lens' AlarmAction (Maybe IotSiteWiseAction)
alarmAction_iotSiteWise = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AlarmAction' {Maybe IotSiteWiseAction
iotSiteWise :: Maybe IotSiteWiseAction
$sel:iotSiteWise:AlarmAction' :: AlarmAction -> Maybe IotSiteWiseAction
iotSiteWise} -> Maybe IotSiteWiseAction
iotSiteWise) (\s :: AlarmAction
s@AlarmAction' {} Maybe IotSiteWiseAction
a -> AlarmAction
s {$sel:iotSiteWise:AlarmAction' :: Maybe IotSiteWiseAction
iotSiteWise = Maybe IotSiteWiseAction
a} :: AlarmAction)

-- | Undocumented member.
alarmAction_iotTopicPublish :: Lens.Lens' AlarmAction (Prelude.Maybe IotTopicPublishAction)
alarmAction_iotTopicPublish :: Lens' AlarmAction (Maybe IotTopicPublishAction)
alarmAction_iotTopicPublish = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AlarmAction' {Maybe IotTopicPublishAction
iotTopicPublish :: Maybe IotTopicPublishAction
$sel:iotTopicPublish:AlarmAction' :: AlarmAction -> Maybe IotTopicPublishAction
iotTopicPublish} -> Maybe IotTopicPublishAction
iotTopicPublish) (\s :: AlarmAction
s@AlarmAction' {} Maybe IotTopicPublishAction
a -> AlarmAction
s {$sel:iotTopicPublish:AlarmAction' :: Maybe IotTopicPublishAction
iotTopicPublish = Maybe IotTopicPublishAction
a} :: AlarmAction)

-- | Undocumented member.
alarmAction_lambda :: Lens.Lens' AlarmAction (Prelude.Maybe LambdaAction)
alarmAction_lambda :: Lens' AlarmAction (Maybe LambdaAction)
alarmAction_lambda = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AlarmAction' {Maybe LambdaAction
lambda :: Maybe LambdaAction
$sel:lambda:AlarmAction' :: AlarmAction -> Maybe LambdaAction
lambda} -> Maybe LambdaAction
lambda) (\s :: AlarmAction
s@AlarmAction' {} Maybe LambdaAction
a -> AlarmAction
s {$sel:lambda:AlarmAction' :: Maybe LambdaAction
lambda = Maybe LambdaAction
a} :: AlarmAction)

-- | Undocumented member.
alarmAction_sns :: Lens.Lens' AlarmAction (Prelude.Maybe SNSTopicPublishAction)
alarmAction_sns :: Lens' AlarmAction (Maybe SNSTopicPublishAction)
alarmAction_sns = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AlarmAction' {Maybe SNSTopicPublishAction
sns :: Maybe SNSTopicPublishAction
$sel:sns:AlarmAction' :: AlarmAction -> Maybe SNSTopicPublishAction
sns} -> Maybe SNSTopicPublishAction
sns) (\s :: AlarmAction
s@AlarmAction' {} Maybe SNSTopicPublishAction
a -> AlarmAction
s {$sel:sns:AlarmAction' :: Maybe SNSTopicPublishAction
sns = Maybe SNSTopicPublishAction
a} :: AlarmAction)

-- | Undocumented member.
alarmAction_sqs :: Lens.Lens' AlarmAction (Prelude.Maybe SqsAction)
alarmAction_sqs :: Lens' AlarmAction (Maybe SqsAction)
alarmAction_sqs = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AlarmAction' {Maybe SqsAction
sqs :: Maybe SqsAction
$sel:sqs:AlarmAction' :: AlarmAction -> Maybe SqsAction
sqs} -> Maybe SqsAction
sqs) (\s :: AlarmAction
s@AlarmAction' {} Maybe SqsAction
a -> AlarmAction
s {$sel:sqs:AlarmAction' :: Maybe SqsAction
sqs = Maybe SqsAction
a} :: AlarmAction)

instance Data.FromJSON AlarmAction where
  parseJSON :: Value -> Parser AlarmAction
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"AlarmAction"
      ( \Object
x ->
          Maybe DynamoDBAction
-> Maybe DynamoDBv2Action
-> Maybe FirehoseAction
-> Maybe IotEventsAction
-> Maybe IotSiteWiseAction
-> Maybe IotTopicPublishAction
-> Maybe LambdaAction
-> Maybe SNSTopicPublishAction
-> Maybe SqsAction
-> AlarmAction
AlarmAction'
            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
"dynamoDB")
            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
"dynamoDBv2")
            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
"firehose")
            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
"iotEvents")
            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
"iotSiteWise")
            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
"iotTopicPublish")
            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
"lambda")
            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
"sns")
            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
"sqs")
      )

instance Prelude.Hashable AlarmAction where
  hashWithSalt :: Int -> AlarmAction -> Int
hashWithSalt Int
_salt AlarmAction' {Maybe IotSiteWiseAction
Maybe LambdaAction
Maybe IotTopicPublishAction
Maybe IotEventsAction
Maybe FirehoseAction
Maybe DynamoDBv2Action
Maybe DynamoDBAction
Maybe SNSTopicPublishAction
Maybe SqsAction
sqs :: Maybe SqsAction
sns :: Maybe SNSTopicPublishAction
lambda :: Maybe LambdaAction
iotTopicPublish :: Maybe IotTopicPublishAction
iotSiteWise :: Maybe IotSiteWiseAction
iotEvents :: Maybe IotEventsAction
firehose :: Maybe FirehoseAction
dynamoDBv2 :: Maybe DynamoDBv2Action
dynamoDB :: Maybe DynamoDBAction
$sel:sqs:AlarmAction' :: AlarmAction -> Maybe SqsAction
$sel:sns:AlarmAction' :: AlarmAction -> Maybe SNSTopicPublishAction
$sel:lambda:AlarmAction' :: AlarmAction -> Maybe LambdaAction
$sel:iotTopicPublish:AlarmAction' :: AlarmAction -> Maybe IotTopicPublishAction
$sel:iotSiteWise:AlarmAction' :: AlarmAction -> Maybe IotSiteWiseAction
$sel:iotEvents:AlarmAction' :: AlarmAction -> Maybe IotEventsAction
$sel:firehose:AlarmAction' :: AlarmAction -> Maybe FirehoseAction
$sel:dynamoDBv2:AlarmAction' :: AlarmAction -> Maybe DynamoDBv2Action
$sel:dynamoDB:AlarmAction' :: AlarmAction -> Maybe DynamoDBAction
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DynamoDBAction
dynamoDB
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DynamoDBv2Action
dynamoDBv2
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe FirehoseAction
firehose
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe IotEventsAction
iotEvents
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe IotSiteWiseAction
iotSiteWise
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe IotTopicPublishAction
iotTopicPublish
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LambdaAction
lambda
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe SNSTopicPublishAction
sns
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe SqsAction
sqs

instance Prelude.NFData AlarmAction where
  rnf :: AlarmAction -> ()
rnf AlarmAction' {Maybe IotSiteWiseAction
Maybe LambdaAction
Maybe IotTopicPublishAction
Maybe IotEventsAction
Maybe FirehoseAction
Maybe DynamoDBv2Action
Maybe DynamoDBAction
Maybe SNSTopicPublishAction
Maybe SqsAction
sqs :: Maybe SqsAction
sns :: Maybe SNSTopicPublishAction
lambda :: Maybe LambdaAction
iotTopicPublish :: Maybe IotTopicPublishAction
iotSiteWise :: Maybe IotSiteWiseAction
iotEvents :: Maybe IotEventsAction
firehose :: Maybe FirehoseAction
dynamoDBv2 :: Maybe DynamoDBv2Action
dynamoDB :: Maybe DynamoDBAction
$sel:sqs:AlarmAction' :: AlarmAction -> Maybe SqsAction
$sel:sns:AlarmAction' :: AlarmAction -> Maybe SNSTopicPublishAction
$sel:lambda:AlarmAction' :: AlarmAction -> Maybe LambdaAction
$sel:iotTopicPublish:AlarmAction' :: AlarmAction -> Maybe IotTopicPublishAction
$sel:iotSiteWise:AlarmAction' :: AlarmAction -> Maybe IotSiteWiseAction
$sel:iotEvents:AlarmAction' :: AlarmAction -> Maybe IotEventsAction
$sel:firehose:AlarmAction' :: AlarmAction -> Maybe FirehoseAction
$sel:dynamoDBv2:AlarmAction' :: AlarmAction -> Maybe DynamoDBv2Action
$sel:dynamoDB:AlarmAction' :: AlarmAction -> Maybe DynamoDBAction
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe DynamoDBAction
dynamoDB
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DynamoDBv2Action
dynamoDBv2
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe FirehoseAction
firehose
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe IotEventsAction
iotEvents
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe IotSiteWiseAction
iotSiteWise
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe IotTopicPublishAction
iotTopicPublish
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LambdaAction
lambda
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe SNSTopicPublishAction
sns
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe SqsAction
sqs

instance Data.ToJSON AlarmAction where
  toJSON :: AlarmAction -> Value
toJSON AlarmAction' {Maybe IotSiteWiseAction
Maybe LambdaAction
Maybe IotTopicPublishAction
Maybe IotEventsAction
Maybe FirehoseAction
Maybe DynamoDBv2Action
Maybe DynamoDBAction
Maybe SNSTopicPublishAction
Maybe SqsAction
sqs :: Maybe SqsAction
sns :: Maybe SNSTopicPublishAction
lambda :: Maybe LambdaAction
iotTopicPublish :: Maybe IotTopicPublishAction
iotSiteWise :: Maybe IotSiteWiseAction
iotEvents :: Maybe IotEventsAction
firehose :: Maybe FirehoseAction
dynamoDBv2 :: Maybe DynamoDBv2Action
dynamoDB :: Maybe DynamoDBAction
$sel:sqs:AlarmAction' :: AlarmAction -> Maybe SqsAction
$sel:sns:AlarmAction' :: AlarmAction -> Maybe SNSTopicPublishAction
$sel:lambda:AlarmAction' :: AlarmAction -> Maybe LambdaAction
$sel:iotTopicPublish:AlarmAction' :: AlarmAction -> Maybe IotTopicPublishAction
$sel:iotSiteWise:AlarmAction' :: AlarmAction -> Maybe IotSiteWiseAction
$sel:iotEvents:AlarmAction' :: AlarmAction -> Maybe IotEventsAction
$sel:firehose:AlarmAction' :: AlarmAction -> Maybe FirehoseAction
$sel:dynamoDBv2:AlarmAction' :: AlarmAction -> Maybe DynamoDBv2Action
$sel:dynamoDB:AlarmAction' :: AlarmAction -> Maybe DynamoDBAction
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"dynamoDB" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe DynamoDBAction
dynamoDB,
            (Key
"dynamoDBv2" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe DynamoDBv2Action
dynamoDBv2,
            (Key
"firehose" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe FirehoseAction
firehose,
            (Key
"iotEvents" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe IotEventsAction
iotEvents,
            (Key
"iotSiteWise" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe IotSiteWiseAction
iotSiteWise,
            (Key
"iotTopicPublish" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe IotTopicPublishAction
iotTopicPublish,
            (Key
"lambda" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe LambdaAction
lambda,
            (Key
"sns" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe SNSTopicPublishAction
sns,
            (Key
"sqs" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe SqsAction
sqs
          ]
      )