{-# 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 (an email address or a domain). -- -- -- /Important:/ 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 -- | Represents a request to enable or disable the Amazon SES custom MAIL FROM domain setup for a verified identity. For information about using a custom MAIL FROM domain, see the . -- -- -- -- /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' - 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. -- -- * 'simfdBehaviorOnMXFailure' - 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. -- -- * 'simfdIdentity' - The verified identity for which you want to enable or disable the specified custom MAIL FROM domain. 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 NFData 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] -- | An empty element returned on a successful request. -- -- -- -- /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' - -- | The response status code. 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}); instance NFData SetIdentityMailFromDomainResponse