aws-ec2 0.3.6 → 0.3.7
raw patch · 2 files changed
+113/−3 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Aws.Ec2.Commands.DescribeInstanceStatus: DInitializing :: InstanceStatusDetailStatus
+ Aws.Ec2.Commands.DescribeInstanceStatus: DInsufficientData :: InstanceStatusDetailStatus
+ Aws.Ec2.Commands.DescribeInstanceStatus: DescribeInstanceStatusResponse :: [InstanceStatus] -> DescribeInstanceStatusResponse
+ Aws.Ec2.Commands.DescribeInstanceStatus: Failed :: InstanceStatusDetailStatus
+ Aws.Ec2.Commands.DescribeInstanceStatus: Impaired :: InstanceStatusStatus
+ Aws.Ec2.Commands.DescribeInstanceStatus: Initializing :: InstanceStatusStatus
+ Aws.Ec2.Commands.DescribeInstanceStatus: InstanceStatus :: Text -> Text -> Maybe InstanceStatusSummary -> Maybe InstanceStatusSummary -> Maybe InstanceState -> InstanceStatus
+ Aws.Ec2.Commands.DescribeInstanceStatus: InstanceStatusDetails :: InstanceStatusDetailName -> InstanceStatusDetailStatus -> InstanceStatusDetails
+ Aws.Ec2.Commands.DescribeInstanceStatus: InstanceStatusSummary :: InstanceStatusStatus -> [InstanceStatusDetails] -> InstanceStatusSummary
+ Aws.Ec2.Commands.DescribeInstanceStatus: InsufficientData :: InstanceStatusStatus
+ Aws.Ec2.Commands.DescribeInstanceStatus: NotApplicable :: InstanceStatusStatus
+ Aws.Ec2.Commands.DescribeInstanceStatus: Ok :: InstanceStatusStatus
+ Aws.Ec2.Commands.DescribeInstanceStatus: Passed :: InstanceStatusDetailStatus
+ Aws.Ec2.Commands.DescribeInstanceStatus: Reachability :: InstanceStatusDetailName
+ Aws.Ec2.Commands.DescribeInstanceStatus: [disrInstanceStatuses] :: DescribeInstanceStatusResponse -> [InstanceStatus]
+ Aws.Ec2.Commands.DescribeInstanceStatus: [isAvailabilityZone] :: InstanceStatus -> Text
+ Aws.Ec2.Commands.DescribeInstanceStatus: [isInstanceId] :: InstanceStatus -> Text
+ Aws.Ec2.Commands.DescribeInstanceStatus: [isInstanceStatus] :: InstanceStatus -> Maybe InstanceStatusSummary
+ Aws.Ec2.Commands.DescribeInstanceStatus: [isState] :: InstanceStatus -> Maybe InstanceState
+ Aws.Ec2.Commands.DescribeInstanceStatus: [isSystemStatus] :: InstanceStatus -> Maybe InstanceStatusSummary
+ Aws.Ec2.Commands.DescribeInstanceStatus: [isdName] :: InstanceStatusDetails -> InstanceStatusDetailName
+ Aws.Ec2.Commands.DescribeInstanceStatus: [isdStatus] :: InstanceStatusDetails -> InstanceStatusDetailStatus
+ Aws.Ec2.Commands.DescribeInstanceStatus: [siDetails] :: InstanceStatusSummary -> [InstanceStatusDetails]
+ Aws.Ec2.Commands.DescribeInstanceStatus: [siStatus] :: InstanceStatusSummary -> InstanceStatusStatus
+ Aws.Ec2.Commands.DescribeInstanceStatus: data InstanceStatus
+ Aws.Ec2.Commands.DescribeInstanceStatus: data InstanceStatusDetailName
+ Aws.Ec2.Commands.DescribeInstanceStatus: data InstanceStatusDetailStatus
+ Aws.Ec2.Commands.DescribeInstanceStatus: data InstanceStatusDetails
+ Aws.Ec2.Commands.DescribeInstanceStatus: data InstanceStatusStatus
+ Aws.Ec2.Commands.DescribeInstanceStatus: data InstanceStatusSummary
+ Aws.Ec2.Commands.DescribeInstanceStatus: instance Data.Aeson.Types.Class.FromJSON Aws.Ec2.Commands.DescribeInstanceStatus.DescribeInstanceStatusResponse
+ Aws.Ec2.Commands.DescribeInstanceStatus: instance Data.Aeson.Types.Class.FromJSON Aws.Ec2.Commands.DescribeInstanceStatus.InstanceStatus
+ Aws.Ec2.Commands.DescribeInstanceStatus: instance Data.Aeson.Types.Class.FromJSON Aws.Ec2.Commands.DescribeInstanceStatus.InstanceStatusDetails
+ Aws.Ec2.Commands.DescribeInstanceStatus: instance Data.Aeson.Types.Class.FromJSON Aws.Ec2.Commands.DescribeInstanceStatus.InstanceStatusSummary
+ Aws.Ec2.Commands.DescribeInstanceStatus: instance GHC.Classes.Eq Aws.Ec2.Commands.DescribeInstanceStatus.InstanceStatusDetailName
+ Aws.Ec2.Commands.DescribeInstanceStatus: instance GHC.Classes.Eq Aws.Ec2.Commands.DescribeInstanceStatus.InstanceStatusDetailStatus
+ Aws.Ec2.Commands.DescribeInstanceStatus: instance GHC.Classes.Eq Aws.Ec2.Commands.DescribeInstanceStatus.InstanceStatusStatus
+ Aws.Ec2.Commands.DescribeInstanceStatus: instance GHC.Read.Read Aws.Ec2.Commands.DescribeInstanceStatus.InstanceStatusDetailName
+ Aws.Ec2.Commands.DescribeInstanceStatus: instance GHC.Read.Read Aws.Ec2.Commands.DescribeInstanceStatus.InstanceStatusDetailStatus
+ Aws.Ec2.Commands.DescribeInstanceStatus: instance GHC.Read.Read Aws.Ec2.Commands.DescribeInstanceStatus.InstanceStatusStatus
+ Aws.Ec2.Commands.DescribeInstanceStatus: instance GHC.Show.Show Aws.Ec2.Commands.DescribeInstanceStatus.DescribeInstanceStatusResponse
+ Aws.Ec2.Commands.DescribeInstanceStatus: instance GHC.Show.Show Aws.Ec2.Commands.DescribeInstanceStatus.InstanceStatus
+ Aws.Ec2.Commands.DescribeInstanceStatus: instance GHC.Show.Show Aws.Ec2.Commands.DescribeInstanceStatus.InstanceStatusDetailName
+ Aws.Ec2.Commands.DescribeInstanceStatus: instance GHC.Show.Show Aws.Ec2.Commands.DescribeInstanceStatus.InstanceStatusDetailStatus
+ Aws.Ec2.Commands.DescribeInstanceStatus: instance GHC.Show.Show Aws.Ec2.Commands.DescribeInstanceStatus.InstanceStatusDetails
+ Aws.Ec2.Commands.DescribeInstanceStatus: instance GHC.Show.Show Aws.Ec2.Commands.DescribeInstanceStatus.InstanceStatusStatus
+ Aws.Ec2.Commands.DescribeInstanceStatus: instance GHC.Show.Show Aws.Ec2.Commands.DescribeInstanceStatus.InstanceStatusSummary
+ Aws.Ec2.Commands.DescribeInstanceStatus: newtype DescribeInstanceStatusResponse
Files
aws-ec2.cabal view
@@ -1,5 +1,5 @@ name: aws-ec2-version: 0.3.6+version: 0.3.7 cabal-version: >=1.10 build-type: Simple license: BSD3@@ -16,7 +16,7 @@ source-repository this type: git location: https://github.com/memcachier/aws-ec2.git- tag: 0.3.6+ tag: 0.3.7 source-repository head type: git
src/Aws/Ec2/Commands/DescribeInstanceStatus.hs view
@@ -4,14 +4,124 @@ , OverloadedStrings , TemplateHaskell , RecordWildCards- , OverloadedStrings #-} module Aws.Ec2.Commands.DescribeInstanceStatus where +import Data.Aeson (Value(..), FromJSON, parseJSON, (.:), (.:?))+import Data.Aeson.Types (typeMismatch)+import qualified Data.Text as T+ import Aws.Ec2.TH+import Aws.Ec2.Types (InstanceState) data DescribeInstanceStatus = DescribeInstanceStatus { dis_instanceIds :: [Text] } deriving (Show) ec2ValueTransactionDef ''DescribeInstanceStatus 'DescribeInstanceStatus "instanceStatusSet" "InstanceId"+++data InstanceStatusDetailName = Reachability deriving Eq++instance Show InstanceStatusDetailName where+ show Reachability = "reachability"++instance Read InstanceStatusDetailName where+ readsPrec _ h =+ case h of+ "reachability" -> [(Reachability, "")]+ _ -> fail $ "Failed to parse " ++ h ++ " into InstanceStatusDetailName."+++data InstanceStatusDetailStatus = Passed+ | Failed+ | DInsufficientData+ | DInitializing+ deriving Eq++instance Show InstanceStatusDetailStatus where+ show Passed = "passed"+ show Failed = "failed"+ show DInsufficientData = "insufficient-data"+ show DInitializing = "initializing"++instance Read InstanceStatusDetailStatus where+ readsPrec _ h =+ case h of+ "passed" -> [(Passed, "")]+ "failed" -> [(Failed, "")]+ "insufficient-data" -> [(DInsufficientData, "")]+ "initializing" -> [(DInitializing, "")]+ _ -> fail $ "Failed to parse " ++ h ++ " into InstanceStatusDetailStatus."+++data InstanceStatusDetails =+ InstanceStatusDetails { isdName :: InstanceStatusDetailName+ , isdStatus :: InstanceStatusDetailStatus+ } deriving Show++instance FromJSON InstanceStatusDetails where+ parseJSON (Object v) = InstanceStatusDetails <$>+ (read <$> (v .: "name")) <*>+ (read <$> (v .: "status"))+ parseJSON invalid = typeMismatch "InstanceState" invalid+++data InstanceStatusStatus = Ok+ | Impaired+ | InsufficientData+ | NotApplicable+ | Initializing+ deriving Eq++instance Show InstanceStatusStatus where+ show Ok = "ok"+ show Impaired = "impaired"+ show InsufficientData = "insufficient-data"+ show NotApplicable = "not-applicable"+ show Initializing = "initializing"++instance Read InstanceStatusStatus where+ readsPrec _ h =+ case h of+ "ok" -> [(Ok, "")]+ "impaired" -> [(Impaired, "")]+ "insufficient-data" -> [(InsufficientData, "")]+ "not-applicable" -> [(NotApplicable, "")]+ "initializing" -> [(Initializing, "")]+ _ -> fail $ "Failed to parse " ++ h ++ " into InstanceStatusStatus."++data InstanceStatusSummary =+ InstanceStatusSummary { siStatus :: InstanceStatusStatus+ , siDetails :: [InstanceStatusDetails]+ } deriving Show++instance FromJSON InstanceStatusSummary where+ parseJSON (Object v) = InstanceStatusSummary <$>+ (read <$> (v .: "status")) <*>+ v .: "details"+ parseJSON invalid = typeMismatch "InstanceStatusSummary" invalid++data InstanceStatus =+ InstanceStatus { isInstanceId :: T.Text+ , isAvailabilityZone :: T.Text+ , isInstanceStatus :: Maybe InstanceStatusSummary+ , isSystemStatus :: Maybe InstanceStatusSummary+ , isState :: Maybe InstanceState+ } deriving Show++instance FromJSON InstanceStatus where+ parseJSON (Object v) = InstanceStatus <$>+ v .: "instanceId" <*>+ v .: "availabilityZone" <*>+ v .:? "instanceStatus" <*>+ v .:? "systemStatus" <*>+ v .:? "instanceState"+ parseJSON invalid = typeMismatch "InstanceStatusSummary" invalid++newtype DescribeInstanceStatusResponse =+ DescribeInstanceStatusResponse {disrInstanceStatuses :: [InstanceStatus]} deriving (Show)++instance FromJSON DescribeInstanceStatusResponse where+ parseJSON v = DescribeInstanceStatusResponse <$>+ (maybeToList <$> parseJSON v)