module Network.AWS.CloudFormation.ListStackResources
(
listStackResources
, ListStackResources
, lsrNextToken
, lsrStackName
, listStackResourcesResponse
, ListStackResourcesResponse
, lsrrsNextToken
, lsrrsStackResourceSummaries
, lsrrsResponseStatus
) 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
data ListStackResources = ListStackResources'
{ _lsrNextToken :: !(Maybe Text)
, _lsrStackName :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listStackResources
:: Text
-> ListStackResources
listStackResources pStackName_ =
ListStackResources' {_lsrNextToken = Nothing, _lsrStackName = pStackName_}
lsrNextToken :: Lens' ListStackResources (Maybe Text)
lsrNextToken = lens _lsrNextToken (\ s a -> s{_lsrNextToken = a});
lsrStackName :: Lens' ListStackResources Text
lsrStackName = lens _lsrStackName (\ s a -> s{_lsrStackName = a});
instance AWSPager ListStackResources where
page rq rs
| stop (rs ^. lsrrsNextToken) = Nothing
| stop (rs ^. lsrrsStackResourceSummaries) = Nothing
| otherwise =
Just $ rq & lsrNextToken .~ rs ^. lsrrsNextToken
instance AWSRequest ListStackResources where
type Rs ListStackResources =
ListStackResourcesResponse
request = postQuery cloudFormation
response
= receiveXMLWrapper "ListStackResourcesResult"
(\ s h x ->
ListStackResourcesResponse' <$>
(x .@? "NextToken") <*>
(x .@? "StackResourceSummaries" .!@ mempty >>=
may (parseXMLList "member"))
<*> (pure (fromEnum s)))
instance Hashable ListStackResources where
instance NFData ListStackResources where
instance ToHeaders ListStackResources where
toHeaders = const mempty
instance ToPath ListStackResources where
toPath = const "/"
instance ToQuery ListStackResources where
toQuery ListStackResources'{..}
= mconcat
["Action" =: ("ListStackResources" :: ByteString),
"Version" =: ("2010-05-15" :: ByteString),
"NextToken" =: _lsrNextToken,
"StackName" =: _lsrStackName]
data ListStackResourcesResponse = ListStackResourcesResponse'
{ _lsrrsNextToken :: !(Maybe Text)
, _lsrrsStackResourceSummaries :: !(Maybe [StackResourceSummary])
, _lsrrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listStackResourcesResponse
:: Int
-> ListStackResourcesResponse
listStackResourcesResponse pResponseStatus_ =
ListStackResourcesResponse'
{ _lsrrsNextToken = Nothing
, _lsrrsStackResourceSummaries = Nothing
, _lsrrsResponseStatus = pResponseStatus_
}
lsrrsNextToken :: Lens' ListStackResourcesResponse (Maybe Text)
lsrrsNextToken = lens _lsrrsNextToken (\ s a -> s{_lsrrsNextToken = a});
lsrrsStackResourceSummaries :: Lens' ListStackResourcesResponse [StackResourceSummary]
lsrrsStackResourceSummaries = lens _lsrrsStackResourceSummaries (\ s a -> s{_lsrrsStackResourceSummaries = a}) . _Default . _Coerce;
lsrrsResponseStatus :: Lens' ListStackResourcesResponse Int
lsrrsResponseStatus = lens _lsrrsResponseStatus (\ s a -> s{_lsrrsResponseStatus = a});
instance NFData ListStackResourcesResponse where