{-# 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.Inspector.ListAssessmentRuns
(
listAssessmentRuns
, ListAssessmentRuns
, larNextToken
, larFilter
, larAssessmentTemplateARNs
, larMaxResults
, listAssessmentRunsResponse
, ListAssessmentRunsResponse
, larrsNextToken
, larrsResponseStatus
, larrsAssessmentRunARNs
) where
import Network.AWS.Inspector.Types
import Network.AWS.Inspector.Types.Product
import Network.AWS.Lens
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data ListAssessmentRuns = ListAssessmentRuns'
{ _larNextToken :: !(Maybe Text)
, _larFilter :: !(Maybe AssessmentRunFilter)
, _larAssessmentTemplateARNs :: !(Maybe [Text])
, _larMaxResults :: !(Maybe Int)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listAssessmentRuns
:: ListAssessmentRuns
listAssessmentRuns =
ListAssessmentRuns'
{ _larNextToken = Nothing
, _larFilter = Nothing
, _larAssessmentTemplateARNs = Nothing
, _larMaxResults = Nothing
}
larNextToken :: Lens' ListAssessmentRuns (Maybe Text)
larNextToken = lens _larNextToken (\ s a -> s{_larNextToken = a})
larFilter :: Lens' ListAssessmentRuns (Maybe AssessmentRunFilter)
larFilter = lens _larFilter (\ s a -> s{_larFilter = a})
larAssessmentTemplateARNs :: Lens' ListAssessmentRuns [Text]
larAssessmentTemplateARNs = lens _larAssessmentTemplateARNs (\ s a -> s{_larAssessmentTemplateARNs = a}) . _Default . _Coerce
larMaxResults :: Lens' ListAssessmentRuns (Maybe Int)
larMaxResults = lens _larMaxResults (\ s a -> s{_larMaxResults = a})
instance AWSPager ListAssessmentRuns where
page rq rs
| stop (rs ^. larrsNextToken) = Nothing
| stop (rs ^. larrsAssessmentRunARNs) = Nothing
| otherwise =
Just $ rq & larNextToken .~ rs ^. larrsNextToken
instance AWSRequest ListAssessmentRuns where
type Rs ListAssessmentRuns =
ListAssessmentRunsResponse
request = postJSON inspector
response
= receiveJSON
(\ s h x ->
ListAssessmentRunsResponse' <$>
(x .?> "nextToken") <*> (pure (fromEnum s)) <*>
(x .?> "assessmentRunArns" .!@ mempty))
instance Hashable ListAssessmentRuns where
instance NFData ListAssessmentRuns where
instance ToHeaders ListAssessmentRuns where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("InspectorService.ListAssessmentRuns" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON ListAssessmentRuns where
toJSON ListAssessmentRuns'{..}
= object
(catMaybes
[("nextToken" .=) <$> _larNextToken,
("filter" .=) <$> _larFilter,
("assessmentTemplateArns" .=) <$>
_larAssessmentTemplateARNs,
("maxResults" .=) <$> _larMaxResults])
instance ToPath ListAssessmentRuns where
toPath = const "/"
instance ToQuery ListAssessmentRuns where
toQuery = const mempty
data ListAssessmentRunsResponse = ListAssessmentRunsResponse'
{ _larrsNextToken :: !(Maybe Text)
, _larrsResponseStatus :: !Int
, _larrsAssessmentRunARNs :: ![Text]
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listAssessmentRunsResponse
:: Int
-> ListAssessmentRunsResponse
listAssessmentRunsResponse pResponseStatus_ =
ListAssessmentRunsResponse'
{ _larrsNextToken = Nothing
, _larrsResponseStatus = pResponseStatus_
, _larrsAssessmentRunARNs = mempty
}
larrsNextToken :: Lens' ListAssessmentRunsResponse (Maybe Text)
larrsNextToken = lens _larrsNextToken (\ s a -> s{_larrsNextToken = a})
larrsResponseStatus :: Lens' ListAssessmentRunsResponse Int
larrsResponseStatus = lens _larrsResponseStatus (\ s a -> s{_larrsResponseStatus = a})
larrsAssessmentRunARNs :: Lens' ListAssessmentRunsResponse [Text]
larrsAssessmentRunARNs = lens _larrsAssessmentRunARNs (\ s a -> s{_larrsAssessmentRunARNs = a}) . _Coerce
instance NFData ListAssessmentRunsResponse where