module Stratosphere.IoT.MitigationAction.ReplaceDefaultPolicyVersionParamsProperty (
        ReplaceDefaultPolicyVersionParamsProperty(..),
        mkReplaceDefaultPolicyVersionParamsProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data ReplaceDefaultPolicyVersionParamsProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-replacedefaultpolicyversionparams.html>
    ReplaceDefaultPolicyVersionParamsProperty {ReplaceDefaultPolicyVersionParamsProperty -> ()
haddock_workaround_ :: (),
                                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-replacedefaultpolicyversionparams.html#cfn-iot-mitigationaction-replacedefaultpolicyversionparams-templatename>
                                               ReplaceDefaultPolicyVersionParamsProperty -> Value Text
templateName :: (Value Prelude.Text)}
  deriving stock (ReplaceDefaultPolicyVersionParamsProperty
-> ReplaceDefaultPolicyVersionParamsProperty -> Bool
(ReplaceDefaultPolicyVersionParamsProperty
 -> ReplaceDefaultPolicyVersionParamsProperty -> Bool)
-> (ReplaceDefaultPolicyVersionParamsProperty
    -> ReplaceDefaultPolicyVersionParamsProperty -> Bool)
-> Eq ReplaceDefaultPolicyVersionParamsProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ReplaceDefaultPolicyVersionParamsProperty
-> ReplaceDefaultPolicyVersionParamsProperty -> Bool
== :: ReplaceDefaultPolicyVersionParamsProperty
-> ReplaceDefaultPolicyVersionParamsProperty -> Bool
$c/= :: ReplaceDefaultPolicyVersionParamsProperty
-> ReplaceDefaultPolicyVersionParamsProperty -> Bool
/= :: ReplaceDefaultPolicyVersionParamsProperty
-> ReplaceDefaultPolicyVersionParamsProperty -> Bool
Prelude.Eq, Int -> ReplaceDefaultPolicyVersionParamsProperty -> ShowS
[ReplaceDefaultPolicyVersionParamsProperty] -> ShowS
ReplaceDefaultPolicyVersionParamsProperty -> String
(Int -> ReplaceDefaultPolicyVersionParamsProperty -> ShowS)
-> (ReplaceDefaultPolicyVersionParamsProperty -> String)
-> ([ReplaceDefaultPolicyVersionParamsProperty] -> ShowS)
-> Show ReplaceDefaultPolicyVersionParamsProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ReplaceDefaultPolicyVersionParamsProperty -> ShowS
showsPrec :: Int -> ReplaceDefaultPolicyVersionParamsProperty -> ShowS
$cshow :: ReplaceDefaultPolicyVersionParamsProperty -> String
show :: ReplaceDefaultPolicyVersionParamsProperty -> String
$cshowList :: [ReplaceDefaultPolicyVersionParamsProperty] -> ShowS
showList :: [ReplaceDefaultPolicyVersionParamsProperty] -> ShowS
Prelude.Show)
mkReplaceDefaultPolicyVersionParamsProperty ::
  Value Prelude.Text -> ReplaceDefaultPolicyVersionParamsProperty
mkReplaceDefaultPolicyVersionParamsProperty :: Value Text -> ReplaceDefaultPolicyVersionParamsProperty
mkReplaceDefaultPolicyVersionParamsProperty Value Text
templateName
  = ReplaceDefaultPolicyVersionParamsProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), templateName :: Value Text
templateName = Value Text
templateName}
instance ToResourceProperties ReplaceDefaultPolicyVersionParamsProperty where
  toResourceProperties :: ReplaceDefaultPolicyVersionParamsProperty -> ResourceProperties
toResourceProperties ReplaceDefaultPolicyVersionParamsProperty {()
Value Text
haddock_workaround_ :: ReplaceDefaultPolicyVersionParamsProperty -> ()
templateName :: ReplaceDefaultPolicyVersionParamsProperty -> Value Text
haddock_workaround_ :: ()
templateName :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::IoT::MitigationAction.ReplaceDefaultPolicyVersionParams",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"TemplateName" 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
templateName]}
instance JSON.ToJSON ReplaceDefaultPolicyVersionParamsProperty where
  toJSON :: ReplaceDefaultPolicyVersionParamsProperty -> Value
toJSON ReplaceDefaultPolicyVersionParamsProperty {()
Value Text
haddock_workaround_ :: ReplaceDefaultPolicyVersionParamsProperty -> ()
templateName :: ReplaceDefaultPolicyVersionParamsProperty -> Value Text
haddock_workaround_ :: ()
templateName :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object [Key
"TemplateName" 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
templateName]
instance Property "TemplateName" ReplaceDefaultPolicyVersionParamsProperty where
  type PropertyType "TemplateName" ReplaceDefaultPolicyVersionParamsProperty = Value Prelude.Text
  set :: PropertyType
  "TemplateName" ReplaceDefaultPolicyVersionParamsProperty
-> ReplaceDefaultPolicyVersionParamsProperty
-> ReplaceDefaultPolicyVersionParamsProperty
set PropertyType
  "TemplateName" ReplaceDefaultPolicyVersionParamsProperty
newValue ReplaceDefaultPolicyVersionParamsProperty {()
Value Text
haddock_workaround_ :: ReplaceDefaultPolicyVersionParamsProperty -> ()
templateName :: ReplaceDefaultPolicyVersionParamsProperty -> Value Text
haddock_workaround_ :: ()
templateName :: Value Text
..}
    = ReplaceDefaultPolicyVersionParamsProperty
        {templateName :: Value Text
templateName = PropertyType
  "TemplateName" ReplaceDefaultPolicyVersionParamsProperty
Value Text
newValue, ()
haddock_workaround_ :: ()
haddock_workaround_ :: ()
..}