module Stratosphere.IoTEvents.AlarmModel.AlarmEventActionsProperty (
        module Exports, AlarmEventActionsProperty(..),
        mkAlarmEventActionsProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.IoTEvents.AlarmModel.AlarmActionProperty as Exports
import Stratosphere.ResourceProperties
data AlarmEventActionsProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-alarmmodel-alarmeventactions.html>
    AlarmEventActionsProperty {AlarmEventActionsProperty -> ()
haddock_workaround_ :: (),
                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-alarmmodel-alarmeventactions.html#cfn-iotevents-alarmmodel-alarmeventactions-alarmactions>
                               AlarmEventActionsProperty -> Maybe [AlarmActionProperty]
alarmActions :: (Prelude.Maybe [AlarmActionProperty])}
  deriving stock (AlarmEventActionsProperty -> AlarmEventActionsProperty -> Bool
(AlarmEventActionsProperty -> AlarmEventActionsProperty -> Bool)
-> (AlarmEventActionsProperty -> AlarmEventActionsProperty -> Bool)
-> Eq AlarmEventActionsProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: AlarmEventActionsProperty -> AlarmEventActionsProperty -> Bool
== :: AlarmEventActionsProperty -> AlarmEventActionsProperty -> Bool
$c/= :: AlarmEventActionsProperty -> AlarmEventActionsProperty -> Bool
/= :: AlarmEventActionsProperty -> AlarmEventActionsProperty -> Bool
Prelude.Eq, Int -> AlarmEventActionsProperty -> ShowS
[AlarmEventActionsProperty] -> ShowS
AlarmEventActionsProperty -> String
(Int -> AlarmEventActionsProperty -> ShowS)
-> (AlarmEventActionsProperty -> String)
-> ([AlarmEventActionsProperty] -> ShowS)
-> Show AlarmEventActionsProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> AlarmEventActionsProperty -> ShowS
showsPrec :: Int -> AlarmEventActionsProperty -> ShowS
$cshow :: AlarmEventActionsProperty -> String
show :: AlarmEventActionsProperty -> String
$cshowList :: [AlarmEventActionsProperty] -> ShowS
showList :: [AlarmEventActionsProperty] -> ShowS
Prelude.Show)
mkAlarmEventActionsProperty :: AlarmEventActionsProperty
mkAlarmEventActionsProperty :: AlarmEventActionsProperty
mkAlarmEventActionsProperty
  = AlarmEventActionsProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), alarmActions :: Maybe [AlarmActionProperty]
alarmActions = Maybe [AlarmActionProperty]
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties AlarmEventActionsProperty where
  toResourceProperties :: AlarmEventActionsProperty -> ResourceProperties
toResourceProperties AlarmEventActionsProperty {Maybe [AlarmActionProperty]
()
haddock_workaround_ :: AlarmEventActionsProperty -> ()
alarmActions :: AlarmEventActionsProperty -> Maybe [AlarmActionProperty]
haddock_workaround_ :: ()
alarmActions :: Maybe [AlarmActionProperty]
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::IoTEvents::AlarmModel.AlarmEventActions",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Item Object] -> Object
forall l. IsList l => [Item l] -> l
Prelude.fromList
                        ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                           [Key -> [AlarmActionProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"AlarmActions" ([AlarmActionProperty] -> (Key, Value))
-> Maybe [AlarmActionProperty] -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [AlarmActionProperty]
alarmActions])}
instance JSON.ToJSON AlarmEventActionsProperty where
  toJSON :: AlarmEventActionsProperty -> Value
toJSON AlarmEventActionsProperty {Maybe [AlarmActionProperty]
()
haddock_workaround_ :: AlarmEventActionsProperty -> ()
alarmActions :: AlarmEventActionsProperty -> Maybe [AlarmActionProperty]
haddock_workaround_ :: ()
alarmActions :: Maybe [AlarmActionProperty]
..}
    = [(Key, Value)] -> Value
JSON.object
        ([Item [(Key, Value)]] -> [(Key, Value)]
forall l. IsList l => [Item l] -> l
Prelude.fromList
           ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
              [Key -> [AlarmActionProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"AlarmActions" ([AlarmActionProperty] -> (Key, Value))
-> Maybe [AlarmActionProperty] -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [AlarmActionProperty]
alarmActions]))
instance Property "AlarmActions" AlarmEventActionsProperty where
  type PropertyType "AlarmActions" AlarmEventActionsProperty = [AlarmActionProperty]
  set :: PropertyType "AlarmActions" AlarmEventActionsProperty
-> AlarmEventActionsProperty -> AlarmEventActionsProperty
set PropertyType "AlarmActions" AlarmEventActionsProperty
newValue AlarmEventActionsProperty {Maybe [AlarmActionProperty]
()
haddock_workaround_ :: AlarmEventActionsProperty -> ()
alarmActions :: AlarmEventActionsProperty -> Maybe [AlarmActionProperty]
haddock_workaround_ :: ()
alarmActions :: Maybe [AlarmActionProperty]
..}
    = AlarmEventActionsProperty
        {alarmActions :: Maybe [AlarmActionProperty]
alarmActions = [AlarmActionProperty] -> Maybe [AlarmActionProperty]
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure [AlarmActionProperty]
PropertyType "AlarmActions" AlarmEventActionsProperty
newValue, ()
haddock_workaround_ :: ()
haddock_workaround_ :: ()
..}