amazonka-lex-models-1.6.0: gen/Network/AWS/LexModels/GetBotAliases.hs
{-# 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 #-}
-- Derived from AWS service descriptions, licensed under Apache 2.0.
-- |
-- Module : Network.AWS.LexModels.GetBotAliases
-- Copyright : (c) 2013-2018 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Returns a list of aliases for a specified Amazon Lex bot.
--
--
-- This operation requires permissions for the @lex:GetBotAliases@ action.
--
--
-- This operation returns paginated results.
module Network.AWS.LexModels.GetBotAliases
(
-- * Creating a Request
getBotAliases
, GetBotAliases
-- * Request Lenses
, gbaNameContains
, gbaNextToken
, gbaMaxResults
, gbaBotName
-- * Destructuring the Response
, getBotAliasesResponse
, GetBotAliasesResponse
-- * Response Lenses
, 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
-- | /See:/ 'getBotAliases' smart constructor.
data GetBotAliases = GetBotAliases'
{ _gbaNameContains :: !(Maybe Text)
, _gbaNextToken :: !(Maybe Text)
, _gbaMaxResults :: !(Maybe Nat)
, _gbaBotName :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
-- | Creates a value of 'GetBotAliases' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'gbaNameContains' - Substring to match in bot alias names. An alias will be returned if any part of its name matches the substring. For example, "xyz" matches both "xyzabc" and "abcxyz."
--
-- * 'gbaNextToken' - A pagination token for fetching the next page of aliases. If the response to this call is truncated, Amazon Lex returns a pagination token in the response. To fetch the next page of aliases, specify the pagination token in the next request.
--
-- * 'gbaMaxResults' - The maximum number of aliases to return in the response. The default is 50. .
--
-- * 'gbaBotName' - The name of the bot.
getBotAliases
:: Text -- ^ 'gbaBotName'
-> GetBotAliases
getBotAliases pBotName_ =
GetBotAliases'
{ _gbaNameContains = Nothing
, _gbaNextToken = Nothing
, _gbaMaxResults = Nothing
, _gbaBotName = pBotName_
}
-- | Substring to match in bot alias names. An alias will be returned if any part of its name matches the substring. For example, "xyz" matches both "xyzabc" and "abcxyz."
gbaNameContains :: Lens' GetBotAliases (Maybe Text)
gbaNameContains = lens _gbaNameContains (\ s a -> s{_gbaNameContains = a})
-- | A pagination token for fetching the next page of aliases. If the response to this call is truncated, Amazon Lex returns a pagination token in the response. To fetch the next page of aliases, specify the pagination token in the next request.
gbaNextToken :: Lens' GetBotAliases (Maybe Text)
gbaNextToken = lens _gbaNextToken (\ s a -> s{_gbaNextToken = a})
-- | The maximum number of aliases to return in the response. The default is 50. .
gbaMaxResults :: Lens' GetBotAliases (Maybe Natural)
gbaMaxResults = lens _gbaMaxResults (\ s a -> s{_gbaMaxResults = a}) . mapping _Nat
-- | The name of the bot.
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]
-- | /See:/ 'getBotAliasesResponse' smart constructor.
data GetBotAliasesResponse = GetBotAliasesResponse'
{ _gbarsNextToken :: !(Maybe Text)
, _gbarsBotAliases :: !(Maybe [BotAliasMetadata])
, _gbarsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
-- | Creates a value of 'GetBotAliasesResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'gbarsNextToken' - A pagination token for fetching next page of aliases. If the response to this call is truncated, Amazon Lex returns a pagination token in the response. To fetch the next page of aliases, specify the pagination token in the next request.
--
-- * 'gbarsBotAliases' - An array of @BotAliasMetadata@ objects, each describing a bot alias.
--
-- * 'gbarsResponseStatus' - -- | The response status code.
getBotAliasesResponse
:: Int -- ^ 'gbarsResponseStatus'
-> GetBotAliasesResponse
getBotAliasesResponse pResponseStatus_ =
GetBotAliasesResponse'
{ _gbarsNextToken = Nothing
, _gbarsBotAliases = Nothing
, _gbarsResponseStatus = pResponseStatus_
}
-- | A pagination token for fetching next page of aliases. If the response to this call is truncated, Amazon Lex returns a pagination token in the response. To fetch the next page of aliases, specify the pagination token in the next request.
gbarsNextToken :: Lens' GetBotAliasesResponse (Maybe Text)
gbarsNextToken = lens _gbarsNextToken (\ s a -> s{_gbarsNextToken = a})
-- | An array of @BotAliasMetadata@ objects, each describing a bot alias.
gbarsBotAliases :: Lens' GetBotAliasesResponse [BotAliasMetadata]
gbarsBotAliases = lens _gbarsBotAliases (\ s a -> s{_gbarsBotAliases = a}) . _Default . _Coerce
-- | -- | The response status code.
gbarsResponseStatus :: Lens' GetBotAliasesResponse Int
gbarsResponseStatus = lens _gbarsResponseStatus (\ s a -> s{_gbarsResponseStatus = a})
instance NFData GetBotAliasesResponse where