{-# 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.SetIdentityMailFromDomain -- Copyright : (c) 2013-2016 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Enables or disables the custom MAIL FROM domain setup for a verified -- identity (email address or domain). -- -- To send emails using the specified MAIL FROM domain, you must add an MX -- record to your MAIL FROM domain\'s DNS settings. If you want your emails -- to pass Sender Policy Framework (SPF) checks, you must also add or -- update an SPF record. For more information, see the -- . -- -- This action is throttled at one request per second. module Network.AWS.SES.SetIdentityMailFromDomain ( -- * Creating a Request setIdentityMailFromDomain , SetIdentityMailFromDomain -- * Request Lenses , simfdMailFromDomain , simfdBehaviorOnMXFailure , simfdIdentity -- * Destructuring the Response , setIdentityMailFromDomainResponse , SetIdentityMailFromDomainResponse -- * Response Lenses , simfdrsResponseStatus ) 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 -- | /See:/ 'setIdentityMailFromDomain' smart constructor. data SetIdentityMailFromDomain = SetIdentityMailFromDomain' { _simfdMailFromDomain :: !(Maybe Text) , _simfdBehaviorOnMXFailure :: !(Maybe BehaviorOnMXFailure) , _simfdIdentity :: !Text } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'SetIdentityMailFromDomain' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'simfdMailFromDomain' -- -- * 'simfdBehaviorOnMXFailure' -- -- * 'simfdIdentity' setIdentityMailFromDomain :: Text -- ^ 'simfdIdentity' -> SetIdentityMailFromDomain setIdentityMailFromDomain pIdentity_ = SetIdentityMailFromDomain' { _simfdMailFromDomain = Nothing , _simfdBehaviorOnMXFailure = Nothing , _simfdIdentity = pIdentity_ } -- | The custom MAIL FROM domain that you want the verified identity to use. -- The MAIL FROM domain must 1) be a subdomain of the verified identity, 2) -- not be used in a \"From\" address if the MAIL FROM domain is the -- destination of email feedback forwarding (for more information, see the -- ), -- and 3) not be used to receive emails. A value of 'null' disables the -- custom MAIL FROM setting for the identity. simfdMailFromDomain :: Lens' SetIdentityMailFromDomain (Maybe Text) simfdMailFromDomain = lens _simfdMailFromDomain (\ s a -> s{_simfdMailFromDomain = a}); -- | The action that you want Amazon SES to take if it cannot successfully -- read the required MX record when you send an email. If you choose -- 'UseDefaultValue', Amazon SES will use amazonses.com (or a subdomain of -- that) as the MAIL FROM domain. If you choose 'RejectMessage', Amazon SES -- will return a 'MailFromDomainNotVerified' error and not send the email. -- -- The action specified in 'BehaviorOnMXFailure' is taken when the custom -- MAIL FROM domain setup is in the 'Pending', 'Failed', and -- 'TemporaryFailure' states. simfdBehaviorOnMXFailure :: Lens' SetIdentityMailFromDomain (Maybe BehaviorOnMXFailure) simfdBehaviorOnMXFailure = lens _simfdBehaviorOnMXFailure (\ s a -> s{_simfdBehaviorOnMXFailure = a}); -- | The verified identity for which you want to enable or disable the -- specified custom MAIL FROM domain. simfdIdentity :: Lens' SetIdentityMailFromDomain Text simfdIdentity = lens _simfdIdentity (\ s a -> s{_simfdIdentity = a}); instance AWSRequest SetIdentityMailFromDomain where type Rs SetIdentityMailFromDomain = SetIdentityMailFromDomainResponse request = postQuery ses response = receiveXMLWrapper "SetIdentityMailFromDomainResult" (\ s h x -> SetIdentityMailFromDomainResponse' <$> (pure (fromEnum s))) instance Hashable SetIdentityMailFromDomain instance ToHeaders SetIdentityMailFromDomain where toHeaders = const mempty instance ToPath SetIdentityMailFromDomain where toPath = const "/" instance ToQuery SetIdentityMailFromDomain where toQuery SetIdentityMailFromDomain'{..} = mconcat ["Action" =: ("SetIdentityMailFromDomain" :: ByteString), "Version" =: ("2010-12-01" :: ByteString), "MailFromDomain" =: _simfdMailFromDomain, "BehaviorOnMXFailure" =: _simfdBehaviorOnMXFailure, "Identity" =: _simfdIdentity] -- | /See:/ 'setIdentityMailFromDomainResponse' smart constructor. newtype SetIdentityMailFromDomainResponse = SetIdentityMailFromDomainResponse' { _simfdrsResponseStatus :: Int } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'SetIdentityMailFromDomainResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'simfdrsResponseStatus' setIdentityMailFromDomainResponse :: Int -- ^ 'simfdrsResponseStatus' -> SetIdentityMailFromDomainResponse setIdentityMailFromDomainResponse pResponseStatus_ = SetIdentityMailFromDomainResponse' { _simfdrsResponseStatus = pResponseStatus_ } -- | The response status code. simfdrsResponseStatus :: Lens' SetIdentityMailFromDomainResponse Int simfdrsResponseStatus = lens _simfdrsResponseStatus (\ s a -> s{_simfdrsResponseStatus = a});