{-# 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.ListIPSets
(
listIPSets
, ListIPSets
, lisNextToken
, lisMaxResults
, lisDetectorId
, listIPSetsResponse
, ListIPSetsResponse
, lisrsNextToken
, lisrsIPSetIds
, lisrsResponseStatus
) where
import Network.AWS.GuardDuty.Types
import Network.AWS.GuardDuty.Types.Product
import Network.AWS.Lens
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data ListIPSets = ListIPSets'
{ _lisNextToken :: !(Maybe Text)
, _lisMaxResults :: !(Maybe Nat)
, _lisDetectorId :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listIPSets
:: Text
-> ListIPSets
listIPSets pDetectorId_ =
ListIPSets'
{ _lisNextToken = Nothing
, _lisMaxResults = Nothing
, _lisDetectorId = pDetectorId_
}
lisNextToken :: Lens' ListIPSets (Maybe Text)
lisNextToken = lens _lisNextToken (\ s a -> s{_lisNextToken = a})
lisMaxResults :: Lens' ListIPSets (Maybe Natural)
lisMaxResults = lens _lisMaxResults (\ s a -> s{_lisMaxResults = a}) . mapping _Nat
lisDetectorId :: Lens' ListIPSets Text
lisDetectorId = lens _lisDetectorId (\ s a -> s{_lisDetectorId = a})
instance AWSPager ListIPSets where
page rq rs
| stop (rs ^. lisrsNextToken) = Nothing
| stop (rs ^. lisrsIPSetIds) = Nothing
| otherwise =
Just $ rq & lisNextToken .~ rs ^. lisrsNextToken
instance AWSRequest ListIPSets where
type Rs ListIPSets = ListIPSetsResponse
request = get guardDuty
response
= receiveJSON
(\ s h x ->
ListIPSetsResponse' <$>
(x .?> "nextToken") <*> (x .?> "ipSetIds" .!@ mempty)
<*> (pure (fromEnum s)))
instance Hashable ListIPSets where
instance NFData ListIPSets where
instance ToHeaders ListIPSets where
toHeaders
= const
(mconcat
["Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToPath ListIPSets where
toPath ListIPSets'{..}
= mconcat
["/detector/", toBS _lisDetectorId, "/ipset"]
instance ToQuery ListIPSets where
toQuery ListIPSets'{..}
= mconcat
["nextToken" =: _lisNextToken,
"maxResults" =: _lisMaxResults]
data ListIPSetsResponse = ListIPSetsResponse'
{ _lisrsNextToken :: !(Maybe Text)
, _lisrsIPSetIds :: !(Maybe [Text])
, _lisrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listIPSetsResponse
:: Int
-> ListIPSetsResponse
listIPSetsResponse pResponseStatus_ =
ListIPSetsResponse'
{ _lisrsNextToken = Nothing
, _lisrsIPSetIds = Nothing
, _lisrsResponseStatus = pResponseStatus_
}
lisrsNextToken :: Lens' ListIPSetsResponse (Maybe Text)
lisrsNextToken = lens _lisrsNextToken (\ s a -> s{_lisrsNextToken = a})
lisrsIPSetIds :: Lens' ListIPSetsResponse [Text]
lisrsIPSetIds = lens _lisrsIPSetIds (\ s a -> s{_lisrsIPSetIds = a}) . _Default . _Coerce
lisrsResponseStatus :: Lens' ListIPSetsResponse Int
lisrsResponseStatus = lens _lisrsResponseStatus (\ s a -> s{_lisrsResponseStatus = a})
instance NFData ListIPSetsResponse where