module Network.AWS.ElastiCache.DescribeCacheParameterGroups
(
DescribeCacheParameterGroups
, describeCacheParameterGroups
, dcpgCacheParameterGroupName
, dcpgMarker
, dcpgMaxRecords
, DescribeCacheParameterGroupsResponse
, describeCacheParameterGroupsResponse
, dcpgrCacheParameterGroups
, dcpgrMarker
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.ElastiCache.Types
import qualified GHC.Exts
data DescribeCacheParameterGroups = DescribeCacheParameterGroups
{ _dcpgCacheParameterGroupName :: Maybe Text
, _dcpgMarker :: Maybe Text
, _dcpgMaxRecords :: Maybe Int
} deriving (Eq, Ord, Show)
describeCacheParameterGroups :: DescribeCacheParameterGroups
describeCacheParameterGroups = DescribeCacheParameterGroups
{ _dcpgCacheParameterGroupName = Nothing
, _dcpgMaxRecords = Nothing
, _dcpgMarker = Nothing
}
dcpgCacheParameterGroupName :: Lens' DescribeCacheParameterGroups (Maybe Text)
dcpgCacheParameterGroupName =
lens _dcpgCacheParameterGroupName
(\s a -> s { _dcpgCacheParameterGroupName = a })
dcpgMarker :: Lens' DescribeCacheParameterGroups (Maybe Text)
dcpgMarker = lens _dcpgMarker (\s a -> s { _dcpgMarker = a })
dcpgMaxRecords :: Lens' DescribeCacheParameterGroups (Maybe Int)
dcpgMaxRecords = lens _dcpgMaxRecords (\s a -> s { _dcpgMaxRecords = a })
data DescribeCacheParameterGroupsResponse = DescribeCacheParameterGroupsResponse
{ _dcpgrCacheParameterGroups :: List "member" CacheParameterGroup
, _dcpgrMarker :: Maybe Text
} deriving (Eq, Show)
describeCacheParameterGroupsResponse :: DescribeCacheParameterGroupsResponse
describeCacheParameterGroupsResponse = DescribeCacheParameterGroupsResponse
{ _dcpgrMarker = Nothing
, _dcpgrCacheParameterGroups = mempty
}
dcpgrCacheParameterGroups :: Lens' DescribeCacheParameterGroupsResponse [CacheParameterGroup]
dcpgrCacheParameterGroups =
lens _dcpgrCacheParameterGroups
(\s a -> s { _dcpgrCacheParameterGroups = a })
. _List
dcpgrMarker :: Lens' DescribeCacheParameterGroupsResponse (Maybe Text)
dcpgrMarker = lens _dcpgrMarker (\s a -> s { _dcpgrMarker = a })
instance ToPath DescribeCacheParameterGroups where
toPath = const "/"
instance ToQuery DescribeCacheParameterGroups where
toQuery DescribeCacheParameterGroups{..} = mconcat
[ "CacheParameterGroupName" =? _dcpgCacheParameterGroupName
, "Marker" =? _dcpgMarker
, "MaxRecords" =? _dcpgMaxRecords
]
instance ToHeaders DescribeCacheParameterGroups
instance AWSRequest DescribeCacheParameterGroups where
type Sv DescribeCacheParameterGroups = ElastiCache
type Rs DescribeCacheParameterGroups = DescribeCacheParameterGroupsResponse
request = post "DescribeCacheParameterGroups"
response = xmlResponse
instance FromXML DescribeCacheParameterGroupsResponse where
parseXML = withElement "DescribeCacheParameterGroupsResult" $ \x -> DescribeCacheParameterGroupsResponse
<$> x .@ "CacheParameterGroups"
<*> x .@? "Marker"
instance AWSPager DescribeCacheParameterGroups where
page rq rs
| stop (rq ^. dcpgMarker) = Nothing
| otherwise = (\x -> rq & dcpgMarker ?~ x)
<$> (rs ^. dcpgrMarker)