{-# 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.CloudFormation.ListExports
(
listExports
, ListExports
, leNextToken
, listExportsResponse
, ListExportsResponse
, lersNextToken
, lersExports
, lersResponseStatus
) where
import Network.AWS.CloudFormation.Types
import Network.AWS.CloudFormation.Types.Product
import Network.AWS.Lens
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
newtype ListExports = ListExports'
{ _leNextToken :: Maybe Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listExports
:: ListExports
listExports = ListExports' {_leNextToken = Nothing}
leNextToken :: Lens' ListExports (Maybe Text)
leNextToken = lens _leNextToken (\ s a -> s{_leNextToken = a})
instance AWSPager ListExports where
page rq rs
| stop (rs ^. lersNextToken) = Nothing
| stop (rs ^. lersExports) = Nothing
| otherwise =
Just $ rq & leNextToken .~ rs ^. lersNextToken
instance AWSRequest ListExports where
type Rs ListExports = ListExportsResponse
request = postQuery cloudFormation
response
= receiveXMLWrapper "ListExportsResult"
(\ s h x ->
ListExportsResponse' <$>
(x .@? "NextToken") <*>
(x .@? "Exports" .!@ mempty >>=
may (parseXMLList "member"))
<*> (pure (fromEnum s)))
instance Hashable ListExports where
instance NFData ListExports where
instance ToHeaders ListExports where
toHeaders = const mempty
instance ToPath ListExports where
toPath = const "/"
instance ToQuery ListExports where
toQuery ListExports'{..}
= mconcat
["Action" =: ("ListExports" :: ByteString),
"Version" =: ("2010-05-15" :: ByteString),
"NextToken" =: _leNextToken]
data ListExportsResponse = ListExportsResponse'
{ _lersNextToken :: !(Maybe Text)
, _lersExports :: !(Maybe [Export])
, _lersResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listExportsResponse
:: Int
-> ListExportsResponse
listExportsResponse pResponseStatus_ =
ListExportsResponse'
{ _lersNextToken = Nothing
, _lersExports = Nothing
, _lersResponseStatus = pResponseStatus_
}
lersNextToken :: Lens' ListExportsResponse (Maybe Text)
lersNextToken = lens _lersNextToken (\ s a -> s{_lersNextToken = a})
lersExports :: Lens' ListExportsResponse [Export]
lersExports = lens _lersExports (\ s a -> s{_lersExports = a}) . _Default . _Coerce
lersResponseStatus :: Lens' ListExportsResponse Int
lersResponseStatus = lens _lersResponseStatus (\ s a -> s{_lersResponseStatus = a})
instance NFData ListExportsResponse where