{-# 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.CreateIPSet
(
createIPSet
, CreateIPSet
, cisLocation
, cisFormat
, cisActivate
, cisName
, cisDetectorId
, createIPSetResponse
, CreateIPSetResponse
, cisrsIPSetId
, cisrsResponseStatus
) 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 CreateIPSet = CreateIPSet'
{ _cisLocation :: !(Maybe Text)
, _cisFormat :: !(Maybe IPSetFormat)
, _cisActivate :: !(Maybe Bool)
, _cisName :: !(Maybe Text)
, _cisDetectorId :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createIPSet
:: Text
-> CreateIPSet
createIPSet pDetectorId_ =
CreateIPSet'
{ _cisLocation = Nothing
, _cisFormat = Nothing
, _cisActivate = Nothing
, _cisName = Nothing
, _cisDetectorId = pDetectorId_
}
cisLocation :: Lens' CreateIPSet (Maybe Text)
cisLocation = lens _cisLocation (\ s a -> s{_cisLocation = a})
cisFormat :: Lens' CreateIPSet (Maybe IPSetFormat)
cisFormat = lens _cisFormat (\ s a -> s{_cisFormat = a})
cisActivate :: Lens' CreateIPSet (Maybe Bool)
cisActivate = lens _cisActivate (\ s a -> s{_cisActivate = a})
cisName :: Lens' CreateIPSet (Maybe Text)
cisName = lens _cisName (\ s a -> s{_cisName = a})
cisDetectorId :: Lens' CreateIPSet Text
cisDetectorId = lens _cisDetectorId (\ s a -> s{_cisDetectorId = a})
instance AWSRequest CreateIPSet where
type Rs CreateIPSet = CreateIPSetResponse
request = postJSON guardDuty
response
= receiveJSON
(\ s h x ->
CreateIPSetResponse' <$>
(x .?> "ipSetId") <*> (pure (fromEnum s)))
instance Hashable CreateIPSet where
instance NFData CreateIPSet where
instance ToHeaders CreateIPSet where
toHeaders
= const
(mconcat
["Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON CreateIPSet where
toJSON CreateIPSet'{..}
= object
(catMaybes
[("location" .=) <$> _cisLocation,
("format" .=) <$> _cisFormat,
("activate" .=) <$> _cisActivate,
("name" .=) <$> _cisName])
instance ToPath CreateIPSet where
toPath CreateIPSet'{..}
= mconcat
["/detector/", toBS _cisDetectorId, "/ipset"]
instance ToQuery CreateIPSet where
toQuery = const mempty
data CreateIPSetResponse = CreateIPSetResponse'
{ _cisrsIPSetId :: !(Maybe Text)
, _cisrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createIPSetResponse
:: Int
-> CreateIPSetResponse
createIPSetResponse pResponseStatus_ =
CreateIPSetResponse'
{_cisrsIPSetId = Nothing, _cisrsResponseStatus = pResponseStatus_}
cisrsIPSetId :: Lens' CreateIPSetResponse (Maybe Text)
cisrsIPSetId = lens _cisrsIPSetId (\ s a -> s{_cisrsIPSetId = a})
cisrsResponseStatus :: Lens' CreateIPSetResponse Int
cisrsResponseStatus = lens _cisrsResponseStatus (\ s a -> s{_cisrsResponseStatus = a})
instance NFData CreateIPSetResponse where