module Network.AWS.SES.ListIdentities
(
listIdentities
, ListIdentities
, liIdentityType
, liNextToken
, liMaxItems
, listIdentitiesResponse
, ListIdentitiesResponse
, lirsNextToken
, lirsStatus
, lirsIdentities
) where
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.SES.Types
import Network.AWS.SES.Types.Product
data ListIdentities = ListIdentities'
{ _liIdentityType :: !(Maybe IdentityType)
, _liNextToken :: !(Maybe Text)
, _liMaxItems :: !(Maybe Int)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
listIdentities
:: ListIdentities
listIdentities =
ListIdentities'
{ _liIdentityType = Nothing
, _liNextToken = Nothing
, _liMaxItems = Nothing
}
liIdentityType :: Lens' ListIdentities (Maybe IdentityType)
liIdentityType = lens _liIdentityType (\ s a -> s{_liIdentityType = a});
liNextToken :: Lens' ListIdentities (Maybe Text)
liNextToken = lens _liNextToken (\ s a -> s{_liNextToken = a});
liMaxItems :: Lens' ListIdentities (Maybe Int)
liMaxItems = lens _liMaxItems (\ s a -> s{_liMaxItems = a});
instance AWSPager ListIdentities where
page rq rs
| stop (rs ^. lirsNextToken) = Nothing
| stop (rs ^. lirsIdentities) = Nothing
| otherwise =
Just $ rq & liNextToken .~ rs ^. lirsNextToken
instance AWSRequest ListIdentities where
type Rs ListIdentities = ListIdentitiesResponse
request = postQuery sES
response
= receiveXMLWrapper "ListIdentitiesResult"
(\ s h x ->
ListIdentitiesResponse' <$>
(x .@? "NextToken") <*> (pure (fromEnum s)) <*>
(x .@? "Identities" .!@ mempty >>=
parseXMLList "member"))
instance ToHeaders ListIdentities where
toHeaders = const mempty
instance ToPath ListIdentities where
toPath = const "/"
instance ToQuery ListIdentities where
toQuery ListIdentities'{..}
= mconcat
["Action" =: ("ListIdentities" :: ByteString),
"Version" =: ("2010-12-01" :: ByteString),
"IdentityType" =: _liIdentityType,
"NextToken" =: _liNextToken,
"MaxItems" =: _liMaxItems]
data ListIdentitiesResponse = ListIdentitiesResponse'
{ _lirsNextToken :: !(Maybe Text)
, _lirsStatus :: !Int
, _lirsIdentities :: ![Text]
} deriving (Eq,Read,Show,Data,Typeable,Generic)
listIdentitiesResponse
:: Int
-> ListIdentitiesResponse
listIdentitiesResponse pStatus_ =
ListIdentitiesResponse'
{ _lirsNextToken = Nothing
, _lirsStatus = pStatus_
, _lirsIdentities = mempty
}
lirsNextToken :: Lens' ListIdentitiesResponse (Maybe Text)
lirsNextToken = lens _lirsNextToken (\ s a -> s{_lirsNextToken = a});
lirsStatus :: Lens' ListIdentitiesResponse Int
lirsStatus = lens _lirsStatus (\ s a -> s{_lirsStatus = a});
lirsIdentities :: Lens' ListIdentitiesResponse [Text]
lirsIdentities = lens _lirsIdentities (\ s a -> s{_lirsIdentities = a}) . _Coerce;