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