module Network.AWS.EC2.DescribeReservedInstancesModifications
(
DescribeReservedInstancesModifications
, describeReservedInstancesModifications
, drimFilters
, drimNextToken
, drimReservedInstancesModificationIds
, DescribeReservedInstancesModificationsResponse
, describeReservedInstancesModificationsResponse
, drimrNextToken
, drimrReservedInstancesModifications
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.EC2.Types
import qualified GHC.Exts
data DescribeReservedInstancesModifications = DescribeReservedInstancesModifications
{ _drimFilters :: List "Filter" Filter
, _drimNextToken :: Maybe Text
, _drimReservedInstancesModificationIds :: List "ReservedInstancesModificationId" Text
} deriving (Eq, Show)
describeReservedInstancesModifications :: DescribeReservedInstancesModifications
describeReservedInstancesModifications = DescribeReservedInstancesModifications
{ _drimReservedInstancesModificationIds = mempty
, _drimNextToken = Nothing
, _drimFilters = mempty
}
drimFilters :: Lens' DescribeReservedInstancesModifications [Filter]
drimFilters = lens _drimFilters (\s a -> s { _drimFilters = a }) . _List
drimNextToken :: Lens' DescribeReservedInstancesModifications (Maybe Text)
drimNextToken = lens _drimNextToken (\s a -> s { _drimNextToken = a })
drimReservedInstancesModificationIds :: Lens' DescribeReservedInstancesModifications [Text]
drimReservedInstancesModificationIds =
lens _drimReservedInstancesModificationIds
(\s a -> s { _drimReservedInstancesModificationIds = a })
. _List
data DescribeReservedInstancesModificationsResponse = DescribeReservedInstancesModificationsResponse
{ _drimrNextToken :: Maybe Text
, _drimrReservedInstancesModifications :: List "item" ReservedInstancesModification
} deriving (Eq, Show)
describeReservedInstancesModificationsResponse :: DescribeReservedInstancesModificationsResponse
describeReservedInstancesModificationsResponse = DescribeReservedInstancesModificationsResponse
{ _drimrReservedInstancesModifications = mempty
, _drimrNextToken = Nothing
}
drimrNextToken :: Lens' DescribeReservedInstancesModificationsResponse (Maybe Text)
drimrNextToken = lens _drimrNextToken (\s a -> s { _drimrNextToken = a })
drimrReservedInstancesModifications :: Lens' DescribeReservedInstancesModificationsResponse [ReservedInstancesModification]
drimrReservedInstancesModifications =
lens _drimrReservedInstancesModifications
(\s a -> s { _drimrReservedInstancesModifications = a })
. _List
instance ToPath DescribeReservedInstancesModifications where
toPath = const "/"
instance ToQuery DescribeReservedInstancesModifications where
toQuery DescribeReservedInstancesModifications{..} = mconcat
[ "Filter" =? _drimFilters
, "nextToken" =? _drimNextToken
, "ReservedInstancesModificationId" =? _drimReservedInstancesModificationIds
]
instance ToHeaders DescribeReservedInstancesModifications
instance AWSRequest DescribeReservedInstancesModifications where
type Sv DescribeReservedInstancesModifications = EC2
type Rs DescribeReservedInstancesModifications = DescribeReservedInstancesModificationsResponse
request = post "DescribeReservedInstancesModifications"
response = xmlResponse
instance FromXML DescribeReservedInstancesModificationsResponse where
parseXML x = DescribeReservedInstancesModificationsResponse
<$> x .@? "nextToken"
<*> x .@ "reservedInstancesModificationsSet"
instance AWSPager DescribeReservedInstancesModifications where
page rq rs
| stop (rq ^. drimNextToken) = Nothing
| otherwise = (\x -> rq & drimNextToken ?~ x)
<$> (rs ^. drimrNextToken)