module Network.AWS.EC2.DescribeRegions
(
DescribeRegions
, describeRegions
, dr1DryRun
, dr1Filters
, dr1RegionNames
, DescribeRegionsResponse
, describeRegionsResponse
, drrRegions
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.EC2.Types
import qualified GHC.Exts
data DescribeRegions = DescribeRegions
{ _dr1DryRun :: Maybe Bool
, _dr1Filters :: List "Filter" Filter
, _dr1RegionNames :: List "RegionName" Text
} deriving (Eq, Show)
describeRegions :: DescribeRegions
describeRegions = DescribeRegions
{ _dr1DryRun = Nothing
, _dr1RegionNames = mempty
, _dr1Filters = mempty
}
dr1DryRun :: Lens' DescribeRegions (Maybe Bool)
dr1DryRun = lens _dr1DryRun (\s a -> s { _dr1DryRun = a })
dr1Filters :: Lens' DescribeRegions [Filter]
dr1Filters = lens _dr1Filters (\s a -> s { _dr1Filters = a }) . _List
dr1RegionNames :: Lens' DescribeRegions [Text]
dr1RegionNames = lens _dr1RegionNames (\s a -> s { _dr1RegionNames = a }) . _List
newtype DescribeRegionsResponse = DescribeRegionsResponse
{ _drrRegions :: List "item" Region
} deriving (Eq, Show, Monoid, Semigroup)
instance GHC.Exts.IsList DescribeRegionsResponse where
type Item DescribeRegionsResponse = Region
fromList = DescribeRegionsResponse . GHC.Exts.fromList
toList = GHC.Exts.toList . _drrRegions
describeRegionsResponse :: DescribeRegionsResponse
describeRegionsResponse = DescribeRegionsResponse
{ _drrRegions = mempty
}
drrRegions :: Lens' DescribeRegionsResponse [Region]
drrRegions = lens _drrRegions (\s a -> s { _drrRegions = a }) . _List
instance ToPath DescribeRegions where
toPath = const "/"
instance ToQuery DescribeRegions where
toQuery DescribeRegions{..} = mconcat
[ "dryRun" =? _dr1DryRun
, "Filter" =? _dr1Filters
, "RegionName" =? _dr1RegionNames
]
instance ToHeaders DescribeRegions
instance AWSRequest DescribeRegions where
type Sv DescribeRegions = EC2
type Rs DescribeRegions = DescribeRegionsResponse
request = post "DescribeRegions"
response = xmlResponse
instance FromXML DescribeRegionsResponse where
parseXML x = DescribeRegionsResponse
<$> x .@ "regionInfo"