{-# 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.WAFRegional.ListSubscribedRuleGroups
(
listSubscribedRuleGroups
, ListSubscribedRuleGroups
, lsrgNextMarker
, lsrgLimit
, listSubscribedRuleGroupsResponse
, ListSubscribedRuleGroupsResponse
, lsrgrsRuleGroups
, lsrgrsNextMarker
, lsrgrsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.WAFRegional.Types
import Network.AWS.WAFRegional.Types.Product
data ListSubscribedRuleGroups = ListSubscribedRuleGroups'
{ _lsrgNextMarker :: !(Maybe Text)
, _lsrgLimit :: !(Maybe Nat)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listSubscribedRuleGroups
:: ListSubscribedRuleGroups
listSubscribedRuleGroups =
ListSubscribedRuleGroups' {_lsrgNextMarker = Nothing, _lsrgLimit = Nothing}
lsrgNextMarker :: Lens' ListSubscribedRuleGroups (Maybe Text)
lsrgNextMarker = lens _lsrgNextMarker (\ s a -> s{_lsrgNextMarker = a})
lsrgLimit :: Lens' ListSubscribedRuleGroups (Maybe Natural)
lsrgLimit = lens _lsrgLimit (\ s a -> s{_lsrgLimit = a}) . mapping _Nat
instance AWSRequest ListSubscribedRuleGroups where
type Rs ListSubscribedRuleGroups =
ListSubscribedRuleGroupsResponse
request = postJSON wAFRegional
response
= receiveJSON
(\ s h x ->
ListSubscribedRuleGroupsResponse' <$>
(x .?> "RuleGroups" .!@ mempty) <*>
(x .?> "NextMarker")
<*> (pure (fromEnum s)))
instance Hashable ListSubscribedRuleGroups where
instance NFData ListSubscribedRuleGroups where
instance ToHeaders ListSubscribedRuleGroups where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AWSWAF_Regional_20161128.ListSubscribedRuleGroups"
:: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON ListSubscribedRuleGroups where
toJSON ListSubscribedRuleGroups'{..}
= object
(catMaybes
[("NextMarker" .=) <$> _lsrgNextMarker,
("Limit" .=) <$> _lsrgLimit])
instance ToPath ListSubscribedRuleGroups where
toPath = const "/"
instance ToQuery ListSubscribedRuleGroups where
toQuery = const mempty
data ListSubscribedRuleGroupsResponse = ListSubscribedRuleGroupsResponse'
{ _lsrgrsRuleGroups :: !(Maybe [SubscribedRuleGroupSummary])
, _lsrgrsNextMarker :: !(Maybe Text)
, _lsrgrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listSubscribedRuleGroupsResponse
:: Int
-> ListSubscribedRuleGroupsResponse
listSubscribedRuleGroupsResponse pResponseStatus_ =
ListSubscribedRuleGroupsResponse'
{ _lsrgrsRuleGroups = Nothing
, _lsrgrsNextMarker = Nothing
, _lsrgrsResponseStatus = pResponseStatus_
}
lsrgrsRuleGroups :: Lens' ListSubscribedRuleGroupsResponse [SubscribedRuleGroupSummary]
lsrgrsRuleGroups = lens _lsrgrsRuleGroups (\ s a -> s{_lsrgrsRuleGroups = a}) . _Default . _Coerce
lsrgrsNextMarker :: Lens' ListSubscribedRuleGroupsResponse (Maybe Text)
lsrgrsNextMarker = lens _lsrgrsNextMarker (\ s a -> s{_lsrgrsNextMarker = a})
lsrgrsResponseStatus :: Lens' ListSubscribedRuleGroupsResponse Int
lsrgrsResponseStatus = lens _lsrgrsResponseStatus (\ s a -> s{_lsrgrsResponseStatus = a})
instance NFData ListSubscribedRuleGroupsResponse
where