{-# 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.Inspector.ListEventSubscriptions
(
listEventSubscriptions
, ListEventSubscriptions
, lesNextToken
, lesResourceARN
, lesMaxResults
, listEventSubscriptionsResponse
, ListEventSubscriptionsResponse
, lesrsNextToken
, lesrsResponseStatus
, lesrsSubscriptions
) where
import Network.AWS.Inspector.Types
import Network.AWS.Inspector.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data ListEventSubscriptions = ListEventSubscriptions'
{ _lesNextToken :: !(Maybe Text)
, _lesResourceARN :: !(Maybe Text)
, _lesMaxResults :: !(Maybe Int)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
listEventSubscriptions
:: ListEventSubscriptions
listEventSubscriptions =
ListEventSubscriptions'
{ _lesNextToken = Nothing
, _lesResourceARN = Nothing
, _lesMaxResults = Nothing
}
lesNextToken :: Lens' ListEventSubscriptions (Maybe Text)
lesNextToken = lens _lesNextToken (\ s a -> s{_lesNextToken = a});
lesResourceARN :: Lens' ListEventSubscriptions (Maybe Text)
lesResourceARN = lens _lesResourceARN (\ s a -> s{_lesResourceARN = a});
lesMaxResults :: Lens' ListEventSubscriptions (Maybe Int)
lesMaxResults = lens _lesMaxResults (\ s a -> s{_lesMaxResults = a});
instance AWSRequest ListEventSubscriptions where
type Rs ListEventSubscriptions =
ListEventSubscriptionsResponse
request = postJSON inspector
response
= receiveJSON
(\ s h x ->
ListEventSubscriptionsResponse' <$>
(x .?> "nextToken") <*> (pure (fromEnum s)) <*>
(x .?> "subscriptions" .!@ mempty))
instance Hashable ListEventSubscriptions
instance NFData ListEventSubscriptions
instance ToHeaders ListEventSubscriptions where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("InspectorService.ListEventSubscriptions" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON ListEventSubscriptions where
toJSON ListEventSubscriptions'{..}
= object
(catMaybes
[("nextToken" .=) <$> _lesNextToken,
("resourceArn" .=) <$> _lesResourceARN,
("maxResults" .=) <$> _lesMaxResults])
instance ToPath ListEventSubscriptions where
toPath = const "/"
instance ToQuery ListEventSubscriptions where
toQuery = const mempty
data ListEventSubscriptionsResponse = ListEventSubscriptionsResponse'
{ _lesrsNextToken :: !(Maybe Text)
, _lesrsResponseStatus :: !Int
, _lesrsSubscriptions :: ![Subscription]
} deriving (Eq,Read,Show,Data,Typeable,Generic)
listEventSubscriptionsResponse
:: Int
-> ListEventSubscriptionsResponse
listEventSubscriptionsResponse pResponseStatus_ =
ListEventSubscriptionsResponse'
{ _lesrsNextToken = Nothing
, _lesrsResponseStatus = pResponseStatus_
, _lesrsSubscriptions = mempty
}
lesrsNextToken :: Lens' ListEventSubscriptionsResponse (Maybe Text)
lesrsNextToken = lens _lesrsNextToken (\ s a -> s{_lesrsNextToken = a});
lesrsResponseStatus :: Lens' ListEventSubscriptionsResponse Int
lesrsResponseStatus = lens _lesrsResponseStatus (\ s a -> s{_lesrsResponseStatus = a});
lesrsSubscriptions :: Lens' ListEventSubscriptionsResponse [Subscription]
lesrsSubscriptions = lens _lesrsSubscriptions (\ s a -> s{_lesrsSubscriptions = a}) . _Coerce;
instance NFData ListEventSubscriptionsResponse