{-# 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.GetChangeToken -- Copyright : (c) 2013-2016 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- When you want to create, update, or delete AWS WAF objects, get a change -- token and include the change token in the create, update, or delete -- request. Change tokens ensure that your application doesn\'t submit -- conflicting requests to AWS WAF. -- -- Each create, update, or delete request must use a unique change token. -- If your application submits a 'GetChangeToken' request and then submits -- a second 'GetChangeToken' request before submitting a create, update, or -- delete request, the second 'GetChangeToken' request returns the same -- value as the first 'GetChangeToken' request. -- -- When you use a change token in a create, update, or delete request, the -- status of the change token changes to 'PENDING', which indicates that -- AWS WAF is propagating the change to all AWS WAF servers. Use -- 'GetChangeTokenStatus' to determine the status of your change token. module Network.AWS.WAF.GetChangeToken ( -- * Creating a Request getChangeToken , GetChangeToken -- * Destructuring the Response , getChangeTokenResponse , GetChangeTokenResponse -- * Response Lenses , gctrsChangeToken , gctrsResponseStatus ) 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:/ 'getChangeToken' smart constructor. data GetChangeToken = GetChangeToken' deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'GetChangeToken' with the minimum fields required to make a request. -- getChangeToken :: GetChangeToken getChangeToken = GetChangeToken' instance AWSRequest GetChangeToken where type Rs GetChangeToken = GetChangeTokenResponse request = postJSON waf response = receiveJSON (\ s h x -> GetChangeTokenResponse' <$> (x .?> "ChangeToken") <*> (pure (fromEnum s))) instance Hashable GetChangeToken instance NFData GetChangeToken instance ToHeaders GetChangeToken where toHeaders = const (mconcat ["X-Amz-Target" =# ("AWSWAF_20150824.GetChangeToken" :: ByteString), "Content-Type" =# ("application/x-amz-json-1.1" :: ByteString)]) instance ToJSON GetChangeToken where toJSON = const (Object mempty) instance ToPath GetChangeToken where toPath = const "/" instance ToQuery GetChangeToken where toQuery = const mempty -- | /See:/ 'getChangeTokenResponse' smart constructor. data GetChangeTokenResponse = GetChangeTokenResponse' { _gctrsChangeToken :: !(Maybe Text) , _gctrsResponseStatus :: !Int } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'GetChangeTokenResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'gctrsChangeToken' -- -- * 'gctrsResponseStatus' getChangeTokenResponse :: Int -- ^ 'gctrsResponseStatus' -> GetChangeTokenResponse getChangeTokenResponse pResponseStatus_ = GetChangeTokenResponse' { _gctrsChangeToken = Nothing , _gctrsResponseStatus = pResponseStatus_ } -- | The 'ChangeToken' that you used in the request. Use this value in a -- 'GetChangeTokenStatus' request to get the current status of the request. gctrsChangeToken :: Lens' GetChangeTokenResponse (Maybe Text) gctrsChangeToken = lens _gctrsChangeToken (\ s a -> s{_gctrsChangeToken = a}); -- | The response status code. gctrsResponseStatus :: Lens' GetChangeTokenResponse Int gctrsResponseStatus = lens _gctrsResponseStatus (\ s a -> s{_gctrsResponseStatus = a}); instance NFData GetChangeTokenResponse