{-# 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.ElasticSearch.ListElasticsearchVersions
(
listElasticsearchVersions
, ListElasticsearchVersions
, levNextToken
, levMaxResults
, listElasticsearchVersionsResponse
, ListElasticsearchVersionsResponse
, levrsNextToken
, levrsElasticsearchVersions
, levrsResponseStatus
) where
import Network.AWS.ElasticSearch.Types
import Network.AWS.ElasticSearch.Types.Product
import Network.AWS.Lens
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data ListElasticsearchVersions = ListElasticsearchVersions'
{ _levNextToken :: !(Maybe Text)
, _levMaxResults :: !(Maybe Int)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listElasticsearchVersions
:: ListElasticsearchVersions
listElasticsearchVersions =
ListElasticsearchVersions' {_levNextToken = Nothing, _levMaxResults = Nothing}
levNextToken :: Lens' ListElasticsearchVersions (Maybe Text)
levNextToken = lens _levNextToken (\ s a -> s{_levNextToken = a})
levMaxResults :: Lens' ListElasticsearchVersions (Maybe Int)
levMaxResults = lens _levMaxResults (\ s a -> s{_levMaxResults = a})
instance AWSPager ListElasticsearchVersions where
page rq rs
| stop (rs ^. levrsNextToken) = Nothing
| stop (rs ^. levrsElasticsearchVersions) = Nothing
| otherwise =
Just $ rq & levNextToken .~ rs ^. levrsNextToken
instance AWSRequest ListElasticsearchVersions where
type Rs ListElasticsearchVersions =
ListElasticsearchVersionsResponse
request = get elasticSearch
response
= receiveJSON
(\ s h x ->
ListElasticsearchVersionsResponse' <$>
(x .?> "NextToken") <*>
(x .?> "ElasticsearchVersions" .!@ mempty)
<*> (pure (fromEnum s)))
instance Hashable ListElasticsearchVersions where
instance NFData ListElasticsearchVersions where
instance ToHeaders ListElasticsearchVersions where
toHeaders = const mempty
instance ToPath ListElasticsearchVersions where
toPath = const "/2015-01-01/es/versions"
instance ToQuery ListElasticsearchVersions where
toQuery ListElasticsearchVersions'{..}
= mconcat
["nextToken" =: _levNextToken,
"maxResults" =: _levMaxResults]
data ListElasticsearchVersionsResponse = ListElasticsearchVersionsResponse'
{ _levrsNextToken :: !(Maybe Text)
, _levrsElasticsearchVersions :: !(Maybe [Text])
, _levrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listElasticsearchVersionsResponse
:: Int
-> ListElasticsearchVersionsResponse
listElasticsearchVersionsResponse pResponseStatus_ =
ListElasticsearchVersionsResponse'
{ _levrsNextToken = Nothing
, _levrsElasticsearchVersions = Nothing
, _levrsResponseStatus = pResponseStatus_
}
levrsNextToken :: Lens' ListElasticsearchVersionsResponse (Maybe Text)
levrsNextToken = lens _levrsNextToken (\ s a -> s{_levrsNextToken = a})
levrsElasticsearchVersions :: Lens' ListElasticsearchVersionsResponse [Text]
levrsElasticsearchVersions = lens _levrsElasticsearchVersions (\ s a -> s{_levrsElasticsearchVersions = a}) . _Default . _Coerce
levrsResponseStatus :: Lens' ListElasticsearchVersionsResponse Int
levrsResponseStatus = lens _levrsResponseStatus (\ s a -> s{_levrsResponseStatus = a})
instance NFData ListElasticsearchVersionsResponse
where