{-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} -- Module : Network.AWS.RDS.DescribeDBParameters -- Copyright : (c) 2013-2014 Brendan Hay -- License : This Source Code Form is subject to the terms of -- the Mozilla Public License, v. 2.0. -- A copy of the MPL can be found in the LICENSE file or -- you can obtain it at http://mozilla.org/MPL/2.0/. -- Maintainer : Brendan Hay -- Stability : experimental -- Portability : non-portable (GHC extensions) -- | Returns the detailed parameter list for a particular DB parameter group. -- -- module Network.AWS.RDS.DescribeDBParameters ( -- * Request DescribeDBParameters -- ** Request constructor , describeDBParameters -- ** Request lenses , ddbpDBParameterGroupName , ddbpFilters , ddbpMarker , ddbpMaxRecords , ddbpSource -- * Response , DescribeDBParametersResponse -- ** Response constructor , describeDBParametersResponse -- ** Response lenses , ddbprMarker , ddbprParameters ) where import Network.AWS.Prelude import Network.AWS.Request.Query import Network.AWS.RDS.Types import qualified GHC.Exts data DescribeDBParameters = DescribeDBParameters { _ddbpDBParameterGroupName :: Text , _ddbpFilters :: List "Filter" Filter , _ddbpMarker :: Maybe Text , _ddbpMaxRecords :: Maybe Int , _ddbpSource :: Maybe Text } deriving (Eq, Show) -- | 'DescribeDBParameters' constructor. -- -- The fields accessible through corresponding lenses are: -- -- * 'ddbpDBParameterGroupName' @::@ 'Text' -- -- * 'ddbpFilters' @::@ ['Filter'] -- -- * 'ddbpMarker' @::@ 'Maybe' 'Text' -- -- * 'ddbpMaxRecords' @::@ 'Maybe' 'Int' -- -- * 'ddbpSource' @::@ 'Maybe' 'Text' -- describeDBParameters :: Text -- ^ 'ddbpDBParameterGroupName' -> DescribeDBParameters describeDBParameters p1 = DescribeDBParameters { _ddbpDBParameterGroupName = p1 , _ddbpSource = Nothing , _ddbpFilters = mempty , _ddbpMaxRecords = Nothing , _ddbpMarker = Nothing } -- | The name of a specific DB parameter group to return details for. -- -- Constraints: -- -- Must be 1 to 255 alphanumeric characters First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens -- ddbpDBParameterGroupName :: Lens' DescribeDBParameters Text ddbpDBParameterGroupName = lens _ddbpDBParameterGroupName (\s a -> s { _ddbpDBParameterGroupName = a }) -- | This parameter is not currently supported. ddbpFilters :: Lens' DescribeDBParameters [Filter] ddbpFilters = lens _ddbpFilters (\s a -> s { _ddbpFilters = a }) . _List -- | An optional pagination token provided by a previous 'DescribeDBParameters' -- request. If this parameter is specified, the response includes only records -- beyond the marker, up to the value specified by 'MaxRecords'. ddbpMarker :: Lens' DescribeDBParameters (Maybe Text) ddbpMarker = lens _ddbpMarker (\s a -> s { _ddbpMarker = a }) -- | The maximum number of records to include in the response. If more records -- exist than the specified 'MaxRecords' value, a pagination token called a marker -- is included in the response so that the remaining results may be retrieved. -- -- Default: 100 -- -- Constraints: minimum 20, maximum 100 ddbpMaxRecords :: Lens' DescribeDBParameters (Maybe Int) ddbpMaxRecords = lens _ddbpMaxRecords (\s a -> s { _ddbpMaxRecords = a }) -- | The parameter types to return. -- -- Default: All parameter types returned -- -- Valid Values: 'user | system | engine-default' ddbpSource :: Lens' DescribeDBParameters (Maybe Text) ddbpSource = lens _ddbpSource (\s a -> s { _ddbpSource = a }) data DescribeDBParametersResponse = DescribeDBParametersResponse { _ddbprMarker :: Maybe Text , _ddbprParameters :: List "Parameter" Parameter } deriving (Eq, Show) -- | 'DescribeDBParametersResponse' constructor. -- -- The fields accessible through corresponding lenses are: -- -- * 'ddbprMarker' @::@ 'Maybe' 'Text' -- -- * 'ddbprParameters' @::@ ['Parameter'] -- describeDBParametersResponse :: DescribeDBParametersResponse describeDBParametersResponse = DescribeDBParametersResponse { _ddbprParameters = mempty , _ddbprMarker = Nothing } -- | An optional pagination token provided by a previous request. If this -- parameter is specified, the response includes only records beyond the marker, -- up to the value specified by 'MaxRecords'. ddbprMarker :: Lens' DescribeDBParametersResponse (Maybe Text) ddbprMarker = lens _ddbprMarker (\s a -> s { _ddbprMarker = a }) -- | A list of 'Parameter' values. ddbprParameters :: Lens' DescribeDBParametersResponse [Parameter] ddbprParameters = lens _ddbprParameters (\s a -> s { _ddbprParameters = a }) . _List instance ToPath DescribeDBParameters where toPath = const "/" instance ToQuery DescribeDBParameters where toQuery DescribeDBParameters{..} = mconcat [ "DBParameterGroupName" =? _ddbpDBParameterGroupName , "Filters" =? _ddbpFilters , "Marker" =? _ddbpMarker , "MaxRecords" =? _ddbpMaxRecords , "Source" =? _ddbpSource ] instance ToHeaders DescribeDBParameters instance AWSRequest DescribeDBParameters where type Sv DescribeDBParameters = RDS type Rs DescribeDBParameters = DescribeDBParametersResponse request = post "DescribeDBParameters" response = xmlResponse instance FromXML DescribeDBParametersResponse where parseXML = withElement "DescribeDBParametersResult" $ \x -> DescribeDBParametersResponse <$> x .@? "Marker" <*> x .@ "Parameters" instance AWSPager DescribeDBParameters where page rq rs | stop (rq ^. ddbpMarker) = Nothing | otherwise = (\x -> rq & ddbpMarker ?~ x) <$> (rs ^. ddbprMarker)