{-# 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.CodeDeploy.ListApplications
(
listApplications
, ListApplications
, laNextToken
, listApplicationsResponse
, ListApplicationsResponse
, larsNextToken
, larsApplications
, larsResponseStatus
) where
import Network.AWS.CodeDeploy.Types
import Network.AWS.CodeDeploy.Types.Product
import Network.AWS.Lens
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
newtype ListApplications = ListApplications'
{ _laNextToken :: Maybe Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listApplications
:: ListApplications
listApplications = ListApplications' {_laNextToken = Nothing}
laNextToken :: Lens' ListApplications (Maybe Text)
laNextToken = lens _laNextToken (\ s a -> s{_laNextToken = a})
instance AWSPager ListApplications where
page rq rs
| stop (rs ^. larsNextToken) = Nothing
| stop (rs ^. larsApplications) = Nothing
| otherwise =
Just $ rq & laNextToken .~ rs ^. larsNextToken
instance AWSRequest ListApplications where
type Rs ListApplications = ListApplicationsResponse
request = postJSON codeDeploy
response
= receiveJSON
(\ s h x ->
ListApplicationsResponse' <$>
(x .?> "nextToken") <*>
(x .?> "applications" .!@ mempty)
<*> (pure (fromEnum s)))
instance Hashable ListApplications where
instance NFData ListApplications where
instance ToHeaders ListApplications where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("CodeDeploy_20141006.ListApplications" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON ListApplications where
toJSON ListApplications'{..}
= object
(catMaybes [("nextToken" .=) <$> _laNextToken])
instance ToPath ListApplications where
toPath = const "/"
instance ToQuery ListApplications where
toQuery = const mempty
data ListApplicationsResponse = ListApplicationsResponse'
{ _larsNextToken :: !(Maybe Text)
, _larsApplications :: !(Maybe [Text])
, _larsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listApplicationsResponse
:: Int
-> ListApplicationsResponse
listApplicationsResponse pResponseStatus_ =
ListApplicationsResponse'
{ _larsNextToken = Nothing
, _larsApplications = Nothing
, _larsResponseStatus = pResponseStatus_
}
larsNextToken :: Lens' ListApplicationsResponse (Maybe Text)
larsNextToken = lens _larsNextToken (\ s a -> s{_larsNextToken = a})
larsApplications :: Lens' ListApplicationsResponse [Text]
larsApplications = lens _larsApplications (\ s a -> s{_larsApplications = a}) . _Default . _Coerce
larsResponseStatus :: Lens' ListApplicationsResponse Int
larsResponseStatus = lens _larsResponseStatus (\ s a -> s{_larsResponseStatus = a})
instance NFData ListApplicationsResponse where