module Network.AWS.ElastiCache.DescribeCacheParameters
(
DescribeCacheParameters
, describeCacheParameters
, dcpCacheParameterGroupName
, dcpMarker
, dcpMaxRecords
, dcpSource
, DescribeCacheParametersResponse
, describeCacheParametersResponse
, dcprCacheNodeTypeSpecificParameters
, dcprMarker
, dcprParameters
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.ElastiCache.Types
import qualified GHC.Exts
data DescribeCacheParameters = DescribeCacheParameters
{ _dcpCacheParameterGroupName :: Text
, _dcpMarker :: Maybe Text
, _dcpMaxRecords :: Maybe Int
, _dcpSource :: Maybe Text
} deriving (Eq, Ord, Show)
describeCacheParameters :: Text
-> DescribeCacheParameters
describeCacheParameters p1 = DescribeCacheParameters
{ _dcpCacheParameterGroupName = p1
, _dcpSource = Nothing
, _dcpMaxRecords = Nothing
, _dcpMarker = Nothing
}
dcpCacheParameterGroupName :: Lens' DescribeCacheParameters Text
dcpCacheParameterGroupName =
lens _dcpCacheParameterGroupName
(\s a -> s { _dcpCacheParameterGroupName = a })
dcpMarker :: Lens' DescribeCacheParameters (Maybe Text)
dcpMarker = lens _dcpMarker (\s a -> s { _dcpMarker = a })
dcpMaxRecords :: Lens' DescribeCacheParameters (Maybe Int)
dcpMaxRecords = lens _dcpMaxRecords (\s a -> s { _dcpMaxRecords = a })
dcpSource :: Lens' DescribeCacheParameters (Maybe Text)
dcpSource = lens _dcpSource (\s a -> s { _dcpSource = a })
data DescribeCacheParametersResponse = DescribeCacheParametersResponse
{ _dcprCacheNodeTypeSpecificParameters :: List "member" CacheNodeTypeSpecificParameter
, _dcprMarker :: Maybe Text
, _dcprParameters :: List "member" Parameter
} deriving (Eq, Show)
describeCacheParametersResponse :: DescribeCacheParametersResponse
describeCacheParametersResponse = DescribeCacheParametersResponse
{ _dcprMarker = Nothing
, _dcprParameters = mempty
, _dcprCacheNodeTypeSpecificParameters = mempty
}
dcprCacheNodeTypeSpecificParameters :: Lens' DescribeCacheParametersResponse [CacheNodeTypeSpecificParameter]
dcprCacheNodeTypeSpecificParameters =
lens _dcprCacheNodeTypeSpecificParameters
(\s a -> s { _dcprCacheNodeTypeSpecificParameters = a })
. _List
dcprMarker :: Lens' DescribeCacheParametersResponse (Maybe Text)
dcprMarker = lens _dcprMarker (\s a -> s { _dcprMarker = a })
dcprParameters :: Lens' DescribeCacheParametersResponse [Parameter]
dcprParameters = lens _dcprParameters (\s a -> s { _dcprParameters = a }) . _List
instance ToPath DescribeCacheParameters where
toPath = const "/"
instance ToQuery DescribeCacheParameters where
toQuery DescribeCacheParameters{..} = mconcat
[ "CacheParameterGroupName" =? _dcpCacheParameterGroupName
, "Marker" =? _dcpMarker
, "MaxRecords" =? _dcpMaxRecords
, "Source" =? _dcpSource
]
instance ToHeaders DescribeCacheParameters
instance AWSRequest DescribeCacheParameters where
type Sv DescribeCacheParameters = ElastiCache
type Rs DescribeCacheParameters = DescribeCacheParametersResponse
request = post "DescribeCacheParameters"
response = xmlResponse
instance FromXML DescribeCacheParametersResponse where
parseXML = withElement "DescribeCacheParametersResult" $ \x -> DescribeCacheParametersResponse
<$> x .@? "CacheNodeTypeSpecificParameters" .!@ mempty
<*> x .@? "Marker"
<*> x .@? "Parameters" .!@ mempty
instance AWSPager DescribeCacheParameters where
page rq rs
| stop (rq ^. dcpMarker) = Nothing
| otherwise = (\x -> rq & dcpMarker ?~ x)
<$> (rs ^. dcprMarker)