{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Network.AWS.ELBv2.DescribeListeners
(
describeListeners
, DescribeListeners
, dlListenerARNs
, dlLoadBalancerARN
, dlMarker
, dlPageSize
, describeListenersResponse
, DescribeListenersResponse
, dlsrsNextMarker
, dlsrsListeners
, dlsrsResponseStatus
) where
import Network.AWS.ELBv2.Types
import Network.AWS.ELBv2.Types.Product
import Network.AWS.Lens
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data DescribeListeners = DescribeListeners'
{ _dlListenerARNs :: !(Maybe [Text])
, _dlLoadBalancerARN :: !(Maybe Text)
, _dlMarker :: !(Maybe Text)
, _dlPageSize :: !(Maybe Nat)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeListeners
:: DescribeListeners
describeListeners =
DescribeListeners'
{ _dlListenerARNs = Nothing
, _dlLoadBalancerARN = Nothing
, _dlMarker = Nothing
, _dlPageSize = Nothing
}
dlListenerARNs :: Lens' DescribeListeners [Text]
dlListenerARNs = lens _dlListenerARNs (\ s a -> s{_dlListenerARNs = a}) . _Default . _Coerce
dlLoadBalancerARN :: Lens' DescribeListeners (Maybe Text)
dlLoadBalancerARN = lens _dlLoadBalancerARN (\ s a -> s{_dlLoadBalancerARN = a})
dlMarker :: Lens' DescribeListeners (Maybe Text)
dlMarker = lens _dlMarker (\ s a -> s{_dlMarker = a})
dlPageSize :: Lens' DescribeListeners (Maybe Natural)
dlPageSize = lens _dlPageSize (\ s a -> s{_dlPageSize = a}) . mapping _Nat
instance AWSPager DescribeListeners where
page rq rs
| stop (rs ^. dlsrsNextMarker) = Nothing
| stop (rs ^. dlsrsListeners) = Nothing
| otherwise =
Just $ rq & dlMarker .~ rs ^. dlsrsNextMarker
instance AWSRequest DescribeListeners where
type Rs DescribeListeners = DescribeListenersResponse
request = postQuery eLBv2
response
= receiveXMLWrapper "DescribeListenersResult"
(\ s h x ->
DescribeListenersResponse' <$>
(x .@? "NextMarker") <*>
(x .@? "Listeners" .!@ mempty >>=
may (parseXMLList "member"))
<*> (pure (fromEnum s)))
instance Hashable DescribeListeners where
instance NFData DescribeListeners where
instance ToHeaders DescribeListeners where
toHeaders = const mempty
instance ToPath DescribeListeners where
toPath = const "/"
instance ToQuery DescribeListeners where
toQuery DescribeListeners'{..}
= mconcat
["Action" =: ("DescribeListeners" :: ByteString),
"Version" =: ("2015-12-01" :: ByteString),
"ListenerArns" =:
toQuery (toQueryList "member" <$> _dlListenerARNs),
"LoadBalancerArn" =: _dlLoadBalancerARN,
"Marker" =: _dlMarker, "PageSize" =: _dlPageSize]
data DescribeListenersResponse = DescribeListenersResponse'
{ _dlsrsNextMarker :: !(Maybe Text)
, _dlsrsListeners :: !(Maybe [Listener])
, _dlsrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeListenersResponse
:: Int
-> DescribeListenersResponse
describeListenersResponse pResponseStatus_ =
DescribeListenersResponse'
{ _dlsrsNextMarker = Nothing
, _dlsrsListeners = Nothing
, _dlsrsResponseStatus = pResponseStatus_
}
dlsrsNextMarker :: Lens' DescribeListenersResponse (Maybe Text)
dlsrsNextMarker = lens _dlsrsNextMarker (\ s a -> s{_dlsrsNextMarker = a})
dlsrsListeners :: Lens' DescribeListenersResponse [Listener]
dlsrsListeners = lens _dlsrsListeners (\ s a -> s{_dlsrsListeners = a}) . _Default . _Coerce
dlsrsResponseStatus :: Lens' DescribeListenersResponse Int
dlsrsResponseStatus = lens _dlsrsResponseStatus (\ s a -> s{_dlsrsResponseStatus = a})
instance NFData DescribeListenersResponse where