module Network.AWS.Shield.ListAttacks
(
listAttacks
, ListAttacks
, laStartTime
, laResourceARNs
, laNextToken
, laEndTime
, laMaxResults
, listAttacksResponse
, ListAttacksResponse
, larsAttackSummaries
, larsNextToken
, larsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.Shield.Types
import Network.AWS.Shield.Types.Product
data ListAttacks = ListAttacks'
{ _laStartTime :: !(Maybe TimeRange)
, _laResourceARNs :: !(Maybe [Text])
, _laNextToken :: !(Maybe Text)
, _laEndTime :: !(Maybe TimeRange)
, _laMaxResults :: !(Maybe Nat)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listAttacks
:: ListAttacks
listAttacks =
ListAttacks'
{ _laStartTime = Nothing
, _laResourceARNs = Nothing
, _laNextToken = Nothing
, _laEndTime = Nothing
, _laMaxResults = Nothing
}
laStartTime :: Lens' ListAttacks (Maybe TimeRange)
laStartTime = lens _laStartTime (\ s a -> s{_laStartTime = a});
laResourceARNs :: Lens' ListAttacks [Text]
laResourceARNs = lens _laResourceARNs (\ s a -> s{_laResourceARNs = a}) . _Default . _Coerce;
laNextToken :: Lens' ListAttacks (Maybe Text)
laNextToken = lens _laNextToken (\ s a -> s{_laNextToken = a});
laEndTime :: Lens' ListAttacks (Maybe TimeRange)
laEndTime = lens _laEndTime (\ s a -> s{_laEndTime = a});
laMaxResults :: Lens' ListAttacks (Maybe Natural)
laMaxResults = lens _laMaxResults (\ s a -> s{_laMaxResults = a}) . mapping _Nat;
instance AWSRequest ListAttacks where
type Rs ListAttacks = ListAttacksResponse
request = postJSON shield
response
= receiveJSON
(\ s h x ->
ListAttacksResponse' <$>
(x .?> "AttackSummaries" .!@ mempty) <*>
(x .?> "NextToken")
<*> (pure (fromEnum s)))
instance Hashable ListAttacks where
instance NFData ListAttacks where
instance ToHeaders ListAttacks where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AWSShield_20160616.ListAttacks" :: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON ListAttacks where
toJSON ListAttacks'{..}
= object
(catMaybes
[("StartTime" .=) <$> _laStartTime,
("ResourceArns" .=) <$> _laResourceARNs,
("NextToken" .=) <$> _laNextToken,
("EndTime" .=) <$> _laEndTime,
("MaxResults" .=) <$> _laMaxResults])
instance ToPath ListAttacks where
toPath = const "/"
instance ToQuery ListAttacks where
toQuery = const mempty
data ListAttacksResponse = ListAttacksResponse'
{ _larsAttackSummaries :: !(Maybe [AttackSummary])
, _larsNextToken :: !(Maybe Text)
, _larsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listAttacksResponse
:: Int
-> ListAttacksResponse
listAttacksResponse pResponseStatus_ =
ListAttacksResponse'
{ _larsAttackSummaries = Nothing
, _larsNextToken = Nothing
, _larsResponseStatus = pResponseStatus_
}
larsAttackSummaries :: Lens' ListAttacksResponse [AttackSummary]
larsAttackSummaries = lens _larsAttackSummaries (\ s a -> s{_larsAttackSummaries = a}) . _Default . _Coerce;
larsNextToken :: Lens' ListAttacksResponse (Maybe Text)
larsNextToken = lens _larsNextToken (\ s a -> s{_larsNextToken = a});
larsResponseStatus :: Lens' ListAttacksResponse Int
larsResponseStatus = lens _larsResponseStatus (\ s a -> s{_larsResponseStatus = a});
instance NFData ListAttacksResponse where