module Network.AWS.IAM.ListMFADevices
(
listMFADevices
, ListMFADevices
, lmdUserName
, lmdMarker
, lmdMaxItems
, listMFADevicesResponse
, ListMFADevicesResponse
, lmdrsMarker
, lmdrsIsTruncated
, lmdrsResponseStatus
, lmdrsMFADevices
) where
import Network.AWS.IAM.Types
import Network.AWS.IAM.Types.Product
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data ListMFADevices = ListMFADevices'
{ _lmdUserName :: !(Maybe Text)
, _lmdMarker :: !(Maybe Text)
, _lmdMaxItems :: !(Maybe Nat)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
listMFADevices
:: ListMFADevices
listMFADevices =
ListMFADevices'
{ _lmdUserName = Nothing
, _lmdMarker = Nothing
, _lmdMaxItems = Nothing
}
lmdUserName :: Lens' ListMFADevices (Maybe Text)
lmdUserName = lens _lmdUserName (\ s a -> s{_lmdUserName = a});
lmdMarker :: Lens' ListMFADevices (Maybe Text)
lmdMarker = lens _lmdMarker (\ s a -> s{_lmdMarker = a});
lmdMaxItems :: Lens' ListMFADevices (Maybe Natural)
lmdMaxItems = lens _lmdMaxItems (\ s a -> s{_lmdMaxItems = a}) . mapping _Nat;
instance AWSPager ListMFADevices where
page rq rs
| stop (rs ^. lmdrsIsTruncated) = Nothing
| isNothing (rs ^. lmdrsMarker) = Nothing
| otherwise =
Just $ rq & lmdMarker .~ rs ^. lmdrsMarker
instance AWSRequest ListMFADevices where
type Rs ListMFADevices = ListMFADevicesResponse
request = postQuery iAM
response
= receiveXMLWrapper "ListMFADevicesResult"
(\ s h x ->
ListMFADevicesResponse' <$>
(x .@? "Marker") <*> (x .@? "IsTruncated") <*>
(pure (fromEnum s))
<*>
(x .@? "MFADevices" .!@ mempty >>=
parseXMLList "member"))
instance ToHeaders ListMFADevices where
toHeaders = const mempty
instance ToPath ListMFADevices where
toPath = const "/"
instance ToQuery ListMFADevices where
toQuery ListMFADevices'{..}
= mconcat
["Action" =: ("ListMFADevices" :: ByteString),
"Version" =: ("2010-05-08" :: ByteString),
"UserName" =: _lmdUserName, "Marker" =: _lmdMarker,
"MaxItems" =: _lmdMaxItems]
data ListMFADevicesResponse = ListMFADevicesResponse'
{ _lmdrsMarker :: !(Maybe Text)
, _lmdrsIsTruncated :: !(Maybe Bool)
, _lmdrsResponseStatus :: !Int
, _lmdrsMFADevices :: ![MFADevice]
} deriving (Eq,Read,Show,Data,Typeable,Generic)
listMFADevicesResponse
:: Int
-> ListMFADevicesResponse
listMFADevicesResponse pResponseStatus_ =
ListMFADevicesResponse'
{ _lmdrsMarker = Nothing
, _lmdrsIsTruncated = Nothing
, _lmdrsResponseStatus = pResponseStatus_
, _lmdrsMFADevices = mempty
}
lmdrsMarker :: Lens' ListMFADevicesResponse (Maybe Text)
lmdrsMarker = lens _lmdrsMarker (\ s a -> s{_lmdrsMarker = a});
lmdrsIsTruncated :: Lens' ListMFADevicesResponse (Maybe Bool)
lmdrsIsTruncated = lens _lmdrsIsTruncated (\ s a -> s{_lmdrsIsTruncated = a});
lmdrsResponseStatus :: Lens' ListMFADevicesResponse Int
lmdrsResponseStatus = lens _lmdrsResponseStatus (\ s a -> s{_lmdrsResponseStatus = a});
lmdrsMFADevices :: Lens' ListMFADevicesResponse [MFADevice]
lmdrsMFADevices = lens _lmdrsMFADevices (\ s a -> s{_lmdrsMFADevices = a}) . _Coerce;