{-# 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.DescribeIAMInstanceProfileAssociations
(
describeIAMInstanceProfileAssociations
, DescribeIAMInstanceProfileAssociations
, diapaFilters
, diapaNextToken
, diapaAssociationIds
, diapaMaxResults
, describeIAMInstanceProfileAssociationsResponse
, DescribeIAMInstanceProfileAssociationsResponse
, diaparsIAMInstanceProfileAssociations
, diaparsNextToken
, diaparsResponseStatus
) 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 DescribeIAMInstanceProfileAssociations = DescribeIAMInstanceProfileAssociations'
{ _diapaFilters :: !(Maybe [Filter])
, _diapaNextToken :: !(Maybe Text)
, _diapaAssociationIds :: !(Maybe [Text])
, _diapaMaxResults :: !(Maybe Nat)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeIAMInstanceProfileAssociations
:: DescribeIAMInstanceProfileAssociations
describeIAMInstanceProfileAssociations =
DescribeIAMInstanceProfileAssociations'
{ _diapaFilters = Nothing
, _diapaNextToken = Nothing
, _diapaAssociationIds = Nothing
, _diapaMaxResults = Nothing
}
diapaFilters :: Lens' DescribeIAMInstanceProfileAssociations [Filter]
diapaFilters = lens _diapaFilters (\ s a -> s{_diapaFilters = a}) . _Default . _Coerce
diapaNextToken :: Lens' DescribeIAMInstanceProfileAssociations (Maybe Text)
diapaNextToken = lens _diapaNextToken (\ s a -> s{_diapaNextToken = a})
diapaAssociationIds :: Lens' DescribeIAMInstanceProfileAssociations [Text]
diapaAssociationIds = lens _diapaAssociationIds (\ s a -> s{_diapaAssociationIds = a}) . _Default . _Coerce
diapaMaxResults :: Lens' DescribeIAMInstanceProfileAssociations (Maybe Natural)
diapaMaxResults = lens _diapaMaxResults (\ s a -> s{_diapaMaxResults = a}) . mapping _Nat
instance AWSPager
DescribeIAMInstanceProfileAssociations
where
page rq rs
| stop (rs ^. diaparsNextToken) = Nothing
| stop (rs ^. diaparsIAMInstanceProfileAssociations)
= Nothing
| otherwise =
Just $ rq & diapaNextToken .~ rs ^. diaparsNextToken
instance AWSRequest
DescribeIAMInstanceProfileAssociations
where
type Rs DescribeIAMInstanceProfileAssociations =
DescribeIAMInstanceProfileAssociationsResponse
request = postQuery ec2
response
= receiveXML
(\ s h x ->
DescribeIAMInstanceProfileAssociationsResponse' <$>
(x .@? "iamInstanceProfileAssociationSet" .!@ mempty
>>= may (parseXMLList "item"))
<*> (x .@? "nextToken")
<*> (pure (fromEnum s)))
instance Hashable
DescribeIAMInstanceProfileAssociations
where
instance NFData
DescribeIAMInstanceProfileAssociations
where
instance ToHeaders
DescribeIAMInstanceProfileAssociations
where
toHeaders = const mempty
instance ToPath
DescribeIAMInstanceProfileAssociations
where
toPath = const "/"
instance ToQuery
DescribeIAMInstanceProfileAssociations
where
toQuery DescribeIAMInstanceProfileAssociations'{..}
= mconcat
["Action" =:
("DescribeIamInstanceProfileAssociations" ::
ByteString),
"Version" =: ("2016-11-15" :: ByteString),
toQuery (toQueryList "Filter" <$> _diapaFilters),
"NextToken" =: _diapaNextToken,
toQuery
(toQueryList "AssociationId" <$>
_diapaAssociationIds),
"MaxResults" =: _diapaMaxResults]
data DescribeIAMInstanceProfileAssociationsResponse = DescribeIAMInstanceProfileAssociationsResponse'
{ _diaparsIAMInstanceProfileAssociations :: !(Maybe [IAMInstanceProfileAssociation])
, _diaparsNextToken :: !(Maybe Text)
, _diaparsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeIAMInstanceProfileAssociationsResponse
:: Int
-> DescribeIAMInstanceProfileAssociationsResponse
describeIAMInstanceProfileAssociationsResponse pResponseStatus_ =
DescribeIAMInstanceProfileAssociationsResponse'
{ _diaparsIAMInstanceProfileAssociations = Nothing
, _diaparsNextToken = Nothing
, _diaparsResponseStatus = pResponseStatus_
}
diaparsIAMInstanceProfileAssociations :: Lens' DescribeIAMInstanceProfileAssociationsResponse [IAMInstanceProfileAssociation]
diaparsIAMInstanceProfileAssociations = lens _diaparsIAMInstanceProfileAssociations (\ s a -> s{_diaparsIAMInstanceProfileAssociations = a}) . _Default . _Coerce
diaparsNextToken :: Lens' DescribeIAMInstanceProfileAssociationsResponse (Maybe Text)
diaparsNextToken = lens _diaparsNextToken (\ s a -> s{_diaparsNextToken = a})
diaparsResponseStatus :: Lens' DescribeIAMInstanceProfileAssociationsResponse Int
diaparsResponseStatus = lens _diaparsResponseStatus (\ s a -> s{_diaparsResponseStatus = a})
instance NFData
DescribeIAMInstanceProfileAssociationsResponse
where