module AWS.EC2.Types.VPC
( Attachment(..)
, AttachmentState(..)
, CreateVpnGatewayType(..)
, CustomerGateway(..)
, CustomerGatewayState(..)
, DhcpConfiguration(..)
, DhcpOptions(..)
, DhcpValue(..)
, InternetGateway(..)
, InternetGatewayAttachment(..)
, InternetGatewayAttachmentState(..)
, Vpc(..)
, VpcState(..)
, VpnConnection(..)
, VpnConnectionOptionsRequest(..)
, VpnConnectionState(..)
, VpnGateway(..)
, VpnGatewayState(..)
, VpnStaticRoute(..)
, VpnStaticRouteSource(..)
, VpnStaticRouteState(..)
, VpnTunnelTelemetry(..)
) where
import AWS.EC2.Types.Common (ResourceTag)
import AWS.Lib.FromText
data Attachment = Attachment
{ attachmentVpcId :: Text
, attachmentState :: AttachmentState
}
deriving (Show, Read, Eq)
data AttachmentState
= AttachmentStateAttaching
| AttachmentStateAttached
| AttachmentStateDetaching
| AttachmentStateDetached
deriving (Show, Read, Eq)
data CreateVpnGatewayType = CreateVpnGatewayTypeIpsec1
data CustomerGateway = CustomerGateway
{ customerGatewayId :: Text
, customerGatewayState :: CustomerGatewayState
, customerGatewayType :: Text
, customerGatewayIpAddress :: IPv4
, customerGatewayBgpAsn :: Int
, customerGatewayTagSet :: [ResourceTag]
}
deriving (Show, Read, Eq)
data CustomerGatewayState
= CustomerGatewayStatePending
| CustomerGatewayStateAvailable
| CustomerGatewayStateDeleting
| CustomerGatewayStateDeleted
deriving (Show, Read, Eq)
data DhcpOptions = DhcpOptions
{ dhcpOptionsId :: Text
, dhcpOptionsDhcpConfigurationSet :: [DhcpConfiguration]
, dhcpOptionsTagSet :: [ResourceTag]
}
deriving (Show, Read, Eq)
data DhcpConfiguration = DhcpConfiguration
{ dhcpConfigurationKey :: Text
, dhcpConfigurationDhcpValueSet :: [DhcpValue]
}
deriving (Show, Read, Eq)
data DhcpValue = DhcpValue
{ dhcpValueValue :: Text
}
deriving (Show, Read, Eq)
data InternetGateway = InternetGateway
{ internetGatewayInternetGatewayId :: Text
, internetGatewayAttachmentSet :: [InternetGatewayAttachment]
, internetGatewayTagSet :: [ResourceTag]
}
deriving (Show, Read, Eq)
data InternetGatewayAttachment = InternetGatewayAttachment
{ internetGatewayAttachmentVpcId :: Text
, internetGatewayAttachmentState :: InternetGatewayAttachmentState
}
deriving (Show, Read, Eq)
data InternetGatewayAttachmentState
= InternetGatewayAttachmentStateAttaching
| InternetGatewayAttachmentStateAttached
| InternetGatewayAttachmentStateDetaching
| InternetGatewayAttachmentStateDetached
| InternetGatewayAttachmentStateAvailable
deriving (Show, Read, Eq)
data Vpc = Vpc
{ vpcId :: Text
, vpcState :: VpcState
, vpcCidrBlock :: AddrRange IPv4
, vpcDhcpOptionsId :: Text
, vpcTagSet :: [ResourceTag]
, vpcInstanceTenancy :: Text
, vpcIsDefault :: Maybe Text
}
deriving (Show, Read, Eq)
data VpcState
= VpcStatePending
| VpcStateAvailable
deriving (Show, Read, Eq)
data VpnConnection = VpnConnection
{ vpnConnectionId :: Text
, vpnConnectionState :: VpnConnectionState
, vpnConnectionCustomerGatewayConfiguration :: Maybe Text
, vpnConnectionType :: Maybe Text
, vpnConnectionCustomerGatewayId :: Text
, vpnConnectionVpnGatewayId :: Text
, vpnConnectionTagSet :: [ResourceTag]
, vpnConnectionVgwTelemetry :: [VpnTunnelTelemetry]
, vpnConnectionOptions :: Maybe VpnConnectionOptionsRequest
, vpnConnectionRoutes :: Maybe VpnStaticRoute
}
deriving (Show, Read, Eq)
data VpnConnectionOptionsRequest = VpnConnectionOptionsRequest
{ vpnConnectionOptionsRequestStaticRoutesOnly :: Bool
}
deriving (Show, Read, Eq)
data VpnConnectionState
= VpnConnectionStatePending
| VpnConnectionStateAvailable
| VpnConnectionStateDeleting
| VpnConnectionStateDeleted
deriving (Show, Read, Eq)
data VpnGateway = VpnGateway
{ vpnGatewayId :: Text
, vpnGatewayState :: VpnGatewayState
, vpnGatewayType :: Text
, vpnGatewayAvailabilityZone :: Maybe Text
, vpnGatewayAttachments :: [Attachment]
, vpnGatewayTagSet :: [ResourceTag]
}
deriving (Show, Read, Eq)
data VpnGatewayState
= VpnGatewayStatePending
| VpnGatewayStateAvailable
| VpnGatewayStateDeleting
| VpnGatewayStateDeleted
deriving (Show, Read, Eq)
data VpnStaticRoute = VpnStaticRoute
{ vpnStaticRouteDestinationCidrBlock :: Text
, vpnStaticRouteSource :: VpnStaticRouteSource
, vpnStaticRouteState :: VpnStaticRouteState
}
deriving (Show, Read, Eq)
data VpnStaticRouteSource = VpnStaticRouteSourceStatic
deriving (Show, Read, Eq)
data VpnStaticRouteState
= VpnStaticRouteStatePending
| VpnStaticRouteStateAvailable
| VpnStaticRouteStateDeleting
| VpnStaticRouteStateDeleted
deriving (Show, Read, Eq)
data VpnTunnelTelemetry = VpnTunnelTelemetry
{ vpnTunnelTelemetryOutsideIpAddress :: IPv4
, vpnTunnelTelemetryStatus :: VpnTunnelTelemetryStatus
, vpnTunnelTelemetryLastStatusChange :: UTCTime
, vpnTunnelTelemetryStatusMessage :: Text
, vpnTunnelTelemetryAcceptRouteCount :: Int
}
deriving (Show, Read, Eq)
data VpnTunnelTelemetryStatus
= VpnTunnelTelemetryStatusUp
| VpnTunnelTelemetryStatusDown
deriving (Show, Read, Eq)
deriveFromText "AttachmentState"
["attaching", "attached", "detaching", "detached"]
deriveFromText "CustomerGatewayState"
["pending", "available", "deleting", "deleted"]
deriveFromText "InternetGatewayAttachmentState"
["attaching", "attached", "detaching", "detached", "available"]
deriveFromText "VpcState" ["pending", "available"]
deriveFromText "VpnConnectionState"
["pending", "available", "deleting", "deleted"]
deriveFromText "VpnGatewayState"
["pending", "available", "deleting", "deleted"]
deriveFromText "VpnStaticRouteSource" ["Static"]
deriveFromText "VpnStaticRouteState"
["pending", "available", "deleting", "deleted"]
deriveFromText "VpnTunnelTelemetryStatus" ["UP", "DOWN"]