module Aws.Ec2.Commands.DescribeInstances where
import Data.Aeson (Value (..), FromJSON, parseJSON)
import Aws.Ec2.TH
data DescribeInstances = DescribeInstances { di_instanceIds :: [Text] }
deriving (Show)
instance SignQuery DescribeInstances where
type ServiceConfiguration DescribeInstances = EC2Configuration
signQuery DescribeInstances{..} = ec2SignQuery $
[ ("Action", qArg "DescribeInstances")
, defVersion
] +++ enumerate "InstanceId" di_instanceIds qArg
ec2ValueTransaction ''DescribeInstances "reservationSet"
newtype DescribeInstancesResponse =
DescribeInstancesResponse {dirReservations :: [Reservation]} deriving (Show)
instance FromJSON DescribeInstancesResponse where
parseJSON v = DescribeInstancesResponse <$>
(maybeToList <$> parseJSON v)