{-# 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.GuardDuty.CreateThreatIntelSet
(
createThreatIntelSet
, CreateThreatIntelSet
, ctisLocation
, ctisFormat
, ctisActivate
, ctisName
, ctisDetectorId
, createThreatIntelSetResponse
, CreateThreatIntelSetResponse
, ctisrsThreatIntelSetId
, ctisrsResponseStatus
) where
import Network.AWS.GuardDuty.Types
import Network.AWS.GuardDuty.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data CreateThreatIntelSet = CreateThreatIntelSet'
{ _ctisLocation :: !(Maybe Text)
, _ctisFormat :: !(Maybe ThreatIntelSetFormat)
, _ctisActivate :: !(Maybe Bool)
, _ctisName :: !(Maybe Text)
, _ctisDetectorId :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createThreatIntelSet
:: Text
-> CreateThreatIntelSet
createThreatIntelSet pDetectorId_ =
CreateThreatIntelSet'
{ _ctisLocation = Nothing
, _ctisFormat = Nothing
, _ctisActivate = Nothing
, _ctisName = Nothing
, _ctisDetectorId = pDetectorId_
}
ctisLocation :: Lens' CreateThreatIntelSet (Maybe Text)
ctisLocation = lens _ctisLocation (\ s a -> s{_ctisLocation = a})
ctisFormat :: Lens' CreateThreatIntelSet (Maybe ThreatIntelSetFormat)
ctisFormat = lens _ctisFormat (\ s a -> s{_ctisFormat = a})
ctisActivate :: Lens' CreateThreatIntelSet (Maybe Bool)
ctisActivate = lens _ctisActivate (\ s a -> s{_ctisActivate = a})
ctisName :: Lens' CreateThreatIntelSet (Maybe Text)
ctisName = lens _ctisName (\ s a -> s{_ctisName = a})
ctisDetectorId :: Lens' CreateThreatIntelSet Text
ctisDetectorId = lens _ctisDetectorId (\ s a -> s{_ctisDetectorId = a})
instance AWSRequest CreateThreatIntelSet where
type Rs CreateThreatIntelSet =
CreateThreatIntelSetResponse
request = postJSON guardDuty
response
= receiveJSON
(\ s h x ->
CreateThreatIntelSetResponse' <$>
(x .?> "threatIntelSetId") <*> (pure (fromEnum s)))
instance Hashable CreateThreatIntelSet where
instance NFData CreateThreatIntelSet where
instance ToHeaders CreateThreatIntelSet where
toHeaders
= const
(mconcat
["Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON CreateThreatIntelSet where
toJSON CreateThreatIntelSet'{..}
= object
(catMaybes
[("location" .=) <$> _ctisLocation,
("format" .=) <$> _ctisFormat,
("activate" .=) <$> _ctisActivate,
("name" .=) <$> _ctisName])
instance ToPath CreateThreatIntelSet where
toPath CreateThreatIntelSet'{..}
= mconcat
["/detector/", toBS _ctisDetectorId,
"/threatintelset"]
instance ToQuery CreateThreatIntelSet where
toQuery = const mempty
data CreateThreatIntelSetResponse = CreateThreatIntelSetResponse'
{ _ctisrsThreatIntelSetId :: !(Maybe Text)
, _ctisrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createThreatIntelSetResponse
:: Int
-> CreateThreatIntelSetResponse
createThreatIntelSetResponse pResponseStatus_ =
CreateThreatIntelSetResponse'
{ _ctisrsThreatIntelSetId = Nothing
, _ctisrsResponseStatus = pResponseStatus_
}
ctisrsThreatIntelSetId :: Lens' CreateThreatIntelSetResponse (Maybe Text)
ctisrsThreatIntelSetId = lens _ctisrsThreatIntelSetId (\ s a -> s{_ctisrsThreatIntelSetId = a})
ctisrsResponseStatus :: Lens' CreateThreatIntelSetResponse Int
ctisrsResponseStatus = lens _ctisrsResponseStatus (\ s a -> s{_ctisrsResponseStatus = a})
instance NFData CreateThreatIntelSetResponse where