{-# 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.DescribeRules
(
describeRules
, DescribeRules
, drListenerARN
, drMarker
, drRuleARNs
, drPageSize
, describeRulesResponse
, DescribeRulesResponse
, drsrsRules
, drsrsNextMarker
, drsrsResponseStatus
) where
import Network.AWS.ELBv2.Types
import Network.AWS.ELBv2.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data DescribeRules = DescribeRules'
{ _drListenerARN :: !(Maybe Text)
, _drMarker :: !(Maybe Text)
, _drRuleARNs :: !(Maybe [Text])
, _drPageSize :: !(Maybe Nat)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeRules
:: DescribeRules
describeRules =
DescribeRules'
{ _drListenerARN = Nothing
, _drMarker = Nothing
, _drRuleARNs = Nothing
, _drPageSize = Nothing
}
drListenerARN :: Lens' DescribeRules (Maybe Text)
drListenerARN = lens _drListenerARN (\ s a -> s{_drListenerARN = a})
drMarker :: Lens' DescribeRules (Maybe Text)
drMarker = lens _drMarker (\ s a -> s{_drMarker = a})
drRuleARNs :: Lens' DescribeRules [Text]
drRuleARNs = lens _drRuleARNs (\ s a -> s{_drRuleARNs = a}) . _Default . _Coerce
drPageSize :: Lens' DescribeRules (Maybe Natural)
drPageSize = lens _drPageSize (\ s a -> s{_drPageSize = a}) . mapping _Nat
instance AWSRequest DescribeRules where
type Rs DescribeRules = DescribeRulesResponse
request = postQuery eLBv2
response
= receiveXMLWrapper "DescribeRulesResult"
(\ s h x ->
DescribeRulesResponse' <$>
(x .@? "Rules" .!@ mempty >>=
may (parseXMLList "member"))
<*> (x .@? "NextMarker")
<*> (pure (fromEnum s)))
instance Hashable DescribeRules where
instance NFData DescribeRules where
instance ToHeaders DescribeRules where
toHeaders = const mempty
instance ToPath DescribeRules where
toPath = const "/"
instance ToQuery DescribeRules where
toQuery DescribeRules'{..}
= mconcat
["Action" =: ("DescribeRules" :: ByteString),
"Version" =: ("2015-12-01" :: ByteString),
"ListenerArn" =: _drListenerARN,
"Marker" =: _drMarker,
"RuleArns" =:
toQuery (toQueryList "member" <$> _drRuleARNs),
"PageSize" =: _drPageSize]
data DescribeRulesResponse = DescribeRulesResponse'
{ _drsrsRules :: !(Maybe [Rule])
, _drsrsNextMarker :: !(Maybe Text)
, _drsrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeRulesResponse
:: Int
-> DescribeRulesResponse
describeRulesResponse pResponseStatus_ =
DescribeRulesResponse'
{ _drsrsRules = Nothing
, _drsrsNextMarker = Nothing
, _drsrsResponseStatus = pResponseStatus_
}
drsrsRules :: Lens' DescribeRulesResponse [Rule]
drsrsRules = lens _drsrsRules (\ s a -> s{_drsrsRules = a}) . _Default . _Coerce
drsrsNextMarker :: Lens' DescribeRulesResponse (Maybe Text)
drsrsNextMarker = lens _drsrsNextMarker (\ s a -> s{_drsrsNextMarker = a})
drsrsResponseStatus :: Lens' DescribeRulesResponse Int
drsrsResponseStatus = lens _drsrsResponseStatus (\ s a -> s{_drsrsResponseStatus = a})
instance NFData DescribeRulesResponse where