module Network.AWS.AutoScaling.DescribeAutoScalingInstances
(
DescribeAutoScalingInstances
, describeAutoScalingInstances
, dasiInstanceIds
, dasiMaxRecords
, dasiNextToken
, DescribeAutoScalingInstancesResponse
, describeAutoScalingInstancesResponse
, dasirAutoScalingInstances
, dasirNextToken
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.AutoScaling.Types
import qualified GHC.Exts
data DescribeAutoScalingInstances = DescribeAutoScalingInstances
{ _dasiInstanceIds :: List "InstanceIds" Text
, _dasiMaxRecords :: Maybe Int
, _dasiNextToken :: Maybe Text
} deriving (Eq, Ord, Show)
describeAutoScalingInstances :: DescribeAutoScalingInstances
describeAutoScalingInstances = DescribeAutoScalingInstances
{ _dasiInstanceIds = mempty
, _dasiMaxRecords = Nothing
, _dasiNextToken = Nothing
}
dasiInstanceIds :: Lens' DescribeAutoScalingInstances [Text]
dasiInstanceIds = lens _dasiInstanceIds (\s a -> s { _dasiInstanceIds = a }) . _List
dasiMaxRecords :: Lens' DescribeAutoScalingInstances (Maybe Int)
dasiMaxRecords = lens _dasiMaxRecords (\s a -> s { _dasiMaxRecords = a })
dasiNextToken :: Lens' DescribeAutoScalingInstances (Maybe Text)
dasiNextToken = lens _dasiNextToken (\s a -> s { _dasiNextToken = a })
data DescribeAutoScalingInstancesResponse = DescribeAutoScalingInstancesResponse
{ _dasirAutoScalingInstances :: List "AutoScalingInstances" AutoScalingInstanceDetails
, _dasirNextToken :: Maybe Text
} deriving (Eq, Show)
describeAutoScalingInstancesResponse :: DescribeAutoScalingInstancesResponse
describeAutoScalingInstancesResponse = DescribeAutoScalingInstancesResponse
{ _dasirAutoScalingInstances = mempty
, _dasirNextToken = Nothing
}
dasirAutoScalingInstances :: Lens' DescribeAutoScalingInstancesResponse [AutoScalingInstanceDetails]
dasirAutoScalingInstances =
lens _dasirAutoScalingInstances
(\s a -> s { _dasirAutoScalingInstances = a })
. _List
dasirNextToken :: Lens' DescribeAutoScalingInstancesResponse (Maybe Text)
dasirNextToken = lens _dasirNextToken (\s a -> s { _dasirNextToken = a })
instance ToPath DescribeAutoScalingInstances where
toPath = const "/"
instance ToQuery DescribeAutoScalingInstances where
toQuery DescribeAutoScalingInstances{..} = mconcat
[ "InstanceIds" =? _dasiInstanceIds
, "MaxRecords" =? _dasiMaxRecords
, "NextToken" =? _dasiNextToken
]
instance ToHeaders DescribeAutoScalingInstances
instance AWSRequest DescribeAutoScalingInstances where
type Sv DescribeAutoScalingInstances = AutoScaling
type Rs DescribeAutoScalingInstances = DescribeAutoScalingInstancesResponse
request = post "DescribeAutoScalingInstances"
response = xmlResponse
instance FromXML DescribeAutoScalingInstancesResponse where
parseXML = withElement "DescribeAutoScalingInstancesResult" $ \x -> DescribeAutoScalingInstancesResponse
<$> x .@ "AutoScalingInstances"
<*> x .@? "NextToken"
instance AWSPager DescribeAutoScalingInstances where
page rq rs
| stop (rq ^. dasiNextToken) = Nothing
| otherwise = (\x -> rq & dasiNextToken ?~ x)
<$> (rs ^. dasirNextToken)