{-# 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.EC2.DescribeSpotFleetInstances
(
describeSpotFleetInstances
, DescribeSpotFleetInstances
, dsfiNextToken
, dsfiDryRun
, dsfiMaxResults
, dsfiSpotFleetRequestId
, describeSpotFleetInstancesResponse
, DescribeSpotFleetInstancesResponse
, dsfirsNextToken
, dsfirsResponseStatus
, dsfirsActiveInstances
, dsfirsSpotFleetRequestId
) where
import Network.AWS.EC2.Types
import Network.AWS.EC2.Types.Product
import Network.AWS.Lens
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data DescribeSpotFleetInstances = DescribeSpotFleetInstances'
{ _dsfiNextToken :: !(Maybe Text)
, _dsfiDryRun :: !(Maybe Bool)
, _dsfiMaxResults :: !(Maybe Int)
, _dsfiSpotFleetRequestId :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeSpotFleetInstances
:: Text
-> DescribeSpotFleetInstances
describeSpotFleetInstances pSpotFleetRequestId_ =
DescribeSpotFleetInstances'
{ _dsfiNextToken = Nothing
, _dsfiDryRun = Nothing
, _dsfiMaxResults = Nothing
, _dsfiSpotFleetRequestId = pSpotFleetRequestId_
}
dsfiNextToken :: Lens' DescribeSpotFleetInstances (Maybe Text)
dsfiNextToken = lens _dsfiNextToken (\ s a -> s{_dsfiNextToken = a})
dsfiDryRun :: Lens' DescribeSpotFleetInstances (Maybe Bool)
dsfiDryRun = lens _dsfiDryRun (\ s a -> s{_dsfiDryRun = a})
dsfiMaxResults :: Lens' DescribeSpotFleetInstances (Maybe Int)
dsfiMaxResults = lens _dsfiMaxResults (\ s a -> s{_dsfiMaxResults = a})
dsfiSpotFleetRequestId :: Lens' DescribeSpotFleetInstances Text
dsfiSpotFleetRequestId = lens _dsfiSpotFleetRequestId (\ s a -> s{_dsfiSpotFleetRequestId = a})
instance AWSPager DescribeSpotFleetInstances where
page rq rs
| stop (rs ^. dsfirsNextToken) = Nothing
| stop (rs ^. dsfirsActiveInstances) = Nothing
| otherwise =
Just $ rq & dsfiNextToken .~ rs ^. dsfirsNextToken
instance AWSRequest DescribeSpotFleetInstances where
type Rs DescribeSpotFleetInstances =
DescribeSpotFleetInstancesResponse
request = postQuery ec2
response
= receiveXML
(\ s h x ->
DescribeSpotFleetInstancesResponse' <$>
(x .@? "nextToken") <*> (pure (fromEnum s)) <*>
(x .@? "activeInstanceSet" .!@ mempty >>=
parseXMLList "item")
<*> (x .@ "spotFleetRequestId"))
instance Hashable DescribeSpotFleetInstances where
instance NFData DescribeSpotFleetInstances where
instance ToHeaders DescribeSpotFleetInstances where
toHeaders = const mempty
instance ToPath DescribeSpotFleetInstances where
toPath = const "/"
instance ToQuery DescribeSpotFleetInstances where
toQuery DescribeSpotFleetInstances'{..}
= mconcat
["Action" =:
("DescribeSpotFleetInstances" :: ByteString),
"Version" =: ("2016-11-15" :: ByteString),
"NextToken" =: _dsfiNextToken,
"DryRun" =: _dsfiDryRun,
"MaxResults" =: _dsfiMaxResults,
"SpotFleetRequestId" =: _dsfiSpotFleetRequestId]
data DescribeSpotFleetInstancesResponse = DescribeSpotFleetInstancesResponse'
{ _dsfirsNextToken :: !(Maybe Text)
, _dsfirsResponseStatus :: !Int
, _dsfirsActiveInstances :: ![ActiveInstance]
, _dsfirsSpotFleetRequestId :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeSpotFleetInstancesResponse
:: Int
-> Text
-> DescribeSpotFleetInstancesResponse
describeSpotFleetInstancesResponse pResponseStatus_ pSpotFleetRequestId_ =
DescribeSpotFleetInstancesResponse'
{ _dsfirsNextToken = Nothing
, _dsfirsResponseStatus = pResponseStatus_
, _dsfirsActiveInstances = mempty
, _dsfirsSpotFleetRequestId = pSpotFleetRequestId_
}
dsfirsNextToken :: Lens' DescribeSpotFleetInstancesResponse (Maybe Text)
dsfirsNextToken = lens _dsfirsNextToken (\ s a -> s{_dsfirsNextToken = a})
dsfirsResponseStatus :: Lens' DescribeSpotFleetInstancesResponse Int
dsfirsResponseStatus = lens _dsfirsResponseStatus (\ s a -> s{_dsfirsResponseStatus = a})
dsfirsActiveInstances :: Lens' DescribeSpotFleetInstancesResponse [ActiveInstance]
dsfirsActiveInstances = lens _dsfirsActiveInstances (\ s a -> s{_dsfirsActiveInstances = a}) . _Coerce
dsfirsSpotFleetRequestId :: Lens' DescribeSpotFleetInstancesResponse Text
dsfirsSpotFleetRequestId = lens _dsfirsSpotFleetRequestId (\ s a -> s{_dsfirsSpotFleetRequestId = a})
instance NFData DescribeSpotFleetInstancesResponse
where