module Stratosphere.IoTEvents.DetectorModel.DetectorModelDefinitionProperty (
        module Exports, DetectorModelDefinitionProperty(..),
        mkDetectorModelDefinitionProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.IoTEvents.DetectorModel.StateProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data DetectorModelDefinitionProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-detectormodeldefinition.html>
    DetectorModelDefinitionProperty {DetectorModelDefinitionProperty -> ()
haddock_workaround_ :: (),
                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-detectormodeldefinition.html#cfn-iotevents-detectormodel-detectormodeldefinition-initialstatename>
                                     DetectorModelDefinitionProperty -> Value Text
initialStateName :: (Value Prelude.Text),
                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-detectormodeldefinition.html#cfn-iotevents-detectormodel-detectormodeldefinition-states>
                                     DetectorModelDefinitionProperty -> [StateProperty]
states :: [StateProperty]}
  deriving stock (DetectorModelDefinitionProperty
-> DetectorModelDefinitionProperty -> Bool
(DetectorModelDefinitionProperty
 -> DetectorModelDefinitionProperty -> Bool)
-> (DetectorModelDefinitionProperty
    -> DetectorModelDefinitionProperty -> Bool)
-> Eq DetectorModelDefinitionProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DetectorModelDefinitionProperty
-> DetectorModelDefinitionProperty -> Bool
== :: DetectorModelDefinitionProperty
-> DetectorModelDefinitionProperty -> Bool
$c/= :: DetectorModelDefinitionProperty
-> DetectorModelDefinitionProperty -> Bool
/= :: DetectorModelDefinitionProperty
-> DetectorModelDefinitionProperty -> Bool
Prelude.Eq, Int -> DetectorModelDefinitionProperty -> ShowS
[DetectorModelDefinitionProperty] -> ShowS
DetectorModelDefinitionProperty -> String
(Int -> DetectorModelDefinitionProperty -> ShowS)
-> (DetectorModelDefinitionProperty -> String)
-> ([DetectorModelDefinitionProperty] -> ShowS)
-> Show DetectorModelDefinitionProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> DetectorModelDefinitionProperty -> ShowS
showsPrec :: Int -> DetectorModelDefinitionProperty -> ShowS
$cshow :: DetectorModelDefinitionProperty -> String
show :: DetectorModelDefinitionProperty -> String
$cshowList :: [DetectorModelDefinitionProperty] -> ShowS
showList :: [DetectorModelDefinitionProperty] -> ShowS
Prelude.Show)
mkDetectorModelDefinitionProperty ::
  Value Prelude.Text
  -> [StateProperty] -> DetectorModelDefinitionProperty
mkDetectorModelDefinitionProperty :: Value Text -> [StateProperty] -> DetectorModelDefinitionProperty
mkDetectorModelDefinitionProperty Value Text
initialStateName [StateProperty]
states
  = DetectorModelDefinitionProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), initialStateName :: Value Text
initialStateName = Value Text
initialStateName,
       states :: [StateProperty]
states = [StateProperty]
states}
instance ToResourceProperties DetectorModelDefinitionProperty where
  toResourceProperties :: DetectorModelDefinitionProperty -> ResourceProperties
toResourceProperties DetectorModelDefinitionProperty {[StateProperty]
()
Value Text
haddock_workaround_ :: DetectorModelDefinitionProperty -> ()
initialStateName :: DetectorModelDefinitionProperty -> Value Text
states :: DetectorModelDefinitionProperty -> [StateProperty]
haddock_workaround_ :: ()
initialStateName :: Value Text
states :: [StateProperty]
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::IoTEvents::DetectorModel.DetectorModelDefinition",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"InitialStateName" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
initialStateName,
                       Key
"States" Key -> [StateProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= [StateProperty]
states]}
instance JSON.ToJSON DetectorModelDefinitionProperty where
  toJSON :: DetectorModelDefinitionProperty -> Value
toJSON DetectorModelDefinitionProperty {[StateProperty]
()
Value Text
haddock_workaround_ :: DetectorModelDefinitionProperty -> ()
initialStateName :: DetectorModelDefinitionProperty -> Value Text
states :: DetectorModelDefinitionProperty -> [StateProperty]
haddock_workaround_ :: ()
initialStateName :: Value Text
states :: [StateProperty]
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"InitialStateName" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
initialStateName,
         Key
"States" Key -> [StateProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= [StateProperty]
states]
instance Property "InitialStateName" DetectorModelDefinitionProperty where
  type PropertyType "InitialStateName" DetectorModelDefinitionProperty = Value Prelude.Text
  set :: PropertyType "InitialStateName" DetectorModelDefinitionProperty
-> DetectorModelDefinitionProperty
-> DetectorModelDefinitionProperty
set PropertyType "InitialStateName" DetectorModelDefinitionProperty
newValue DetectorModelDefinitionProperty {[StateProperty]
()
Value Text
haddock_workaround_ :: DetectorModelDefinitionProperty -> ()
initialStateName :: DetectorModelDefinitionProperty -> Value Text
states :: DetectorModelDefinitionProperty -> [StateProperty]
haddock_workaround_ :: ()
initialStateName :: Value Text
states :: [StateProperty]
..}
    = DetectorModelDefinitionProperty {initialStateName :: Value Text
initialStateName = PropertyType "InitialStateName" DetectorModelDefinitionProperty
Value Text
newValue, [StateProperty]
()
haddock_workaround_ :: ()
states :: [StateProperty]
haddock_workaround_ :: ()
states :: [StateProperty]
..}
instance Property "States" DetectorModelDefinitionProperty where
  type PropertyType "States" DetectorModelDefinitionProperty = [StateProperty]
  set :: PropertyType "States" DetectorModelDefinitionProperty
-> DetectorModelDefinitionProperty
-> DetectorModelDefinitionProperty
set PropertyType "States" DetectorModelDefinitionProperty
newValue DetectorModelDefinitionProperty {[StateProperty]
()
Value Text
haddock_workaround_ :: DetectorModelDefinitionProperty -> ()
initialStateName :: DetectorModelDefinitionProperty -> Value Text
states :: DetectorModelDefinitionProperty -> [StateProperty]
haddock_workaround_ :: ()
initialStateName :: Value Text
states :: [StateProperty]
..}
    = DetectorModelDefinitionProperty {states :: [StateProperty]
states = [StateProperty]
PropertyType "States" DetectorModelDefinitionProperty
newValue, ()
Value Text
haddock_workaround_ :: ()
initialStateName :: Value Text
haddock_workaround_ :: ()
initialStateName :: Value Text
..}