{-# 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.ServerlessApplicationRepository.ListApplicationVersions
(
listApplicationVersions
, ListApplicationVersions
, lavNextToken
, lavMaxItems
, lavApplicationId
, listApplicationVersionsResponse
, ListApplicationVersionsResponse
, lavrsVersions
, lavrsNextToken
, lavrsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.ServerlessApplicationRepository.Types
import Network.AWS.ServerlessApplicationRepository.Types.Product
data ListApplicationVersions = ListApplicationVersions'
{ _lavNextToken :: !(Maybe Text)
, _lavMaxItems :: !(Maybe Nat)
, _lavApplicationId :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listApplicationVersions
:: Text
-> ListApplicationVersions
listApplicationVersions pApplicationId_ =
ListApplicationVersions'
{ _lavNextToken = Nothing
, _lavMaxItems = Nothing
, _lavApplicationId = pApplicationId_
}
lavNextToken :: Lens' ListApplicationVersions (Maybe Text)
lavNextToken = lens _lavNextToken (\ s a -> s{_lavNextToken = a})
lavMaxItems :: Lens' ListApplicationVersions (Maybe Natural)
lavMaxItems = lens _lavMaxItems (\ s a -> s{_lavMaxItems = a}) . mapping _Nat
lavApplicationId :: Lens' ListApplicationVersions Text
lavApplicationId = lens _lavApplicationId (\ s a -> s{_lavApplicationId = a})
instance AWSRequest ListApplicationVersions where
type Rs ListApplicationVersions =
ListApplicationVersionsResponse
request = get serverlessApplicationRepository
response
= receiveJSON
(\ s h x ->
ListApplicationVersionsResponse' <$>
(x .?> "versions" .!@ mempty) <*> (x .?> "nextToken")
<*> (pure (fromEnum s)))
instance Hashable ListApplicationVersions where
instance NFData ListApplicationVersions where
instance ToHeaders ListApplicationVersions where
toHeaders
= const
(mconcat
["Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToPath ListApplicationVersions where
toPath ListApplicationVersions'{..}
= mconcat
["/applications/", toBS _lavApplicationId,
"/versions"]
instance ToQuery ListApplicationVersions where
toQuery ListApplicationVersions'{..}
= mconcat
["nextToken" =: _lavNextToken,
"maxItems" =: _lavMaxItems]
data ListApplicationVersionsResponse = ListApplicationVersionsResponse'
{ _lavrsVersions :: !(Maybe [VersionSummary])
, _lavrsNextToken :: !(Maybe Text)
, _lavrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listApplicationVersionsResponse
:: Int
-> ListApplicationVersionsResponse
listApplicationVersionsResponse pResponseStatus_ =
ListApplicationVersionsResponse'
{ _lavrsVersions = Nothing
, _lavrsNextToken = Nothing
, _lavrsResponseStatus = pResponseStatus_
}
lavrsVersions :: Lens' ListApplicationVersionsResponse [VersionSummary]
lavrsVersions = lens _lavrsVersions (\ s a -> s{_lavrsVersions = a}) . _Default . _Coerce
lavrsNextToken :: Lens' ListApplicationVersionsResponse (Maybe Text)
lavrsNextToken = lens _lavrsNextToken (\ s a -> s{_lavrsNextToken = a})
lavrsResponseStatus :: Lens' ListApplicationVersionsResponse Int
lavrsResponseStatus = lens _lavrsResponseStatus (\ s a -> s{_lavrsResponseStatus = a})
instance NFData ListApplicationVersionsResponse where