{-# 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.LexModels.GetBotAliases
(
getBotAliases
, GetBotAliases
, gbaNameContains
, gbaNextToken
, gbaMaxResults
, gbaBotName
, getBotAliasesResponse
, GetBotAliasesResponse
, gbarsNextToken
, gbarsBotAliases
, gbarsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.LexModels.Types
import Network.AWS.LexModels.Types.Product
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data GetBotAliases = GetBotAliases'
{ _gbaNameContains :: !(Maybe Text)
, _gbaNextToken :: !(Maybe Text)
, _gbaMaxResults :: !(Maybe Nat)
, _gbaBotName :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
getBotAliases
:: Text
-> GetBotAliases
getBotAliases pBotName_ =
GetBotAliases'
{ _gbaNameContains = Nothing
, _gbaNextToken = Nothing
, _gbaMaxResults = Nothing
, _gbaBotName = pBotName_
}
gbaNameContains :: Lens' GetBotAliases (Maybe Text)
gbaNameContains = lens _gbaNameContains (\ s a -> s{_gbaNameContains = a})
gbaNextToken :: Lens' GetBotAliases (Maybe Text)
gbaNextToken = lens _gbaNextToken (\ s a -> s{_gbaNextToken = a})
gbaMaxResults :: Lens' GetBotAliases (Maybe Natural)
gbaMaxResults = lens _gbaMaxResults (\ s a -> s{_gbaMaxResults = a}) . mapping _Nat
gbaBotName :: Lens' GetBotAliases Text
gbaBotName = lens _gbaBotName (\ s a -> s{_gbaBotName = a})
instance AWSPager GetBotAliases where
page rq rs
| stop (rs ^. gbarsNextToken) = Nothing
| stop (rs ^. gbarsBotAliases) = Nothing
| otherwise =
Just $ rq & gbaNextToken .~ rs ^. gbarsNextToken
instance AWSRequest GetBotAliases where
type Rs GetBotAliases = GetBotAliasesResponse
request = get lexModels
response
= receiveJSON
(\ s h x ->
GetBotAliasesResponse' <$>
(x .?> "nextToken") <*>
(x .?> "BotAliases" .!@ mempty)
<*> (pure (fromEnum s)))
instance Hashable GetBotAliases where
instance NFData GetBotAliases where
instance ToHeaders GetBotAliases where
toHeaders
= const
(mconcat
["Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToPath GetBotAliases where
toPath GetBotAliases'{..}
= mconcat ["/bots/", toBS _gbaBotName, "/aliases/"]
instance ToQuery GetBotAliases where
toQuery GetBotAliases'{..}
= mconcat
["nameContains" =: _gbaNameContains,
"nextToken" =: _gbaNextToken,
"maxResults" =: _gbaMaxResults]
data GetBotAliasesResponse = GetBotAliasesResponse'
{ _gbarsNextToken :: !(Maybe Text)
, _gbarsBotAliases :: !(Maybe [BotAliasMetadata])
, _gbarsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
getBotAliasesResponse
:: Int
-> GetBotAliasesResponse
getBotAliasesResponse pResponseStatus_ =
GetBotAliasesResponse'
{ _gbarsNextToken = Nothing
, _gbarsBotAliases = Nothing
, _gbarsResponseStatus = pResponseStatus_
}
gbarsNextToken :: Lens' GetBotAliasesResponse (Maybe Text)
gbarsNextToken = lens _gbarsNextToken (\ s a -> s{_gbarsNextToken = a})
gbarsBotAliases :: Lens' GetBotAliasesResponse [BotAliasMetadata]
gbarsBotAliases = lens _gbarsBotAliases (\ s a -> s{_gbarsBotAliases = a}) . _Default . _Coerce
gbarsResponseStatus :: Lens' GetBotAliasesResponse Int
gbarsResponseStatus = lens _gbarsResponseStatus (\ s a -> s{_gbarsResponseStatus = a})
instance NFData GetBotAliasesResponse where