{-# 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.IAM.ListAccountAliases
(
listAccountAliases
, ListAccountAliases
, laaMarker
, laaMaxItems
, listAccountAliasesResponse
, ListAccountAliasesResponse
, laarsMarker
, laarsIsTruncated
, laarsResponseStatus
, laarsAccountAliases
) where
import Network.AWS.IAM.Types
import Network.AWS.IAM.Types.Product
import Network.AWS.Lens
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data ListAccountAliases = ListAccountAliases'
{ _laaMarker :: !(Maybe Text)
, _laaMaxItems :: !(Maybe Nat)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
listAccountAliases
:: ListAccountAliases
listAccountAliases =
ListAccountAliases'
{ _laaMarker = Nothing
, _laaMaxItems = Nothing
}
laaMarker :: Lens' ListAccountAliases (Maybe Text)
laaMarker = lens _laaMarker (\ s a -> s{_laaMarker = a});
laaMaxItems :: Lens' ListAccountAliases (Maybe Natural)
laaMaxItems = lens _laaMaxItems (\ s a -> s{_laaMaxItems = a}) . mapping _Nat;
instance AWSPager ListAccountAliases where
page rq rs
| stop (rs ^. laarsIsTruncated) = Nothing
| isNothing (rs ^. laarsMarker) = Nothing
| otherwise =
Just $ rq & laaMarker .~ rs ^. laarsMarker
instance AWSRequest ListAccountAliases where
type Rs ListAccountAliases =
ListAccountAliasesResponse
request = postQuery iam
response
= receiveXMLWrapper "ListAccountAliasesResult"
(\ s h x ->
ListAccountAliasesResponse' <$>
(x .@? "Marker") <*> (x .@? "IsTruncated") <*>
(pure (fromEnum s))
<*>
(x .@? "AccountAliases" .!@ mempty >>=
parseXMLList "member"))
instance Hashable ListAccountAliases
instance NFData ListAccountAliases
instance ToHeaders ListAccountAliases where
toHeaders = const mempty
instance ToPath ListAccountAliases where
toPath = const "/"
instance ToQuery ListAccountAliases where
toQuery ListAccountAliases'{..}
= mconcat
["Action" =: ("ListAccountAliases" :: ByteString),
"Version" =: ("2010-05-08" :: ByteString),
"Marker" =: _laaMarker, "MaxItems" =: _laaMaxItems]
data ListAccountAliasesResponse = ListAccountAliasesResponse'
{ _laarsMarker :: !(Maybe Text)
, _laarsIsTruncated :: !(Maybe Bool)
, _laarsResponseStatus :: !Int
, _laarsAccountAliases :: ![Text]
} deriving (Eq,Read,Show,Data,Typeable,Generic)
listAccountAliasesResponse
:: Int
-> ListAccountAliasesResponse
listAccountAliasesResponse pResponseStatus_ =
ListAccountAliasesResponse'
{ _laarsMarker = Nothing
, _laarsIsTruncated = Nothing
, _laarsResponseStatus = pResponseStatus_
, _laarsAccountAliases = mempty
}
laarsMarker :: Lens' ListAccountAliasesResponse (Maybe Text)
laarsMarker = lens _laarsMarker (\ s a -> s{_laarsMarker = a});
laarsIsTruncated :: Lens' ListAccountAliasesResponse (Maybe Bool)
laarsIsTruncated = lens _laarsIsTruncated (\ s a -> s{_laarsIsTruncated = a});
laarsResponseStatus :: Lens' ListAccountAliasesResponse Int
laarsResponseStatus = lens _laarsResponseStatus (\ s a -> s{_laarsResponseStatus = a});
laarsAccountAliases :: Lens' ListAccountAliasesResponse [Text]
laarsAccountAliases = lens _laarsAccountAliases (\ s a -> s{_laarsAccountAliases = a}) . _Coerce;
instance NFData ListAccountAliasesResponse