module Network.AWS.AutoScaling.DescribeLoadBalancers
(
describeLoadBalancers
, DescribeLoadBalancers
, dlbNextToken
, dlbMaxRecords
, dlbAutoScalingGroupName
, describeLoadBalancersResponse
, DescribeLoadBalancersResponse
, dlbrsLoadBalancers
, dlbrsNextToken
, dlbrsStatus
) where
import Network.AWS.AutoScaling.Types
import Network.AWS.AutoScaling.Types.Product
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data DescribeLoadBalancers = DescribeLoadBalancers'
{ _dlbNextToken :: !(Maybe Text)
, _dlbMaxRecords :: !(Maybe Int)
, _dlbAutoScalingGroupName :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeLoadBalancers
:: Text
-> DescribeLoadBalancers
describeLoadBalancers pAutoScalingGroupName_ =
DescribeLoadBalancers'
{ _dlbNextToken = Nothing
, _dlbMaxRecords = Nothing
, _dlbAutoScalingGroupName = pAutoScalingGroupName_
}
dlbNextToken :: Lens' DescribeLoadBalancers (Maybe Text)
dlbNextToken = lens _dlbNextToken (\ s a -> s{_dlbNextToken = a});
dlbMaxRecords :: Lens' DescribeLoadBalancers (Maybe Int)
dlbMaxRecords = lens _dlbMaxRecords (\ s a -> s{_dlbMaxRecords = a});
dlbAutoScalingGroupName :: Lens' DescribeLoadBalancers Text
dlbAutoScalingGroupName = lens _dlbAutoScalingGroupName (\ s a -> s{_dlbAutoScalingGroupName = a});
instance AWSRequest DescribeLoadBalancers where
type Sv DescribeLoadBalancers = AutoScaling
type Rs DescribeLoadBalancers =
DescribeLoadBalancersResponse
request = postQuery
response
= receiveXMLWrapper "DescribeLoadBalancersResult"
(\ s h x ->
DescribeLoadBalancersResponse' <$>
(x .@? "LoadBalancers" .!@ mempty >>=
may (parseXMLList "member"))
<*> (x .@? "NextToken")
<*> (pure (fromEnum s)))
instance ToHeaders DescribeLoadBalancers where
toHeaders = const mempty
instance ToPath DescribeLoadBalancers where
toPath = const "/"
instance ToQuery DescribeLoadBalancers where
toQuery DescribeLoadBalancers'{..}
= mconcat
["Action" =: ("DescribeLoadBalancers" :: ByteString),
"Version" =: ("2011-01-01" :: ByteString),
"NextToken" =: _dlbNextToken,
"MaxRecords" =: _dlbMaxRecords,
"AutoScalingGroupName" =: _dlbAutoScalingGroupName]
data DescribeLoadBalancersResponse = DescribeLoadBalancersResponse'
{ _dlbrsLoadBalancers :: !(Maybe [LoadBalancerState])
, _dlbrsNextToken :: !(Maybe Text)
, _dlbrsStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeLoadBalancersResponse
:: Int
-> DescribeLoadBalancersResponse
describeLoadBalancersResponse pStatus_ =
DescribeLoadBalancersResponse'
{ _dlbrsLoadBalancers = Nothing
, _dlbrsNextToken = Nothing
, _dlbrsStatus = pStatus_
}
dlbrsLoadBalancers :: Lens' DescribeLoadBalancersResponse [LoadBalancerState]
dlbrsLoadBalancers = lens _dlbrsLoadBalancers (\ s a -> s{_dlbrsLoadBalancers = a}) . _Default . _Coerce;
dlbrsNextToken :: Lens' DescribeLoadBalancersResponse (Maybe Text)
dlbrsNextToken = lens _dlbrsNextToken (\ s a -> s{_dlbrsNextToken = a});
dlbrsStatus :: Lens' DescribeLoadBalancersResponse Int
dlbrsStatus = lens _dlbrsStatus (\ s a -> s{_dlbrsStatus = a});