module Stratosphere.IoTFleetWise.Vehicle.StateTemplateAssociationProperty (
        module Exports, StateTemplateAssociationProperty(..),
        mkStateTemplateAssociationProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.IoTFleetWise.Vehicle.StateTemplateUpdateStrategyProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data StateTemplateAssociationProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotfleetwise-vehicle-statetemplateassociation.html>
    StateTemplateAssociationProperty {StateTemplateAssociationProperty -> ()
haddock_workaround_ :: (),
                                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotfleetwise-vehicle-statetemplateassociation.html#cfn-iotfleetwise-vehicle-statetemplateassociation-identifier>
                                      StateTemplateAssociationProperty -> Value Text
identifier :: (Value Prelude.Text),
                                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotfleetwise-vehicle-statetemplateassociation.html#cfn-iotfleetwise-vehicle-statetemplateassociation-statetemplateupdatestrategy>
                                      StateTemplateAssociationProperty
-> StateTemplateUpdateStrategyProperty
stateTemplateUpdateStrategy :: StateTemplateUpdateStrategyProperty}
  deriving stock (StateTemplateAssociationProperty
-> StateTemplateAssociationProperty -> Bool
(StateTemplateAssociationProperty
 -> StateTemplateAssociationProperty -> Bool)
-> (StateTemplateAssociationProperty
    -> StateTemplateAssociationProperty -> Bool)
-> Eq StateTemplateAssociationProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: StateTemplateAssociationProperty
-> StateTemplateAssociationProperty -> Bool
== :: StateTemplateAssociationProperty
-> StateTemplateAssociationProperty -> Bool
$c/= :: StateTemplateAssociationProperty
-> StateTemplateAssociationProperty -> Bool
/= :: StateTemplateAssociationProperty
-> StateTemplateAssociationProperty -> Bool
Prelude.Eq, Int -> StateTemplateAssociationProperty -> ShowS
[StateTemplateAssociationProperty] -> ShowS
StateTemplateAssociationProperty -> String
(Int -> StateTemplateAssociationProperty -> ShowS)
-> (StateTemplateAssociationProperty -> String)
-> ([StateTemplateAssociationProperty] -> ShowS)
-> Show StateTemplateAssociationProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> StateTemplateAssociationProperty -> ShowS
showsPrec :: Int -> StateTemplateAssociationProperty -> ShowS
$cshow :: StateTemplateAssociationProperty -> String
show :: StateTemplateAssociationProperty -> String
$cshowList :: [StateTemplateAssociationProperty] -> ShowS
showList :: [StateTemplateAssociationProperty] -> ShowS
Prelude.Show)
mkStateTemplateAssociationProperty ::
  Value Prelude.Text
  -> StateTemplateUpdateStrategyProperty
     -> StateTemplateAssociationProperty
mkStateTemplateAssociationProperty :: Value Text
-> StateTemplateUpdateStrategyProperty
-> StateTemplateAssociationProperty
mkStateTemplateAssociationProperty
  Value Text
identifier
  StateTemplateUpdateStrategyProperty
stateTemplateUpdateStrategy
  = StateTemplateAssociationProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), identifier :: Value Text
identifier = Value Text
identifier,
       stateTemplateUpdateStrategy :: StateTemplateUpdateStrategyProperty
stateTemplateUpdateStrategy = StateTemplateUpdateStrategyProperty
stateTemplateUpdateStrategy}
instance ToResourceProperties StateTemplateAssociationProperty where
  toResourceProperties :: StateTemplateAssociationProperty -> ResourceProperties
toResourceProperties StateTemplateAssociationProperty {()
Value Text
StateTemplateUpdateStrategyProperty
haddock_workaround_ :: StateTemplateAssociationProperty -> ()
identifier :: StateTemplateAssociationProperty -> Value Text
stateTemplateUpdateStrategy :: StateTemplateAssociationProperty
-> StateTemplateUpdateStrategyProperty
haddock_workaround_ :: ()
identifier :: Value Text
stateTemplateUpdateStrategy :: StateTemplateUpdateStrategyProperty
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::IoTFleetWise::Vehicle.StateTemplateAssociation",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"Identifier" 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
identifier,
                       Key
"StateTemplateUpdateStrategy" Key -> StateTemplateUpdateStrategyProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= StateTemplateUpdateStrategyProperty
stateTemplateUpdateStrategy]}
instance JSON.ToJSON StateTemplateAssociationProperty where
  toJSON :: StateTemplateAssociationProperty -> Value
