module Stratosphere.IoTEvents.AlarmModel.AlarmCapabilitiesProperty (
        module Exports, AlarmCapabilitiesProperty(..),
        mkAlarmCapabilitiesProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.IoTEvents.AlarmModel.AcknowledgeFlowProperty as Exports
import {-# SOURCE #-} Stratosphere.IoTEvents.AlarmModel.InitializationConfigurationProperty as Exports
import Stratosphere.ResourceProperties
data AlarmCapabilitiesProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-alarmmodel-alarmcapabilities.html>
    AlarmCapabilitiesProperty {AlarmCapabilitiesProperty -> ()
haddock_workaround_ :: (),
                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-alarmmodel-alarmcapabilities.html#cfn-iotevents-alarmmodel-alarmcapabilities-acknowledgeflow>
                               AlarmCapabilitiesProperty -> Maybe AcknowledgeFlowProperty
acknowledgeFlow :: (Prelude.Maybe AcknowledgeFlowProperty),
                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-alarmmodel-alarmcapabilities.html#cfn-iotevents-alarmmodel-alarmcapabilities-initializationconfiguration>
                               AlarmCapabilitiesProperty
-> Maybe InitializationConfigurationProperty
initializationConfiguration :: (Prelude.Maybe InitializationConfigurationProperty)}
  deriving stock (AlarmCapabilitiesProperty -> AlarmCapabilitiesProperty -> Bool
(AlarmCapabilitiesProperty -> AlarmCapabilitiesProperty -> Bool)
-> (AlarmCapabilitiesProperty -> AlarmCapabilitiesProperty -> Bool)
-> Eq AlarmCapabilitiesProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: AlarmCapabilitiesProperty -> AlarmCapabilitiesProperty -> Bool
== :: AlarmCapabilitiesProperty -> AlarmCapabilitiesProperty -> Bool
$c/= :: AlarmCapabilitiesProperty -> AlarmCapabilitiesProperty -> Bool
/= :: AlarmCapabilitiesProperty -> AlarmCapabilitiesProperty -> Bool
Prelude.Eq, Int -> AlarmCapabilitiesProperty -> ShowS
[AlarmCapabilitiesProperty] -> ShowS
AlarmCapabilitiesProperty -> String
(Int -> AlarmCapabilitiesProperty -> ShowS)
-> (AlarmCapabilitiesProperty -> String)
-> ([AlarmCapabilitiesProperty] -> ShowS)
-> Show AlarmCapabilitiesProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> AlarmCapabilitiesProperty -> ShowS
showsPrec :: Int -> AlarmCapabilitiesProperty -> ShowS
$cshow :: AlarmCapabilitiesProperty -> String
show :: AlarmCapabilitiesProperty -> String
$cshowList :: [AlarmCapabilitiesProperty] -> ShowS
showList :: [AlarmCapabilitiesProperty] -> ShowS
Prelude.Show)
mkAlarmCapabilitiesProperty :: AlarmCapabilitiesProperty
mkAlarmCapabilitiesProperty :: AlarmCapabilitiesProperty
mkAlarmCapabilitiesProperty
  = AlarmCapabilitiesProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), acknowledgeFlow :: Maybe AcknowledgeFlowProperty
acknowledgeFlow = Maybe AcknowledgeFlowProperty
forall a. Maybe a
Prelude.Nothing,
       initializationConfiguration :: Maybe InitializationConfigurationProperty
initializationConfiguration = Maybe InitializationConfigurationProperty
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties AlarmCapabilitiesProperty where
  toResourceProperties :: AlarmCapabilitiesProperty -> ResourceProperties
toResourceProperties AlarmCapabilitiesProperty {Maybe AcknowledgeFlowProperty
Maybe InitializationConfigurationProperty
()
haddock_workaround_ :: AlarmCapabilitiesProperty -> ()
acknowledgeFlow :: AlarmCapabilitiesProperty -> Maybe AcknowledgeFlowProperty
initializationConfiguration :: AlarmCapabilitiesProperty
-> Maybe InitializationConfigurationProperty
haddock_workaround_ :: ()
acknowledgeFlow :: Maybe AcknowledgeFlowProperty
initializationConfiguration :: Maybe InitializationConfigurationProperty
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::IoTEvents::AlarmModel.AlarmCapabilities",
         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 -> AcknowledgeFlowProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"AcknowledgeFlow" (AcknowledgeFlowProperty -> (Key, Value))
-> Maybe AcknowledgeFlowProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe AcknowledgeFlowProperty
acknowledgeFlow,
                            Key -> InitializationConfigurationProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"InitializationConfiguration"
                              (InitializationConfigurationProperty -> (Key, Value))
-> Maybe InitializationConfigurationProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe InitializationConfigurationProperty
initializationConfiguration])}
instance JSON.ToJSON AlarmCapabilitiesProperty where
  toJSON :: AlarmCapabilitiesProperty -> Value
