{-# LANGUAGE FlexibleContexts #-}moduleAWS.EC2.PlacementGroup(describePlacementGroups,createPlacementGroup,deletePlacementGroup)whereimportControl.Applicative((<$>),(<*>))importData.ConduitimportData.Text(Text)importData.XML.Types(Event)importAWS.EC2.Internal(EC2,itemConduit)importAWS.EC2.Query(ec2Query,ec2QuerySource)importAWS.EC2.Types(Filter,PlacementGroup(..),PlacementGroupStrategy(..))importAWS.Lib.Parser(getT)importAWS.Lib.Query((|=),(|.#=),filtersParam)describePlacementGroups::(MonadResourcem,MonadBaseControlIOm)=>[Text]-- ^ Placement group names.->[Filter]-- ^ Filters->EC2m(ResumableSourcemPlacementGroup)describePlacementGroupsgroupNamesfilters=ec2QuerySource"DescribePlacementGroups"params$itemConduit"placementGroupSet"placementGroupSinkwhereparams=["GroupName"|.#=groupNames,filtersParamfilters]placementGroupSink::MonadThrowm=>GLSinkEventmPlacementGroupplacementGroupSink=PlacementGroup<$>getT"groupName"<*>getT"strategy"<*>getT"state"createPlacementGroup::(MonadResourcem,MonadBaseControlIOm)=>Text-- ^ A name for the placement group.->PlacementGroupStrategy-- ^ The placement group strategy.->EC2mBoolcreatePlacementGroupgroupNamestrategy=ec2Query"CreatePlacementGroup"params$getT"return"whereparams=["GroupName"|=groupName,"Strategy"|=stringifyStrategystrategy]stringifyStrategy::PlacementGroupStrategy->TextstringifyStrategyPlacementGroupStrategyCluster="cluster"deletePlacementGroup::(MonadResourcem,MonadBaseControlIOm)=>Text-- ^ The name of the placement group.->EC2mBooldeletePlacementGroupgroupName=ec2Query"DeletePlacementGroup"["GroupName"|=groupName]$getT"return"