module Stratosphere.EC2.TransitGatewayMulticastDomainAssociation (
        TransitGatewayMulticastDomainAssociation(..),
        mkTransitGatewayMulticastDomainAssociation
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data TransitGatewayMulticastDomainAssociation
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastdomainassociation.html>
    TransitGatewayMulticastDomainAssociation {TransitGatewayMulticastDomainAssociation -> ()
haddock_workaround_ :: (),
                                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastdomainassociation.html#cfn-ec2-transitgatewaymulticastdomainassociation-subnetid>
                                              TransitGatewayMulticastDomainAssociation -> Value Text
subnetId :: (Value Prelude.Text),
                                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastdomainassociation.html#cfn-ec2-transitgatewaymulticastdomainassociation-transitgatewayattachmentid>
                                              TransitGatewayMulticastDomainAssociation -> Value Text
transitGatewayAttachmentId :: (Value Prelude.Text),
                                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastdomainassociation.html#cfn-ec2-transitgatewaymulticastdomainassociation-transitgatewaymulticastdomainid>
                                              TransitGatewayMulticastDomainAssociation -> Value Text
transitGatewayMulticastDomainId :: (Value Prelude.Text)}
  deriving stock (TransitGatewayMulticastDomainAssociation
-> TransitGatewayMulticastDomainAssociation -> Bool
(TransitGatewayMulticastDomainAssociation
 -> TransitGatewayMulticastDomainAssociation -> Bool)
-> (TransitGatewayMulticastDomainAssociation
    -> TransitGatewayMulticastDomainAssociation -> Bool)
-> Eq TransitGatewayMulticastDomainAssociation
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: TransitGatewayMulticastDomainAssociation
-> TransitGatewayMulticastDomainAssociation -> Bool
== :: TransitGatewayMulticastDomainAssociation
-> TransitGatewayMulticastDomainAssociation -> Bool
$c/= :: TransitGatewayMulticastDomainAssociation
-> TransitGatewayMulticastDomainAssociation -> Bool
/= :: TransitGatewayMulticastDomainAssociation
-> TransitGatewayMulticastDomainAssociation -> Bool
Prelude.Eq, Int -> TransitGatewayMulticastDomainAssociation -> ShowS
[TransitGatewayMulticastDomainAssociation] -> ShowS
TransitGatewayMulticastDomainAssociation -> String
(Int -> TransitGatewayMulticastDomainAssociation -> ShowS)
-> (TransitGatewayMulticastDomainAssociation -> String)
-> ([TransitGatewayMulticastDomainAssociation] -> ShowS)
-> Show TransitGatewayMulticastDomainAssociation
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> TransitGatewayMulticastDomainAssociation -> ShowS
showsPrec :: Int -> TransitGatewayMulticastDomainAssociation -> ShowS
$cshow :: TransitGatewayMulticastDomainAssociation -> String
show :: TransitGatewayMulticastDomainAssociation -> String
$cshowList :: [TransitGatewayMulticastDomainAssociation] -> ShowS
showList :: [TransitGatewayMulticastDomainAssociation] -> ShowS
Prelude.Show)
mkTransitGatewayMulticastDomainAssociation ::
  Value Prelude.Text
  -> Value Prelude.Text
     -> Value Prelude.Text -> TransitGatewayMulticastDomainAssociation
mkTransitGatewayMulticastDomainAssociation :: Value Text
-> Value Text
-> Value Text
-> TransitGatewayMulticastDomainAssociation
mkTransitGatewayMulticastDomainAssociation
  Value Text
subnetId
  Value Text
transitGatewayAttachmentId
  Value Text
transitGatewayMulticastDomainId
  = TransitGatewayMulticastDomainAssociation
      {haddock_workaround_ :: ()
haddock_workaround_ = (), subnetId :: Value Text
subnetId = Value Text
subnetId,
       transitGatewayAttachmentId :: Value Text
transitGatewayAttachmentId = Value Text
transitGatewayAttachmentId,
       transitGatewayMulticastDomainId :: Value Text
transitGatewayMulticastDomainId = Value Text
transitGatewayMulticastDomainId}
instance ToResourceProperties TransitGatewayMulticastDomainAssociation where
  toResourceProperties :: TransitGatewayMulticastDomainAssociation -> ResourceProperties
toResourceProperties TransitGatewayMulticastDomainAssociation {()
Value Text
haddock_workaround_ :: TransitGatewayMulticastDomainAssociation -> ()
subnetId :: TransitGatewayMulticastDomainAssociation -> Value Text
transitGatewayAttachmentId :: TransitGatewayMulticastDomainAssociation -> Value Text
transitGatewayMulticastDomainId :: TransitGatewayMulticastDomainAssociation -> Value Text
haddock_workaround_ :: ()
subnetId :: Value Text
transitGatewayAttachmentId :: Value Text
transitGatewayMulticastDomainId :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::EC2::TransitGatewayMulticastDomainAssociation",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"SubnetId" 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
subnetId,
                       Key
"TransitGatewayAttachmentId" 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
transitGatewayAttachmentId,
                       Key
"TransitGatewayMulticastDomainId"
                         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
transitGatewayMulticastDomainId]}
instance JSON.ToJSON TransitGatewayMulticastDomainAssociation where
  toJSON :: TransitGatewayMulticastDomainAssociation -> Value
