{-# 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.CreateAssessmentTemplate
(
createAssessmentTemplate
, CreateAssessmentTemplate
, catUserAttributesForFindings
, catAssessmentTargetARN
, catAssessmentTemplateName
, catDurationInSeconds
, catRulesPackageARNs
, createAssessmentTemplateResponse
, CreateAssessmentTemplateResponse
, crsResponseStatus
, crsAssessmentTemplateARN
) 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
data CreateAssessmentTemplate = CreateAssessmentTemplate'
{ _catUserAttributesForFindings :: !(Maybe [Attribute])
, _catAssessmentTargetARN :: !Text
, _catAssessmentTemplateName :: !Text
, _catDurationInSeconds :: !Nat
, _catRulesPackageARNs :: ![Text]
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createAssessmentTemplate
:: Text
-> Text
-> Natural
-> CreateAssessmentTemplate
createAssessmentTemplate pAssessmentTargetARN_ pAssessmentTemplateName_ pDurationInSeconds_ =
CreateAssessmentTemplate'
{ _catUserAttributesForFindings = Nothing
, _catAssessmentTargetARN = pAssessmentTargetARN_
, _catAssessmentTemplateName = pAssessmentTemplateName_
, _catDurationInSeconds = _Nat # pDurationInSeconds_
, _catRulesPackageARNs = mempty
}
catUserAttributesForFindings :: Lens' CreateAssessmentTemplate [Attribute]
catUserAttributesForFindings = lens _catUserAttributesForFindings (\ s a -> s{_catUserAttributesForFindings = a}) . _Default . _Coerce
catAssessmentTargetARN :: Lens' CreateAssessmentTemplate Text
catAssessmentTargetARN = lens _catAssessmentTargetARN (\ s a -> s{_catAssessmentTargetARN = a})
catAssessmentTemplateName :: Lens' CreateAssessmentTemplate Text
catAssessmentTemplateName = lens _catAssessmentTemplateName (\ s a -> s{_catAssessmentTemplateName = a})
catDurationInSeconds :: Lens' CreateAssessmentTemplate Natural
catDurationInSeconds = lens _catDurationInSeconds (\ s a -> s{_catDurationInSeconds = a}) . _Nat
catRulesPackageARNs :: Lens' CreateAssessmentTemplate [Text]
catRulesPackageARNs = lens _catRulesPackageARNs (\ s a -> s{_catRulesPackageARNs = a}) . _Coerce
instance AWSRequest CreateAssessmentTemplate where
type Rs CreateAssessmentTemplate =
CreateAssessmentTemplateResponse
request = postJSON inspector
response
= receiveJSON
(\ s h x ->
CreateAssessmentTemplateResponse' <$>
(pure (fromEnum s)) <*>
(x .:> "assessmentTemplateArn"))
instance Hashable CreateAssessmentTemplate where
instance NFData CreateAssessmentTemplate where
instance ToHeaders CreateAssessmentTemplate where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("InspectorService.CreateAssessmentTemplate" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON CreateAssessmentTemplate where
toJSON CreateAssessmentTemplate'{..}
= object
(catMaybes
[("userAttributesForFindings" .=) <$>
_catUserAttributesForFindings,
Just
("assessmentTargetArn" .= _catAssessmentTargetARN),
Just
("assessmentTemplateName" .=
_catAssessmentTemplateName),
Just ("durationInSeconds" .= _catDurationInSeconds),
Just ("rulesPackageArns" .= _catRulesPackageARNs)])
instance ToPath CreateAssessmentTemplate where
toPath = const "/"
instance ToQuery CreateAssessmentTemplate where
toQuery = const mempty
data CreateAssessmentTemplateResponse = CreateAssessmentTemplateResponse'
{ _crsResponseStatus :: !Int
, _crsAssessmentTemplateARN :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createAssessmentTemplateResponse
:: Int
-> Text
-> CreateAssessmentTemplateResponse
createAssessmentTemplateResponse pResponseStatus_ pAssessmentTemplateARN_ =
CreateAssessmentTemplateResponse'
{ _crsResponseStatus = pResponseStatus_
, _crsAssessmentTemplateARN = pAssessmentTemplateARN_
}
crsResponseStatus :: Lens' CreateAssessmentTemplateResponse Int
crsResponseStatus = lens _crsResponseStatus (\ s a -> s{_crsResponseStatus = a})
crsAssessmentTemplateARN :: Lens' CreateAssessmentTemplateResponse Text
crsAssessmentTemplateARN = lens _crsAssessmentTemplateARN (\ s a -> s{_crsAssessmentTemplateARN = a})
instance NFData CreateAssessmentTemplateResponse
where