{-# 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.GetBuiltinSlotTypes
(
getBuiltinSlotTypes
, GetBuiltinSlotTypes
, gbstLocale
, gbstNextToken
, gbstSignatureContains
, gbstMaxResults
, getBuiltinSlotTypesResponse
, GetBuiltinSlotTypesResponse
, gbstrsNextToken
, gbstrsSlotTypes
, gbstrsResponseStatus
) 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 GetBuiltinSlotTypes = GetBuiltinSlotTypes'
{ _gbstLocale :: !(Maybe Locale)
, _gbstNextToken :: !(Maybe Text)
, _gbstSignatureContains :: !(Maybe Text)
, _gbstMaxResults :: !(Maybe Nat)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
getBuiltinSlotTypes
:: GetBuiltinSlotTypes
getBuiltinSlotTypes =
GetBuiltinSlotTypes'
{ _gbstLocale = Nothing
, _gbstNextToken = Nothing
, _gbstSignatureContains = Nothing
, _gbstMaxResults = Nothing
}
gbstLocale :: Lens' GetBuiltinSlotTypes (Maybe Locale)
gbstLocale = lens _gbstLocale (\ s a -> s{_gbstLocale = a})
gbstNextToken :: Lens' GetBuiltinSlotTypes (Maybe Text)
gbstNextToken = lens _gbstNextToken (\ s a -> s{_gbstNextToken = a})
gbstSignatureContains :: Lens' GetBuiltinSlotTypes (Maybe Text)
gbstSignatureContains = lens _gbstSignatureContains (\ s a -> s{_gbstSignatureContains = a})
gbstMaxResults :: Lens' GetBuiltinSlotTypes (Maybe Natural)
gbstMaxResults = lens _gbstMaxResults (\ s a -> s{_gbstMaxResults = a}) . mapping _Nat
instance AWSPager GetBuiltinSlotTypes where
page rq rs
| stop (rs ^. gbstrsNextToken) = Nothing
| stop (rs ^. gbstrsSlotTypes) = Nothing
| otherwise =
Just $ rq & gbstNextToken .~ rs ^. gbstrsNextToken
instance AWSRequest GetBuiltinSlotTypes where
type Rs GetBuiltinSlotTypes =
GetBuiltinSlotTypesResponse
request = get lexModels
response
= receiveJSON
(\ s h x ->
GetBuiltinSlotTypesResponse' <$>
(x .?> "nextToken") <*>
(x .?> "slotTypes" .!@ mempty)
<*> (pure (fromEnum s)))
instance Hashable GetBuiltinSlotTypes where
instance NFData GetBuiltinSlotTypes where
instance ToHeaders GetBuiltinSlotTypes where
toHeaders
= const
(mconcat
["Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToPath GetBuiltinSlotTypes where
toPath = const "/builtins/slottypes/"
instance ToQuery GetBuiltinSlotTypes where
toQuery GetBuiltinSlotTypes'{..}
= mconcat
["locale" =: _gbstLocale,
"nextToken" =: _gbstNextToken,
"signatureContains" =: _gbstSignatureContains,
"maxResults" =: _gbstMaxResults]
data GetBuiltinSlotTypesResponse = GetBuiltinSlotTypesResponse'
{ _gbstrsNextToken :: !(Maybe Text)
, _gbstrsSlotTypes :: !(Maybe [BuiltinSlotTypeMetadata])
, _gbstrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
getBuiltinSlotTypesResponse
:: Int
-> GetBuiltinSlotTypesResponse
getBuiltinSlotTypesResponse pResponseStatus_ =
GetBuiltinSlotTypesResponse'
{ _gbstrsNextToken = Nothing
, _gbstrsSlotTypes = Nothing
, _gbstrsResponseStatus = pResponseStatus_
}
gbstrsNextToken :: Lens' GetBuiltinSlotTypesResponse (Maybe Text)
gbstrsNextToken = lens _gbstrsNextToken (\ s a -> s{_gbstrsNextToken = a})
gbstrsSlotTypes :: Lens' GetBuiltinSlotTypesResponse [BuiltinSlotTypeMetadata]
gbstrsSlotTypes = lens _gbstrsSlotTypes (\ s a -> s{_gbstrsSlotTypes = a}) . _Default . _Coerce
gbstrsResponseStatus :: Lens' GetBuiltinSlotTypesResponse Int
gbstrsResponseStatus = lens _gbstrsResponseStatus (\ s a -> s{_gbstrsResponseStatus = a})
instance NFData GetBuiltinSlotTypesResponse where