{-# LANGUAGE TypeFamilies , MultiParamTypeClasses , FlexibleInstances , OverloadedStrings , RecordWildCards , TemplateHaskell , LambdaCase #-} module Aws.Ec2.Commands.TerminateInstances where import Data.Text () import Data.ByteString.Char8 (pack) import qualified Network.HTTP.Types as HTTP import Data.Monoid import Aws.Ec2.TH -- http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-TerminateInstances.html data TerminateInstances = TerminateInstances { term_instanceIds :: [Text] } deriving (Show) instance SignQuery TerminateInstances where type ServiceConfiguration TerminateInstances = EC2Configuration signQuery TerminateInstances{..} = ec2SignQuery $ main +++ enumerateInstances (zip [1..] term_instanceIds) where main :: HTTP.Query main = [ ("Action", qArg "TerminateInstances") , defVersion ] enumerateInstances :: [(Int,Text)] -> HTTP.Query enumerateInstances [] = [] enumerateInstances ((i,x):xs) = [("InstanceId." <> pack (show i), qArg x)] +++ enumerateInstances xs EC2VALUETRANSACTION(TerminateInstances,"TerminateInstancesResponse")