{-# LANGUAGE TemplateHaskell , MultiParamTypeClasses , TypeFamilies , RecordWildCards #-} module Aws.Ec2.Commands.DescribeSecurityGroups where import Aws.Ec2.TH type SecurityGroupId = Text type SecurityGroupName = Text data DescribeSecurityGroups = DescribeSecurityGroups { sg_ids :: [SecurityGroupId] , sg_names :: [SecurityGroupName] } deriving (Show) instance SignQuery DescribeSecurityGroups where type ServiceConfiguration DescribeSecurityGroups = EC2Configuration signQuery DescribeSecurityGroups{..} = ec2SignQuery $ [ ("Action", qArg "DescribeSecurityGroups") , defVersion ] +++ enumerate "GroupId" sg_ids qArg +++ case sg_names of [] -> [] _ -> ("Filter.1.Name", qArg "group-name"):(enumerate "Filter.1.Value" sg_names qArg) EC2VALUETRANSACTION(DescribeSecurityGroups,"securityGroupInfo")