module Stratosphere.AmazonMQ.ConfigurationAssociation (
        module Exports, ConfigurationAssociation(..),
        mkConfigurationAssociation
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.AmazonMQ.ConfigurationAssociation.ConfigurationIdProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data ConfigurationAssociation
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-configurationassociation.html>
    ConfigurationAssociation {ConfigurationAssociation -> ()
haddock_workaround_ :: (),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-configurationassociation.html#cfn-amazonmq-configurationassociation-broker>
                              ConfigurationAssociation -> Value Text
broker :: (Value Prelude.Text),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-configurationassociation.html#cfn-amazonmq-configurationassociation-configuration>
                              ConfigurationAssociation -> ConfigurationIdProperty
configuration :: ConfigurationIdProperty}
  deriving stock (ConfigurationAssociation -> ConfigurationAssociation -> Bool
(ConfigurationAssociation -> ConfigurationAssociation -> Bool)
-> (ConfigurationAssociation -> ConfigurationAssociation -> Bool)
-> Eq ConfigurationAssociation
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ConfigurationAssociation -> ConfigurationAssociation -> Bool
== :: ConfigurationAssociation -> ConfigurationAssociation -> Bool
$c/= :: ConfigurationAssociation -> ConfigurationAssociation -> Bool
/= :: ConfigurationAssociation -> ConfigurationAssociation -> Bool
Prelude.Eq, Int -> ConfigurationAssociation -> ShowS
[ConfigurationAssociation] -> ShowS
ConfigurationAssociation -> String
(Int -> ConfigurationAssociation -> ShowS)
-> (ConfigurationAssociation -> String)
-> ([ConfigurationAssociation] -> ShowS)
-> Show ConfigurationAssociation
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ConfigurationAssociation -> ShowS
showsPrec :: Int -> ConfigurationAssociation -> ShowS
$cshow :: ConfigurationAssociation -> String
show :: ConfigurationAssociation -> String
$cshowList :: [ConfigurationAssociation] -> ShowS
showList :: [ConfigurationAssociation] -> ShowS
Prelude.Show)
mkConfigurationAssociation ::
  Value Prelude.Text
  -> ConfigurationIdProperty -> ConfigurationAssociation
mkConfigurationAssociation :: Value Text -> ConfigurationIdProperty -> ConfigurationAssociation
mkConfigurationAssociation Value Text
broker ConfigurationIdProperty
configuration
  = ConfigurationAssociation
      {haddock_workaround_ :: ()
haddock_workaround_ = (), broker :: Value Text
broker = Value Text
broker,
       configuration :: ConfigurationIdProperty
configuration = ConfigurationIdProperty
configuration}
instance ToResourceProperties ConfigurationAssociation where
  toResourceProperties :: ConfigurationAssociation -> ResourceProperties
toResourceProperties ConfigurationAssociation {()
Value Text
ConfigurationIdProperty
haddock_workaround_ :: ConfigurationAssociation -> ()
broker :: ConfigurationAssociation -> Value Text
configuration :: ConfigurationAssociation -> ConfigurationIdProperty
haddock_workaround_ :: ()
broker :: Value Text
configuration :: ConfigurationIdProperty
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::AmazonMQ::ConfigurationAssociation",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"Broker" 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
broker,
                       Key
"Configuration" Key -> ConfigurationIdProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= ConfigurationIdProperty
configuration]}
instance JSON.ToJSON ConfigurationAssociation where
  toJSON :: ConfigurationAssociation -> Value
toJSON ConfigurationAssociation {()
Value Text
ConfigurationIdProperty
haddock_workaround_ :: ConfigurationAssociation -> ()
broker :: ConfigurationAssociation -> Value Text
configuration :: ConfigurationAssociation -> ConfigurationIdProperty
haddock_workaround_ :: ()
broker :: Value Text
configuration :: ConfigurationIdProperty
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"Broker" 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
broker, Key
"Configuration" Key -> ConfigurationIdProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= ConfigurationIdProperty
configuration]
instance Property "Broker" ConfigurationAssociation where
  type PropertyType "Broker" ConfigurationAssociation = Value Prelude.Text
  set :: PropertyType "Broker" ConfigurationAssociation
-> ConfigurationAssociation -> ConfigurationAssociation
set PropertyType "Broker" ConfigurationAssociation
newValue ConfigurationAssociation {()
Value Text
ConfigurationIdProperty
haddock_workaround_ :: ConfigurationAssociation -> ()
broker :: ConfigurationAssociation -> Value Text
configuration :: ConfigurationAssociation -> ConfigurationIdProperty
haddock_workaround_ :: ()
broker :: Value Text
configuration :: ConfigurationIdProperty
..}
    = ConfigurationAssociation {broker :: Value Text
broker = PropertyType "Broker" ConfigurationAssociation
Value Text
newValue, ()
ConfigurationIdProperty
haddock_workaround_ :: ()
configuration :: ConfigurationIdProperty
haddock_workaround_ :: ()
configuration :: ConfigurationIdProperty
..}
instance Property "Configuration" ConfigurationAssociation where
  type PropertyType "Configuration" ConfigurationAssociation = ConfigurationIdProperty
  set :: PropertyType "Configuration" ConfigurationAssociation
-> ConfigurationAssociation -> ConfigurationAssociation
set PropertyType "Configuration" ConfigurationAssociation
newValue ConfigurationAssociation {()
Value Text
ConfigurationIdProperty
haddock_workaround_ :: ConfigurationAssociation -> ()
broker :: ConfigurationAssociation -> Value Text
configuration :: ConfigurationAssociation -> ConfigurationIdProperty
haddock_workaround_ :: ()
broker :: Value Text
configuration :: ConfigurationIdProperty
..}
    = ConfigurationAssociation {configuration :: ConfigurationIdProperty
configuration = PropertyType "Configuration" ConfigurationAssociation
ConfigurationIdProperty
newValue, ()
Value Text
haddock_workaround_ :: ()
broker :: Value Text
haddock_workaround_ :: ()
broker :: Value Text
..}