module Network.AWS.CloudFormation.ListStackResources
(
ListStackResources
, listStackResources
, lsrNextToken
, lsrStackName
, ListStackResourcesResponse
, listStackResourcesResponse
, lsrrNextToken
, lsrrStackResourceSummaries
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.CloudFormation.Types
import qualified GHC.Exts
data ListStackResources = ListStackResources
{ _lsrNextToken :: Maybe Text
, _lsrStackName :: Text
} deriving (Eq, Ord, Show)
listStackResources :: Text
-> ListStackResources
listStackResources p1 = ListStackResources
{ _lsrStackName = p1
, _lsrNextToken = Nothing
}
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 })
data ListStackResourcesResponse = ListStackResourcesResponse
{ _lsrrNextToken :: Maybe Text
, _lsrrStackResourceSummaries :: List "member" StackResourceSummary
} deriving (Eq, Show)
listStackResourcesResponse :: ListStackResourcesResponse
listStackResourcesResponse = ListStackResourcesResponse
{ _lsrrStackResourceSummaries = mempty
, _lsrrNextToken = Nothing
}
lsrrNextToken :: Lens' ListStackResourcesResponse (Maybe Text)
lsrrNextToken = lens _lsrrNextToken (\s a -> s { _lsrrNextToken = a })
lsrrStackResourceSummaries :: Lens' ListStackResourcesResponse [StackResourceSummary]
lsrrStackResourceSummaries =
lens _lsrrStackResourceSummaries
(\s a -> s { _lsrrStackResourceSummaries = a })
. _List
instance ToPath ListStackResources where
toPath = const "/"
instance ToQuery ListStackResources where
toQuery ListStackResources{..} = mconcat
[ "NextToken" =? _lsrNextToken
, "StackName" =? _lsrStackName
]
instance ToHeaders ListStackResources
instance AWSRequest ListStackResources where
type Sv ListStackResources = CloudFormation
type Rs ListStackResources = ListStackResourcesResponse
request = post "ListStackResources"
response = xmlResponse
instance FromXML ListStackResourcesResponse where
parseXML = withElement "ListStackResourcesResult" $ \x -> ListStackResourcesResponse
<$> x .@? "NextToken"
<*> x .@? "StackResourceSummaries" .!@ mempty
instance AWSPager ListStackResources where
page rq rs
| stop (rq ^. lsrNextToken) = Nothing
| otherwise = (\x -> rq & lsrNextToken ?~ x)
<$> (rs ^. lsrrNextToken)