toJSON TransitGatewayMulticastDomainAssociation {()
Value Text
haddock_workaround_ :: TransitGatewayMulticastDomainAssociation -> ()
subnetId :: TransitGatewayMulticastDomainAssociation -> Value Text
transitGatewayAttachmentId :: TransitGatewayMulticastDomainAssociation -> Value Text
transitGatewayMulticastDomainId :: TransitGatewayMulticastDomainAssociation -> Value Text
haddock_workaround_ :: ()
subnetId :: Value Text
transitGatewayAttachmentId :: Value Text
transitGatewayMulticastDomainId :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"SubnetId" 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
subnetId,
         Key
"TransitGatewayAttachmentId" 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
transitGatewayAttachmentId,
         Key
"TransitGatewayMulticastDomainId"
           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
transitGatewayMulticastDomainId]
instance Property "SubnetId" TransitGatewayMulticastDomainAssociation where
  type PropertyType "SubnetId" TransitGatewayMulticastDomainAssociation = Value Prelude.Text
  set :: PropertyType "SubnetId" TransitGatewayMulticastDomainAssociation
-> TransitGatewayMulticastDomainAssociation
-> TransitGatewayMulticastDomainAssociation
set PropertyType "SubnetId" TransitGatewayMulticastDomainAssociation
newValue TransitGatewayMulticastDomainAssociation {()
Value Text
haddock_workaround_ :: TransitGatewayMulticastDomainAssociation -> ()
subnetId :: TransitGatewayMulticastDomainAssociation -> Value Text
transitGatewayAttachmentId :: TransitGatewayMulticastDomainAssociation -> Value Text
transitGatewayMulticastDomainId :: TransitGatewayMulticastDomainAssociation -> Value Text
haddock_workaround_ :: ()
subnetId :: Value Text
transitGatewayAttachmentId :: Value Text
transitGatewayMulticastDomainId :: Value Text
..}
    = TransitGatewayMulticastDomainAssociation
        {subnetId :: Value Text
subnetId = PropertyType "SubnetId" TransitGatewayMulticastDomainAssociation
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
transitGatewayAttachmentId :: Value Text
transitGatewayMulticastDomainId :: Value Text
haddock_workaround_ :: ()
transitGatewayAttachmentId :: Value Text
transitGatewayMulticastDomainId :: Value Text
..}
instance Property "TransitGatewayAttachmentId" TransitGatewayMulticastDomainAssociation where
  type PropertyType "TransitGatewayAttachmentId" TransitGatewayMulticastDomainAssociation = Value Prelude.Text
  set :: PropertyType
  "TransitGatewayAttachmentId"
  TransitGatewayMulticastDomainAssociation
-> TransitGatewayMulticastDomainAssociation
-> TransitGatewayMulticastDomainAssociation
set PropertyType
  "TransitGatewayAttachmentId"
  TransitGatewayMulticastDomainAssociation
newValue TransitGatewayMulticastDomainAssociation {()
Value Text
haddock_workaround_ :: TransitGatewayMulticastDomainAssociation -> ()
subnetId :: TransitGatewayMulticastDomainAssociation -> Value Text
transitGatewayAttachmentId :: TransitGatewayMulticastDomainAssociation -> Value Text
transitGatewayMulticastDomainId :: TransitGatewayMulticastDomainAssociation -> Value Text
haddock_workaround_ :: ()
subnetId :: Value Text
transitGatewayAttachmentId :: Value Text
transitGatewayMulticastDomainId :: Value Text
..}
    = TransitGatewayMulticastDomainAssociation
        {transitGatewayAttachmentId :: Value Text
transitGatewayAttachmentId = PropertyType
  "TransitGatewayAttachmentId"
  TransitGatewayMulticastDomainAssociation
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
subnetId :: Value Text
transitGatewayMulticastDomainId :: Value Text
haddock_workaround_ :: ()
subnetId :: Value Text
transitGatewayMulticastDomainId :: Value Text
..}
instance Property "TransitGatewayMulticastDomainId" TransitGatewayMulticastDomainAssociation where
  type PropertyType "TransitGatewayMulticastDomainId" TransitGatewayMulticastDomainAssociation = Value Prelude.Text
  set :: PropertyType
  "TransitGatewayMulticastDomainId"
  TransitGatewayMulticastDomainAssociation
-> TransitGatewayMulticastDomainAssociation
-> TransitGatewayMulticastDomainAssociation
set PropertyType
  "TransitGatewayMulticastDomainId"
  TransitGatewayMulticastDomainAssociation
newValue TransitGatewayMulticastDomainAssociation {()
Value Text
haddock_workaround_ :: TransitGatewayMulticastDomainAssociation -> ()
subnetId :: TransitGatewayMulticastDomainAssociation -> Value Text
transitGatewayAttachmentId :: TransitGatewayMulticastDomainAssociation -> Value Text
transitGatewayMulticastDomainId :: TransitGatewayMulticastDomainAssociation -> Value Text
haddock_workaround_ :: ()
subnetId :: Value Text
transitGatewayAttachmentId :: Value Text
transitGatewayMulticastDomainId :: Value Text
..}
    = TransitGatewayMulticastDomainAssociation
        {transitGatewayMulticastDomainId :: Value Text
transitGatewayMulticastDomainId = PropertyType
  "TransitGatewayMulticastDomainId"
  TransitGatewayMulticastDomainAssociation
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
subnetId :: Value Text
transitGatewayAttachmentId :: Value Text
haddock_workaround_ :: ()
subnetId :: Value Text
transitGatewayAttachmentId :: Value Text
..}