{-# 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.UpdateFilter
(
updateFilter
, UpdateFilter
, ufFindingCriteria
, ufAction
, ufDescription
, ufRank
, ufDetectorId
, ufFilterName
, updateFilterResponse
, UpdateFilterResponse
, ufrsName
, ufrsResponseStatus
) 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 UpdateFilter = UpdateFilter'
{ _ufFindingCriteria :: !(Maybe FindingCriteria)
, _ufAction :: !(Maybe FilterAction)
, _ufDescription :: !(Maybe Text)
, _ufRank :: !(Maybe Int)
, _ufDetectorId :: !Text
, _ufFilterName :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
updateFilter
:: Text
-> Text
-> UpdateFilter
updateFilter pDetectorId_ pFilterName_ =
UpdateFilter'
{ _ufFindingCriteria = Nothing
, _ufAction = Nothing
, _ufDescription = Nothing
, _ufRank = Nothing
, _ufDetectorId = pDetectorId_
, _ufFilterName = pFilterName_
}
ufFindingCriteria :: Lens' UpdateFilter (Maybe FindingCriteria)
ufFindingCriteria = lens _ufFindingCriteria (\ s a -> s{_ufFindingCriteria = a})
ufAction :: Lens' UpdateFilter (Maybe FilterAction)
ufAction = lens _ufAction (\ s a -> s{_ufAction = a})
ufDescription :: Lens' UpdateFilter (Maybe Text)
ufDescription = lens _ufDescription (\ s a -> s{_ufDescription = a})
ufRank :: Lens' UpdateFilter (Maybe Int)
ufRank = lens _ufRank (\ s a -> s{_ufRank = a})
ufDetectorId :: Lens' UpdateFilter Text
ufDetectorId = lens _ufDetectorId (\ s a -> s{_ufDetectorId = a})
ufFilterName :: Lens' UpdateFilter Text
ufFilterName = lens _ufFilterName (\ s a -> s{_ufFilterName = a})
instance AWSRequest UpdateFilter where
type Rs UpdateFilter = UpdateFilterResponse
request = postJSON guardDuty
response
= receiveJSON
(\ s h x ->
UpdateFilterResponse' <$>
(x .?> "name") <*> (pure (fromEnum s)))
instance Hashable UpdateFilter where
instance NFData UpdateFilter where
instance ToHeaders UpdateFilter where
toHeaders
= const
(mconcat
["Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON UpdateFilter where
toJSON UpdateFilter'{..}
= object
(catMaybes
[("findingCriteria" .=) <$> _ufFindingCriteria,
("action" .=) <$> _ufAction,
("description" .=) <$> _ufDescription,
("rank" .=) <$> _ufRank])
instance ToPath UpdateFilter where
toPath UpdateFilter'{..}
= mconcat
["/detector/", toBS _ufDetectorId, "/filter/",
toBS _ufFilterName]
instance ToQuery UpdateFilter where
toQuery = const mempty
data UpdateFilterResponse = UpdateFilterResponse'
{ _ufrsName :: !(Maybe Text)
, _ufrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
updateFilterResponse
:: Int
-> UpdateFilterResponse
updateFilterResponse pResponseStatus_ =
UpdateFilterResponse'
{_ufrsName = Nothing, _ufrsResponseStatus = pResponseStatus_}
ufrsName :: Lens' UpdateFilterResponse (Maybe Text)
ufrsName = lens _ufrsName (\ s a -> s{_ufrsName = a})
ufrsResponseStatus :: Lens' UpdateFilterResponse Int
ufrsResponseStatus = lens _ufrsResponseStatus (\ s a -> s{_ufrsResponseStatus = a})
instance NFData UpdateFilterResponse where