module Network.AWS.RDS.DescribeEventSubscriptions
(
DescribeEventSubscriptions
, describeEventSubscriptions
, des1Filters
, des1Marker
, des1MaxRecords
, des1SubscriptionName
, DescribeEventSubscriptionsResponse
, describeEventSubscriptionsResponse
, desrEventSubscriptionsList
, desrMarker
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.RDS.Types
import qualified GHC.Exts
data DescribeEventSubscriptions = DescribeEventSubscriptions
{ _des1Filters :: List "Filter" Filter
, _des1Marker :: Maybe Text
, _des1MaxRecords :: Maybe Int
, _des1SubscriptionName :: Maybe Text
} deriving (Eq, Show)
describeEventSubscriptions :: DescribeEventSubscriptions
describeEventSubscriptions = DescribeEventSubscriptions
{ _des1SubscriptionName = Nothing
, _des1Filters = mempty
, _des1MaxRecords = Nothing
, _des1Marker = Nothing
}
des1Filters :: Lens' DescribeEventSubscriptions [Filter]
des1Filters = lens _des1Filters (\s a -> s { _des1Filters = a }) . _List
des1Marker :: Lens' DescribeEventSubscriptions (Maybe Text)
des1Marker = lens _des1Marker (\s a -> s { _des1Marker = a })
des1MaxRecords :: Lens' DescribeEventSubscriptions (Maybe Int)
des1MaxRecords = lens _des1MaxRecords (\s a -> s { _des1MaxRecords = a })
des1SubscriptionName :: Lens' DescribeEventSubscriptions (Maybe Text)
des1SubscriptionName =
lens _des1SubscriptionName (\s a -> s { _des1SubscriptionName = a })
data DescribeEventSubscriptionsResponse = DescribeEventSubscriptionsResponse
{ _desrEventSubscriptionsList :: List "EventSubscription" EventSubscription
, _desrMarker :: Maybe Text
} deriving (Eq, Show)
describeEventSubscriptionsResponse :: DescribeEventSubscriptionsResponse
describeEventSubscriptionsResponse = DescribeEventSubscriptionsResponse
{ _desrMarker = Nothing
, _desrEventSubscriptionsList = mempty
}
desrEventSubscriptionsList :: Lens' DescribeEventSubscriptionsResponse [EventSubscription]
desrEventSubscriptionsList =
lens _desrEventSubscriptionsList
(\s a -> s { _desrEventSubscriptionsList = a })
. _List
desrMarker :: Lens' DescribeEventSubscriptionsResponse (Maybe Text)
desrMarker = lens _desrMarker (\s a -> s { _desrMarker = a })
instance ToPath DescribeEventSubscriptions where
toPath = const "/"
instance ToQuery DescribeEventSubscriptions where
toQuery DescribeEventSubscriptions{..} = mconcat
[ "Filters" =? _des1Filters
, "Marker" =? _des1Marker
, "MaxRecords" =? _des1MaxRecords
, "SubscriptionName" =? _des1SubscriptionName
]
instance ToHeaders DescribeEventSubscriptions
instance AWSRequest DescribeEventSubscriptions where
type Sv DescribeEventSubscriptions = RDS
type Rs DescribeEventSubscriptions = DescribeEventSubscriptionsResponse
request = post "DescribeEventSubscriptions"
response = xmlResponse
instance FromXML DescribeEventSubscriptionsResponse where
parseXML = withElement "DescribeEventSubscriptionsResult" $ \x -> DescribeEventSubscriptionsResponse
<$> x .@ "EventSubscriptionsList"
<*> x .@? "Marker"
instance AWSPager DescribeEventSubscriptions where
page rq rs
| stop (rq ^. des1Marker) = Nothing
| otherwise = (\x -> rq & des1Marker ?~ x)
<$> (rs ^. desrMarker)