module AWS.EC2.Types.Common
( Architecture(..)
, Filter
, EC2Return(..)
, Group(..)
, Hypervisor(..)
, Placement(..)
, Platform(..)
, ProductCode(..)
, ProductCodeType(..)
, ResourceTag(..)
, RootDeviceType(..)
, ShutdownBehavior(..)
, StateReason(..)
, VirtualizationType(..)
) where
import AWS.Lib.FromText
data Architecture
= I386
| X86_64
deriving (Show, Read, Eq)
data EC2Return
= EC2Success
| EC2Error Text
deriving (Show, Read, Eq)
instance FromText EC2Return
where
fromTextMay t
| t == "true" = Just EC2Success
| otherwise = Just $ EC2Error t
type Filter = (Text, [Text])
data Group = Group
{ groupId :: Text
, groupName :: Text
}
deriving (Show, Read, Eq)
data Hypervisor
= HypervisorOVM
| HypervisorXen
deriving (Show, Read, Eq)
deriveFromText "Hypervisor" ["ovm", "xen"]
data Placement = Placement
{ placementAvailabilityZone :: Text
, placementGroupName :: Maybe Text
, placementTenancy :: Text
}
deriving (Show, Read, Eq)
data Platform
= PlatformWindows
| PlatformOther
deriving (Show, Read, Eq)
instance FromText Platform
where
fromMaybeText _name Nothing = return PlatformOther
fromMaybeText _name (Just t)
| t == "windows" = return PlatformWindows
| otherwise = return PlatformOther
data ProductCode = ProductCode
{ productCodeCode :: Text
, productCodeType :: ProductCodeType
}
deriving (Show, Read, Eq)
data ProductCodeType
= ProductCodeDevpay
| ProductCodeMarketplace
deriving (Show, Read, Eq)
data ResourceTag = ResourceTag
{ resourceTagKey :: Text
, resourceTagValue :: Maybe Text
}
deriving (Show, Read, Eq)
data RootDeviceType
= RootDeviceTypeEBS
| RootDeviceTypeInstanceStore
deriving (Show, Read, Eq)
data ShutdownBehavior
= ShutdownBehaviorStop
| ShutdownBehaviorTerminate
deriving (Show, Read, Eq)
data StateReason = StateReason
{ stateReasonCode :: Text
, stateReasonMessage :: Text
}
deriving (Show, Read, Eq)
data VirtualizationType
= VirtualizationTypeParavirtual
| VirtualizationTypeHVM
deriving (Show, Read, Eq)
deriveFromText "Architecture" ["i386", "x86_64"]
deriveFromText "ProductCodeType" ["devpay", "marketplace"]
deriveFromText "RootDeviceType" ["ebs", "instance-store"]
deriveFromText "ShutdownBehavior" ["stop", "terminate"]
deriveFromText "VirtualizationType" ["paravirtual", "hvm"]