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