module Network.AWS.SES.ListIdentities
(
ListIdentities
, listIdentities
, liIdentityType
, liMaxItems
, liNextToken
, ListIdentitiesResponse
, listIdentitiesResponse
, lirIdentities
, lirNextToken
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.SES.Types
import qualified GHC.Exts
data ListIdentities = ListIdentities
{ _liIdentityType :: Maybe IdentityType
, _liMaxItems :: Maybe Int
, _liNextToken :: Maybe Text
} deriving (Eq, Show)
listIdentities :: ListIdentities
listIdentities = ListIdentities
{ _liIdentityType = Nothing
, _liNextToken = Nothing
, _liMaxItems = Nothing
}
liIdentityType :: Lens' ListIdentities (Maybe IdentityType)
liIdentityType = lens _liIdentityType (\s a -> s { _liIdentityType = a })
liMaxItems :: Lens' ListIdentities (Maybe Int)
liMaxItems = lens _liMaxItems (\s a -> s { _liMaxItems = a })
liNextToken :: Lens' ListIdentities (Maybe Text)
liNextToken = lens _liNextToken (\s a -> s { _liNextToken = a })
data ListIdentitiesResponse = ListIdentitiesResponse
{ _lirIdentities :: List "member" Text
, _lirNextToken :: Maybe Text
} deriving (Eq, Ord, Show)
listIdentitiesResponse :: ListIdentitiesResponse
listIdentitiesResponse = ListIdentitiesResponse
{ _lirIdentities = mempty
, _lirNextToken = Nothing
}
lirIdentities :: Lens' ListIdentitiesResponse [Text]
lirIdentities = lens _lirIdentities (\s a -> s { _lirIdentities = a }) . _List
lirNextToken :: Lens' ListIdentitiesResponse (Maybe Text)
lirNextToken = lens _lirNextToken (\s a -> s { _lirNextToken = a })
instance ToPath ListIdentities where
toPath = const "/"
instance ToQuery ListIdentities where
toQuery ListIdentities{..} = mconcat
[ "IdentityType" =? _liIdentityType
, "MaxItems" =? _liMaxItems
, "NextToken" =? _liNextToken
]
instance ToHeaders ListIdentities
instance AWSRequest ListIdentities where
type Sv ListIdentities = SES
type Rs ListIdentities = ListIdentitiesResponse
request = post "ListIdentities"
response = xmlResponse
instance FromXML ListIdentitiesResponse where
parseXML = withElement "ListIdentitiesResult" $ \x -> ListIdentitiesResponse
<$> x .@? "Identities" .!@ mempty
<*> x .@? "NextToken"
instance AWSPager ListIdentities where
page rq rs
| stop (rq ^. liNextToken) = Nothing
| otherwise = (\x -> rq & liNextToken ?~ x)
<$> (rs ^. lirNextToken)