{-# 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 #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Network.AWS.Inspector.DescribeAssessmentRuns -- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Describes the assessment runs that are specified by the ARNs of the assessment runs. -- -- module Network.AWS.Inspector.DescribeAssessmentRuns ( -- * Creating a Request describeAssessmentRuns , DescribeAssessmentRuns -- * Request Lenses , darAssessmentRunARNs -- * Destructuring the Response , describeAssessmentRunsResponse , DescribeAssessmentRunsResponse -- * Response Lenses , darrsResponseStatus , darrsAssessmentRuns , darrsFailedItems ) where import Network.AWS.Inspector.Types import Network.AWS.Inspector.Types.Product import Network.AWS.Lens import Network.AWS.Prelude import Network.AWS.Request import Network.AWS.Response -- | /See:/ 'describeAssessmentRuns' smart constructor. newtype DescribeAssessmentRuns = DescribeAssessmentRuns' { _darAssessmentRunARNs :: List1 Text } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'DescribeAssessmentRuns' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'darAssessmentRunARNs' - The ARN that specifies the assessment run that you want to describe. describeAssessmentRuns :: NonEmpty Text -- ^ 'darAssessmentRunARNs' -> DescribeAssessmentRuns describeAssessmentRuns pAssessmentRunARNs_ = DescribeAssessmentRuns' {_darAssessmentRunARNs = _List1 # pAssessmentRunARNs_} -- | The ARN that specifies the assessment run that you want to describe. darAssessmentRunARNs :: Lens' DescribeAssessmentRuns (NonEmpty Text) darAssessmentRunARNs = lens _darAssessmentRunARNs (\ s a -> s{_darAssessmentRunARNs = a}) . _List1; instance AWSRequest DescribeAssessmentRuns where type Rs DescribeAssessmentRuns = DescribeAssessmentRunsResponse request = postJSON inspector response = receiveJSON (\ s h x -> DescribeAssessmentRunsResponse' <$> (pure (fromEnum s)) <*> (x .?> "assessmentRuns" .!@ mempty) <*> (x .?> "failedItems" .!@ mempty)) instance Hashable DescribeAssessmentRuns where instance NFData DescribeAssessmentRuns where instance ToHeaders DescribeAssessmentRuns where toHeaders = const (mconcat ["X-Amz-Target" =# ("InspectorService.DescribeAssessmentRuns" :: ByteString), "Content-Type" =# ("application/x-amz-json-1.1" :: ByteString)]) instance ToJSON DescribeAssessmentRuns where toJSON DescribeAssessmentRuns'{..} = object (catMaybes [Just ("assessmentRunArns" .= _darAssessmentRunARNs)]) instance ToPath DescribeAssessmentRuns where toPath = const "/" instance ToQuery DescribeAssessmentRuns where toQuery = const mempty -- | /See:/ 'describeAssessmentRunsResponse' smart constructor. data DescribeAssessmentRunsResponse = DescribeAssessmentRunsResponse' { _darrsResponseStatus :: !Int , _darrsAssessmentRuns :: ![AssessmentRun] , _darrsFailedItems :: !(Map Text FailedItemDetails) } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'DescribeAssessmentRunsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'darrsResponseStatus' - -- | The response status code. -- -- * 'darrsAssessmentRuns' - Information about the assessment run. -- -- * 'darrsFailedItems' - Assessment run details that cannot be described. An error code is provided for each failed item. describeAssessmentRunsResponse :: Int -- ^ 'darrsResponseStatus' -> DescribeAssessmentRunsResponse describeAssessmentRunsResponse pResponseStatus_ = DescribeAssessmentRunsResponse' { _darrsResponseStatus = pResponseStatus_ , _darrsAssessmentRuns = mempty , _darrsFailedItems = mempty } -- | -- | The response status code. darrsResponseStatus :: Lens' DescribeAssessmentRunsResponse Int darrsResponseStatus = lens _darrsResponseStatus (\ s a -> s{_darrsResponseStatus = a}); -- | Information about the assessment run. darrsAssessmentRuns :: Lens' DescribeAssessmentRunsResponse [AssessmentRun] darrsAssessmentRuns = lens _darrsAssessmentRuns (\ s a -> s{_darrsAssessmentRuns = a}) . _Coerce; -- | Assessment run details that cannot be described. An error code is provided for each failed item. darrsFailedItems :: Lens' DescribeAssessmentRunsResponse (HashMap Text FailedItemDetails) darrsFailedItems = lens _darrsFailedItems (\ s a -> s{_darrsFailedItems = a}) . _Map; instance NFData DescribeAssessmentRunsResponse where