{-# 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.SES.CreateReceiptRule -- Copyright : (c) 2013-2016 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Creates a receipt rule. -- -- -- For information about setting up receipt rules, see the . -- -- This action is throttled at one request per second. -- module Network.AWS.SES.CreateReceiptRule ( -- * Creating a Request createReceiptRule , CreateReceiptRule -- * Request Lenses , crrAfter , crrRuleSetName , crrRule -- * Destructuring the Response , createReceiptRuleResponse , CreateReceiptRuleResponse -- * Response Lenses , crrrsResponseStatus ) where import Network.AWS.Lens import Network.AWS.Prelude import Network.AWS.Request import Network.AWS.Response import Network.AWS.SES.Types import Network.AWS.SES.Types.Product -- | Represents a request to create a receipt rule. You use receipt rules to receive email with Amazon SES. For more information, see the . -- -- -- -- /See:/ 'createReceiptRule' smart constructor. data CreateReceiptRule = CreateReceiptRule' { _crrAfter :: !(Maybe Text) , _crrRuleSetName :: !Text , _crrRule :: !ReceiptRule } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'CreateReceiptRule' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'crrAfter' - The name of an existing rule after which the new rule will be placed. If this parameter is null, the new rule will be inserted at the beginning of the rule list. -- -- * 'crrRuleSetName' - The name of the rule set to which to add the rule. -- -- * 'crrRule' - A data structure that contains the specified rule's name, actions, recipients, domains, enabled status, scan status, and TLS policy. createReceiptRule :: Text -- ^ 'crrRuleSetName' -> ReceiptRule -- ^ 'crrRule' -> CreateReceiptRule createReceiptRule pRuleSetName_ pRule_ = CreateReceiptRule' { _crrAfter = Nothing , _crrRuleSetName = pRuleSetName_ , _crrRule = pRule_ } -- | The name of an existing rule after which the new rule will be placed. If this parameter is null, the new rule will be inserted at the beginning of the rule list. crrAfter :: Lens' CreateReceiptRule (Maybe Text) crrAfter = lens _crrAfter (\ s a -> s{_crrAfter = a}); -- | The name of the rule set to which to add the rule. crrRuleSetName :: Lens' CreateReceiptRule Text crrRuleSetName = lens _crrRuleSetName (\ s a -> s{_crrRuleSetName = a}); -- | A data structure that contains the specified rule's name, actions, recipients, domains, enabled status, scan status, and TLS policy. crrRule :: Lens' CreateReceiptRule ReceiptRule crrRule = lens _crrRule (\ s a -> s{_crrRule = a}); instance AWSRequest CreateReceiptRule where type Rs CreateReceiptRule = CreateReceiptRuleResponse request = postQuery ses response = receiveXMLWrapper "CreateReceiptRuleResult" (\ s h x -> CreateReceiptRuleResponse' <$> (pure (fromEnum s))) instance Hashable CreateReceiptRule instance NFData CreateReceiptRule instance ToHeaders CreateReceiptRule where toHeaders = const mempty instance ToPath CreateReceiptRule where toPath = const "/" instance ToQuery CreateReceiptRule where toQuery CreateReceiptRule'{..} = mconcat ["Action" =: ("CreateReceiptRule" :: ByteString), "Version" =: ("2010-12-01" :: ByteString), "After" =: _crrAfter, "RuleSetName" =: _crrRuleSetName, "Rule" =: _crrRule] -- | An empty element returned on a successful request. -- -- -- -- /See:/ 'createReceiptRuleResponse' smart constructor. newtype CreateReceiptRuleResponse = CreateReceiptRuleResponse' { _crrrsResponseStatus :: Int } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'CreateReceiptRuleResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'crrrsResponseStatus' - -- | The response status code. createReceiptRuleResponse :: Int -- ^ 'crrrsResponseStatus' -> CreateReceiptRuleResponse createReceiptRuleResponse pResponseStatus_ = CreateReceiptRuleResponse' { _crrrsResponseStatus = pResponseStatus_ } -- | -- | The response status code. crrrsResponseStatus :: Lens' CreateReceiptRuleResponse Int crrrsResponseStatus = lens _crrrsResponseStatus (\ s a -> s{_crrrsResponseStatus = a}); instance NFData CreateReceiptRuleResponse