{-# 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.Cloud9.ListEnvironments
(
listEnvironments
, ListEnvironments
, leNextToken
, leMaxResults
, listEnvironmentsResponse
, ListEnvironmentsResponse
, lersEnvironmentIds
, lersNextToken
, lersResponseStatus
) where
import Network.AWS.Cloud9.Types
import Network.AWS.Cloud9.Types.Product
import Network.AWS.Lens
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data ListEnvironments = ListEnvironments'
{ _leNextToken :: !(Maybe Text)
, _leMaxResults :: !(Maybe Nat)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listEnvironments
:: ListEnvironments
listEnvironments =
ListEnvironments' {_leNextToken = Nothing, _leMaxResults = Nothing}
leNextToken :: Lens' ListEnvironments (Maybe Text)
leNextToken = lens _leNextToken (\ s a -> s{_leNextToken = a})
leMaxResults :: Lens' ListEnvironments (Maybe Natural)
leMaxResults = lens _leMaxResults (\ s a -> s{_leMaxResults = a}) . mapping _Nat
instance AWSPager ListEnvironments where
page rq rs
| stop (rs ^. lersNextToken) = Nothing
| stop (rs ^. lersEnvironmentIds) = Nothing
| otherwise =
Just $ rq & leNextToken .~ rs ^. lersNextToken
instance AWSRequest ListEnvironments where
type Rs ListEnvironments = ListEnvironmentsResponse
request = postJSON cloud9
response
= receiveJSON
(\ s h x ->
ListEnvironmentsResponse' <$>
(x .?> "environmentIds" .!@ mempty) <*>
(x .?> "nextToken")
<*> (pure (fromEnum s)))
instance Hashable ListEnvironments where
instance NFData ListEnvironments where
instance ToHeaders ListEnvironments where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AWSCloud9WorkspaceManagementService.ListEnvironments"
:: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON ListEnvironments where
toJSON ListEnvironments'{..}
= object
(catMaybes
[("nextToken" .=) <$> _leNextToken,
("maxResults" .=) <$> _leMaxResults])
instance ToPath ListEnvironments where
toPath = const "/"
instance ToQuery ListEnvironments where
toQuery = const mempty
data ListEnvironmentsResponse = ListEnvironmentsResponse'
{ _lersEnvironmentIds :: !(Maybe [Text])
, _lersNextToken :: !(Maybe Text)
, _lersResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listEnvironmentsResponse
:: Int
-> ListEnvironmentsResponse
listEnvironmentsResponse pResponseStatus_ =
ListEnvironmentsResponse'
{ _lersEnvironmentIds = Nothing
, _lersNextToken = Nothing
, _lersResponseStatus = pResponseStatus_
}
lersEnvironmentIds :: Lens' ListEnvironmentsResponse [Text]
lersEnvironmentIds = lens _lersEnvironmentIds (\ s a -> s{_lersEnvironmentIds = a}) . _Default . _Coerce
lersNextToken :: Lens' ListEnvironmentsResponse (Maybe Text)
lersNextToken = lens _lersNextToken (\ s a -> s{_lersNextToken = a})
lersResponseStatus :: Lens' ListEnvironmentsResponse Int
lersResponseStatus = lens _lersResponseStatus (\ s a -> s{_lersResponseStatus = a})
instance NFData ListEnvironmentsResponse where