module Network.AWS.ECS.DescribeClusters
(
DescribeClusters
, describeClusters
, dcClusters
, DescribeClustersResponse
, describeClustersResponse
, dcrClusters
, dcrFailures
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.ECS.Types
import qualified GHC.Exts
newtype DescribeClusters = DescribeClusters
{ _dcClusters :: List "member" Text
} deriving (Eq, Ord, Read, Show, Monoid, Semigroup)
instance GHC.Exts.IsList DescribeClusters where
type Item DescribeClusters = Text
fromList = DescribeClusters . GHC.Exts.fromList
toList = GHC.Exts.toList . _dcClusters
describeClusters :: DescribeClusters
describeClusters = DescribeClusters
{ _dcClusters = mempty
}
dcClusters :: Lens' DescribeClusters [Text]
dcClusters = lens _dcClusters (\s a -> s { _dcClusters = a }) . _List
data DescribeClustersResponse = DescribeClustersResponse
{ _dcrClusters :: List "member" Cluster
, _dcrFailures :: List "member" Failure
} deriving (Eq, Read, Show)
describeClustersResponse :: DescribeClustersResponse
describeClustersResponse = DescribeClustersResponse
{ _dcrClusters = mempty
, _dcrFailures = mempty
}
dcrClusters :: Lens' DescribeClustersResponse [Cluster]
dcrClusters = lens _dcrClusters (\s a -> s { _dcrClusters = a }) . _List
dcrFailures :: Lens' DescribeClustersResponse [Failure]
dcrFailures = lens _dcrFailures (\s a -> s { _dcrFailures = a }) . _List
instance ToPath DescribeClusters where
toPath = const "/"
instance ToQuery DescribeClusters where
toQuery DescribeClusters{..} = mconcat
[ "clusters" =? _dcClusters
]
instance ToHeaders DescribeClusters
instance AWSRequest DescribeClusters where
type Sv DescribeClusters = ECS
type Rs DescribeClusters = DescribeClustersResponse
request = post "DescribeClusters"
response = xmlResponse
instance FromXML DescribeClustersResponse where
parseXML = withElement "DescribeClustersResult" $ \x -> DescribeClustersResponse
<$> x .@? "clusters" .!@ mempty
<*> x .@? "failures" .!@ mempty