{-# 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 #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Network.AWS.WAF.ListWebACLs -- Copyright : (c) 2013-2016 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Returns an array of < WebACLSummary> objects in the response. module Network.AWS.WAF.ListWebACLs ( -- * Creating a Request listWebACLs , ListWebACLs -- * Request Lenses , lwaNextMarker , lwaLimit -- * Destructuring the Response , listWebACLsResponse , ListWebACLsResponse -- * Response Lenses , lwarsWebACLs , lwarsNextMarker , lwarsResponseStatus ) where import Network.AWS.Lens import Network.AWS.Prelude import Network.AWS.Request import Network.AWS.Response import Network.AWS.WAF.Types import Network.AWS.WAF.Types.Product -- | /See:/ 'listWebACLs' smart constructor. data ListWebACLs = ListWebACLs' { _lwaNextMarker :: !(Maybe Text) , _lwaLimit :: !Nat } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'ListWebACLs' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'lwaNextMarker' -- -- * 'lwaLimit' listWebACLs :: Natural -- ^ 'lwaLimit' -> ListWebACLs listWebACLs pLimit_ = ListWebACLs' { _lwaNextMarker = Nothing , _lwaLimit = _Nat # pLimit_ } -- | If you specify a value for 'Limit' and you have more 'WebACL' objects -- than the number that you specify for 'Limit', AWS WAF returns a -- 'NextMarker' value in the response that allows you to list another group -- of 'WebACL' objects. For the second and subsequent 'ListWebACLs' -- requests, specify the value of 'NextMarker' from the previous response -- to get information about another batch of 'WebACL' objects. lwaNextMarker :: Lens' ListWebACLs (Maybe Text) lwaNextMarker = lens _lwaNextMarker (\ s a -> s{_lwaNextMarker = a}); -- | Specifies the number of 'WebACL' objects that you want AWS WAF to return -- for this request. If you have more 'WebACL' objects than the number that -- you specify for 'Limit', the response includes a 'NextMarker' value that -- you can use to get another batch of 'WebACL' objects. lwaLimit :: Lens' ListWebACLs Natural lwaLimit = lens _lwaLimit (\ s a -> s{_lwaLimit = a}) . _Nat; instance AWSRequest ListWebACLs where type Rs ListWebACLs = ListWebACLsResponse request = postJSON waf response = receiveJSON (\ s h x -> ListWebACLsResponse' <$> (x .?> "WebACLs" .!@ mempty) <*> (x .?> "NextMarker") <*> (pure (fromEnum s))) instance Hashable ListWebACLs instance NFData ListWebACLs instance ToHeaders ListWebACLs where toHeaders = const (mconcat ["X-Amz-Target" =# ("AWSWAF_20150824.ListWebACLs" :: ByteString), "Content-Type" =# ("application/x-amz-json-1.1" :: ByteString)]) instance ToJSON ListWebACLs where toJSON ListWebACLs'{..} = object (catMaybes [("NextMarker" .=) <$> _lwaNextMarker, Just ("Limit" .= _lwaLimit)]) instance ToPath ListWebACLs where toPath = const "/" instance ToQuery ListWebACLs where toQuery = const mempty -- | /See:/ 'listWebACLsResponse' smart constructor. data ListWebACLsResponse = ListWebACLsResponse' { _lwarsWebACLs :: !(Maybe [WebACLSummary]) , _lwarsNextMarker :: !(Maybe Text) , _lwarsResponseStatus :: !Int } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'ListWebACLsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'lwarsWebACLs' -- -- * 'lwarsNextMarker' -- -- * 'lwarsResponseStatus' listWebACLsResponse :: Int -- ^ 'lwarsResponseStatus' -> ListWebACLsResponse listWebACLsResponse pResponseStatus_ = ListWebACLsResponse' { _lwarsWebACLs = Nothing , _lwarsNextMarker = Nothing , _lwarsResponseStatus = pResponseStatus_ } -- | An array of < WebACLSummary> objects. lwarsWebACLs :: Lens' ListWebACLsResponse [WebACLSummary] lwarsWebACLs = lens _lwarsWebACLs (\ s a -> s{_lwarsWebACLs = a}) . _Default . _Coerce; -- | If you have more 'WebACL' objects than the number that you specified for -- 'Limit' in the request, the response includes a 'NextMarker' value. To -- list more 'WebACL' objects, submit another 'ListWebACLs' request, and -- specify the 'NextMarker' value from the response in the 'NextMarker' -- value in the next request. lwarsNextMarker :: Lens' ListWebACLsResponse (Maybe Text) lwarsNextMarker = lens _lwarsNextMarker (\ s a -> s{_lwarsNextMarker = a}); -- | The response status code. lwarsResponseStatus :: Lens' ListWebACLsResponse Int lwarsResponseStatus = lens _lwarsResponseStatus (\ s a -> s{_lwarsResponseStatus = a}); instance NFData ListWebACLsResponse