{-# 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.GetSlotTypeVersions
(
getSlotTypeVersions
, GetSlotTypeVersions
, gstvNextToken
, gstvMaxResults
, gstvName
, getSlotTypeVersionsResponse
, GetSlotTypeVersionsResponse
, gstvrsNextToken
, gstvrsSlotTypes
, gstvrsResponseStatus
) 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 GetSlotTypeVersions = GetSlotTypeVersions'
{ _gstvNextToken :: !(Maybe Text)
, _gstvMaxResults :: !(Maybe Nat)
, _gstvName :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
getSlotTypeVersions
:: Text
-> GetSlotTypeVersions
getSlotTypeVersions pName_ =
GetSlotTypeVersions'
{_gstvNextToken = Nothing, _gstvMaxResults = Nothing, _gstvName = pName_}
gstvNextToken :: Lens' GetSlotTypeVersions (Maybe Text)
gstvNextToken = lens _gstvNextToken (\ s a -> s{_gstvNextToken = a})
gstvMaxResults :: Lens' GetSlotTypeVersions (Maybe Natural)
gstvMaxResults = lens _gstvMaxResults (\ s a -> s{_gstvMaxResults = a}) . mapping _Nat
gstvName :: Lens' GetSlotTypeVersions Text
gstvName = lens _gstvName (\ s a -> s{_gstvName = a})
instance AWSPager GetSlotTypeVersions where
page rq rs
| stop (rs ^. gstvrsNextToken) = Nothing
| stop (rs ^. gstvrsSlotTypes) = Nothing
| otherwise =
Just $ rq & gstvNextToken .~ rs ^. gstvrsNextToken
instance AWSRequest GetSlotTypeVersions where
type Rs GetSlotTypeVersions =
GetSlotTypeVersionsResponse
request = get lexModels
response
= receiveJSON
(\ s h x ->
GetSlotTypeVersionsResponse' <$>
(x .?> "nextToken") <*>
(x .?> "slotTypes" .!@ mempty)
<*> (pure (fromEnum s)))
instance Hashable GetSlotTypeVersions where
instance NFData GetSlotTypeVersions where
instance ToHeaders GetSlotTypeVersions where
toHeaders
= const
(mconcat
["Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToPath GetSlotTypeVersions where
toPath GetSlotTypeVersions'{..}
= mconcat
["/slottypes/", toBS _gstvName, "/versions/"]
instance ToQuery GetSlotTypeVersions where
toQuery GetSlotTypeVersions'{..}
= mconcat
["nextToken" =: _gstvNextToken,
"maxResults" =: _gstvMaxResults]
data GetSlotTypeVersionsResponse = GetSlotTypeVersionsResponse'
{ _gstvrsNextToken :: !(Maybe Text)
, _gstvrsSlotTypes :: !(Maybe [SlotTypeMetadata])
, _gstvrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
getSlotTypeVersionsResponse
:: Int
-> GetSlotTypeVersionsResponse
getSlotTypeVersionsResponse pResponseStatus_ =
GetSlotTypeVersionsResponse'
{ _gstvrsNextToken = Nothing
, _gstvrsSlotTypes = Nothing
, _gstvrsResponseStatus = pResponseStatus_
}
gstvrsNextToken :: Lens' GetSlotTypeVersionsResponse (Maybe Text)
gstvrsNextToken = lens _gstvrsNextToken (\ s a -> s{_gstvrsNextToken = a})
gstvrsSlotTypes :: Lens' GetSlotTypeVersionsResponse [SlotTypeMetadata]
gstvrsSlotTypes = lens _gstvrsSlotTypes (\ s a -> s{_gstvrsSlotTypes = a}) . _Default . _Coerce
gstvrsResponseStatus :: Lens' GetSlotTypeVersionsResponse Int
gstvrsResponseStatus = lens _gstvrsResponseStatus (\ s a -> s{_gstvrsResponseStatus = a})
instance NFData GetSlotTypeVersionsResponse where