toJSON StateTemplateAssociationProperty {()
Value Text
StateTemplateUpdateStrategyProperty
haddock_workaround_ :: StateTemplateAssociationProperty -> ()
identifier :: StateTemplateAssociationProperty -> Value Text
stateTemplateUpdateStrategy :: StateTemplateAssociationProperty
-> StateTemplateUpdateStrategyProperty
haddock_workaround_ :: ()
identifier :: Value Text
stateTemplateUpdateStrategy :: StateTemplateUpdateStrategyProperty
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"Identifier" 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
identifier,
         Key
"StateTemplateUpdateStrategy" Key -> StateTemplateUpdateStrategyProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= StateTemplateUpdateStrategyProperty
stateTemplateUpdateStrategy]
instance Property "Identifier" StateTemplateAssociationProperty where
  type PropertyType "Identifier" StateTemplateAssociationProperty = Value Prelude.Text
  set :: PropertyType "Identifier" StateTemplateAssociationProperty
-> StateTemplateAssociationProperty
-> StateTemplateAssociationProperty
set PropertyType "Identifier" StateTemplateAssociationProperty
newValue StateTemplateAssociationProperty {()
Value Text
StateTemplateUpdateStrategyProperty
haddock_workaround_ :: StateTemplateAssociationProperty -> ()
identifier :: StateTemplateAssociationProperty -> Value Text
stateTemplateUpdateStrategy :: StateTemplateAssociationProperty
-> StateTemplateUpdateStrategyProperty
haddock_workaround_ :: ()
identifier :: Value Text
stateTemplateUpdateStrategy :: StateTemplateUpdateStrategyProperty
..}
    = StateTemplateAssociationProperty {identifier :: Value Text
identifier = PropertyType "Identifier" StateTemplateAssociationProperty
Value Text
newValue, ()
StateTemplateUpdateStrategyProperty
haddock_workaround_ :: ()
stateTemplateUpdateStrategy :: StateTemplateUpdateStrategyProperty
haddock_workaround_ :: ()
stateTemplateUpdateStrategy :: StateTemplateUpdateStrategyProperty
..}
instance Property "StateTemplateUpdateStrategy" StateTemplateAssociationProperty where
  type PropertyType "StateTemplateUpdateStrategy" StateTemplateAssociationProperty = StateTemplateUpdateStrategyProperty
  set :: PropertyType
  "StateTemplateUpdateStrategy" StateTemplateAssociationProperty
-> StateTemplateAssociationProperty
-> StateTemplateAssociationProperty
set PropertyType
  "StateTemplateUpdateStrategy" StateTemplateAssociationProperty
newValue StateTemplateAssociationProperty {()
Value Text
StateTemplateUpdateStrategyProperty
haddock_workaround_ :: StateTemplateAssociationProperty -> ()
identifier :: StateTemplateAssociationProperty -> Value Text
stateTemplateUpdateStrategy :: StateTemplateAssociationProperty
-> StateTemplateUpdateStrategyProperty
haddock_workaround_ :: ()
identifier :: Value Text
stateTemplateUpdateStrategy :: StateTemplateUpdateStrategyProperty
..}
    = StateTemplateAssociationProperty
        {stateTemplateUpdateStrategy :: StateTemplateUpdateStrategyProperty
stateTemplateUpdateStrategy = PropertyType
  "StateTemplateUpdateStrategy" StateTemplateAssociationProperty
StateTemplateUpdateStrategyProperty
newValue, ()
Value Text
haddock_workaround_ :: ()
identifier :: Value Text
haddock_workaround_ :: ()
identifier :: Value Text
..}