{-# 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
, drRuleARNs
, describeRulesResponse
, DescribeRulesResponse
, drsrsRules
, 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)
, _drRuleARNs :: !(Maybe [Text])
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeRules
:: DescribeRules
describeRules =
DescribeRules'
{ _drListenerARN = Nothing
, _drRuleARNs = Nothing
}
drListenerARN :: Lens' DescribeRules (Maybe Text)
drListenerARN = lens _drListenerARN (\ s a -> s{_drListenerARN = a});
drRuleARNs :: Lens' DescribeRules [Text]
drRuleARNs = lens _drRuleARNs (\ s a -> s{_drRuleARNs = a}) . _Default . _Coerce;
instance AWSRequest DescribeRules where
type Rs DescribeRules = DescribeRulesResponse
request = postQuery eLBv2
response
= receiveXMLWrapper "DescribeRulesResult"
(\ s h x ->
DescribeRulesResponse' <$>
(x .@? "Rules" .!@ mempty >>=
may (parseXMLList "member"))
<*> (pure (fromEnum s)))
instance Hashable DescribeRules
instance NFData DescribeRules
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,
"RuleArns" =:
toQuery (toQueryList "member" <$> _drRuleARNs)]
data DescribeRulesResponse = DescribeRulesResponse'
{ _drsrsRules :: !(Maybe [Rule])
, _drsrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeRulesResponse
:: Int
-> DescribeRulesResponse
describeRulesResponse pResponseStatus_ =
DescribeRulesResponse'
{ _drsrsRules = Nothing
, _drsrsResponseStatus = pResponseStatus_
}
drsrsRules :: Lens' DescribeRulesResponse [Rule]
drsrsRules = lens _drsrsRules (\ s a -> s{_drsrsRules = a}) . _Default . _Coerce;
drsrsResponseStatus :: Lens' DescribeRulesResponse Int
drsrsResponseStatus = lens _drsrsResponseStatus (\ s a -> s{_drsrsResponseStatus = a});
instance NFData DescribeRulesResponse