module Network.AWS.RDS.DescribeDBInstances
(
DescribeDBInstances
, describeDBInstances
, ddbi1DBInstanceIdentifier
, ddbi1Filters
, ddbi1Marker
, ddbi1MaxRecords
, DescribeDBInstancesResponse
, describeDBInstancesResponse
, ddbirDBInstances
, ddbirMarker
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.RDS.Types
import qualified GHC.Exts
data DescribeDBInstances = DescribeDBInstances
{ _ddbi1DBInstanceIdentifier :: Maybe Text
, _ddbi1Filters :: List "member" Filter
, _ddbi1Marker :: Maybe Text
, _ddbi1MaxRecords :: Maybe Int
} deriving (Eq, Read, Show)
describeDBInstances :: DescribeDBInstances
describeDBInstances = DescribeDBInstances
{ _ddbi1DBInstanceIdentifier = Nothing
, _ddbi1Filters = mempty
, _ddbi1MaxRecords = Nothing
, _ddbi1Marker = Nothing
}
ddbi1DBInstanceIdentifier :: Lens' DescribeDBInstances (Maybe Text)
ddbi1DBInstanceIdentifier =
lens _ddbi1DBInstanceIdentifier
(\s a -> s { _ddbi1DBInstanceIdentifier = a })
ddbi1Filters :: Lens' DescribeDBInstances [Filter]
ddbi1Filters = lens _ddbi1Filters (\s a -> s { _ddbi1Filters = a }) . _List
ddbi1Marker :: Lens' DescribeDBInstances (Maybe Text)
ddbi1Marker = lens _ddbi1Marker (\s a -> s { _ddbi1Marker = a })
ddbi1MaxRecords :: Lens' DescribeDBInstances (Maybe Int)
ddbi1MaxRecords = lens _ddbi1MaxRecords (\s a -> s { _ddbi1MaxRecords = a })
data DescribeDBInstancesResponse = DescribeDBInstancesResponse
{ _ddbirDBInstances :: List "member" DBInstance
, _ddbirMarker :: Maybe Text
} deriving (Eq, Read, Show)
describeDBInstancesResponse :: DescribeDBInstancesResponse
describeDBInstancesResponse = DescribeDBInstancesResponse
{ _ddbirMarker = Nothing
, _ddbirDBInstances = mempty
}
ddbirDBInstances :: Lens' DescribeDBInstancesResponse [DBInstance]
ddbirDBInstances = lens _ddbirDBInstances (\s a -> s { _ddbirDBInstances = a }) . _List
ddbirMarker :: Lens' DescribeDBInstancesResponse (Maybe Text)
ddbirMarker = lens _ddbirMarker (\s a -> s { _ddbirMarker = a })
instance ToPath DescribeDBInstances where
toPath = const "/"
instance ToQuery DescribeDBInstances where
toQuery DescribeDBInstances{..} = mconcat
[ "DBInstanceIdentifier" =? _ddbi1DBInstanceIdentifier
, "Filters" =? _ddbi1Filters
, "Marker" =? _ddbi1Marker
, "MaxRecords" =? _ddbi1MaxRecords
]
instance ToHeaders DescribeDBInstances
instance AWSRequest DescribeDBInstances where
type Sv DescribeDBInstances = RDS
type Rs DescribeDBInstances = DescribeDBInstancesResponse
request = post "DescribeDBInstances"
response = xmlResponse
instance FromXML DescribeDBInstancesResponse where
parseXML = withElement "DescribeDBInstancesResult" $ \x -> DescribeDBInstancesResponse
<$> x .@? "DBInstances" .!@ mempty
<*> x .@? "Marker"
instance AWSPager DescribeDBInstances where
page rq rs
| stop (rs ^. ddbirMarker) = Nothing
| otherwise = (\x -> rq & ddbi1Marker ?~ x)
<$> (rs ^. ddbirMarker)