toJSON AlarmCapabilitiesProperty {Maybe AcknowledgeFlowProperty
Maybe InitializationConfigurationProperty
()
haddock_workaround_ :: AlarmCapabilitiesProperty -> ()
acknowledgeFlow :: AlarmCapabilitiesProperty -> Maybe AcknowledgeFlowProperty
initializationConfiguration :: AlarmCapabilitiesProperty
-> Maybe InitializationConfigurationProperty
haddock_workaround_ :: ()
acknowledgeFlow :: Maybe AcknowledgeFlowProperty
initializationConfiguration :: Maybe InitializationConfigurationProperty
..}
    = [(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 -> AcknowledgeFlowProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"AcknowledgeFlow" (AcknowledgeFlowProperty -> (Key, Value))
-> Maybe AcknowledgeFlowProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe AcknowledgeFlowProperty
acknowledgeFlow,
               Key -> InitializationConfigurationProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"InitializationConfiguration"
                 (InitializationConfigurationProperty -> (Key, Value))
-> Maybe InitializationConfigurationProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe InitializationConfigurationProperty
initializationConfiguration]))
instance Property "AcknowledgeFlow" AlarmCapabilitiesProperty where
  type PropertyType "AcknowledgeFlow" AlarmCapabilitiesProperty = AcknowledgeFlowProperty
  set :: PropertyType "AcknowledgeFlow" AlarmCapabilitiesProperty
-> AlarmCapabilitiesProperty -> AlarmCapabilitiesProperty
set PropertyType "AcknowledgeFlow" AlarmCapabilitiesProperty
newValue AlarmCapabilitiesProperty {Maybe AcknowledgeFlowProperty
Maybe InitializationConfigurationProperty
()
haddock_workaround_ :: AlarmCapabilitiesProperty -> ()
acknowledgeFlow :: AlarmCapabilitiesProperty -> Maybe AcknowledgeFlowProperty
initializationConfiguration :: AlarmCapabilitiesProperty
-> Maybe InitializationConfigurationProperty
haddock_workaround_ :: ()
acknowledgeFlow :: Maybe AcknowledgeFlowProperty
initializationConfiguration :: Maybe InitializationConfigurationProperty
..}
    = AlarmCapabilitiesProperty
        {acknowledgeFlow :: Maybe AcknowledgeFlowProperty
acknowledgeFlow = AcknowledgeFlowProperty -> Maybe AcknowledgeFlowProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "AcknowledgeFlow" AlarmCapabilitiesProperty
AcknowledgeFlowProperty
newValue, Maybe InitializationConfigurationProperty
()
haddock_workaround_ :: ()
initializationConfiguration :: Maybe InitializationConfigurationProperty
haddock_workaround_ :: ()
initializationConfiguration :: Maybe InitializationConfigurationProperty
..}
instance Property "InitializationConfiguration" AlarmCapabilitiesProperty where
  type PropertyType "InitializationConfiguration" AlarmCapabilitiesProperty = InitializationConfigurationProperty
  set :: PropertyType
  "InitializationConfiguration" AlarmCapabilitiesProperty
-> AlarmCapabilitiesProperty -> AlarmCapabilitiesProperty
set PropertyType
  "InitializationConfiguration" AlarmCapabilitiesProperty
newValue AlarmCapabilitiesProperty {Maybe AcknowledgeFlowProperty
Maybe InitializationConfigurationProperty
()
haddock_workaround_ :: AlarmCapabilitiesProperty -> ()
acknowledgeFlow :: AlarmCapabilitiesProperty -> Maybe AcknowledgeFlowProperty
initializationConfiguration :: AlarmCapabilitiesProperty
-> Maybe InitializationConfigurationProperty
haddock_workaround_ :: ()
acknowledgeFlow :: Maybe AcknowledgeFlowProperty
initializationConfiguration :: Maybe InitializationConfigurationProperty
..}
    = AlarmCapabilitiesProperty
        {initializationConfiguration :: Maybe InitializationConfigurationProperty
initializationConfiguration = InitializationConfigurationProperty
-> Maybe InitializationConfigurationProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType
  "InitializationConfiguration" AlarmCapabilitiesProperty
InitializationConfigurationProperty
newValue, Maybe AcknowledgeFlowProperty
()
haddock_workaround_ :: ()
acknowledgeFlow :: Maybe AcknowledgeFlowProperty
haddock_workaround_ :: ()
acknowledgeFlow :: Maybe AcknowledgeFlowProperty
..}