{-# 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.WorkMail.ListAliases
(
listAliases
, ListAliases
, laNextToken
, laMaxResults
, laOrganizationId
, laEntityId
, listAliasesResponse
, ListAliasesResponse
, larsAliases
, larsNextToken
, larsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.WorkMail.Types
import Network.AWS.WorkMail.Types.Product
data ListAliases = ListAliases'
{ _laNextToken :: !(Maybe Text)
, _laMaxResults :: !(Maybe Nat)
, _laOrganizationId :: !Text
, _laEntityId :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listAliases
:: Text
-> Text
-> ListAliases
listAliases pOrganizationId_ pEntityId_ =
ListAliases'
{ _laNextToken = Nothing
, _laMaxResults = Nothing
, _laOrganizationId = pOrganizationId_
, _laEntityId = pEntityId_
}
laNextToken :: Lens' ListAliases (Maybe Text)
laNextToken = lens _laNextToken (\ s a -> s{_laNextToken = a})
laMaxResults :: Lens' ListAliases (Maybe Natural)
laMaxResults = lens _laMaxResults (\ s a -> s{_laMaxResults = a}) . mapping _Nat
laOrganizationId :: Lens' ListAliases Text
laOrganizationId = lens _laOrganizationId (\ s a -> s{_laOrganizationId = a})
laEntityId :: Lens' ListAliases Text
laEntityId = lens _laEntityId (\ s a -> s{_laEntityId = a})
instance AWSPager ListAliases where
page rq rs
| stop (rs ^. larsNextToken) = Nothing
| stop (rs ^. larsAliases) = Nothing
| otherwise =
Just $ rq & laNextToken .~ rs ^. larsNextToken
instance AWSRequest ListAliases where
type Rs ListAliases = ListAliasesResponse
request = postJSON workMail
response
= receiveJSON
(\ s h x ->
ListAliasesResponse' <$>
(x .?> "Aliases" .!@ mempty) <*> (x .?> "NextToken")
<*> (pure (fromEnum s)))
instance Hashable ListAliases where
instance NFData ListAliases where
instance ToHeaders ListAliases where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("WorkMailService.ListAliases" :: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON ListAliases where
toJSON ListAliases'{..}
= object
(catMaybes
[("NextToken" .=) <$> _laNextToken,
("MaxResults" .=) <$> _laMaxResults,
Just ("OrganizationId" .= _laOrganizationId),
Just ("EntityId" .= _laEntityId)])
instance ToPath ListAliases where
toPath = const "/"
instance ToQuery ListAliases where
toQuery = const mempty
data ListAliasesResponse = ListAliasesResponse'
{ _larsAliases :: !(Maybe [Text])
, _larsNextToken :: !(Maybe Text)
, _larsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listAliasesResponse
:: Int
-> ListAliasesResponse
listAliasesResponse pResponseStatus_ =
ListAliasesResponse'
{ _larsAliases = Nothing
, _larsNextToken = Nothing
, _larsResponseStatus = pResponseStatus_
}
larsAliases :: Lens' ListAliasesResponse [Text]
larsAliases = lens _larsAliases (\ s a -> s{_larsAliases = a}) . _Default . _Coerce
larsNextToken :: Lens' ListAliasesResponse (Maybe Text)
larsNextToken = lens _larsNextToken (\ s a -> s{_larsNextToken = a})
larsResponseStatus :: Lens' ListAliasesResponse Int
larsResponseStatus = lens _larsResponseStatus (\ s a -> s{_larsResponseStatus = a})
instance NFData ListAliasesResponse where