module Network.AWS.AutoScaling.DescribeAutoScalingInstances
(
describeAutoScalingInstances
, DescribeAutoScalingInstances
, dasiNextToken
, dasiInstanceIds
, dasiMaxRecords
, describeAutoScalingInstancesResponse
, DescribeAutoScalingInstancesResponse
, dasirsNextToken
, dasirsAutoScalingInstances
, dasirsStatus
) where
import Network.AWS.AutoScaling.Types
import Network.AWS.AutoScaling.Types.Product
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data DescribeAutoScalingInstances = DescribeAutoScalingInstances'
{ _dasiNextToken :: !(Maybe Text)
, _dasiInstanceIds :: !(Maybe [Text])
, _dasiMaxRecords :: !(Maybe Int)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeAutoScalingInstances
:: DescribeAutoScalingInstances
describeAutoScalingInstances =
DescribeAutoScalingInstances'
{ _dasiNextToken = Nothing
, _dasiInstanceIds = Nothing
, _dasiMaxRecords = Nothing
}
dasiNextToken :: Lens' DescribeAutoScalingInstances (Maybe Text)
dasiNextToken = lens _dasiNextToken (\ s a -> s{_dasiNextToken = a});
dasiInstanceIds :: Lens' DescribeAutoScalingInstances [Text]
dasiInstanceIds = lens _dasiInstanceIds (\ s a -> s{_dasiInstanceIds = a}) . _Default . _Coerce;
dasiMaxRecords :: Lens' DescribeAutoScalingInstances (Maybe Int)
dasiMaxRecords = lens _dasiMaxRecords (\ s a -> s{_dasiMaxRecords = a});
instance AWSPager DescribeAutoScalingInstances where
page rq rs
| stop (rs ^. dasirsNextToken) = Nothing
| stop (rs ^. dasirsAutoScalingInstances) = Nothing
| otherwise =
Just $ rq & dasiNextToken .~ rs ^. dasirsNextToken
instance AWSRequest DescribeAutoScalingInstances
where
type Rs DescribeAutoScalingInstances =
DescribeAutoScalingInstancesResponse
request = postQuery autoScaling
response
= receiveXMLWrapper
"DescribeAutoScalingInstancesResult"
(\ s h x ->
DescribeAutoScalingInstancesResponse' <$>
(x .@? "NextToken") <*>
(x .@? "AutoScalingInstances" .!@ mempty >>=
may (parseXMLList "member"))
<*> (pure (fromEnum s)))
instance ToHeaders DescribeAutoScalingInstances where
toHeaders = const mempty
instance ToPath DescribeAutoScalingInstances where
toPath = const "/"
instance ToQuery DescribeAutoScalingInstances where
toQuery DescribeAutoScalingInstances'{..}
= mconcat
["Action" =:
("DescribeAutoScalingInstances" :: ByteString),
"Version" =: ("2011-01-01" :: ByteString),
"NextToken" =: _dasiNextToken,
"InstanceIds" =:
toQuery (toQueryList "member" <$> _dasiInstanceIds),
"MaxRecords" =: _dasiMaxRecords]
data DescribeAutoScalingInstancesResponse = DescribeAutoScalingInstancesResponse'
{ _dasirsNextToken :: !(Maybe Text)
, _dasirsAutoScalingInstances :: !(Maybe [AutoScalingInstanceDetails])
, _dasirsStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeAutoScalingInstancesResponse
:: Int
-> DescribeAutoScalingInstancesResponse
describeAutoScalingInstancesResponse pStatus_ =
DescribeAutoScalingInstancesResponse'
{ _dasirsNextToken = Nothing
, _dasirsAutoScalingInstances = Nothing
, _dasirsStatus = pStatus_
}
dasirsNextToken :: Lens' DescribeAutoScalingInstancesResponse (Maybe Text)
dasirsNextToken = lens _dasirsNextToken (\ s a -> s{_dasirsNextToken = a});
dasirsAutoScalingInstances :: Lens' DescribeAutoScalingInstancesResponse [AutoScalingInstanceDetails]
dasirsAutoScalingInstances = lens _dasirsAutoScalingInstances (\ s a -> s{_dasirsAutoScalingInstances = a}) . _Default . _Coerce;
dasirsStatus :: Lens' DescribeAutoScalingInstancesResponse Int
dasirsStatus = lens _dasirsStatus (\ s a -> s{_dasirsStatus = a});