{-# 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.ListThreatIntelSets
(
listThreatIntelSets
, ListThreatIntelSets
, ltisNextToken
, ltisMaxResults
, ltisDetectorId
, listThreatIntelSetsResponse
, ListThreatIntelSetsResponse
, ltisrsThreatIntelSetIds
, ltisrsNextToken
, ltisrsResponseStatus
) 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 ListThreatIntelSets = ListThreatIntelSets'
{ _ltisNextToken :: !(Maybe Text)
, _ltisMaxResults :: !(Maybe Nat)
, _ltisDetectorId :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listThreatIntelSets
:: Text
-> ListThreatIntelSets
listThreatIntelSets pDetectorId_ =
ListThreatIntelSets'
{ _ltisNextToken = Nothing
, _ltisMaxResults = Nothing
, _ltisDetectorId = pDetectorId_
}
ltisNextToken :: Lens' ListThreatIntelSets (Maybe Text)
ltisNextToken = lens _ltisNextToken (\ s a -> s{_ltisNextToken = a})
ltisMaxResults :: Lens' ListThreatIntelSets (Maybe Natural)
ltisMaxResults = lens _ltisMaxResults (\ s a -> s{_ltisMaxResults = a}) . mapping _Nat
ltisDetectorId :: Lens' ListThreatIntelSets Text
ltisDetectorId = lens _ltisDetectorId (\ s a -> s{_ltisDetectorId = a})
instance AWSPager ListThreatIntelSets where
page rq rs
| stop (rs ^. ltisrsNextToken) = Nothing
| stop (rs ^. ltisrsThreatIntelSetIds) = Nothing
| otherwise =
Just $ rq & ltisNextToken .~ rs ^. ltisrsNextToken
instance AWSRequest ListThreatIntelSets where
type Rs ListThreatIntelSets =
ListThreatIntelSetsResponse
request = get guardDuty
response
= receiveJSON
(\ s h x ->
ListThreatIntelSetsResponse' <$>
(x .?> "threatIntelSetIds" .!@ mempty) <*>
(x .?> "nextToken")
<*> (pure (fromEnum s)))
instance Hashable ListThreatIntelSets where
instance NFData ListThreatIntelSets where
instance ToHeaders ListThreatIntelSets where
toHeaders
= const
(mconcat
["Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToPath ListThreatIntelSets where
toPath ListThreatIntelSets'{..}
= mconcat
["/detector/", toBS _ltisDetectorId,
"/threatintelset"]
instance ToQuery ListThreatIntelSets where
toQuery ListThreatIntelSets'{..}
= mconcat
["nextToken" =: _ltisNextToken,
"maxResults" =: _ltisMaxResults]
data ListThreatIntelSetsResponse = ListThreatIntelSetsResponse'
{ _ltisrsThreatIntelSetIds :: !(Maybe [Text])
, _ltisrsNextToken :: !(Maybe Text)
, _ltisrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listThreatIntelSetsResponse
:: Int
-> ListThreatIntelSetsResponse
listThreatIntelSetsResponse pResponseStatus_ =
ListThreatIntelSetsResponse'
{ _ltisrsThreatIntelSetIds = Nothing
, _ltisrsNextToken = Nothing
, _ltisrsResponseStatus = pResponseStatus_
}
ltisrsThreatIntelSetIds :: Lens' ListThreatIntelSetsResponse [Text]
ltisrsThreatIntelSetIds = lens _ltisrsThreatIntelSetIds (\ s a -> s{_ltisrsThreatIntelSetIds = a}) . _Default . _Coerce
ltisrsNextToken :: Lens' ListThreatIntelSetsResponse (Maybe Text)
ltisrsNextToken = lens _ltisrsNextToken (\ s a -> s{_ltisrsNextToken = a})
ltisrsResponseStatus :: Lens' ListThreatIntelSetsResponse Int
ltisrsResponseStatus = lens _ltisrsResponseStatus (\ s a -> s{_ltisrsResponseStatus = a})
instance NFData ListThreatIntelSetsResponse where