module Network.AWS.Inspector.CreateAssessment
(
createAssessment
, CreateAssessment
, caApplicationARN
, caUserAttributesForFindings
, caDurationInSeconds
, caAssessmentName
, createAssessmentResponse
, CreateAssessmentResponse
, crsAssessmentARN
, crsResponseStatus
) where
import Network.AWS.Inspector.Types
import Network.AWS.Inspector.Types.Product
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data CreateAssessment = CreateAssessment'
{ _caApplicationARN :: !(Maybe Text)
, _caUserAttributesForFindings :: !(Maybe [Attribute])
, _caDurationInSeconds :: !(Maybe Int)
, _caAssessmentName :: !(Maybe Text)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
createAssessment
:: CreateAssessment
createAssessment =
CreateAssessment'
{ _caApplicationARN = Nothing
, _caUserAttributesForFindings = Nothing
, _caDurationInSeconds = Nothing
, _caAssessmentName = Nothing
}
caApplicationARN :: Lens' CreateAssessment (Maybe Text)
caApplicationARN = lens _caApplicationARN (\ s a -> s{_caApplicationARN = a});
caUserAttributesForFindings :: Lens' CreateAssessment [Attribute]
caUserAttributesForFindings = lens _caUserAttributesForFindings (\ s a -> s{_caUserAttributesForFindings = a}) . _Default . _Coerce;
caDurationInSeconds :: Lens' CreateAssessment (Maybe Int)
caDurationInSeconds = lens _caDurationInSeconds (\ s a -> s{_caDurationInSeconds = a});
caAssessmentName :: Lens' CreateAssessment (Maybe Text)
caAssessmentName = lens _caAssessmentName (\ s a -> s{_caAssessmentName = a});
instance AWSRequest CreateAssessment where
type Rs CreateAssessment = CreateAssessmentResponse
request = postJSON inspector
response
= receiveJSON
(\ s h x ->
CreateAssessmentResponse' <$>
(x .?> "assessmentArn") <*> (pure (fromEnum s)))
instance ToHeaders CreateAssessment where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("InspectorService.CreateAssessment" :: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON CreateAssessment where
toJSON CreateAssessment'{..}
= object
(catMaybes
[("applicationArn" .=) <$> _caApplicationARN,
("userAttributesForFindings" .=) <$>
_caUserAttributesForFindings,
("durationInSeconds" .=) <$> _caDurationInSeconds,
("assessmentName" .=) <$> _caAssessmentName])
instance ToPath CreateAssessment where
toPath = const "/"
instance ToQuery CreateAssessment where
toQuery = const mempty
data CreateAssessmentResponse = CreateAssessmentResponse'
{ _crsAssessmentARN :: !(Maybe Text)
, _crsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
createAssessmentResponse
:: Int
-> CreateAssessmentResponse
createAssessmentResponse pResponseStatus_ =
CreateAssessmentResponse'
{ _crsAssessmentARN = Nothing
, _crsResponseStatus = pResponseStatus_
}
crsAssessmentARN :: Lens' CreateAssessmentResponse (Maybe Text)
crsAssessmentARN = lens _crsAssessmentARN (\ s a -> s{_crsAssessmentARN = a});
crsResponseStatus :: Lens' CreateAssessmentResponse Int
crsResponseStatus = lens _crsResponseStatus (\ s a -> s{_crsResponseStatus = a});