diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
 
 ## Version
 
-`1.3.7`
+`1.4.0`
 
 
 ## Description
@@ -24,7 +24,7 @@
 in the Amazon SES Developer Guide.
 
 Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-ses)
-and the [AWS API Reference](http://docs.aws.amazon.com/ses/latest/APIReference/Welcome.html).
+and the [AWS API Reference](https://aws.amazon.com/documentation/).
 
 The types from this library are intended to be used with [amazonka](http://hackage.haskell.org/package/amazonka),
 which provides mechanisms for specifying AuthN/AuthZ information and sending requests.
diff --git a/amazonka-ses.cabal b/amazonka-ses.cabal
--- a/amazonka-ses.cabal
+++ b/amazonka-ses.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-ses
-version:               1.3.7
+version:               1.4.0
 synopsis:              Amazon Simple Email Service SDK.
 homepage:              https://github.com/brendanhay/amazonka
 bug-reports:           https://github.com/brendanhay/amazonka/issues
@@ -7,7 +7,7 @@
 license-file:          LICENSE
 author:                Brendan Hay
 maintainer:            Brendan Hay <brendan.g.hay@gmail.com>
-copyright:             Copyright (c) 2013-2015 Brendan Hay
+copyright:             Copyright (c) 2013-2016 Brendan Hay
 category:              Network, AWS, Cloud, Distributed Computing
 build-type:            Simple
 cabal-version:         >= 1.10
@@ -34,7 +34,7 @@
     such as <http://hackage.haskell.org/package/lens lens> or
     <http://hackage.haskell.org/package/lens-family-core lens-family-core>.
     .
-    See "Network.AWS.SES" and the <http://docs.aws.amazon.com/ses/latest/APIReference/Welcome.html AWS API Reference>
+    See "Network.AWS.SES" or <https://aws.amazon.com/documentation/ the AWS Documentation>
     to get started.
 
 source-repository head
@@ -63,6 +63,7 @@
         , Network.AWS.SES.DescribeReceiptRule
         , Network.AWS.SES.DescribeReceiptRuleSet
         , Network.AWS.SES.GetIdentityDkimAttributes
+        , Network.AWS.SES.GetIdentityMailFromDomainAttributes
         , Network.AWS.SES.GetIdentityNotificationAttributes
         , Network.AWS.SES.GetIdentityPolicies
         , Network.AWS.SES.GetIdentityVerificationAttributes
@@ -81,6 +82,7 @@
         , Network.AWS.SES.SetActiveReceiptRuleSet
         , Network.AWS.SES.SetIdentityDkimEnabled
         , Network.AWS.SES.SetIdentityFeedbackForwardingEnabled
+        , Network.AWS.SES.SetIdentityMailFromDomain
         , Network.AWS.SES.SetIdentityNotificationTopic
         , Network.AWS.SES.SetReceiptRulePosition
         , Network.AWS.SES.Types
@@ -96,7 +98,7 @@
         , Network.AWS.SES.Types.Sum
 
     build-depends:
-          amazonka-core == 1.3.7.*
+          amazonka-core == 1.4.0.*
         , base          >= 4.7     && < 5
 
 test-suite amazonka-ses-test
@@ -116,9 +118,9 @@
         , Test.AWS.SES.Internal
 
     build-depends:
-          amazonka-core == 1.3.7.*
-        , amazonka-test == 1.3.7.*
-        , amazonka-ses == 1.3.7.*
+          amazonka-core == 1.4.0.*
+        , amazonka-test == 1.4.0.*
+        , amazonka-ses == 1.4.0.*
         , base
         , bytestring
         , tasty
diff --git a/fixture/GetIdentityMailFromDomainAttributes.yaml b/fixture/GetIdentityMailFromDomainAttributes.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/GetIdentityMailFromDomainAttributes.yaml
diff --git a/fixture/GetIdentityMailFromDomainAttributesResponse.proto b/fixture/GetIdentityMailFromDomainAttributesResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/GetIdentityMailFromDomainAttributesResponse.proto
diff --git a/fixture/SetIdentityMailFromDomain.yaml b/fixture/SetIdentityMailFromDomain.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/SetIdentityMailFromDomain.yaml
diff --git a/fixture/SetIdentityMailFromDomainResponse.proto b/fixture/SetIdentityMailFromDomainResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/SetIdentityMailFromDomainResponse.proto
diff --git a/gen/Network/AWS/SES.hs b/gen/Network/AWS/SES.hs
--- a/gen/Network/AWS/SES.hs
+++ b/gen/Network/AWS/SES.hs
@@ -5,7 +5,7 @@
 
 -- |
 -- Module      : Network.AWS.SES
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -20,12 +20,10 @@
 -- For a list of Amazon SES endpoints to use in service requests, see
 -- <http://docs.aws.amazon.com/ses/latest/DeveloperGuide/regions.html Regions and Amazon SES>
 -- in the Amazon SES Developer Guide.
---
--- /See:/ <http://docs.aws.amazon.com/ses/latest/APIReference/Welcome.html AWS API Reference>
 module Network.AWS.SES
     (
     -- * Service Configuration
-      sES
+      ses
 
     -- * Errors
     -- $errors
@@ -42,6 +40,9 @@
     -- ** RuleSetDoesNotExistException
     , _RuleSetDoesNotExistException
 
+    -- ** MailFromDomainNotVerifiedException
+    , _MailFromDomainNotVerifiedException
+
     -- ** InvalidLambdaFunctionException
     , _InvalidLambdaFunctionException
 
@@ -93,9 +94,15 @@
     -- ** DescribeReceiptRuleSet
     , module Network.AWS.SES.DescribeReceiptRuleSet
 
+    -- ** GetIdentityMailFromDomainAttributes
+    , module Network.AWS.SES.GetIdentityMailFromDomainAttributes
+
     -- ** CreateReceiptFilter
     , module Network.AWS.SES.CreateReceiptFilter
 
+    -- ** SetIdentityMailFromDomain
+    , module Network.AWS.SES.SetIdentityMailFromDomain
+
     -- ** SetIdentityFeedbackForwardingEnabled
     , module Network.AWS.SES.SetIdentityFeedbackForwardingEnabled
 
@@ -185,9 +192,15 @@
 
     -- * Types
 
+    -- ** BehaviorOnMXFailure
+    , BehaviorOnMXFailure (..)
+
     -- ** BounceType
     , BounceType (..)
 
+    -- ** CustomMailFromStatus
+    , CustomMailFromStatus (..)
+
     -- ** DsnAction
     , DsnAction (..)
 
@@ -203,6 +216,9 @@
     -- ** ReceiptFilterPolicy
     , ReceiptFilterPolicy (..)
 
+    -- ** SNSActionEncoding
+    , SNSActionEncoding (..)
+
     -- ** StopScope
     , StopScope (..)
 
@@ -267,6 +283,13 @@
     , idaDkimEnabled
     , idaDkimVerificationStatus
 
+    -- ** IdentityMailFromDomainAttributes
+    , IdentityMailFromDomainAttributes
+    , identityMailFromDomainAttributes
+    , imfdaMailFromDomain
+    , imfdaMailFromDomainStatus
+    , imfdaBehaviorOnMXFailure
+
     -- ** IdentityNotificationAttributes
     , IdentityNotificationAttributes
     , identityNotificationAttributes
@@ -367,6 +390,7 @@
     -- ** SNSAction
     , SNSAction
     , snsAction
+    , saEncoding
     , saTopicARN
 
     -- ** SendDataPoint
@@ -405,6 +429,7 @@
 import           Network.AWS.SES.DescribeReceiptRule
 import           Network.AWS.SES.DescribeReceiptRuleSet
 import           Network.AWS.SES.GetIdentityDkimAttributes
+import           Network.AWS.SES.GetIdentityMailFromDomainAttributes
 import           Network.AWS.SES.GetIdentityNotificationAttributes
 import           Network.AWS.SES.GetIdentityPolicies
 import           Network.AWS.SES.GetIdentityVerificationAttributes
@@ -423,6 +448,7 @@
 import           Network.AWS.SES.SetActiveReceiptRuleSet
 import           Network.AWS.SES.SetIdentityDkimEnabled
 import           Network.AWS.SES.SetIdentityFeedbackForwardingEnabled
+import           Network.AWS.SES.SetIdentityMailFromDomain
 import           Network.AWS.SES.SetIdentityNotificationTopic
 import           Network.AWS.SES.SetReceiptRulePosition
 import           Network.AWS.SES.Types
diff --git a/gen/Network/AWS/SES/CloneReceiptRuleSet.hs b/gen/Network/AWS/SES/CloneReceiptRuleSet.hs
--- a/gen/Network/AWS/SES/CloneReceiptRuleSet.hs
+++ b/gen/Network/AWS/SES/CloneReceiptRuleSet.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.CloneReceiptRuleSet
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -26,8 +26,6 @@
 -- <http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-receipt-rule-set.html Amazon SES Developer Guide>.
 --
 -- This action is throttled at one request per second.
---
--- /See:/ <http://docs.aws.amazon.com/ses/latest/APIReference/API_CloneReceiptRuleSet.html AWS API Reference> for CloneReceiptRuleSet.
 module Network.AWS.SES.CloneReceiptRuleSet
     (
     -- * Creating a Request
@@ -90,11 +88,13 @@
 instance AWSRequest CloneReceiptRuleSet where
         type Rs CloneReceiptRuleSet =
              CloneReceiptRuleSetResponse
-        request = postQuery sES
+        request = postQuery ses
         response
           = receiveXMLWrapper "CloneReceiptRuleSetResult"
               (\ s h x ->
                  CloneReceiptRuleSetResponse' <$> (pure (fromEnum s)))
+
+instance Hashable CloneReceiptRuleSet
 
 instance ToHeaders CloneReceiptRuleSet where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SES/CreateReceiptFilter.hs b/gen/Network/AWS/SES/CreateReceiptFilter.hs
--- a/gen/Network/AWS/SES/CreateReceiptFilter.hs
+++ b/gen/Network/AWS/SES/CreateReceiptFilter.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.CreateReceiptFilter
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -24,8 +24,6 @@
 -- <http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-ip-filters.html Amazon SES Developer Guide>.
 --
 -- This action is throttled at one request per second.
---
--- /See:/ <http://docs.aws.amazon.com/ses/latest/APIReference/API_CreateReceiptFilter.html AWS API Reference> for CreateReceiptFilter.
 module Network.AWS.SES.CreateReceiptFilter
     (
     -- * Creating a Request
@@ -75,11 +73,13 @@
 instance AWSRequest CreateReceiptFilter where
         type Rs CreateReceiptFilter =
              CreateReceiptFilterResponse
-        request = postQuery sES
+        request = postQuery ses
         response
           = receiveXMLWrapper "CreateReceiptFilterResult"
               (\ s h x ->
                  CreateReceiptFilterResponse' <$> (pure (fromEnum s)))
+
+instance Hashable CreateReceiptFilter
 
 instance ToHeaders CreateReceiptFilter where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SES/CreateReceiptRule.hs b/gen/Network/AWS/SES/CreateReceiptRule.hs
--- a/gen/Network/AWS/SES/CreateReceiptRule.hs
+++ b/gen/Network/AWS/SES/CreateReceiptRule.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.CreateReceiptRule
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -24,8 +24,6 @@
 -- <http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-receipt-rules.html Amazon SES Developer Guide>.
 --
 -- This action is throttled at one request per second.
---
--- /See:/ <http://docs.aws.amazon.com/ses/latest/APIReference/API_CreateReceiptRule.html AWS API Reference> for CreateReceiptRule.
 module Network.AWS.SES.CreateReceiptRule
     (
     -- * Creating a Request
@@ -94,11 +92,13 @@
 
 instance AWSRequest CreateReceiptRule where
         type Rs CreateReceiptRule = CreateReceiptRuleResponse
-        request = postQuery sES
+        request = postQuery ses
         response
           = receiveXMLWrapper "CreateReceiptRuleResult"
               (\ s h x ->
                  CreateReceiptRuleResponse' <$> (pure (fromEnum s)))
+
+instance Hashable CreateReceiptRule
 
 instance ToHeaders CreateReceiptRule where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SES/CreateReceiptRuleSet.hs b/gen/Network/AWS/SES/CreateReceiptRuleSet.hs
--- a/gen/Network/AWS/SES/CreateReceiptRuleSet.hs
+++ b/gen/Network/AWS/SES/CreateReceiptRuleSet.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.CreateReceiptRuleSet
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -24,8 +24,6 @@
 -- <http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-receipt-rule-set.html Amazon SES Developer Guide>.
 --
 -- This action is throttled at one request per second.
---
--- /See:/ <http://docs.aws.amazon.com/ses/latest/APIReference/API_CreateReceiptRuleSet.html AWS API Reference> for CreateReceiptRuleSet.
 module Network.AWS.SES.CreateReceiptRuleSet
     (
     -- * Creating a Request
@@ -78,12 +76,14 @@
 instance AWSRequest CreateReceiptRuleSet where
         type Rs CreateReceiptRuleSet =
              CreateReceiptRuleSetResponse
-        request = postQuery sES
+        request = postQuery ses
         response
           = receiveXMLWrapper "CreateReceiptRuleSetResult"
               (\ s h x ->
                  CreateReceiptRuleSetResponse' <$>
                    (pure (fromEnum s)))
+
+instance Hashable CreateReceiptRuleSet
 
 instance ToHeaders CreateReceiptRuleSet where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SES/DeleteIdentity.hs b/gen/Network/AWS/SES/DeleteIdentity.hs
--- a/gen/Network/AWS/SES/DeleteIdentity.hs
+++ b/gen/Network/AWS/SES/DeleteIdentity.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.DeleteIdentity
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -22,8 +22,6 @@
 -- of verified identities.
 --
 -- This action is throttled at one request per second.
---
--- /See:/ <http://docs.aws.amazon.com/ses/latest/APIReference/API_DeleteIdentity.html AWS API Reference> for DeleteIdentity.
 module Network.AWS.SES.DeleteIdentity
     (
     -- * Creating a Request
@@ -46,10 +44,7 @@
 import           Network.AWS.SES.Types
 import           Network.AWS.SES.Types.Product
 
--- | Represents a request instructing the service to delete an identity from
--- the list of identities for the AWS Account.
---
--- /See:/ 'deleteIdentity' smart constructor.
+-- | /See:/ 'deleteIdentity' smart constructor.
 newtype DeleteIdentity = DeleteIdentity'
     { _diIdentity :: Text
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
@@ -74,12 +69,14 @@
 
 instance AWSRequest DeleteIdentity where
         type Rs DeleteIdentity = DeleteIdentityResponse
-        request = postQuery sES
+        request = postQuery ses
         response
           = receiveXMLWrapper "DeleteIdentityResult"
               (\ s h x ->
                  DeleteIdentityResponse' <$> (pure (fromEnum s)))
 
+instance Hashable DeleteIdentity
+
 instance ToHeaders DeleteIdentity where
         toHeaders = const mempty
 
@@ -93,10 +90,7 @@
                "Version" =: ("2010-12-01" :: ByteString),
                "Identity" =: _diIdentity]
 
--- | An empty element. Receiving this element indicates that the request
--- completed successfully.
---
--- /See:/ 'deleteIdentityResponse' smart constructor.
+-- | /See:/ 'deleteIdentityResponse' smart constructor.
 newtype DeleteIdentityResponse = DeleteIdentityResponse'
     { _dirsResponseStatus :: Int
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
diff --git a/gen/Network/AWS/SES/DeleteIdentityPolicy.hs b/gen/Network/AWS/SES/DeleteIdentityPolicy.hs
--- a/gen/Network/AWS/SES/DeleteIdentityPolicy.hs
+++ b/gen/Network/AWS/SES/DeleteIdentityPolicy.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.DeleteIdentityPolicy
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -31,8 +31,6 @@
 -- <http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html Amazon SES Developer Guide>.
 --
 -- This action is throttled at one request per second.
---
--- /See:/ <http://docs.aws.amazon.com/ses/latest/APIReference/API_DeleteIdentityPolicy.html AWS API Reference> for DeleteIdentityPolicy.
 module Network.AWS.SES.DeleteIdentityPolicy
     (
     -- * Creating a Request
@@ -56,12 +54,7 @@
 import           Network.AWS.SES.Types
 import           Network.AWS.SES.Types.Product
 
--- | Represents a request instructing the service to delete an authorization
--- policy applying to an identity.
---
--- This request succeeds regardless of whether the specified policy exists.
---
--- /See:/ 'deleteIdentityPolicy' smart constructor.
+-- | /See:/ 'deleteIdentityPolicy' smart constructor.
 data DeleteIdentityPolicy = DeleteIdentityPolicy'
     { _dipIdentity   :: !Text
     , _dipPolicyName :: !Text
@@ -100,13 +93,15 @@
 instance AWSRequest DeleteIdentityPolicy where
         type Rs DeleteIdentityPolicy =
              DeleteIdentityPolicyResponse
-        request = postQuery sES
+        request = postQuery ses
         response
           = receiveXMLWrapper "DeleteIdentityPolicyResult"
               (\ s h x ->
                  DeleteIdentityPolicyResponse' <$>
                    (pure (fromEnum s)))
 
+instance Hashable DeleteIdentityPolicy
+
 instance ToHeaders DeleteIdentityPolicy where
         toHeaders = const mempty
 
@@ -121,10 +116,7 @@
                "Identity" =: _dipIdentity,
                "PolicyName" =: _dipPolicyName]
 
--- | An empty element. Receiving this element indicates that the request
--- completed successfully.
---
--- /See:/ 'deleteIdentityPolicyResponse' smart constructor.
+-- | /See:/ 'deleteIdentityPolicyResponse' smart constructor.
 newtype DeleteIdentityPolicyResponse = DeleteIdentityPolicyResponse'
     { _diprsResponseStatus :: Int
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
diff --git a/gen/Network/AWS/SES/DeleteReceiptFilter.hs b/gen/Network/AWS/SES/DeleteReceiptFilter.hs
--- a/gen/Network/AWS/SES/DeleteReceiptFilter.hs
+++ b/gen/Network/AWS/SES/DeleteReceiptFilter.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.DeleteReceiptFilter
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -24,8 +24,6 @@
 -- <http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-managing-ip-filters.html Amazon SES Developer Guide>.
 --
 -- This action is throttled at one request per second.
---
--- /See:/ <http://docs.aws.amazon.com/ses/latest/APIReference/API_DeleteReceiptFilter.html AWS API Reference> for DeleteReceiptFilter.
 module Network.AWS.SES.DeleteReceiptFilter
     (
     -- * Creating a Request
@@ -73,11 +71,13 @@
 instance AWSRequest DeleteReceiptFilter where
         type Rs DeleteReceiptFilter =
              DeleteReceiptFilterResponse
-        request = postQuery sES
+        request = postQuery ses
         response
           = receiveXMLWrapper "DeleteReceiptFilterResult"
               (\ s h x ->
                  DeleteReceiptFilterResponse' <$> (pure (fromEnum s)))
+
+instance Hashable DeleteReceiptFilter
 
 instance ToHeaders DeleteReceiptFilter where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SES/DeleteReceiptRule.hs b/gen/Network/AWS/SES/DeleteReceiptRule.hs
--- a/gen/Network/AWS/SES/DeleteReceiptRule.hs
+++ b/gen/Network/AWS/SES/DeleteReceiptRule.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.DeleteReceiptRule
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -24,8 +24,6 @@
 -- <http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-managing-receipt-rules.html Amazon SES Developer Guide>.
 --
 -- This action is throttled at one request per second.
---
--- /See:/ <http://docs.aws.amazon.com/ses/latest/APIReference/API_DeleteReceiptRule.html AWS API Reference> for DeleteReceiptRule.
 module Network.AWS.SES.DeleteReceiptRule
     (
     -- * Creating a Request
@@ -83,11 +81,13 @@
 
 instance AWSRequest DeleteReceiptRule where
         type Rs DeleteReceiptRule = DeleteReceiptRuleResponse
-        request = postQuery sES
+        request = postQuery ses
         response
           = receiveXMLWrapper "DeleteReceiptRuleResult"
               (\ s h x ->
                  DeleteReceiptRuleResponse' <$> (pure (fromEnum s)))
+
+instance Hashable DeleteReceiptRule
 
 instance ToHeaders DeleteReceiptRule where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SES/DeleteReceiptRuleSet.hs b/gen/Network/AWS/SES/DeleteReceiptRuleSet.hs
--- a/gen/Network/AWS/SES/DeleteReceiptRuleSet.hs
+++ b/gen/Network/AWS/SES/DeleteReceiptRuleSet.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.DeleteReceiptRuleSet
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -27,8 +27,6 @@
 -- <http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-managing-receipt-rule-sets.html Amazon SES Developer Guide>.
 --
 -- This action is throttled at one request per second.
---
--- /See:/ <http://docs.aws.amazon.com/ses/latest/APIReference/API_DeleteReceiptRuleSet.html AWS API Reference> for DeleteReceiptRuleSet.
 module Network.AWS.SES.DeleteReceiptRuleSet
     (
     -- * Creating a Request
@@ -76,12 +74,14 @@
 instance AWSRequest DeleteReceiptRuleSet where
         type Rs DeleteReceiptRuleSet =
              DeleteReceiptRuleSetResponse
-        request = postQuery sES
+        request = postQuery ses
         response
           = receiveXMLWrapper "DeleteReceiptRuleSetResult"
               (\ s h x ->
                  DeleteReceiptRuleSetResponse' <$>
                    (pure (fromEnum s)))
+
+instance Hashable DeleteReceiptRuleSet
 
 instance ToHeaders DeleteReceiptRuleSet where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SES/DeleteVerifiedEmailAddress.hs b/gen/Network/AWS/SES/DeleteVerifiedEmailAddress.hs
--- a/gen/Network/AWS/SES/DeleteVerifiedEmailAddress.hs
+++ b/gen/Network/AWS/SES/DeleteVerifiedEmailAddress.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.DeleteVerifiedEmailAddress
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -25,8 +25,6 @@
 -- preferred.
 --
 -- This action is throttled at one request per second.
---
--- /See:/ <http://docs.aws.amazon.com/ses/latest/APIReference/API_DeleteVerifiedEmailAddress.html AWS API Reference> for DeleteVerifiedEmailAddress.
 module Network.AWS.SES.DeleteVerifiedEmailAddress
     (
     -- * Creating a Request
@@ -47,10 +45,7 @@
 import           Network.AWS.SES.Types
 import           Network.AWS.SES.Types.Product
 
--- | Represents a request instructing the service to delete an address from
--- the list of verified email addresses.
---
--- /See:/ 'deleteVerifiedEmailAddress' smart constructor.
+-- | /See:/ 'deleteVerifiedEmailAddress' smart constructor.
 newtype DeleteVerifiedEmailAddress = DeleteVerifiedEmailAddress'
     { _dveaEmailAddress :: Text
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
@@ -75,9 +70,11 @@
 instance AWSRequest DeleteVerifiedEmailAddress where
         type Rs DeleteVerifiedEmailAddress =
              DeleteVerifiedEmailAddressResponse
-        request = postQuery sES
+        request = postQuery ses
         response
           = receiveNull DeleteVerifiedEmailAddressResponse'
+
+instance Hashable DeleteVerifiedEmailAddress
 
 instance ToHeaders DeleteVerifiedEmailAddress where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SES/DescribeActiveReceiptRuleSet.hs b/gen/Network/AWS/SES/DescribeActiveReceiptRuleSet.hs
--- a/gen/Network/AWS/SES/DescribeActiveReceiptRuleSet.hs
+++ b/gen/Network/AWS/SES/DescribeActiveReceiptRuleSet.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.DescribeActiveReceiptRuleSet
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -25,8 +25,6 @@
 -- <http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-receipt-rule-set.html Amazon SES Developer Guide>.
 --
 -- This action is throttled at one request per second.
---
--- /See:/ <http://docs.aws.amazon.com/ses/latest/APIReference/API_DescribeActiveReceiptRuleSet.html AWS API Reference> for DescribeActiveReceiptRuleSet.
 module Network.AWS.SES.DescribeActiveReceiptRuleSet
     (
     -- * Creating a Request
@@ -64,7 +62,7 @@
          where
         type Rs DescribeActiveReceiptRuleSet =
              DescribeActiveReceiptRuleSetResponse
-        request = postQuery sES
+        request = postQuery ses
         response
           = receiveXMLWrapper
               "DescribeActiveReceiptRuleSetResult"
@@ -74,6 +72,8 @@
                       may (parseXMLList "member"))
                      <*> (x .@? "Metadata")
                      <*> (pure (fromEnum s)))
+
+instance Hashable DescribeActiveReceiptRuleSet
 
 instance ToHeaders DescribeActiveReceiptRuleSet where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SES/DescribeReceiptRule.hs b/gen/Network/AWS/SES/DescribeReceiptRule.hs
--- a/gen/Network/AWS/SES/DescribeReceiptRule.hs
+++ b/gen/Network/AWS/SES/DescribeReceiptRule.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.DescribeReceiptRule
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -24,8 +24,6 @@
 -- <http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-receipt-rules.html Amazon SES Developer Guide>.
 --
 -- This action is throttled at one request per second.
---
--- /See:/ <http://docs.aws.amazon.com/ses/latest/APIReference/API_DescribeReceiptRule.html AWS API Reference> for DescribeReceiptRule.
 module Network.AWS.SES.DescribeReceiptRule
     (
     -- * Creating a Request
@@ -84,12 +82,14 @@
 instance AWSRequest DescribeReceiptRule where
         type Rs DescribeReceiptRule =
              DescribeReceiptRuleResponse
-        request = postQuery sES
+        request = postQuery ses
         response
           = receiveXMLWrapper "DescribeReceiptRuleResult"
               (\ s h x ->
                  DescribeReceiptRuleResponse' <$>
                    (x .@? "Rule") <*> (pure (fromEnum s)))
+
+instance Hashable DescribeReceiptRule
 
 instance ToHeaders DescribeReceiptRule where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SES/DescribeReceiptRuleSet.hs b/gen/Network/AWS/SES/DescribeReceiptRuleSet.hs
--- a/gen/Network/AWS/SES/DescribeReceiptRuleSet.hs
+++ b/gen/Network/AWS/SES/DescribeReceiptRuleSet.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.DescribeReceiptRuleSet
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -24,8 +24,6 @@
 -- <http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-managing-receipt-rule-sets.html Amazon SES Developer Guide>.
 --
 -- This action is throttled at one request per second.
---
--- /See:/ <http://docs.aws.amazon.com/ses/latest/APIReference/API_DescribeReceiptRuleSet.html AWS API Reference> for DescribeReceiptRuleSet.
 module Network.AWS.SES.DescribeReceiptRuleSet
     (
     -- * Creating a Request
@@ -75,7 +73,7 @@
 instance AWSRequest DescribeReceiptRuleSet where
         type Rs DescribeReceiptRuleSet =
              DescribeReceiptRuleSetResponse
-        request = postQuery sES
+        request = postQuery ses
         response
           = receiveXMLWrapper "DescribeReceiptRuleSetResult"
               (\ s h x ->
@@ -84,6 +82,8 @@
                       may (parseXMLList "member"))
                      <*> (x .@? "Metadata")
                      <*> (pure (fromEnum s)))
+
+instance Hashable DescribeReceiptRuleSet
 
 instance ToHeaders DescribeReceiptRuleSet where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SES/GetIdentityDkimAttributes.hs b/gen/Network/AWS/SES/GetIdentityDkimAttributes.hs
--- a/gen/Network/AWS/SES/GetIdentityDkimAttributes.hs
+++ b/gen/Network/AWS/SES/GetIdentityDkimAttributes.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.GetIdentityDkimAttributes
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -39,8 +39,6 @@
 -- For more information about creating DNS records using DKIM tokens, go to
 -- the
 -- <http://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim-dns-records.html Amazon SES Developer Guide>.
---
--- /See:/ <http://docs.aws.amazon.com/ses/latest/APIReference/API_GetIdentityDkimAttributes.html AWS API Reference> for GetIdentityDkimAttributes.
 module Network.AWS.SES.GetIdentityDkimAttributes
     (
     -- * Creating a Request
@@ -64,14 +62,7 @@
 import           Network.AWS.SES.Types
 import           Network.AWS.SES.Types.Product
 
--- | Given a list of verified identities, describes their DKIM attributes.
--- The DKIM attributes of an email address identity includes whether DKIM
--- signing is individually enabled or disabled for that address. The DKIM
--- attributes of a domain name identity includes whether DKIM signing is
--- enabled, as well as the DNS records (tokens) that must remain published
--- in the domain name\'s DNS.
---
--- /See:/ 'getIdentityDkimAttributes' smart constructor.
+-- | /See:/ 'getIdentityDkimAttributes' smart constructor.
 newtype GetIdentityDkimAttributes = GetIdentityDkimAttributes'
     { _gidaIdentities :: [Text]
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
@@ -96,7 +87,7 @@
 instance AWSRequest GetIdentityDkimAttributes where
         type Rs GetIdentityDkimAttributes =
              GetIdentityDkimAttributesResponse
-        request = postQuery sES
+        request = postQuery ses
         response
           = receiveXMLWrapper "GetIdentityDkimAttributesResult"
               (\ s h x ->
@@ -105,6 +96,8 @@
                      (x .@? "DkimAttributes" .!@ mempty >>=
                         parseXMLMap "entry" "key" "value"))
 
+instance Hashable GetIdentityDkimAttributes
+
 instance ToHeaders GetIdentityDkimAttributes where
         toHeaders = const mempty
 
@@ -119,9 +112,7 @@
                "Version" =: ("2010-12-01" :: ByteString),
                "Identities" =: toQueryList "member" _gidaIdentities]
 
--- | Represents a list of all the DKIM attributes for the specified identity.
---
--- /See:/ 'getIdentityDkimAttributesResponse' smart constructor.
+-- | /See:/ 'getIdentityDkimAttributesResponse' smart constructor.
 data GetIdentityDkimAttributesResponse = GetIdentityDkimAttributesResponse'
     { _gidarsResponseStatus :: !Int
     , _gidarsDkimAttributes :: !(Map Text IdentityDkimAttributes)
diff --git a/gen/Network/AWS/SES/GetIdentityMailFromDomainAttributes.hs b/gen/Network/AWS/SES/GetIdentityMailFromDomainAttributes.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/SES/GetIdentityMailFromDomainAttributes.hs
@@ -0,0 +1,133 @@
+{-# 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.GetIdentityMailFromDomainAttributes
+-- Copyright   : (c) 2013-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the custom MAIL FROM attributes for a list of identities (email
+-- addresses and\/or domains).
+--
+-- This action is throttled at one request per second and can only get
+-- custom MAIL FROM attributes for up to 100 identities at a time.
+module Network.AWS.SES.GetIdentityMailFromDomainAttributes
+    (
+    -- * Creating a Request
+      getIdentityMailFromDomainAttributes
+    , GetIdentityMailFromDomainAttributes
+    -- * Request Lenses
+    , gimfdaIdentities
+
+    -- * Destructuring the Response
+    , getIdentityMailFromDomainAttributesResponse
+    , GetIdentityMailFromDomainAttributesResponse
+    -- * Response Lenses
+    , gimfdarsResponseStatus
+    , gimfdarsMailFromDomainAttributes
+    ) 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:/ 'getIdentityMailFromDomainAttributes' smart constructor.
+newtype GetIdentityMailFromDomainAttributes = GetIdentityMailFromDomainAttributes'
+    { _gimfdaIdentities :: [Text]
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'GetIdentityMailFromDomainAttributes' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'gimfdaIdentities'
+getIdentityMailFromDomainAttributes
+    :: GetIdentityMailFromDomainAttributes
+getIdentityMailFromDomainAttributes =
+    GetIdentityMailFromDomainAttributes'
+    { _gimfdaIdentities = mempty
+    }
+
+-- | A list of one or more identities.
+gimfdaIdentities :: Lens' GetIdentityMailFromDomainAttributes [Text]
+gimfdaIdentities = lens _gimfdaIdentities (\ s a -> s{_gimfdaIdentities = a}) . _Coerce;
+
+instance AWSRequest
+         GetIdentityMailFromDomainAttributes where
+        type Rs GetIdentityMailFromDomainAttributes =
+             GetIdentityMailFromDomainAttributesResponse
+        request = postQuery ses
+        response
+          = receiveXMLWrapper
+              "GetIdentityMailFromDomainAttributesResult"
+              (\ s h x ->
+                 GetIdentityMailFromDomainAttributesResponse' <$>
+                   (pure (fromEnum s)) <*>
+                     (x .@? "MailFromDomainAttributes" .!@ mempty >>=
+                        parseXMLMap "entry" "key" "value"))
+
+instance Hashable GetIdentityMailFromDomainAttributes
+
+instance ToHeaders
+         GetIdentityMailFromDomainAttributes where
+        toHeaders = const mempty
+
+instance ToPath GetIdentityMailFromDomainAttributes
+         where
+        toPath = const "/"
+
+instance ToQuery GetIdentityMailFromDomainAttributes
+         where
+        toQuery GetIdentityMailFromDomainAttributes'{..}
+          = mconcat
+              ["Action" =:
+                 ("GetIdentityMailFromDomainAttributes" ::
+                    ByteString),
+               "Version" =: ("2010-12-01" :: ByteString),
+               "Identities" =:
+                 toQueryList "member" _gimfdaIdentities]
+
+-- | /See:/ 'getIdentityMailFromDomainAttributesResponse' smart constructor.
+data GetIdentityMailFromDomainAttributesResponse = GetIdentityMailFromDomainAttributesResponse'
+    { _gimfdarsResponseStatus           :: !Int
+    , _gimfdarsMailFromDomainAttributes :: !(Map Text IdentityMailFromDomainAttributes)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'GetIdentityMailFromDomainAttributesResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'gimfdarsResponseStatus'
+--
+-- * 'gimfdarsMailFromDomainAttributes'
+getIdentityMailFromDomainAttributesResponse
+    :: Int -- ^ 'gimfdarsResponseStatus'
+    -> GetIdentityMailFromDomainAttributesResponse
+getIdentityMailFromDomainAttributesResponse pResponseStatus_ =
+    GetIdentityMailFromDomainAttributesResponse'
+    { _gimfdarsResponseStatus = pResponseStatus_
+    , _gimfdarsMailFromDomainAttributes = mempty
+    }
+
+-- | The response status code.
+gimfdarsResponseStatus :: Lens' GetIdentityMailFromDomainAttributesResponse Int
+gimfdarsResponseStatus = lens _gimfdarsResponseStatus (\ s a -> s{_gimfdarsResponseStatus = a});
+
+-- | A map of identities to custom MAIL FROM attributes.
+gimfdarsMailFromDomainAttributes :: Lens' GetIdentityMailFromDomainAttributesResponse (HashMap Text IdentityMailFromDomainAttributes)
+gimfdarsMailFromDomainAttributes = lens _gimfdarsMailFromDomainAttributes (\ s a -> s{_gimfdarsMailFromDomainAttributes = a}) . _Map;
diff --git a/gen/Network/AWS/SES/GetIdentityNotificationAttributes.hs b/gen/Network/AWS/SES/GetIdentityNotificationAttributes.hs
--- a/gen/Network/AWS/SES/GetIdentityNotificationAttributes.hs
+++ b/gen/Network/AWS/SES/GetIdentityNotificationAttributes.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.GetIdentityNotificationAttributes
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -26,8 +26,6 @@
 --
 -- For more information about using notifications with Amazon SES, see the
 -- <http://docs.aws.amazon.com/ses/latest/DeveloperGuide/notifications.html Amazon SES Developer Guide>.
---
--- /See:/ <http://docs.aws.amazon.com/ses/latest/APIReference/API_GetIdentityNotificationAttributes.html AWS API Reference> for GetIdentityNotificationAttributes.
 module Network.AWS.SES.GetIdentityNotificationAttributes
     (
     -- * Creating a Request
@@ -79,7 +77,7 @@
          where
         type Rs GetIdentityNotificationAttributes =
              GetIdentityNotificationAttributesResponse
-        request = postQuery sES
+        request = postQuery ses
         response
           = receiveXMLWrapper
               "GetIdentityNotificationAttributesResult"
@@ -89,6 +87,8 @@
                      (x .@? "NotificationAttributes" .!@ mempty >>=
                         parseXMLMap "entry" "key" "value"))
 
+instance Hashable GetIdentityNotificationAttributes
+
 instance ToHeaders GetIdentityNotificationAttributes
          where
         toHeaders = const mempty
@@ -106,12 +106,7 @@
                "Version" =: ("2010-12-01" :: ByteString),
                "Identities" =: toQueryList "member" _ginaIdentities]
 
--- | Describes whether an identity has Amazon Simple Notification Service
--- (Amazon SNS) topics set for bounce, complaint, and\/or delivery
--- notifications, and specifies whether feedback forwarding is enabled for
--- bounce and complaint notifications.
---
--- /See:/ 'getIdentityNotificationAttributesResponse' smart constructor.
+-- | /See:/ 'getIdentityNotificationAttributesResponse' smart constructor.
 data GetIdentityNotificationAttributesResponse = GetIdentityNotificationAttributesResponse'
     { _ginarsResponseStatus         :: !Int
     , _ginarsNotificationAttributes :: !(Map Text IdentityNotificationAttributes)
diff --git a/gen/Network/AWS/SES/GetIdentityPolicies.hs b/gen/Network/AWS/SES/GetIdentityPolicies.hs
--- a/gen/Network/AWS/SES/GetIdentityPolicies.hs
+++ b/gen/Network/AWS/SES/GetIdentityPolicies.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.GetIdentityPolicies
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -32,8 +32,6 @@
 -- <http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html Amazon SES Developer Guide>.
 --
 -- This action is throttled at one request per second.
---
--- /See:/ <http://docs.aws.amazon.com/ses/latest/APIReference/API_GetIdentityPolicies.html AWS API Reference> for GetIdentityPolicies.
 module Network.AWS.SES.GetIdentityPolicies
     (
     -- * Creating a Request
@@ -58,10 +56,7 @@
 import           Network.AWS.SES.Types
 import           Network.AWS.SES.Types.Product
 
--- | Represents a request instructing the service to retrieve the text of a
--- list of authorization policies applying to an identity.
---
--- /See:/ 'getIdentityPolicies' smart constructor.
+-- | /See:/ 'getIdentityPolicies' smart constructor.
 data GetIdentityPolicies = GetIdentityPolicies'
     { _gipIdentity    :: !Text
     , _gipPolicyNames :: ![Text]
@@ -102,7 +97,7 @@
 instance AWSRequest GetIdentityPolicies where
         type Rs GetIdentityPolicies =
              GetIdentityPoliciesResponse
-        request = postQuery sES
+        request = postQuery ses
         response
           = receiveXMLWrapper "GetIdentityPoliciesResult"
               (\ s h x ->
@@ -111,6 +106,8 @@
                      (x .@? "Policies" .!@ mempty >>=
                         parseXMLMap "entry" "key" "value"))
 
+instance Hashable GetIdentityPolicies
+
 instance ToHeaders GetIdentityPolicies where
         toHeaders = const mempty
 
@@ -126,10 +123,7 @@
                "PolicyNames" =:
                  toQueryList "member" _gipPolicyNames]
 
--- | Represents a map of policy names to policies returned from a successful
--- 'GetIdentityPolicies' request.
---
--- /See:/ 'getIdentityPoliciesResponse' smart constructor.
+-- | /See:/ 'getIdentityPoliciesResponse' smart constructor.
 data GetIdentityPoliciesResponse = GetIdentityPoliciesResponse'
     { _giprsResponseStatus :: !Int
     , _giprsPolicies       :: !(Map Text Text)
diff --git a/gen/Network/AWS/SES/GetIdentityVerificationAttributes.hs b/gen/Network/AWS/SES/GetIdentityVerificationAttributes.hs
--- a/gen/Network/AWS/SES/GetIdentityVerificationAttributes.hs
+++ b/gen/Network/AWS/SES/GetIdentityVerificationAttributes.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.GetIdentityVerificationAttributes
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -24,8 +24,6 @@
 --
 -- This action is throttled at one request per second and can only get
 -- verification attributes for up to 100 identities at a time.
---
--- /See:/ <http://docs.aws.amazon.com/ses/latest/APIReference/API_GetIdentityVerificationAttributes.html AWS API Reference> for GetIdentityVerificationAttributes.
 module Network.AWS.SES.GetIdentityVerificationAttributes
     (
     -- * Creating a Request
@@ -49,10 +47,7 @@
 import           Network.AWS.SES.Types
 import           Network.AWS.SES.Types.Product
 
--- | Represents a request instructing the service to provide the verification
--- attributes for a list of identities.
---
--- /See:/ 'getIdentityVerificationAttributes' smart constructor.
+-- | /See:/ 'getIdentityVerificationAttributes' smart constructor.
 newtype GetIdentityVerificationAttributes = GetIdentityVerificationAttributes'
     { _givaIdentities :: [Text]
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
@@ -77,7 +72,7 @@
          where
         type Rs GetIdentityVerificationAttributes =
              GetIdentityVerificationAttributesResponse
-        request = postQuery sES
+        request = postQuery ses
         response
           = receiveXMLWrapper
               "GetIdentityVerificationAttributesResult"
@@ -87,6 +82,8 @@
                      (x .@? "VerificationAttributes" .!@ mempty >>=
                         parseXMLMap "entry" "key" "value"))
 
+instance Hashable GetIdentityVerificationAttributes
+
 instance ToHeaders GetIdentityVerificationAttributes
          where
         toHeaders = const mempty
@@ -104,9 +101,7 @@
                "Version" =: ("2010-12-01" :: ByteString),
                "Identities" =: toQueryList "member" _givaIdentities]
 
--- | Represents the verification attributes for a list of identities.
---
--- /See:/ 'getIdentityVerificationAttributesResponse' smart constructor.
+-- | /See:/ 'getIdentityVerificationAttributesResponse' smart constructor.
 data GetIdentityVerificationAttributesResponse = GetIdentityVerificationAttributesResponse'
     { _givarsResponseStatus         :: !Int
     , _givarsVerificationAttributes :: !(Map Text IdentityVerificationAttributes)
diff --git a/gen/Network/AWS/SES/GetSendQuota.hs b/gen/Network/AWS/SES/GetSendQuota.hs
--- a/gen/Network/AWS/SES/GetSendQuota.hs
+++ b/gen/Network/AWS/SES/GetSendQuota.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.GetSendQuota
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -21,8 +21,6 @@
 -- Returns the user\'s current sending limits.
 --
 -- This action is throttled at one request per second.
---
--- /See:/ <http://docs.aws.amazon.com/ses/latest/APIReference/API_GetSendQuota.html AWS API Reference> for GetSendQuota.
 module Network.AWS.SES.GetSendQuota
     (
     -- * Creating a Request
@@ -59,7 +57,7 @@
 
 instance AWSRequest GetSendQuota where
         type Rs GetSendQuota = GetSendQuotaResponse
-        request = postQuery sES
+        request = postQuery ses
         response
           = receiveXMLWrapper "GetSendQuotaResult"
               (\ s h x ->
@@ -68,6 +66,8 @@
                      <*> (x .@? "Max24HourSend")
                      <*> (pure (fromEnum s)))
 
+instance Hashable GetSendQuota
+
 instance ToHeaders GetSendQuota where
         toHeaders = const mempty
 
@@ -81,10 +81,7 @@
                  ["Action" =: ("GetSendQuota" :: ByteString),
                   "Version" =: ("2010-12-01" :: ByteString)])
 
--- | Represents the user\'s current activity limits returned from a
--- successful 'GetSendQuota' request.
---
--- /See:/ 'getSendQuotaResponse' smart constructor.
+-- | /See:/ 'getSendQuotaResponse' smart constructor.
 data GetSendQuotaResponse = GetSendQuotaResponse'
     { _gsqrsMaxSendRate     :: !(Maybe Double)
     , _gsqrsSentLast24Hours :: !(Maybe Double)
diff --git a/gen/Network/AWS/SES/GetSendStatistics.hs b/gen/Network/AWS/SES/GetSendStatistics.hs
--- a/gen/Network/AWS/SES/GetSendStatistics.hs
+++ b/gen/Network/AWS/SES/GetSendStatistics.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.GetSendStatistics
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -25,8 +25,6 @@
 -- interval.
 --
 -- This action is throttled at one request per second.
---
--- /See:/ <http://docs.aws.amazon.com/ses/latest/APIReference/API_GetSendStatistics.html AWS API Reference> for GetSendStatistics.
 module Network.AWS.SES.GetSendStatistics
     (
     -- * Creating a Request
@@ -61,7 +59,7 @@
 
 instance AWSRequest GetSendStatistics where
         type Rs GetSendStatistics = GetSendStatisticsResponse
-        request = postQuery sES
+        request = postQuery ses
         response
           = receiveXMLWrapper "GetSendStatisticsResult"
               (\ s h x ->
@@ -70,6 +68,8 @@
                       may (parseXMLList "member"))
                      <*> (pure (fromEnum s)))
 
+instance Hashable GetSendStatistics
+
 instance ToHeaders GetSendStatistics where
         toHeaders = const mempty
 
@@ -83,11 +83,7 @@
                  ["Action" =: ("GetSendStatistics" :: ByteString),
                   "Version" =: ("2010-12-01" :: ByteString)])
 
--- | Represents a list of 'SendDataPoint' items returned from a successful
--- 'GetSendStatistics' request. This list contains aggregated data from the
--- previous two weeks of sending activity.
---
--- /See:/ 'getSendStatisticsResponse' smart constructor.
+-- | /See:/ 'getSendStatisticsResponse' smart constructor.
 data GetSendStatisticsResponse = GetSendStatisticsResponse'
     { _gssrsSendDataPoints :: !(Maybe [SendDataPoint])
     , _gssrsResponseStatus :: !Int
diff --git a/gen/Network/AWS/SES/ListIdentities.hs b/gen/Network/AWS/SES/ListIdentities.hs
--- a/gen/Network/AWS/SES/ListIdentities.hs
+++ b/gen/Network/AWS/SES/ListIdentities.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.ListIdentities
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -23,8 +23,6 @@
 --
 -- This action is throttled at one request per second.
 --
--- /See:/ <http://docs.aws.amazon.com/ses/latest/APIReference/API_ListIdentities.html AWS API Reference> for ListIdentities.
---
 -- This operation returns paginated results.
 module Network.AWS.SES.ListIdentities
     (
@@ -53,10 +51,7 @@
 import           Network.AWS.SES.Types
 import           Network.AWS.SES.Types.Product
 
--- | Represents a request instructing the service to list all identities for
--- the AWS Account.
---
--- /See:/ 'listIdentities' smart constructor.
+-- | /See:/ 'listIdentities' smart constructor.
 data ListIdentities = ListIdentities'
     { _liIdentityType :: !(Maybe IdentityType)
     , _liNextToken    :: !(Maybe Text)
@@ -105,7 +100,7 @@
 
 instance AWSRequest ListIdentities where
         type Rs ListIdentities = ListIdentitiesResponse
-        request = postQuery sES
+        request = postQuery ses
         response
           = receiveXMLWrapper "ListIdentitiesResult"
               (\ s h x ->
@@ -114,6 +109,8 @@
                      (x .@? "Identities" .!@ mempty >>=
                         parseXMLList "member"))
 
+instance Hashable ListIdentities
+
 instance ToHeaders ListIdentities where
         toHeaders = const mempty
 
@@ -129,9 +126,7 @@
                "NextToken" =: _liNextToken,
                "MaxItems" =: _liMaxItems]
 
--- | Represents a list of all verified identities for the AWS Account.
---
--- /See:/ 'listIdentitiesResponse' smart constructor.
+-- | /See:/ 'listIdentitiesResponse' smart constructor.
 data ListIdentitiesResponse = ListIdentitiesResponse'
     { _lirsNextToken      :: !(Maybe Text)
     , _lirsResponseStatus :: !Int
diff --git a/gen/Network/AWS/SES/ListIdentityPolicies.hs b/gen/Network/AWS/SES/ListIdentityPolicies.hs
--- a/gen/Network/AWS/SES/ListIdentityPolicies.hs
+++ b/gen/Network/AWS/SES/ListIdentityPolicies.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.ListIdentityPolicies
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -32,8 +32,6 @@
 -- <http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html Amazon SES Developer Guide>.
 --
 -- This action is throttled at one request per second.
---
--- /See:/ <http://docs.aws.amazon.com/ses/latest/APIReference/API_ListIdentityPolicies.html AWS API Reference> for ListIdentityPolicies.
 module Network.AWS.SES.ListIdentityPolicies
     (
     -- * Creating a Request
@@ -57,10 +55,7 @@
 import           Network.AWS.SES.Types
 import           Network.AWS.SES.Types.Product
 
--- | Represents a request instructing the service to list all authorization
--- policies, by name, applying to an identity.
---
--- /See:/ 'listIdentityPolicies' smart constructor.
+-- | /See:/ 'listIdentityPolicies' smart constructor.
 newtype ListIdentityPolicies = ListIdentityPolicies'
     { _lipIdentity :: Text
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
@@ -91,7 +86,7 @@
 instance AWSRequest ListIdentityPolicies where
         type Rs ListIdentityPolicies =
              ListIdentityPoliciesResponse
-        request = postQuery sES
+        request = postQuery ses
         response
           = receiveXMLWrapper "ListIdentityPoliciesResult"
               (\ s h x ->
@@ -100,6 +95,8 @@
                      (x .@? "PolicyNames" .!@ mempty >>=
                         parseXMLList "member"))
 
+instance Hashable ListIdentityPolicies
+
 instance ToHeaders ListIdentityPolicies where
         toHeaders = const mempty
 
@@ -113,10 +110,7 @@
                "Version" =: ("2010-12-01" :: ByteString),
                "Identity" =: _lipIdentity]
 
--- | Represents a list of policy names returned from a successful
--- 'ListIdentityPolicies' request.
---
--- /See:/ 'listIdentityPoliciesResponse' smart constructor.
+-- | /See:/ 'listIdentityPoliciesResponse' smart constructor.
 data ListIdentityPoliciesResponse = ListIdentityPoliciesResponse'
     { _liprsResponseStatus :: !Int
     , _liprsPolicyNames    :: ![Text]
diff --git a/gen/Network/AWS/SES/ListReceiptFilters.hs b/gen/Network/AWS/SES/ListReceiptFilters.hs
--- a/gen/Network/AWS/SES/ListReceiptFilters.hs
+++ b/gen/Network/AWS/SES/ListReceiptFilters.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.ListReceiptFilters
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -24,8 +24,6 @@
 -- <http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-managing-ip-filters.html Amazon SES Developer Guide>.
 --
 -- This action is throttled at one request per second.
---
--- /See:/ <http://docs.aws.amazon.com/ses/latest/APIReference/API_ListReceiptFilters.html AWS API Reference> for ListReceiptFilters.
 module Network.AWS.SES.ListReceiptFilters
     (
     -- * Creating a Request
@@ -61,7 +59,7 @@
 instance AWSRequest ListReceiptFilters where
         type Rs ListReceiptFilters =
              ListReceiptFiltersResponse
-        request = postQuery sES
+        request = postQuery ses
         response
           = receiveXMLWrapper "ListReceiptFiltersResult"
               (\ s h x ->
@@ -69,6 +67,8 @@
                    (x .@? "Filters" .!@ mempty >>=
                       may (parseXMLList "member"))
                      <*> (pure (fromEnum s)))
+
+instance Hashable ListReceiptFilters
 
 instance ToHeaders ListReceiptFilters where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SES/ListReceiptRuleSets.hs b/gen/Network/AWS/SES/ListReceiptRuleSets.hs
--- a/gen/Network/AWS/SES/ListReceiptRuleSets.hs
+++ b/gen/Network/AWS/SES/ListReceiptRuleSets.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.ListReceiptRuleSets
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -27,8 +27,6 @@
 -- <http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-managing-receipt-rule-sets.html Amazon SES Developer Guide>.
 --
 -- This action is throttled at one request per second.
---
--- /See:/ <http://docs.aws.amazon.com/ses/latest/APIReference/API_ListReceiptRuleSets.html AWS API Reference> for ListReceiptRuleSets.
 module Network.AWS.SES.ListReceiptRuleSets
     (
     -- * Creating a Request
@@ -78,7 +76,7 @@
 instance AWSRequest ListReceiptRuleSets where
         type Rs ListReceiptRuleSets =
              ListReceiptRuleSetsResponse
-        request = postQuery sES
+        request = postQuery ses
         response
           = receiveXMLWrapper "ListReceiptRuleSetsResult"
               (\ s h x ->
@@ -87,6 +85,8 @@
                       may (parseXMLList "member"))
                      <*> (x .@? "NextToken")
                      <*> (pure (fromEnum s)))
+
+instance Hashable ListReceiptRuleSets
 
 instance ToHeaders ListReceiptRuleSets where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SES/ListVerifiedEmailAddresses.hs b/gen/Network/AWS/SES/ListVerifiedEmailAddresses.hs
--- a/gen/Network/AWS/SES/ListVerifiedEmailAddresses.hs
+++ b/gen/Network/AWS/SES/ListVerifiedEmailAddresses.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.ListVerifiedEmailAddresses
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -26,8 +26,6 @@
 -- preferred.
 --
 -- This action is throttled at one request per second.
---
--- /See:/ <http://docs.aws.amazon.com/ses/latest/APIReference/API_ListVerifiedEmailAddresses.html AWS API Reference> for ListVerifiedEmailAddresses.
 module Network.AWS.SES.ListVerifiedEmailAddresses
     (
     -- * Creating a Request
@@ -63,7 +61,7 @@
 instance AWSRequest ListVerifiedEmailAddresses where
         type Rs ListVerifiedEmailAddresses =
              ListVerifiedEmailAddressesResponse
-        request = postQuery sES
+        request = postQuery ses
         response
           = receiveXMLWrapper
               "ListVerifiedEmailAddressesResult"
@@ -73,6 +71,8 @@
                       may (parseXMLList "member"))
                      <*> (pure (fromEnum s)))
 
+instance Hashable ListVerifiedEmailAddresses
+
 instance ToHeaders ListVerifiedEmailAddresses where
         toHeaders = const mempty
 
@@ -87,10 +87,7 @@
                     ("ListVerifiedEmailAddresses" :: ByteString),
                   "Version" =: ("2010-12-01" :: ByteString)])
 
--- | Represents a list of all the email addresses verified for the current
--- user.
---
--- /See:/ 'listVerifiedEmailAddressesResponse' smart constructor.
+-- | /See:/ 'listVerifiedEmailAddressesResponse' smart constructor.
 data ListVerifiedEmailAddressesResponse = ListVerifiedEmailAddressesResponse'
     { _lvearsVerifiedEmailAddresses :: !(Maybe [Text])
     , _lvearsResponseStatus         :: !Int
diff --git a/gen/Network/AWS/SES/PutIdentityPolicy.hs b/gen/Network/AWS/SES/PutIdentityPolicy.hs
--- a/gen/Network/AWS/SES/PutIdentityPolicy.hs
+++ b/gen/Network/AWS/SES/PutIdentityPolicy.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.PutIdentityPolicy
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -30,8 +30,6 @@
 -- <http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html Amazon SES Developer Guide>.
 --
 -- This action is throttled at one request per second.
---
--- /See:/ <http://docs.aws.amazon.com/ses/latest/APIReference/API_PutIdentityPolicy.html AWS API Reference> for PutIdentityPolicy.
 module Network.AWS.SES.PutIdentityPolicy
     (
     -- * Creating a Request
@@ -56,10 +54,7 @@
 import           Network.AWS.SES.Types
 import           Network.AWS.SES.Types.Product
 
--- | Represents a request instructing the service to apply an authorization
--- policy to an identity.
---
--- /See:/ 'putIdentityPolicy' smart constructor.
+-- | /See:/ 'putIdentityPolicy' smart constructor.
 data PutIdentityPolicy = PutIdentityPolicy'
     { _pipIdentity   :: !Text
     , _pipPolicyName :: !Text
@@ -113,12 +108,14 @@
 
 instance AWSRequest PutIdentityPolicy where
         type Rs PutIdentityPolicy = PutIdentityPolicyResponse
-        request = postQuery sES
+        request = postQuery ses
         response
           = receiveXMLWrapper "PutIdentityPolicyResult"
               (\ s h x ->
                  PutIdentityPolicyResponse' <$> (pure (fromEnum s)))
 
+instance Hashable PutIdentityPolicy
+
 instance ToHeaders PutIdentityPolicy where
         toHeaders = const mempty
 
@@ -134,10 +131,7 @@
                "PolicyName" =: _pipPolicyName,
                "Policy" =: _pipPolicy]
 
--- | An empty element. Receiving this element indicates that the request
--- completed successfully.
---
--- /See:/ 'putIdentityPolicyResponse' smart constructor.
+-- | /See:/ 'putIdentityPolicyResponse' smart constructor.
 newtype PutIdentityPolicyResponse = PutIdentityPolicyResponse'
     { _piprsResponseStatus :: Int
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
diff --git a/gen/Network/AWS/SES/ReorderReceiptRuleSet.hs b/gen/Network/AWS/SES/ReorderReceiptRuleSet.hs
--- a/gen/Network/AWS/SES/ReorderReceiptRuleSet.hs
+++ b/gen/Network/AWS/SES/ReorderReceiptRuleSet.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.ReorderReceiptRuleSet
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -21,15 +21,13 @@
 -- Reorders the receipt rules within a receipt rule set.
 --
 -- All of the rules in the rule set must be represented in this request.
--- That is, this API will return an error if the reorder request doesn’t
+-- That is, this API will return an error if the reorder request doesn\'t
 -- explicitly position all of the rules.
 --
 -- For information about managing receipt rule sets, see the
 -- <http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-managing-receipt-rule-sets.html Amazon SES Developer Guide>.
 --
 -- This action is throttled at one request per second.
---
--- /See:/ <http://docs.aws.amazon.com/ses/latest/APIReference/API_ReorderReceiptRuleSet.html AWS API Reference> for ReorderReceiptRuleSet.
 module Network.AWS.SES.ReorderReceiptRuleSet
     (
     -- * Creating a Request
@@ -87,12 +85,14 @@
 instance AWSRequest ReorderReceiptRuleSet where
         type Rs ReorderReceiptRuleSet =
              ReorderReceiptRuleSetResponse
-        request = postQuery sES
+        request = postQuery ses
         response
           = receiveXMLWrapper "ReorderReceiptRuleSetResult"
               (\ s h x ->
                  ReorderReceiptRuleSetResponse' <$>
                    (pure (fromEnum s)))
+
+instance Hashable ReorderReceiptRuleSet
 
 instance ToHeaders ReorderReceiptRuleSet where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SES/SendBounce.hs b/gen/Network/AWS/SES/SendBounce.hs
--- a/gen/Network/AWS/SES/SendBounce.hs
+++ b/gen/Network/AWS/SES/SendBounce.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.SendBounce
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -29,8 +29,6 @@
 -- <http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email.html Amazon SES Developer Guide>.
 --
 -- This action is throttled at one request per second.
---
--- /See:/ <http://docs.aws.amazon.com/ses/latest/APIReference/API_SendBounce.html AWS API Reference> for SendBounce.
 module Network.AWS.SES.SendBounce
     (
     -- * Creating a Request
@@ -59,11 +57,7 @@
 import           Network.AWS.SES.Types
 import           Network.AWS.SES.Types.Product
 
--- | Request object for sending a simple\/complex bounce. It contains all of
--- the information needed to generate a basic DSN or a fully-customized
--- DSN.
---
--- /See:/ 'sendBounce' smart constructor.
+-- | /See:/ 'sendBounce' smart constructor.
 data SendBounce = SendBounce'
     { _sbMessageDsn               :: !(Maybe MessageDsn)
     , _sbExplanation              :: !(Maybe Text)
@@ -139,12 +133,14 @@
 
 instance AWSRequest SendBounce where
         type Rs SendBounce = SendBounceResponse
-        request = postQuery sES
+        request = postQuery ses
         response
           = receiveXMLWrapper "SendBounceResult"
               (\ s h x ->
                  SendBounceResponse' <$>
                    (x .@? "MessageId") <*> (pure (fromEnum s)))
+
+instance Hashable SendBounce
 
 instance ToHeaders SendBounce where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SES/SendEmail.hs b/gen/Network/AWS/SES/SendEmail.hs
--- a/gen/Network/AWS/SES/SendEmail.hs
+++ b/gen/Network/AWS/SES/SendEmail.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.SendEmail
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -43,8 +43,6 @@
 --     maximum number of emails you can send in a 24-hour period. For
 --     information about your sending quota, go to the
 --     <http://docs.aws.amazon.com/ses/latest/DeveloperGuide/manage-sending-limits.html Amazon SES Developer Guide>.
---
--- /See:/ <http://docs.aws.amazon.com/ses/latest/APIReference/API_SendEmail.html AWS API Reference> for SendEmail.
 module Network.AWS.SES.SendEmail
     (
     -- * Creating a Request
@@ -74,14 +72,7 @@
 import           Network.AWS.SES.Types
 import           Network.AWS.SES.Types.Product
 
--- | Represents a request instructing the service to send a single email
--- message.
---
--- This datatype can be used in application code to compose a message
--- consisting of source, destination, message, reply-to, and return-path
--- parts. This object can then be sent using the 'SendEmail' action.
---
--- /See:/ 'sendEmail' smart constructor.
+-- | /See:/ 'sendEmail' smart constructor.
 data SendEmail = SendEmail'
     { _seReturnPath       :: !(Maybe Text)
     , _seSourceARN        :: !(Maybe Text)
@@ -205,13 +196,15 @@
 
 instance AWSRequest SendEmail where
         type Rs SendEmail = SendEmailResponse
-        request = postQuery sES
+        request = postQuery ses
         response
           = receiveXMLWrapper "SendEmailResult"
               (\ s h x ->
                  SendEmailResponse' <$>
                    (pure (fromEnum s)) <*> (x .@ "MessageId"))
 
+instance Hashable SendEmail
+
 instance ToHeaders SendEmail where
         toHeaders = const mempty
 
@@ -233,10 +226,7 @@
                "Destination" =: _seDestination,
                "Message" =: _seMessage]
 
--- | Represents a unique message ID returned from a successful 'SendEmail'
--- request.
---
--- /See:/ 'sendEmailResponse' smart constructor.
+-- | /See:/ 'sendEmailResponse' smart constructor.
 data SendEmailResponse = SendEmailResponse'
     { _sersResponseStatus :: !Int
     , _sersMessageId      :: !Text
diff --git a/gen/Network/AWS/SES/SendRawEmail.hs b/gen/Network/AWS/SES/SendRawEmail.hs
--- a/gen/Network/AWS/SES/SendRawEmail.hs
+++ b/gen/Network/AWS/SES/SendRawEmail.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.SendRawEmail
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -69,8 +69,6 @@
 --     'SourceIdentityArn'. For more information about sending
 --     authorization, see the
 --     <http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html Amazon SES Developer Guide>.
---
--- /See:/ <http://docs.aws.amazon.com/ses/latest/APIReference/API_SendRawEmail.html AWS API Reference> for SendRawEmail.
 module Network.AWS.SES.SendRawEmail
     (
     -- * Creating a Request
@@ -99,14 +97,7 @@
 import           Network.AWS.SES.Types
 import           Network.AWS.SES.Types.Product
 
--- | Represents a request instructing the service to send a raw email
--- message.
---
--- This datatype can be used in application code to compose a message
--- consisting of source, destination, and raw message text. This object can
--- then be sent using the 'SendRawEmail' action.
---
--- /See:/ 'sendRawEmail' smart constructor.
+-- | /See:/ 'sendRawEmail' smart constructor.
 data SendRawEmail = SendRawEmail'
     { _sreSourceARN     :: !(Maybe Text)
     , _sreDestinations  :: !(Maybe [Text])
@@ -243,13 +234,15 @@
 
 instance AWSRequest SendRawEmail where
         type Rs SendRawEmail = SendRawEmailResponse
-        request = postQuery sES
+        request = postQuery ses
         response
           = receiveXMLWrapper "SendRawEmailResult"
               (\ s h x ->
                  SendRawEmailResponse' <$>
                    (pure (fromEnum s)) <*> (x .@ "MessageId"))
 
+instance Hashable SendRawEmail
+
 instance ToHeaders SendRawEmail where
         toHeaders = const mempty
 
@@ -268,10 +261,7 @@
                "Source" =: _sreSource, "FromArn" =: _sreFromARN,
                "RawMessage" =: _sreRawMessage]
 
--- | Represents a unique message ID returned from a successful 'SendRawEmail'
--- request.
---
--- /See:/ 'sendRawEmailResponse' smart constructor.
+-- | /See:/ 'sendRawEmailResponse' smart constructor.
 data SendRawEmailResponse = SendRawEmailResponse'
     { _srersResponseStatus :: !Int
     , _srersMessageId      :: !Text
diff --git a/gen/Network/AWS/SES/SetActiveReceiptRuleSet.hs b/gen/Network/AWS/SES/SetActiveReceiptRuleSet.hs
--- a/gen/Network/AWS/SES/SetActiveReceiptRuleSet.hs
+++ b/gen/Network/AWS/SES/SetActiveReceiptRuleSet.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.SetActiveReceiptRuleSet
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -27,8 +27,6 @@
 -- <http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-managing-receipt-rule-sets.html Amazon SES Developer Guide>.
 --
 -- This action is throttled at one request per second.
---
--- /See:/ <http://docs.aws.amazon.com/ses/latest/APIReference/API_SetActiveReceiptRuleSet.html AWS API Reference> for SetActiveReceiptRuleSet.
 module Network.AWS.SES.SetActiveReceiptRuleSet
     (
     -- * Creating a Request
@@ -76,12 +74,14 @@
 instance AWSRequest SetActiveReceiptRuleSet where
         type Rs SetActiveReceiptRuleSet =
              SetActiveReceiptRuleSetResponse
-        request = postQuery sES
+        request = postQuery ses
         response
           = receiveXMLWrapper "SetActiveReceiptRuleSetResult"
               (\ s h x ->
                  SetActiveReceiptRuleSetResponse' <$>
                    (pure (fromEnum s)))
+
+instance Hashable SetActiveReceiptRuleSet
 
 instance ToHeaders SetActiveReceiptRuleSet where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SES/SetIdentityDkimEnabled.hs b/gen/Network/AWS/SES/SetIdentityDkimEnabled.hs
--- a/gen/Network/AWS/SES/SetIdentityDkimEnabled.hs
+++ b/gen/Network/AWS/SES/SetIdentityDkimEnabled.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.SetIdentityDkimEnabled
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -35,8 +35,6 @@
 --
 -- For more information about Easy DKIM signing, go to the
 -- <http://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html Amazon SES Developer Guide>.
---
--- /See:/ <http://docs.aws.amazon.com/ses/latest/APIReference/API_SetIdentityDkimEnabled.html AWS API Reference> for SetIdentityDkimEnabled.
 module Network.AWS.SES.SetIdentityDkimEnabled
     (
     -- * Creating a Request
@@ -60,10 +58,7 @@
 import           Network.AWS.SES.Types
 import           Network.AWS.SES.Types.Product
 
--- | Represents a request instructing the service to enable or disable DKIM
--- signing for an identity.
---
--- /See:/ 'setIdentityDkimEnabled' smart constructor.
+-- | /See:/ 'setIdentityDkimEnabled' smart constructor.
 data SetIdentityDkimEnabled = SetIdentityDkimEnabled'
     { _sideIdentity    :: !Text
     , _sideDkimEnabled :: !Bool
@@ -98,13 +93,15 @@
 instance AWSRequest SetIdentityDkimEnabled where
         type Rs SetIdentityDkimEnabled =
              SetIdentityDkimEnabledResponse
-        request = postQuery sES
+        request = postQuery ses
         response
           = receiveXMLWrapper "SetIdentityDkimEnabledResult"
               (\ s h x ->
                  SetIdentityDkimEnabledResponse' <$>
                    (pure (fromEnum s)))
 
+instance Hashable SetIdentityDkimEnabled
+
 instance ToHeaders SetIdentityDkimEnabled where
         toHeaders = const mempty
 
@@ -120,10 +117,7 @@
                "Identity" =: _sideIdentity,
                "DkimEnabled" =: _sideDkimEnabled]
 
--- | An empty element. Receiving this element indicates that the request
--- completed successfully.
---
--- /See:/ 'setIdentityDkimEnabledResponse' smart constructor.
+-- | /See:/ 'setIdentityDkimEnabledResponse' smart constructor.
 newtype SetIdentityDkimEnabledResponse = SetIdentityDkimEnabledResponse'
     { _sidersResponseStatus :: Int
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
diff --git a/gen/Network/AWS/SES/SetIdentityFeedbackForwardingEnabled.hs b/gen/Network/AWS/SES/SetIdentityFeedbackForwardingEnabled.hs
--- a/gen/Network/AWS/SES/SetIdentityFeedbackForwardingEnabled.hs
+++ b/gen/Network/AWS/SES/SetIdentityFeedbackForwardingEnabled.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.SetIdentityFeedbackForwardingEnabled
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -31,8 +31,6 @@
 --
 -- For more information about using notifications with Amazon SES, see the
 -- <http://docs.aws.amazon.com/ses/latest/DeveloperGuide/notifications.html Amazon SES Developer Guide>.
---
--- /See:/ <http://docs.aws.amazon.com/ses/latest/APIReference/API_SetIdentityFeedbackForwardingEnabled.html AWS API Reference> for SetIdentityFeedbackForwardingEnabled.
 module Network.AWS.SES.SetIdentityFeedbackForwardingEnabled
     (
     -- * Creating a Request
@@ -98,7 +96,7 @@
          SetIdentityFeedbackForwardingEnabled where
         type Rs SetIdentityFeedbackForwardingEnabled =
              SetIdentityFeedbackForwardingEnabledResponse
-        request = postQuery sES
+        request = postQuery ses
         response
           = receiveXMLWrapper
               "SetIdentityFeedbackForwardingEnabledResult"
@@ -106,6 +104,9 @@
                  SetIdentityFeedbackForwardingEnabledResponse' <$>
                    (pure (fromEnum s)))
 
+instance Hashable
+         SetIdentityFeedbackForwardingEnabled
+
 instance ToHeaders
          SetIdentityFeedbackForwardingEnabled where
         toHeaders = const mempty
@@ -125,10 +126,7 @@
                "Identity" =: _siffeIdentity,
                "ForwardingEnabled" =: _siffeForwardingEnabled]
 
--- | An empty element. Receiving this element indicates that the request
--- completed successfully.
---
--- /See:/ 'setIdentityFeedbackForwardingEnabledResponse' smart constructor.
+-- | /See:/ 'setIdentityFeedbackForwardingEnabledResponse' smart constructor.
 newtype SetIdentityFeedbackForwardingEnabledResponse = SetIdentityFeedbackForwardingEnabledResponse'
     { _siffersResponseStatus :: Int
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
diff --git a/gen/Network/AWS/SES/SetIdentityMailFromDomain.hs b/gen/Network/AWS/SES/SetIdentityMailFromDomain.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/SES/SetIdentityMailFromDomain.hs
@@ -0,0 +1,156 @@
+{-# 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 <brendan.g.hay@gmail.com>
+-- 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
+-- <http://docs.aws.amazon.com/ses/latest/DeveloperGuide/mail-from-set.html Amazon SES Developer Guide>.
+--
+-- 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
+-- <http://docs.aws.amazon.com/ses/latest/DeveloperGuide/mail-from.html Amazon SES Developer Guide>),
+-- 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});
diff --git a/gen/Network/AWS/SES/SetIdentityNotificationTopic.hs b/gen/Network/AWS/SES/SetIdentityNotificationTopic.hs
--- a/gen/Network/AWS/SES/SetIdentityNotificationTopic.hs
+++ b/gen/Network/AWS/SES/SetIdentityNotificationTopic.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.SetIdentityNotificationTopic
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -31,8 +31,6 @@
 --
 -- For more information about feedback notification, see the
 -- <http://docs.aws.amazon.com/ses/latest/DeveloperGuide/notifications.html Amazon SES Developer Guide>.
---
--- /See:/ <http://docs.aws.amazon.com/ses/latest/APIReference/API_SetIdentityNotificationTopic.html AWS API Reference> for SetIdentityNotificationTopic.
 module Network.AWS.SES.SetIdentityNotificationTopic
     (
     -- * Creating a Request
@@ -57,9 +55,7 @@
 import           Network.AWS.SES.Types
 import           Network.AWS.SES.Types.Product
 
--- | Represents a request to set or clear an identity\'s notification topic.
---
--- /See:/ 'setIdentityNotificationTopic' smart constructor.
+-- | /See:/ 'setIdentityNotificationTopic' smart constructor.
 data SetIdentityNotificationTopic = SetIdentityNotificationTopic'
     { _sintSNSTopic         :: !(Maybe Text)
     , _sintIdentity         :: !Text
@@ -108,7 +104,7 @@
          where
         type Rs SetIdentityNotificationTopic =
              SetIdentityNotificationTopicResponse
-        request = postQuery sES
+        request = postQuery ses
         response
           = receiveXMLWrapper
               "SetIdentityNotificationTopicResult"
@@ -116,6 +112,8 @@
                  SetIdentityNotificationTopicResponse' <$>
                    (pure (fromEnum s)))
 
+instance Hashable SetIdentityNotificationTopic
+
 instance ToHeaders SetIdentityNotificationTopic where
         toHeaders = const mempty
 
@@ -132,10 +130,7 @@
                "Identity" =: _sintIdentity,
                "NotificationType" =: _sintNotificationType]
 
--- | An empty element. Receiving this element indicates that the request
--- completed successfully.
---
--- /See:/ 'setIdentityNotificationTopicResponse' smart constructor.
+-- | /See:/ 'setIdentityNotificationTopicResponse' smart constructor.
 newtype SetIdentityNotificationTopicResponse = SetIdentityNotificationTopicResponse'
     { _sintrsResponseStatus :: Int
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
diff --git a/gen/Network/AWS/SES/SetReceiptRulePosition.hs b/gen/Network/AWS/SES/SetReceiptRulePosition.hs
--- a/gen/Network/AWS/SES/SetReceiptRulePosition.hs
+++ b/gen/Network/AWS/SES/SetReceiptRulePosition.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.SetReceiptRulePosition
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -24,8 +24,6 @@
 -- <http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-managing-receipt-rules.html Amazon SES Developer Guide>.
 --
 -- This action is throttled at one request per second.
---
--- /See:/ <http://docs.aws.amazon.com/ses/latest/APIReference/API_SetReceiptRulePosition.html AWS API Reference> for SetReceiptRulePosition.
 module Network.AWS.SES.SetReceiptRulePosition
     (
     -- * Creating a Request
@@ -94,12 +92,14 @@
 instance AWSRequest SetReceiptRulePosition where
         type Rs SetReceiptRulePosition =
              SetReceiptRulePositionResponse
-        request = postQuery sES
+        request = postQuery ses
         response
           = receiveXMLWrapper "SetReceiptRulePositionResult"
               (\ s h x ->
                  SetReceiptRulePositionResponse' <$>
                    (pure (fromEnum s)))
+
+instance Hashable SetReceiptRulePosition
 
 instance ToHeaders SetReceiptRulePosition where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SES/Types.hs b/gen/Network/AWS/SES/Types.hs
--- a/gen/Network/AWS/SES/Types.hs
+++ b/gen/Network/AWS/SES/Types.hs
@@ -4,7 +4,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.Types
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -13,13 +13,14 @@
 module Network.AWS.SES.Types
     (
     -- * Service Configuration
-      sES
+      ses
 
     -- * Errors
     , _CannotDeleteException
     , _RuleDoesNotExistException
     , _MessageRejected
     , _RuleSetDoesNotExistException
+    , _MailFromDomainNotVerifiedException
     , _InvalidLambdaFunctionException
     , _InvalidPolicyException
     , _InvalidS3ConfigurationException
@@ -27,9 +28,15 @@
     , _AlreadyExistsException
     , _LimitExceededException
 
+    -- * BehaviorOnMXFailure
+    , BehaviorOnMXFailure (..)
+
     -- * BounceType
     , BounceType (..)
 
+    -- * CustomMailFromStatus
+    , CustomMailFromStatus (..)
+
     -- * DsnAction
     , DsnAction (..)
 
@@ -45,6 +52,9 @@
     -- * ReceiptFilterPolicy
     , ReceiptFilterPolicy (..)
 
+    -- * SNSActionEncoding
+    , SNSActionEncoding (..)
+
     -- * StopScope
     , StopScope (..)
 
@@ -109,6 +119,13 @@
     , idaDkimEnabled
     , idaDkimVerificationStatus
 
+    -- * IdentityMailFromDomainAttributes
+    , IdentityMailFromDomainAttributes
+    , identityMailFromDomainAttributes
+    , imfdaMailFromDomain
+    , imfdaMailFromDomainStatus
+    , imfdaBehaviorOnMXFailure
+
     -- * IdentityNotificationAttributes
     , IdentityNotificationAttributes
     , identityNotificationAttributes
@@ -209,6 +226,7 @@
     -- * SNSAction
     , SNSAction
     , snsAction
+    , saEncoding
     , saTopicARN
 
     -- * SendDataPoint
@@ -240,14 +258,14 @@
 import           Network.AWS.Sign.V4
 
 -- | API version '2010-12-01' of the Amazon Simple Email Service SDK configuration.
-sES :: Service
-sES =
+ses :: Service
+ses =
     Service
     { _svcAbbrev = "SES"
     , _svcSigner = v4
     , _svcPrefix = "email"
     , _svcVersion = "2010-12-01"
-    , _svcEndpoint = defaultEndpoint sES
+    , _svcEndpoint = defaultEndpoint ses
     , _svcTimeout = Just 70
     , _svcCheck = statusSuccess
     , _svcError = parseXMLError
@@ -262,6 +280,7 @@
         , _retryCheck = check
         }
     check e
+      | has (hasStatus 429) e = Just "too_many_requests"
       | has (hasCode "ThrottlingException" . hasStatus 400) e =
           Just "throttling_exception"
       | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"
@@ -288,6 +307,16 @@
 _RuleSetDoesNotExistException :: AsError a => Getting (First ServiceError) a ServiceError
 _RuleSetDoesNotExistException =
     _ServiceError . hasStatus 400 . hasCode "RuleSetDoesNotExist"
+
+-- | Indicates that the message could not be sent because Amazon SES could
+-- not read the MX record required to use the specified MAIL FROM domain.
+-- For information about editing the custom MAIL FROM domain settings for
+-- an identity, see the
+-- <http://docs.aws.amazon.com/ses/latest/DeveloperGuide/mail-from-edit.html Amazon SES Developer Guide>.
+_MailFromDomainNotVerifiedException :: AsError a => Getting (First ServiceError) a ServiceError
+_MailFromDomainNotVerifiedException =
+    _ServiceError .
+    hasStatus 400 . hasCode "MailFromDomainNotVerifiedException"
 
 -- | Indicates that the provided AWS Lambda function is invalid, or that
 -- Amazon SES could not execute the provided function, possibly due to
diff --git a/gen/Network/AWS/SES/Types/Product.hs b/gen/Network/AWS/SES/Types/Product.hs
--- a/gen/Network/AWS/SES/Types/Product.hs
+++ b/gen/Network/AWS/SES/Types/Product.hs
@@ -9,7 +9,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.Types.Product
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -66,6 +66,8 @@
           = AddHeaderAction' <$>
               (x .@ "HeaderName") <*> (x .@ "HeaderValue")
 
+instance Hashable AddHeaderAction
+
 instance ToQuery AddHeaderAction where
         toQuery AddHeaderAction'{..}
           = mconcat
@@ -109,6 +111,8 @@
 bHTML :: Lens' Body (Maybe Content)
 bHTML = lens _bHTML (\ s a -> s{_bHTML = a});
 
+instance Hashable Body
+
 instance ToQuery Body where
         toQuery Body'{..}
           = mconcat ["Text" =: _bText, "Html" =: _bHTML]
@@ -192,6 +196,8 @@
                 <*> (x .@ "Message")
                 <*> (x .@ "Sender")
 
+instance Hashable BounceAction
+
 instance ToQuery BounceAction where
         toQuery BounceAction'{..}
           = mconcat
@@ -260,6 +266,8 @@
 briRecipient :: Lens' BouncedRecipientInfo Text
 briRecipient = lens _briRecipient (\ s a -> s{_briRecipient = a});
 
+instance Hashable BouncedRecipientInfo
+
 instance ToQuery BouncedRecipientInfo where
         toQuery BouncedRecipientInfo'{..}
           = mconcat
@@ -305,6 +313,8 @@
 cData :: Lens' Content Text
 cData = lens _cData (\ s a -> s{_cData = a});
 
+instance Hashable Content
+
 instance ToQuery Content where
         toQuery Content'{..}
           = mconcat ["Charset" =: _cCharset, "Data" =: _cData]
@@ -355,6 +365,8 @@
 dToAddresses :: Lens' Destination [Text]
 dToAddresses = lens _dToAddresses (\ s a -> s{_dToAddresses = a}) . _Default . _Coerce;
 
+instance Hashable Destination
+
 instance ToQuery Destination where
         toQuery Destination'{..}
           = mconcat
@@ -405,6 +417,8 @@
 efValue :: Lens' ExtensionField Text
 efValue = lens _efValue (\ s a -> s{_efValue = a});
 
+instance Hashable ExtensionField
+
 instance ToQuery ExtensionField where
         toQuery ExtensionField'{..}
           = mconcat ["Name" =: _efName, "Value" =: _efValue]
@@ -471,6 +485,74 @@
                 <*> (x .@ "DkimEnabled")
                 <*> (x .@ "DkimVerificationStatus")
 
+instance Hashable IdentityDkimAttributes
+
+-- | Represents the custom MAIL FROM domain attributes of a verified identity
+-- (email address or domain).
+--
+-- /See:/ 'identityMailFromDomainAttributes' smart constructor.
+data IdentityMailFromDomainAttributes = IdentityMailFromDomainAttributes'
+    { _imfdaMailFromDomain       :: !Text
+    , _imfdaMailFromDomainStatus :: !CustomMailFromStatus
+    , _imfdaBehaviorOnMXFailure  :: !BehaviorOnMXFailure
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'IdentityMailFromDomainAttributes' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'imfdaMailFromDomain'
+--
+-- * 'imfdaMailFromDomainStatus'
+--
+-- * 'imfdaBehaviorOnMXFailure'
+identityMailFromDomainAttributes
+    :: Text -- ^ 'imfdaMailFromDomain'
+    -> CustomMailFromStatus -- ^ 'imfdaMailFromDomainStatus'
+    -> BehaviorOnMXFailure -- ^ 'imfdaBehaviorOnMXFailure'
+    -> IdentityMailFromDomainAttributes
+identityMailFromDomainAttributes pMailFromDomain_ pMailFromDomainStatus_ pBehaviorOnMXFailure_ =
+    IdentityMailFromDomainAttributes'
+    { _imfdaMailFromDomain = pMailFromDomain_
+    , _imfdaMailFromDomainStatus = pMailFromDomainStatus_
+    , _imfdaBehaviorOnMXFailure = pBehaviorOnMXFailure_
+    }
+
+-- | The custom MAIL FROM domain that the identity is configured to use.
+imfdaMailFromDomain :: Lens' IdentityMailFromDomainAttributes Text
+imfdaMailFromDomain = lens _imfdaMailFromDomain (\ s a -> s{_imfdaMailFromDomain = a});
+
+-- | The state that indicates whether Amazon SES has successfully read the MX
+-- record required for custom MAIL FROM domain setup. If the state is
+-- 'Success', Amazon SES uses the specified custom MAIL FROM domain when
+-- the verified identity sends an email. All other states indicate that
+-- Amazon SES takes the action described by 'BehaviorOnMXFailure'.
+imfdaMailFromDomainStatus :: Lens' IdentityMailFromDomainAttributes CustomMailFromStatus
+imfdaMailFromDomainStatus = lens _imfdaMailFromDomainStatus (\ s a -> s{_imfdaMailFromDomainStatus = a});
+
+-- | The action that Amazon SES takes if it cannot successfully read the
+-- required MX record when you send an email. A value of 'UseDefaultValue'
+-- indicates that if Amazon SES cannot read the required MX record, it uses
+-- amazonses.com (or a subdomain of that) as the MAIL FROM domain. A value
+-- of 'RejectMessage' indicates that if Amazon SES cannot read the required
+-- MX record, Amazon SES returns a 'MailFromDomainNotVerified' error and
+-- does not send the email.
+--
+-- The custom MAIL FROM setup states that result in this behavior are
+-- 'Pending', 'Failed', and 'TemporaryFailure'.
+imfdaBehaviorOnMXFailure :: Lens' IdentityMailFromDomainAttributes BehaviorOnMXFailure
+imfdaBehaviorOnMXFailure = lens _imfdaBehaviorOnMXFailure (\ s a -> s{_imfdaBehaviorOnMXFailure = a});
+
+instance FromXML IdentityMailFromDomainAttributes
+         where
+        parseXML x
+          = IdentityMailFromDomainAttributes' <$>
+              (x .@ "MailFromDomain") <*>
+                (x .@ "MailFromDomainStatus")
+                <*> (x .@ "BehaviorOnMXFailure")
+
+instance Hashable IdentityMailFromDomainAttributes
+
 -- | Represents the notification attributes of an identity, including whether
 -- an identity has Amazon Simple Notification Service (Amazon SNS) topics
 -- set for bounce, complaint, and\/or delivery notifications, and whether
@@ -539,6 +621,8 @@
                 (x .@ "DeliveryTopic")
                 <*> (x .@ "ForwardingEnabled")
 
+instance Hashable IdentityNotificationAttributes
+
 -- | Represents the verification attributes of a single identity.
 --
 -- /See:/ 'identityVerificationAttributes' smart constructor.
@@ -579,6 +663,8 @@
               (x .@? "VerificationToken") <*>
                 (x .@ "VerificationStatus")
 
+instance Hashable IdentityVerificationAttributes
+
 -- | When included in a receipt rule, this action calls an AWS Lambda
 -- function and, optionally, publishes a notification to Amazon Simple
 -- Notification Service (Amazon SNS).
@@ -654,6 +740,8 @@
               (x .@? "InvocationType") <*> (x .@? "TopicArn") <*>
                 (x .@ "FunctionArn")
 
+instance Hashable LambdaAction
+
 instance ToQuery LambdaAction where
         toQuery LambdaAction'{..}
           = mconcat
@@ -695,6 +783,8 @@
 mBody :: Lens' Message Body
 mBody = lens _mBody (\ s a -> s{_mBody = a});
 
+instance Hashable Message
+
 instance ToQuery Message where
         toQuery Message'{..}
           = mconcat ["Subject" =: _mSubject, "Body" =: _mBody]
@@ -749,6 +839,8 @@
 mdReportingMta :: Lens' MessageDsn Text
 mdReportingMta = lens _mdReportingMta (\ s a -> s{_mdReportingMta = a});
 
+instance Hashable MessageDsn
+
 instance ToQuery MessageDsn where
         toQuery MessageDsn'{..}
           = mconcat
@@ -804,6 +896,8 @@
 rmData :: Lens' RawMessage ByteString
 rmData = lens _rmData (\ s a -> s{_rmData = a}) . _Base64;
 
+instance Hashable RawMessage
+
 instance ToQuery RawMessage where
         toQuery RawMessage'{..} = mconcat ["Data" =: _rmData]
 
@@ -899,6 +993,8 @@
                 <*> (x .@? "StopAction")
                 <*> (x .@? "S3Action")
 
+instance Hashable ReceiptAction
+
 instance ToQuery ReceiptAction where
         toQuery ReceiptAction'{..}
           = mconcat
@@ -958,6 +1054,8 @@
           = ReceiptFilter' <$>
               (x .@ "Name") <*> (x .@ "IpFilter")
 
+instance Hashable ReceiptFilter
+
 instance ToQuery ReceiptFilter where
         toQuery ReceiptFilter'{..}
           = mconcat
@@ -1010,6 +1108,8 @@
           = ReceiptIPFilter' <$>
               (x .@ "Policy") <*> (x .@ "Cidr")
 
+instance Hashable ReceiptIPFilter
+
 instance ToQuery ReceiptIPFilter where
         toQuery ReceiptIPFilter'{..}
           = mconcat
@@ -1066,11 +1166,11 @@
     }
 
 -- | If 'true', then messages to which this receipt rule applies are scanned
--- for spam and viruses. The default value is 'true'.
+-- for spam and viruses. The default value is 'false'.
 rrScanEnabled :: Lens' ReceiptRule (Maybe Bool)
 rrScanEnabled = lens _rrScanEnabled (\ s a -> s{_rrScanEnabled = a});
 
--- | If 'true', the receipt rule is active. The default value is true.
+-- | If 'true', the receipt rule is active. The default value is 'false'.
 rrEnabled :: Lens' ReceiptRule (Maybe Bool)
 rrEnabled = lens _rrEnabled (\ s a -> s{_rrEnabled = a});
 
@@ -1114,6 +1214,8 @@
                 <*> (x .@? "TlsPolicy")
                 <*> (x .@ "Name")
 
+instance Hashable ReceiptRule
+
 instance ToQuery ReceiptRule where
         toQuery ReceiptRule'{..}
           = mconcat
@@ -1173,6 +1275,8 @@
           = ReceiptRuleSetMetadata' <$>
               (x .@? "Name") <*> (x .@? "CreatedTimestamp")
 
+instance Hashable ReceiptRuleSetMetadata
+
 -- | Recipient-related information to include in the Delivery Status
 -- Notification (DSN) when an email that Amazon SES receives on your behalf
 -- bounces.
@@ -1268,6 +1372,8 @@
 rdfStatus :: Lens' RecipientDsnFields Text
 rdfStatus = lens _rdfStatus (\ s a -> s{_rdfStatus = a});
 
+instance Hashable RecipientDsnFields
+
 instance ToQuery RecipientDsnFields where
         toQuery RecipientDsnFields'{..}
           = mconcat
@@ -1391,6 +1497,8 @@
                 (x .@? "ObjectKeyPrefix")
                 <*> (x .@ "BucketName")
 
+instance Hashable S3Action
+
 instance ToQuery S3Action where
         toQuery S3Action'{..}
           = mconcat
@@ -1422,23 +1530,34 @@
 -- <http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-action-sns.html Amazon SES Developer Guide>.
 --
 -- /See:/ 'snsAction' smart constructor.
-newtype SNSAction = SNSAction'
-    { _saTopicARN :: Text
+data SNSAction = SNSAction'
+    { _saEncoding :: !(Maybe SNSActionEncoding)
+    , _saTopicARN :: !Text
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
 -- | Creates a value of 'SNSAction' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
+-- * 'saEncoding'
+--
 -- * 'saTopicARN'
 snsAction
     :: Text -- ^ 'saTopicARN'
     -> SNSAction
 snsAction pTopicARN_ =
     SNSAction'
-    { _saTopicARN = pTopicARN_
+    { _saEncoding = Nothing
+    , _saTopicARN = pTopicARN_
     }
 
+-- | The encoding to use for the email within the Amazon SNS notification.
+-- UTF-8 is easier to use, but may not preserve all special characters when
+-- a message was encoded with a different encoding format. Base64 preserves
+-- all special characters. The default value is UTF-8.
+saEncoding :: Lens' SNSAction (Maybe SNSActionEncoding)
+saEncoding = lens _saEncoding (\ s a -> s{_saEncoding = a});
+
 -- | The Amazon Resource Name (ARN) of the Amazon SNS topic to notify. An
 -- example of an Amazon SNS topic ARN is
 -- 'arn:aws:sns:us-west-2:123456789012:MyTopic'. For more information about
@@ -1448,11 +1567,17 @@
 saTopicARN = lens _saTopicARN (\ s a -> s{_saTopicARN = a});
 
 instance FromXML SNSAction where
-        parseXML x = SNSAction' <$> (x .@ "TopicArn")
+        parseXML x
+          = SNSAction' <$>
+              (x .@? "Encoding") <*> (x .@ "TopicArn")
 
+instance Hashable SNSAction
+
 instance ToQuery SNSAction where
         toQuery SNSAction'{..}
-          = mconcat ["TopicArn" =: _saTopicARN]
+          = mconcat
+              ["Encoding" =: _saEncoding,
+               "TopicArn" =: _saTopicARN]
 
 -- | Represents sending statistics data. Each 'SendDataPoint' contains
 -- statistics for a 15-minute period of sending activity.
@@ -1518,6 +1643,8 @@
                 <*> (x .@? "Bounces")
                 <*> (x .@? "Timestamp")
 
+instance Hashable SendDataPoint
+
 -- | When included in a receipt rule, this action terminates the evaluation
 -- of the receipt rule set and, optionally, publishes a notification to
 -- Amazon Simple Notification Service (Amazon SNS).
@@ -1565,6 +1692,8 @@
           = StopAction' <$>
               (x .@? "TopicArn") <*> (x .@ "Scope")
 
+instance Hashable StopAction
+
 instance ToQuery StopAction where
         toQuery StopAction'{..}
           = mconcat
@@ -1621,6 +1750,8 @@
         parseXML x
           = WorkmailAction' <$>
               (x .@? "TopicArn") <*> (x .@ "OrganizationArn")
+
+instance Hashable WorkmailAction
 
 instance ToQuery WorkmailAction where
         toQuery WorkmailAction'{..}
diff --git a/gen/Network/AWS/SES/Types/Sum.hs b/gen/Network/AWS/SES/Types/Sum.hs
--- a/gen/Network/AWS/SES/Types/Sum.hs
+++ b/gen/Network/AWS/SES/Types/Sum.hs
@@ -9,7 +9,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.Types.Sum
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -19,6 +19,31 @@
 
 import           Network.AWS.Prelude
 
+data BehaviorOnMXFailure
+    = RejectMessage
+    | UseDefaultValue
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+
+instance FromText BehaviorOnMXFailure where
+    parser = takeLowerText >>= \case
+        "rejectmessage" -> pure RejectMessage
+        "usedefaultvalue" -> pure UseDefaultValue
+        e -> fromTextError $ "Failure parsing BehaviorOnMXFailure from value: '" <> e
+           <> "'. Accepted values: RejectMessage, UseDefaultValue"
+
+instance ToText BehaviorOnMXFailure where
+    toText = \case
+        RejectMessage -> "RejectMessage"
+        UseDefaultValue -> "UseDefaultValue"
+
+instance Hashable     BehaviorOnMXFailure
+instance ToByteString BehaviorOnMXFailure
+instance ToQuery      BehaviorOnMXFailure
+instance ToHeader     BehaviorOnMXFailure
+
+instance FromXML BehaviorOnMXFailure where
+    parseXML = parseXMLText "BehaviorOnMXFailure"
+
 data BounceType
     = BTContentRejected
     | BTDoesNotExist
@@ -53,6 +78,37 @@
 instance ToQuery      BounceType
 instance ToHeader     BounceType
 
+data CustomMailFromStatus
+    = CMFSFailed
+    | CMFSPending
+    | CMFSSuccess
+    | CMFSTemporaryFailure
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+
+instance FromText CustomMailFromStatus where
+    parser = takeLowerText >>= \case
+        "failed" -> pure CMFSFailed
+        "pending" -> pure CMFSPending
+        "success" -> pure CMFSSuccess
+        "temporaryfailure" -> pure CMFSTemporaryFailure
+        e -> fromTextError $ "Failure parsing CustomMailFromStatus from value: '" <> e
+           <> "'. Accepted values: Failed, Pending, Success, TemporaryFailure"
+
+instance ToText CustomMailFromStatus where
+    toText = \case
+        CMFSFailed -> "Failed"
+        CMFSPending -> "Pending"
+        CMFSSuccess -> "Success"
+        CMFSTemporaryFailure -> "TemporaryFailure"
+
+instance Hashable     CustomMailFromStatus
+instance ToByteString CustomMailFromStatus
+instance ToQuery      CustomMailFromStatus
+instance ToHeader     CustomMailFromStatus
+
+instance FromXML CustomMailFromStatus where
+    parseXML = parseXMLText "CustomMailFromStatus"
+
 data DsnAction
     = DADelayed
     | DADelivered
@@ -180,6 +236,31 @@
 
 instance FromXML ReceiptFilterPolicy where
     parseXML = parseXMLText "ReceiptFilterPolicy"
+
+data SNSActionEncoding
+    = BASE64
+    | Utf8
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+
+instance FromText SNSActionEncoding where
+    parser = takeLowerText >>= \case
+        "base64" -> pure BASE64
+        "utf-8" -> pure Utf8
+        e -> fromTextError $ "Failure parsing SNSActionEncoding from value: '" <> e
+           <> "'. Accepted values: Base64, UTF-8"
+
+instance ToText SNSActionEncoding where
+    toText = \case
+        BASE64 -> "Base64"
+        Utf8 -> "UTF-8"
+
+instance Hashable     SNSActionEncoding
+instance ToByteString SNSActionEncoding
+instance ToQuery      SNSActionEncoding
+instance ToHeader     SNSActionEncoding
+
+instance FromXML SNSActionEncoding where
+    parseXML = parseXMLText "SNSActionEncoding"
 
 data StopScope =
     RuleSet
diff --git a/gen/Network/AWS/SES/UpdateReceiptRule.hs b/gen/Network/AWS/SES/UpdateReceiptRule.hs
--- a/gen/Network/AWS/SES/UpdateReceiptRule.hs
+++ b/gen/Network/AWS/SES/UpdateReceiptRule.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.UpdateReceiptRule
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -24,8 +24,6 @@
 -- <http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-managing-receipt-rules.html Amazon SES Developer Guide>.
 --
 -- This action is throttled at one request per second.
---
--- /See:/ <http://docs.aws.amazon.com/ses/latest/APIReference/API_UpdateReceiptRule.html AWS API Reference> for UpdateReceiptRule.
 module Network.AWS.SES.UpdateReceiptRule
     (
     -- * Creating a Request
@@ -82,11 +80,13 @@
 
 instance AWSRequest UpdateReceiptRule where
         type Rs UpdateReceiptRule = UpdateReceiptRuleResponse
-        request = postQuery sES
+        request = postQuery ses
         response
           = receiveXMLWrapper "UpdateReceiptRuleResult"
               (\ s h x ->
                  UpdateReceiptRuleResponse' <$> (pure (fromEnum s)))
+
+instance Hashable UpdateReceiptRule
 
 instance ToHeaders UpdateReceiptRule where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SES/VerifyDomainDkim.hs b/gen/Network/AWS/SES/VerifyDomainDkim.hs
--- a/gen/Network/AWS/SES/VerifyDomainDkim.hs
+++ b/gen/Network/AWS/SES/VerifyDomainDkim.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.VerifyDomainDkim
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -34,8 +34,6 @@
 -- For more information about creating DNS records using DKIM tokens, go to
 -- the
 -- <http://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim-dns-records.html Amazon SES Developer Guide>.
---
--- /See:/ <http://docs.aws.amazon.com/ses/latest/APIReference/API_VerifyDomainDkim.html AWS API Reference> for VerifyDomainDkim.
 module Network.AWS.SES.VerifyDomainDkim
     (
     -- * Creating a Request
@@ -59,10 +57,7 @@
 import           Network.AWS.SES.Types
 import           Network.AWS.SES.Types.Product
 
--- | Represents a request instructing the service to begin DKIM verification
--- for a domain.
---
--- /See:/ 'verifyDomainDkim' smart constructor.
+-- | /See:/ 'verifyDomainDkim' smart constructor.
 newtype VerifyDomainDkim = VerifyDomainDkim'
     { _vddDomain :: Text
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
@@ -86,7 +81,7 @@
 
 instance AWSRequest VerifyDomainDkim where
         type Rs VerifyDomainDkim = VerifyDomainDkimResponse
-        request = postQuery sES
+        request = postQuery ses
         response
           = receiveXMLWrapper "VerifyDomainDkimResult"
               (\ s h x ->
@@ -95,6 +90,8 @@
                      (x .@? "DkimTokens" .!@ mempty >>=
                         parseXMLList "member"))
 
+instance Hashable VerifyDomainDkim
+
 instance ToHeaders VerifyDomainDkim where
         toHeaders = const mempty
 
@@ -108,10 +105,7 @@
                "Version" =: ("2010-12-01" :: ByteString),
                "Domain" =: _vddDomain]
 
--- | Represents the DNS records that must be published in the domain name\'s
--- DNS to complete DKIM setup.
---
--- /See:/ 'verifyDomainDkimResponse' smart constructor.
+-- | /See:/ 'verifyDomainDkimResponse' smart constructor.
 data VerifyDomainDkimResponse = VerifyDomainDkimResponse'
     { _vddrsResponseStatus :: !Int
     , _vddrsDkimTokens     :: ![Text]
diff --git a/gen/Network/AWS/SES/VerifyDomainIdentity.hs b/gen/Network/AWS/SES/VerifyDomainIdentity.hs
--- a/gen/Network/AWS/SES/VerifyDomainIdentity.hs
+++ b/gen/Network/AWS/SES/VerifyDomainIdentity.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.VerifyDomainIdentity
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -21,8 +21,6 @@
 -- Verifies a domain.
 --
 -- This action is throttled at one request per second.
---
--- /See:/ <http://docs.aws.amazon.com/ses/latest/APIReference/API_VerifyDomainIdentity.html AWS API Reference> for VerifyDomainIdentity.
 module Network.AWS.SES.VerifyDomainIdentity
     (
     -- * Creating a Request
@@ -46,10 +44,7 @@
 import           Network.AWS.SES.Types
 import           Network.AWS.SES.Types.Product
 
--- | Represents a request instructing the service to begin domain
--- verification.
---
--- /See:/ 'verifyDomainIdentity' smart constructor.
+-- | /See:/ 'verifyDomainIdentity' smart constructor.
 newtype VerifyDomainIdentity = VerifyDomainIdentity'
     { _vdiDomain :: Text
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
@@ -74,13 +69,15 @@
 instance AWSRequest VerifyDomainIdentity where
         type Rs VerifyDomainIdentity =
              VerifyDomainIdentityResponse
-        request = postQuery sES
+        request = postQuery ses
         response
           = receiveXMLWrapper "VerifyDomainIdentityResult"
               (\ s h x ->
                  VerifyDomainIdentityResponse' <$>
                    (pure (fromEnum s)) <*> (x .@ "VerificationToken"))
 
+instance Hashable VerifyDomainIdentity
+
 instance ToHeaders VerifyDomainIdentity where
         toHeaders = const mempty
 
@@ -94,9 +91,7 @@
                "Version" =: ("2010-12-01" :: ByteString),
                "Domain" =: _vdiDomain]
 
--- | Represents a token used for domain ownership verification.
---
--- /See:/ 'verifyDomainIdentityResponse' smart constructor.
+-- | /See:/ 'verifyDomainIdentityResponse' smart constructor.
 data VerifyDomainIdentityResponse = VerifyDomainIdentityResponse'
     { _vdirsResponseStatus    :: !Int
     , _vdirsVerificationToken :: !Text
diff --git a/gen/Network/AWS/SES/VerifyEmailAddress.hs b/gen/Network/AWS/SES/VerifyEmailAddress.hs
--- a/gen/Network/AWS/SES/VerifyEmailAddress.hs
+++ b/gen/Network/AWS/SES/VerifyEmailAddress.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.VerifyEmailAddress
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -26,8 +26,6 @@
 -- preferred.
 --
 -- This action is throttled at one request per second.
---
--- /See:/ <http://docs.aws.amazon.com/ses/latest/APIReference/API_VerifyEmailAddress.html AWS API Reference> for VerifyEmailAddress.
 module Network.AWS.SES.VerifyEmailAddress
     (
     -- * Creating a Request
@@ -48,10 +46,7 @@
 import           Network.AWS.SES.Types
 import           Network.AWS.SES.Types.Product
 
--- | Represents a request instructing the service to begin email address
--- verification.
---
--- /See:/ 'verifyEmailAddress' smart constructor.
+-- | /See:/ 'verifyEmailAddress' smart constructor.
 newtype VerifyEmailAddress = VerifyEmailAddress'
     { _veaEmailAddress :: Text
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
@@ -76,8 +71,10 @@
 instance AWSRequest VerifyEmailAddress where
         type Rs VerifyEmailAddress =
              VerifyEmailAddressResponse
-        request = postQuery sES
+        request = postQuery ses
         response = receiveNull VerifyEmailAddressResponse'
+
+instance Hashable VerifyEmailAddress
 
 instance ToHeaders VerifyEmailAddress where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SES/VerifyEmailIdentity.hs b/gen/Network/AWS/SES/VerifyEmailIdentity.hs
--- a/gen/Network/AWS/SES/VerifyEmailIdentity.hs
+++ b/gen/Network/AWS/SES/VerifyEmailIdentity.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.VerifyEmailIdentity
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -22,8 +22,6 @@
 -- message to be sent to the specified address.
 --
 -- This action is throttled at one request per second.
---
--- /See:/ <http://docs.aws.amazon.com/ses/latest/APIReference/API_VerifyEmailIdentity.html AWS API Reference> for VerifyEmailIdentity.
 module Network.AWS.SES.VerifyEmailIdentity
     (
     -- * Creating a Request
@@ -46,10 +44,7 @@
 import           Network.AWS.SES.Types
 import           Network.AWS.SES.Types.Product
 
--- | Represents a request instructing the service to begin email address
--- verification.
---
--- /See:/ 'verifyEmailIdentity' smart constructor.
+-- | /See:/ 'verifyEmailIdentity' smart constructor.
 newtype VerifyEmailIdentity = VerifyEmailIdentity'
     { _veiEmailAddress :: Text
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
@@ -74,12 +69,14 @@
 instance AWSRequest VerifyEmailIdentity where
         type Rs VerifyEmailIdentity =
              VerifyEmailIdentityResponse
-        request = postQuery sES
+        request = postQuery ses
         response
           = receiveXMLWrapper "VerifyEmailIdentityResult"
               (\ s h x ->
                  VerifyEmailIdentityResponse' <$> (pure (fromEnum s)))
 
+instance Hashable VerifyEmailIdentity
+
 instance ToHeaders VerifyEmailIdentity where
         toHeaders = const mempty
 
@@ -93,10 +90,7 @@
                "Version" =: ("2010-12-01" :: ByteString),
                "EmailAddress" =: _veiEmailAddress]
 
--- | An empty element. Receiving this element indicates that the request
--- completed successfully.
---
--- /See:/ 'verifyEmailIdentityResponse' smart constructor.
+-- | /See:/ 'verifyEmailIdentityResponse' smart constructor.
 newtype VerifyEmailIdentityResponse = VerifyEmailIdentityResponse'
     { _veirsResponseStatus :: Int
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
diff --git a/gen/Network/AWS/SES/Waiters.hs b/gen/Network/AWS/SES/Waiters.hs
--- a/gen/Network/AWS/SES/Waiters.hs
+++ b/gen/Network/AWS/SES/Waiters.hs
@@ -7,7 +7,7 @@
 
 -- |
 -- Module      : Network.AWS.SES.Waiters
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
diff --git a/test/Main.hs b/test/Main.hs
--- a/test/Main.hs
+++ b/test/Main.hs
@@ -2,7 +2,7 @@
 
 -- |
 -- Module      : Main
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
diff --git a/test/Test/AWS/Gen/SES.hs b/test/Test/AWS/Gen/SES.hs
--- a/test/Test/AWS/Gen/SES.hs
+++ b/test/Test/AWS/Gen/SES.hs
@@ -5,7 +5,7 @@
 
 -- |
 -- Module      : Test.AWS.Gen.SES
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -55,9 +55,15 @@
 --         , testDescribeReceiptRuleSet $
 --             describeReceiptRuleSet
 --
+--         , testGetIdentityMailFromDomainAttributes $
+--             getIdentityMailFromDomainAttributes
+--
 --         , testCreateReceiptFilter $
 --             createReceiptFilter
 --
+--         , testSetIdentityMailFromDomain $
+--             setIdentityMailFromDomain
+--
 --         , testSetIdentityFeedbackForwardingEnabled $
 --             setIdentityFeedbackForwardingEnabled
 --
@@ -175,9 +181,15 @@
 --         , testDescribeReceiptRuleSetResponse $
 --             describeReceiptRuleSetResponse
 --
+--         , testGetIdentityMailFromDomainAttributesResponse $
+--             getIdentityMailFromDomainAttributesResponse
+--
 --         , testCreateReceiptFilterResponse $
 --             createReceiptFilterResponse
 --
+--         , testSetIdentityMailFromDomainResponse $
+--             setIdentityMailFromDomainResponse
+--
 --         , testSetIdentityFeedbackForwardingEnabledResponse $
 --             setIdentityFeedbackForwardingEnabledResponse
 --
@@ -315,11 +327,21 @@
     "DescribeReceiptRuleSet"
     "fixture/DescribeReceiptRuleSet.yaml"
 
+testGetIdentityMailFromDomainAttributes :: GetIdentityMailFromDomainAttributes -> TestTree
+testGetIdentityMailFromDomainAttributes = req
+    "GetIdentityMailFromDomainAttributes"
+    "fixture/GetIdentityMailFromDomainAttributes.yaml"
+
 testCreateReceiptFilter :: CreateReceiptFilter -> TestTree
 testCreateReceiptFilter = req
     "CreateReceiptFilter"
     "fixture/CreateReceiptFilter.yaml"
 
+testSetIdentityMailFromDomain :: SetIdentityMailFromDomain -> TestTree
+testSetIdentityMailFromDomain = req
+    "SetIdentityMailFromDomain"
+    "fixture/SetIdentityMailFromDomain.yaml"
+
 testSetIdentityFeedbackForwardingEnabled :: SetIdentityFeedbackForwardingEnabled -> TestTree
 testSetIdentityFeedbackForwardingEnabled = req
     "SetIdentityFeedbackForwardingEnabled"
@@ -471,271 +493,285 @@
 testCreateReceiptRuleSetResponse = res
     "CreateReceiptRuleSetResponse"
     "fixture/CreateReceiptRuleSetResponse.proto"
-    sES
+    ses
     (Proxy :: Proxy CreateReceiptRuleSet)
 
 testGetSendQuotaResponse :: GetSendQuotaResponse -> TestTree
 testGetSendQuotaResponse = res
     "GetSendQuotaResponse"
     "fixture/GetSendQuotaResponse.proto"
-    sES
+    ses
     (Proxy :: Proxy GetSendQuota)
 
 testPutIdentityPolicyResponse :: PutIdentityPolicyResponse -> TestTree
 testPutIdentityPolicyResponse = res
     "PutIdentityPolicyResponse"
     "fixture/PutIdentityPolicyResponse.proto"
-    sES
+    ses
     (Proxy :: Proxy PutIdentityPolicy)
 
 testDeleteIdentityPolicyResponse :: DeleteIdentityPolicyResponse -> TestTree
 testDeleteIdentityPolicyResponse = res
     "DeleteIdentityPolicyResponse"
     "fixture/DeleteIdentityPolicyResponse.proto"
-    sES
+    ses
     (Proxy :: Proxy DeleteIdentityPolicy)
 
 testGetIdentityNotificationAttributesResponse :: GetIdentityNotificationAttributesResponse -> TestTree
 testGetIdentityNotificationAttributesResponse = res
     "GetIdentityNotificationAttributesResponse"
     "fixture/GetIdentityNotificationAttributesResponse.proto"
-    sES
+    ses
     (Proxy :: Proxy GetIdentityNotificationAttributes)
 
 testListIdentityPoliciesResponse :: ListIdentityPoliciesResponse -> TestTree
 testListIdentityPoliciesResponse = res
     "ListIdentityPoliciesResponse"
     "fixture/ListIdentityPoliciesResponse.proto"
-    sES
+    ses
     (Proxy :: Proxy ListIdentityPolicies)
 
 testSetIdentityDkimEnabledResponse :: SetIdentityDkimEnabledResponse -> TestTree
 testSetIdentityDkimEnabledResponse = res
     "SetIdentityDkimEnabledResponse"
     "fixture/SetIdentityDkimEnabledResponse.proto"
-    sES
+    ses
     (Proxy :: Proxy SetIdentityDkimEnabled)
 
 testListReceiptFiltersResponse :: ListReceiptFiltersResponse -> TestTree
 testListReceiptFiltersResponse = res
     "ListReceiptFiltersResponse"
     "fixture/ListReceiptFiltersResponse.proto"
-    sES
+    ses
     (Proxy :: Proxy ListReceiptFilters)
 
 testDescribeReceiptRuleSetResponse :: DescribeReceiptRuleSetResponse -> TestTree
 testDescribeReceiptRuleSetResponse = res
     "DescribeReceiptRuleSetResponse"
     "fixture/DescribeReceiptRuleSetResponse.proto"
-    sES
+    ses
     (Proxy :: Proxy DescribeReceiptRuleSet)
 
+testGetIdentityMailFromDomainAttributesResponse :: GetIdentityMailFromDomainAttributesResponse -> TestTree
+testGetIdentityMailFromDomainAttributesResponse = res
+    "GetIdentityMailFromDomainAttributesResponse"
+    "fixture/GetIdentityMailFromDomainAttributesResponse.proto"
+    ses
+    (Proxy :: Proxy GetIdentityMailFromDomainAttributes)
+
 testCreateReceiptFilterResponse :: CreateReceiptFilterResponse -> TestTree
 testCreateReceiptFilterResponse = res
     "CreateReceiptFilterResponse"
     "fixture/CreateReceiptFilterResponse.proto"
-    sES
+    ses
     (Proxy :: Proxy CreateReceiptFilter)
 
+testSetIdentityMailFromDomainResponse :: SetIdentityMailFromDomainResponse -> TestTree
+testSetIdentityMailFromDomainResponse = res
+    "SetIdentityMailFromDomainResponse"
+    "fixture/SetIdentityMailFromDomainResponse.proto"
+    ses
+    (Proxy :: Proxy SetIdentityMailFromDomain)
+
 testSetIdentityFeedbackForwardingEnabledResponse :: SetIdentityFeedbackForwardingEnabledResponse -> TestTree
 testSetIdentityFeedbackForwardingEnabledResponse = res
     "SetIdentityFeedbackForwardingEnabledResponse"
     "fixture/SetIdentityFeedbackForwardingEnabledResponse.proto"
-    sES
+    ses
     (Proxy :: Proxy SetIdentityFeedbackForwardingEnabled)
 
 testGetIdentityVerificationAttributesResponse :: GetIdentityVerificationAttributesResponse -> TestTree
 testGetIdentityVerificationAttributesResponse = res
     "GetIdentityVerificationAttributesResponse"
     "fixture/GetIdentityVerificationAttributesResponse.proto"
-    sES
+    ses
     (Proxy :: Proxy GetIdentityVerificationAttributes)
 
 testGetIdentityPoliciesResponse :: GetIdentityPoliciesResponse -> TestTree
 testGetIdentityPoliciesResponse = res
     "GetIdentityPoliciesResponse"
     "fixture/GetIdentityPoliciesResponse.proto"
-    sES
+    ses
     (Proxy :: Proxy GetIdentityPolicies)
 
 testVerifyDomainIdentityResponse :: VerifyDomainIdentityResponse -> TestTree
 testVerifyDomainIdentityResponse = res
     "VerifyDomainIdentityResponse"
     "fixture/VerifyDomainIdentityResponse.proto"
-    sES
+    ses
     (Proxy :: Proxy VerifyDomainIdentity)
 
 testReorderReceiptRuleSetResponse :: ReorderReceiptRuleSetResponse -> TestTree
 testReorderReceiptRuleSetResponse = res
     "ReorderReceiptRuleSetResponse"
     "fixture/ReorderReceiptRuleSetResponse.proto"
-    sES
+    ses
     (Proxy :: Proxy ReorderReceiptRuleSet)
 
 testListReceiptRuleSetsResponse :: ListReceiptRuleSetsResponse -> TestTree
 testListReceiptRuleSetsResponse = res
     "ListReceiptRuleSetsResponse"
     "fixture/ListReceiptRuleSetsResponse.proto"
-    sES
+    ses
     (Proxy :: Proxy ListReceiptRuleSets)
 
 testDeleteReceiptRuleSetResponse :: DeleteReceiptRuleSetResponse -> TestTree
 testDeleteReceiptRuleSetResponse = res
     "DeleteReceiptRuleSetResponse"
     "fixture/DeleteReceiptRuleSetResponse.proto"
-    sES
+    ses
     (Proxy :: Proxy DeleteReceiptRuleSet)
 
 testSetReceiptRulePositionResponse :: SetReceiptRulePositionResponse -> TestTree
 testSetReceiptRulePositionResponse = res
     "SetReceiptRulePositionResponse"
     "fixture/SetReceiptRulePositionResponse.proto"
-    sES
+    ses
     (Proxy :: Proxy SetReceiptRulePosition)
 
 testSendBounceResponse :: SendBounceResponse -> TestTree
 testSendBounceResponse = res
     "SendBounceResponse"
     "fixture/SendBounceResponse.proto"
-    sES
+    ses
     (Proxy :: Proxy SendBounce)
 
 testGetIdentityDkimAttributesResponse :: GetIdentityDkimAttributesResponse -> TestTree
 testGetIdentityDkimAttributesResponse = res
     "GetIdentityDkimAttributesResponse"
     "fixture/GetIdentityDkimAttributesResponse.proto"
-    sES
+    ses
     (Proxy :: Proxy GetIdentityDkimAttributes)
 
 testVerifyDomainDkimResponse :: VerifyDomainDkimResponse -> TestTree
 testVerifyDomainDkimResponse = res
     "VerifyDomainDkimResponse"
     "fixture/VerifyDomainDkimResponse.proto"
-    sES
+    ses
     (Proxy :: Proxy VerifyDomainDkim)
 
 testSendRawEmailResponse :: SendRawEmailResponse -> TestTree
 testSendRawEmailResponse = res
     "SendRawEmailResponse"
     "fixture/SendRawEmailResponse.proto"
-    sES
+    ses
     (Proxy :: Proxy SendRawEmail)
 
 testGetSendStatisticsResponse :: GetSendStatisticsResponse -> TestTree
 testGetSendStatisticsResponse = res
     "GetSendStatisticsResponse"
     "fixture/GetSendStatisticsResponse.proto"
-    sES
+    ses
     (Proxy :: Proxy GetSendStatistics)
 
 testDeleteIdentityResponse :: DeleteIdentityResponse -> TestTree
 testDeleteIdentityResponse = res
     "DeleteIdentityResponse"
     "fixture/DeleteIdentityResponse.proto"
-    sES
+    ses
     (Proxy :: Proxy DeleteIdentity)
 
 testDescribeReceiptRuleResponse :: DescribeReceiptRuleResponse -> TestTree
 testDescribeReceiptRuleResponse = res
     "DescribeReceiptRuleResponse"
     "fixture/DescribeReceiptRuleResponse.proto"
-    sES
+    ses
     (Proxy :: Proxy DescribeReceiptRule)
 
 testListIdentitiesResponse :: ListIdentitiesResponse -> TestTree
 testListIdentitiesResponse = res
     "ListIdentitiesResponse"
     "fixture/ListIdentitiesResponse.proto"
-    sES
+    ses
     (Proxy :: Proxy ListIdentities)
 
 testVerifyEmailIdentityResponse :: VerifyEmailIdentityResponse -> TestTree
 testVerifyEmailIdentityResponse = res
     "VerifyEmailIdentityResponse"
     "fixture/VerifyEmailIdentityResponse.proto"
-    sES
+    ses
     (Proxy :: Proxy VerifyEmailIdentity)
 
 testVerifyEmailAddressResponse :: VerifyEmailAddressResponse -> TestTree
 testVerifyEmailAddressResponse = res
     "VerifyEmailAddressResponse"
     "fixture/VerifyEmailAddressResponse.proto"
-    sES
+    ses
     (Proxy :: Proxy VerifyEmailAddress)
 
 testDeleteVerifiedEmailAddressResponse :: DeleteVerifiedEmailAddressResponse -> TestTree
 testDeleteVerifiedEmailAddressResponse = res
     "DeleteVerifiedEmailAddressResponse"
     "fixture/DeleteVerifiedEmailAddressResponse.proto"
-    sES
+    ses
     (Proxy :: Proxy DeleteVerifiedEmailAddress)
 
 testDeleteReceiptFilterResponse :: DeleteReceiptFilterResponse -> TestTree
 testDeleteReceiptFilterResponse = res
     "DeleteReceiptFilterResponse"
     "fixture/DeleteReceiptFilterResponse.proto"
-    sES
+    ses
     (Proxy :: Proxy DeleteReceiptFilter)
 
 testListVerifiedEmailAddressesResponse :: ListVerifiedEmailAddressesResponse -> TestTree
 testListVerifiedEmailAddressesResponse = res
     "ListVerifiedEmailAddressesResponse"
     "fixture/ListVerifiedEmailAddressesResponse.proto"
-    sES
+    ses
     (Proxy :: Proxy ListVerifiedEmailAddresses)
 
 testSetIdentityNotificationTopicResponse :: SetIdentityNotificationTopicResponse -> TestTree
 testSetIdentityNotificationTopicResponse = res
     "SetIdentityNotificationTopicResponse"
     "fixture/SetIdentityNotificationTopicResponse.proto"
-    sES
+    ses
     (Proxy :: Proxy SetIdentityNotificationTopic)
 
 testSendEmailResponse :: SendEmailResponse -> TestTree
 testSendEmailResponse = res
     "SendEmailResponse"
     "fixture/SendEmailResponse.proto"
-    sES
+    ses
     (Proxy :: Proxy SendEmail)
 
 testDeleteReceiptRuleResponse :: DeleteReceiptRuleResponse -> TestTree
 testDeleteReceiptRuleResponse = res
     "DeleteReceiptRuleResponse"
     "fixture/DeleteReceiptRuleResponse.proto"
-    sES
+    ses
     (Proxy :: Proxy DeleteReceiptRule)
 
 testUpdateReceiptRuleResponse :: UpdateReceiptRuleResponse -> TestTree
 testUpdateReceiptRuleResponse = res
     "UpdateReceiptRuleResponse"
     "fixture/UpdateReceiptRuleResponse.proto"
-    sES
+    ses
     (Proxy :: Proxy UpdateReceiptRule)
 
 testCloneReceiptRuleSetResponse :: CloneReceiptRuleSetResponse -> TestTree
 testCloneReceiptRuleSetResponse = res
     "CloneReceiptRuleSetResponse"
     "fixture/CloneReceiptRuleSetResponse.proto"
-    sES
+    ses
     (Proxy :: Proxy CloneReceiptRuleSet)
 
 testCreateReceiptRuleResponse :: CreateReceiptRuleResponse -> TestTree
 testCreateReceiptRuleResponse = res
     "CreateReceiptRuleResponse"
     "fixture/CreateReceiptRuleResponse.proto"
-    sES
+    ses
     (Proxy :: Proxy CreateReceiptRule)
 
 testSetActiveReceiptRuleSetResponse :: SetActiveReceiptRuleSetResponse -> TestTree
 testSetActiveReceiptRuleSetResponse = res
     "SetActiveReceiptRuleSetResponse"
     "fixture/SetActiveReceiptRuleSetResponse.proto"
-    sES
+    ses
     (Proxy :: Proxy SetActiveReceiptRuleSet)
 
 testDescribeActiveReceiptRuleSetResponse :: DescribeActiveReceiptRuleSetResponse -> TestTree
 testDescribeActiveReceiptRuleSetResponse = res
     "DescribeActiveReceiptRuleSetResponse"
     "fixture/DescribeActiveReceiptRuleSetResponse.proto"
-    sES
+    ses
     (Proxy :: Proxy DescribeActiveReceiptRuleSet)
diff --git a/test/Test/AWS/SES.hs b/test/Test/AWS/SES.hs
--- a/test/Test/AWS/SES.hs
+++ b/test/Test/AWS/SES.hs
@@ -1,7 +1,7 @@
 {-# LANGUAGE OverloadedStrings #-}
 
 -- Module      : Test.AWS.SES
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : This Source Code Form is subject to the terms of
 --               the Mozilla Public License, v. 2.0.
 --               A copy of the MPL can be found in the LICENSE file or
diff --git a/test/Test/AWS/SES/Internal.hs b/test/Test/AWS/SES/Internal.hs
--- a/test/Test/AWS/SES/Internal.hs
+++ b/test/Test/AWS/SES/Internal.hs
@@ -2,7 +2,7 @@
 {-# OPTIONS_GHC -fno-warn-unused-imports #-}
 
 -- Module      : Test.AWS.SES.Internal
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : This Source Code Form is subject to the terms of
 --               the Mozilla Public License, v. 2.0.
 --               A copy of the MPL can be found in the LICENSE file or
