amazonka-inspector-1.4.1: gen/Network/AWS/Inspector/StartAssessmentRun.hs
{-# 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.StartAssessmentRun
-- Copyright : (c) 2013-2016 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Starts the assessment run specified by the ARN of the assessment
-- template. For this API to function properly, you must not exceed the
-- limit of running up to 500 concurrent agents per AWS account.
module Network.AWS.Inspector.StartAssessmentRun
(
-- * Creating a Request
startAssessmentRun
, StartAssessmentRun
-- * Request Lenses
, sarAssessmentRunName
, sarAssessmentTemplateARN
-- * Destructuring the Response
, startAssessmentRunResponse
, StartAssessmentRunResponse
-- * Response Lenses
, sarrsResponseStatus
, sarrsAssessmentRunARN
) 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:/ 'startAssessmentRun' smart constructor.
data StartAssessmentRun = StartAssessmentRun'
{ _sarAssessmentRunName :: !(Maybe Text)
, _sarAssessmentTemplateARN :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'StartAssessmentRun' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'sarAssessmentRunName'
--
-- * 'sarAssessmentTemplateARN'
startAssessmentRun
:: Text -- ^ 'sarAssessmentTemplateARN'
-> StartAssessmentRun
startAssessmentRun pAssessmentTemplateARN_ =
StartAssessmentRun'
{ _sarAssessmentRunName = Nothing
, _sarAssessmentTemplateARN = pAssessmentTemplateARN_
}
-- | You can specify the name for the assessment run, or you can use the
-- auto-generated name that is based on the assessment template name. The
-- name must be unique for the assessment template.
sarAssessmentRunName :: Lens' StartAssessmentRun (Maybe Text)
sarAssessmentRunName = lens _sarAssessmentRunName (\ s a -> s{_sarAssessmentRunName = a});
-- | The ARN of the assessment template of the assessment run that you want
-- to start.
sarAssessmentTemplateARN :: Lens' StartAssessmentRun Text
sarAssessmentTemplateARN = lens _sarAssessmentTemplateARN (\ s a -> s{_sarAssessmentTemplateARN = a});
instance AWSRequest StartAssessmentRun where
type Rs StartAssessmentRun =
StartAssessmentRunResponse
request = postJSON inspector
response
= receiveJSON
(\ s h x ->
StartAssessmentRunResponse' <$>
(pure (fromEnum s)) <*> (x .:> "assessmentRunArn"))
instance Hashable StartAssessmentRun
instance NFData StartAssessmentRun
instance ToHeaders StartAssessmentRun where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("InspectorService.StartAssessmentRun" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON StartAssessmentRun where
toJSON StartAssessmentRun'{..}
= object
(catMaybes
[("assessmentRunName" .=) <$> _sarAssessmentRunName,
Just
("assessmentTemplateArn" .=
_sarAssessmentTemplateARN)])
instance ToPath StartAssessmentRun where
toPath = const "/"
instance ToQuery StartAssessmentRun where
toQuery = const mempty
-- | /See:/ 'startAssessmentRunResponse' smart constructor.
data StartAssessmentRunResponse = StartAssessmentRunResponse'
{ _sarrsResponseStatus :: !Int
, _sarrsAssessmentRunARN :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'StartAssessmentRunResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'sarrsResponseStatus'
--
-- * 'sarrsAssessmentRunARN'
startAssessmentRunResponse
:: Int -- ^ 'sarrsResponseStatus'
-> Text -- ^ 'sarrsAssessmentRunARN'
-> StartAssessmentRunResponse
startAssessmentRunResponse pResponseStatus_ pAssessmentRunARN_ =
StartAssessmentRunResponse'
{ _sarrsResponseStatus = pResponseStatus_
, _sarrsAssessmentRunARN = pAssessmentRunARN_
}
-- | The response status code.
sarrsResponseStatus :: Lens' StartAssessmentRunResponse Int
sarrsResponseStatus = lens _sarrsResponseStatus (\ s a -> s{_sarrsResponseStatus = a});
-- | The ARN of the assessment run that has been started.
sarrsAssessmentRunARN :: Lens' StartAssessmentRunResponse Text
sarrsAssessmentRunARN = lens _sarrsAssessmentRunARN (\ s a -> s{_sarrsAssessmentRunARN = a});
instance NFData StartAssessmentRunResponse