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
@@ -33,7 +33,7 @@
 <http://aws.amazon.com/tools/ Tools for Amazon Web Services>.
 
 Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-sns)
-and the [AWS API Reference](http://docs.aws.amazon.com/sns/latest/api/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-sns.cabal b/amazonka-sns.cabal
--- a/amazonka-sns.cabal
+++ b/amazonka-sns.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-sns
-version:               1.3.7
+version:               1.4.0
 synopsis:              Amazon Simple Notification 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
@@ -43,7 +43,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.SNS" and the <http://docs.aws.amazon.com/sns/latest/api/Welcome.html AWS API Reference>
+    See "Network.AWS.SNS" or <https://aws.amazon.com/documentation/ the AWS Documentation>
     to get started.
 
 source-repository head
@@ -91,7 +91,7 @@
         , Network.AWS.SNS.Types.Sum
 
     build-depends:
-          amazonka-core == 1.3.7.*
+          amazonka-core == 1.4.0.*
         , base          >= 4.7     && < 5
 
 test-suite amazonka-sns-test
@@ -111,9 +111,9 @@
         , Test.AWS.SNS.Internal
 
     build-depends:
-          amazonka-core == 1.3.7.*
-        , amazonka-test == 1.3.7.*
-        , amazonka-sns == 1.3.7.*
+          amazonka-core == 1.4.0.*
+        , amazonka-test == 1.4.0.*
+        , amazonka-sns == 1.4.0.*
         , base
         , bytestring
         , tasty
diff --git a/gen/Network/AWS/SNS.hs b/gen/Network/AWS/SNS.hs
--- a/gen/Network/AWS/SNS.hs
+++ b/gen/Network/AWS/SNS.hs
@@ -5,7 +5,7 @@
 
 -- |
 -- Module      : Network.AWS.SNS
--- 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,12 +29,10 @@
 -- your service requests, retrying requests, and handling error responses.
 -- For a list of available SDKs, go to
 -- <http://aws.amazon.com/tools/ Tools for Amazon Web Services>.
---
--- /See:/ <http://docs.aws.amazon.com/sns/latest/api/Welcome.html AWS API Reference>
 module Network.AWS.SNS
     (
     -- * Service Configuration
-      sNS
+      sns
 
     -- * Errors
     -- $errors
diff --git a/gen/Network/AWS/SNS/AddPermission.hs b/gen/Network/AWS/SNS/AddPermission.hs
--- a/gen/Network/AWS/SNS/AddPermission.hs
+++ b/gen/Network/AWS/SNS/AddPermission.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SNS.AddPermission
--- 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,8 +20,6 @@
 --
 -- Adds a statement to a topic\'s access control policy, granting access
 -- for the specified AWS accounts to the specified actions.
---
--- /See:/ <http://docs.aws.amazon.com/sns/latest/api/API_AddPermission.html AWS API Reference> for AddPermission.
 module Network.AWS.SNS.AddPermission
     (
     -- * Creating a Request
@@ -98,8 +96,10 @@
 
 instance AWSRequest AddPermission where
         type Rs AddPermission = AddPermissionResponse
-        request = postQuery sNS
+        request = postQuery sns
         response = receiveNull AddPermissionResponse'
+
+instance Hashable AddPermission
 
 instance ToHeaders AddPermission where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SNS/ConfirmSubscription.hs b/gen/Network/AWS/SNS/ConfirmSubscription.hs
--- a/gen/Network/AWS/SNS/ConfirmSubscription.hs
+++ b/gen/Network/AWS/SNS/ConfirmSubscription.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SNS.ConfirmSubscription
--- 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 @@
 -- token is valid, the action creates a new subscription and returns its
 -- Amazon Resource Name (ARN). This call requires an AWS signature only
 -- when the 'AuthenticateOnUnsubscribe' flag is set to \"true\".
---
--- /See:/ <http://docs.aws.amazon.com/sns/latest/api/API_ConfirmSubscription.html AWS API Reference> for ConfirmSubscription.
 module Network.AWS.SNS.ConfirmSubscription
     (
     -- * Creating a Request
@@ -97,12 +95,14 @@
 instance AWSRequest ConfirmSubscription where
         type Rs ConfirmSubscription =
              ConfirmSubscriptionResponse
-        request = postQuery sNS
+        request = postQuery sns
         response
           = receiveXMLWrapper "ConfirmSubscriptionResult"
               (\ s h x ->
                  ConfirmSubscriptionResponse' <$>
                    (x .@? "SubscriptionArn") <*> (pure (fromEnum s)))
+
+instance Hashable ConfirmSubscription
 
 instance ToHeaders ConfirmSubscription where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SNS/CreatePlatformApplication.hs b/gen/Network/AWS/SNS/CreatePlatformApplication.hs
--- a/gen/Network/AWS/SNS/CreatePlatformApplication.hs
+++ b/gen/Network/AWS/SNS/CreatePlatformApplication.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SNS.CreatePlatformApplication
--- 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
@@ -33,8 +33,6 @@
 -- attribute for the 'CreatePlatformEndpoint' action. For more information,
 -- see
 -- <http://docs.aws.amazon.com/sns/latest/dg/SNSMobilePush.html Using Amazon SNS Mobile Push Notifications>.
---
--- /See:/ <http://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformApplication.html AWS API Reference> for CreatePlatformApplication.
 module Network.AWS.SNS.CreatePlatformApplication
     (
     -- * Creating a Request
@@ -109,13 +107,15 @@
 instance AWSRequest CreatePlatformApplication where
         type Rs CreatePlatformApplication =
              CreatePlatformApplicationResponse
-        request = postQuery sNS
+        request = postQuery sns
         response
           = receiveXMLWrapper "CreatePlatformApplicationResult"
               (\ s h x ->
                  CreatePlatformApplicationResponse' <$>
                    (x .@? "PlatformApplicationArn") <*>
                      (pure (fromEnum s)))
+
+instance Hashable CreatePlatformApplication
 
 instance ToHeaders CreatePlatformApplication where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SNS/CreatePlatformEndpoint.hs b/gen/Network/AWS/SNS/CreatePlatformEndpoint.hs
--- a/gen/Network/AWS/SNS/CreatePlatformEndpoint.hs
+++ b/gen/Network/AWS/SNS/CreatePlatformEndpoint.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SNS.CreatePlatformEndpoint
--- 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 @@
 -- provided: ChannelId and UserId. The token field must also contain the
 -- ChannelId. For more information, see
 -- <http://docs.aws.amazon.com/sns/latest/dg/SNSMobilePushBaiduEndpoint.html Creating an Amazon SNS Endpoint for Baidu>.
---
--- /See:/ <http://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformEndpoint.html AWS API Reference> for CreatePlatformEndpoint.
 module Network.AWS.SNS.CreatePlatformEndpoint
     (
     -- * Creating a Request
@@ -122,12 +120,14 @@
 instance AWSRequest CreatePlatformEndpoint where
         type Rs CreatePlatformEndpoint =
              CreatePlatformEndpointResponse
-        request = postQuery sNS
+        request = postQuery sns
         response
           = receiveXMLWrapper "CreatePlatformEndpointResult"
               (\ s h x ->
                  CreatePlatformEndpointResponse' <$>
                    (x .@? "EndpointArn") <*> (pure (fromEnum s)))
+
+instance Hashable CreatePlatformEndpoint
 
 instance ToHeaders CreatePlatformEndpoint where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SNS/CreateTopic.hs b/gen/Network/AWS/SNS/CreateTopic.hs
--- a/gen/Network/AWS/SNS/CreateTopic.hs
+++ b/gen/Network/AWS/SNS/CreateTopic.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SNS.CreateTopic
--- 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 @@
 -- is idempotent, so if the requester already owns a topic with the
 -- specified name, that topic\'s ARN is returned without creating a new
 -- topic.
---
--- /See:/ <http://docs.aws.amazon.com/sns/latest/api/API_CreateTopic.html AWS API Reference> for CreateTopic.
 module Network.AWS.SNS.CreateTopic
     (
     -- * Creating a Request
@@ -79,12 +77,14 @@
 
 instance AWSRequest CreateTopic where
         type Rs CreateTopic = CreateTopicResponse
-        request = postQuery sNS
+        request = postQuery sns
         response
           = receiveXMLWrapper "CreateTopicResult"
               (\ s h x ->
                  CreateTopicResponse' <$>
                    (x .@? "TopicArn") <*> (pure (fromEnum s)))
+
+instance Hashable CreateTopic
 
 instance ToHeaders CreateTopic where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SNS/DeleteEndpoint.hs b/gen/Network/AWS/SNS/DeleteEndpoint.hs
--- a/gen/Network/AWS/SNS/DeleteEndpoint.hs
+++ b/gen/Network/AWS/SNS/DeleteEndpoint.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SNS.DeleteEndpoint
--- 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 @@
 -- Deletes the endpoint from Amazon SNS. This action is idempotent. For
 -- more information, see
 -- <http://docs.aws.amazon.com/sns/latest/dg/SNSMobilePush.html Using Amazon SNS Mobile Push Notifications>.
---
--- /See:/ <http://docs.aws.amazon.com/sns/latest/api/API_DeleteEndpoint.html AWS API Reference> for DeleteEndpoint.
 module Network.AWS.SNS.DeleteEndpoint
     (
     -- * Creating a Request
@@ -69,8 +67,10 @@
 
 instance AWSRequest DeleteEndpoint where
         type Rs DeleteEndpoint = DeleteEndpointResponse
-        request = postQuery sNS
+        request = postQuery sns
         response = receiveNull DeleteEndpointResponse'
+
+instance Hashable DeleteEndpoint
 
 instance ToHeaders DeleteEndpoint where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SNS/DeletePlatformApplication.hs b/gen/Network/AWS/SNS/DeletePlatformApplication.hs
--- a/gen/Network/AWS/SNS/DeletePlatformApplication.hs
+++ b/gen/Network/AWS/SNS/DeletePlatformApplication.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SNS.DeletePlatformApplication
--- 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 @@
 -- Deletes a platform application object for one of the supported push
 -- notification services, such as APNS and GCM. For more information, see
 -- <http://docs.aws.amazon.com/sns/latest/dg/SNSMobilePush.html Using Amazon SNS Mobile Push Notifications>.
---
--- /See:/ <http://docs.aws.amazon.com/sns/latest/api/API_DeletePlatformApplication.html AWS API Reference> for DeletePlatformApplication.
 module Network.AWS.SNS.DeletePlatformApplication
     (
     -- * Creating a Request
@@ -70,9 +68,11 @@
 instance AWSRequest DeletePlatformApplication where
         type Rs DeletePlatformApplication =
              DeletePlatformApplicationResponse
-        request = postQuery sNS
+        request = postQuery sns
         response
           = receiveNull DeletePlatformApplicationResponse'
+
+instance Hashable DeletePlatformApplication
 
 instance ToHeaders DeletePlatformApplication where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SNS/DeleteTopic.hs b/gen/Network/AWS/SNS/DeleteTopic.hs
--- a/gen/Network/AWS/SNS/DeleteTopic.hs
+++ b/gen/Network/AWS/SNS/DeleteTopic.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SNS.DeleteTopic
--- 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 @@
 -- prevent some messages previously sent to the topic from being delivered
 -- to subscribers. This action is idempotent, so deleting a topic that does
 -- not exist does not result in an error.
---
--- /See:/ <http://docs.aws.amazon.com/sns/latest/api/API_DeleteTopic.html AWS API Reference> for DeleteTopic.
 module Network.AWS.SNS.DeleteTopic
     (
     -- * Creating a Request
@@ -68,8 +66,10 @@
 
 instance AWSRequest DeleteTopic where
         type Rs DeleteTopic = DeleteTopicResponse
-        request = postQuery sNS
+        request = postQuery sns
         response = receiveNull DeleteTopicResponse'
+
+instance Hashable DeleteTopic
 
 instance ToHeaders DeleteTopic where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SNS/GetEndpointAttributes.hs b/gen/Network/AWS/SNS/GetEndpointAttributes.hs
--- a/gen/Network/AWS/SNS/GetEndpointAttributes.hs
+++ b/gen/Network/AWS/SNS/GetEndpointAttributes.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SNS.GetEndpointAttributes
--- 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 @@
 -- push notification services, such as GCM and APNS. For more information,
 -- see
 -- <http://docs.aws.amazon.com/sns/latest/dg/SNSMobilePush.html Using Amazon SNS Mobile Push Notifications>.
---
--- /See:/ <http://docs.aws.amazon.com/sns/latest/api/API_GetEndpointAttributes.html AWS API Reference> for GetEndpointAttributes.
 module Network.AWS.SNS.GetEndpointAttributes
     (
     -- * Creating a Request
@@ -74,7 +72,7 @@
 instance AWSRequest GetEndpointAttributes where
         type Rs GetEndpointAttributes =
              GetEndpointAttributesResponse
-        request = postQuery sNS
+        request = postQuery sns
         response
           = receiveXMLWrapper "GetEndpointAttributesResult"
               (\ s h x ->
@@ -82,6 +80,8 @@
                    (x .@? "Attributes" .!@ mempty >>=
                       may (parseXMLMap "entry" "key" "value"))
                      <*> (pure (fromEnum s)))
+
+instance Hashable GetEndpointAttributes
 
 instance ToHeaders GetEndpointAttributes where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SNS/GetPlatformApplicationAttributes.hs b/gen/Network/AWS/SNS/GetPlatformApplicationAttributes.hs
--- a/gen/Network/AWS/SNS/GetPlatformApplicationAttributes.hs
+++ b/gen/Network/AWS/SNS/GetPlatformApplicationAttributes.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SNS.GetPlatformApplicationAttributes
--- 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 @@
 -- supported push notification services, such as APNS and GCM. For more
 -- information, see
 -- <http://docs.aws.amazon.com/sns/latest/dg/SNSMobilePush.html Using Amazon SNS Mobile Push Notifications>.
---
--- /See:/ <http://docs.aws.amazon.com/sns/latest/api/API_GetPlatformApplicationAttributes.html AWS API Reference> for GetPlatformApplicationAttributes.
 module Network.AWS.SNS.GetPlatformApplicationAttributes
     (
     -- * Creating a Request
@@ -75,7 +73,7 @@
          where
         type Rs GetPlatformApplicationAttributes =
              GetPlatformApplicationAttributesResponse
-        request = postQuery sNS
+        request = postQuery sns
         response
           = receiveXMLWrapper
               "GetPlatformApplicationAttributesResult"
@@ -84,6 +82,8 @@
                    (x .@? "Attributes" .!@ mempty >>=
                       may (parseXMLMap "entry" "key" "value"))
                      <*> (pure (fromEnum s)))
+
+instance Hashable GetPlatformApplicationAttributes
 
 instance ToHeaders GetPlatformApplicationAttributes
          where
diff --git a/gen/Network/AWS/SNS/GetSubscriptionAttributes.hs b/gen/Network/AWS/SNS/GetSubscriptionAttributes.hs
--- a/gen/Network/AWS/SNS/GetSubscriptionAttributes.hs
+++ b/gen/Network/AWS/SNS/GetSubscriptionAttributes.hs
@@ -12,15 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.SNS.GetSubscriptionAttributes
--- 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
 -- Portability : non-portable (GHC extensions)
 --
 -- Returns all of the properties of a subscription.
---
--- /See:/ <http://docs.aws.amazon.com/sns/latest/api/API_GetSubscriptionAttributes.html AWS API Reference> for GetSubscriptionAttributes.
 module Network.AWS.SNS.GetSubscriptionAttributes
     (
     -- * Creating a Request
@@ -71,7 +69,7 @@
 instance AWSRequest GetSubscriptionAttributes where
         type Rs GetSubscriptionAttributes =
              GetSubscriptionAttributesResponse
-        request = postQuery sNS
+        request = postQuery sns
         response
           = receiveXMLWrapper "GetSubscriptionAttributesResult"
               (\ s h x ->
@@ -79,6 +77,8 @@
                    (x .@? "Attributes" .!@ mempty >>=
                       may (parseXMLMap "entry" "key" "value"))
                      <*> (pure (fromEnum s)))
+
+instance Hashable GetSubscriptionAttributes
 
 instance ToHeaders GetSubscriptionAttributes where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SNS/GetTopicAttributes.hs b/gen/Network/AWS/SNS/GetTopicAttributes.hs
--- a/gen/Network/AWS/SNS/GetTopicAttributes.hs
+++ b/gen/Network/AWS/SNS/GetTopicAttributes.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SNS.GetTopicAttributes
--- 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,8 +20,6 @@
 --
 -- Returns all of the properties of a topic. Topic properties returned
 -- might differ based on the authorization of the user.
---
--- /See:/ <http://docs.aws.amazon.com/sns/latest/api/API_GetTopicAttributes.html AWS API Reference> for GetTopicAttributes.
 module Network.AWS.SNS.GetTopicAttributes
     (
     -- * Creating a Request
@@ -72,7 +70,7 @@
 instance AWSRequest GetTopicAttributes where
         type Rs GetTopicAttributes =
              GetTopicAttributesResponse
-        request = postQuery sNS
+        request = postQuery sns
         response
           = receiveXMLWrapper "GetTopicAttributesResult"
               (\ s h x ->
@@ -80,6 +78,8 @@
                    (x .@? "Attributes" .!@ mempty >>=
                       may (parseXMLMap "entry" "key" "value"))
                      <*> (pure (fromEnum s)))
+
+instance Hashable GetTopicAttributes
 
 instance ToHeaders GetTopicAttributes where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SNS/ListEndpointsByPlatformApplication.hs b/gen/Network/AWS/SNS/ListEndpointsByPlatformApplication.hs
--- a/gen/Network/AWS/SNS/ListEndpointsByPlatformApplication.hs
+++ b/gen/Network/AWS/SNS/ListEndpointsByPlatformApplication.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SNS.ListEndpointsByPlatformApplication
--- 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 @@
 -- information, see
 -- <http://docs.aws.amazon.com/sns/latest/dg/SNSMobilePush.html Using Amazon SNS Mobile Push Notifications>.
 --
--- /See:/ <http://docs.aws.amazon.com/sns/latest/api/API_ListEndpointsByPlatformApplication.html AWS API Reference> for ListEndpointsByPlatformApplication.
---
 -- This operation returns paginated results.
 module Network.AWS.SNS.ListEndpointsByPlatformApplication
     (
@@ -105,7 +103,7 @@
          ListEndpointsByPlatformApplication where
         type Rs ListEndpointsByPlatformApplication =
              ListEndpointsByPlatformApplicationResponse
-        request = postQuery sNS
+        request = postQuery sns
         response
           = receiveXMLWrapper
               "ListEndpointsByPlatformApplicationResult"
@@ -115,6 +113,8 @@
                      (x .@? "Endpoints" .!@ mempty >>=
                         may (parseXMLList "member"))
                      <*> (pure (fromEnum s)))
+
+instance Hashable ListEndpointsByPlatformApplication
 
 instance ToHeaders ListEndpointsByPlatformApplication
          where
diff --git a/gen/Network/AWS/SNS/ListPlatformApplications.hs b/gen/Network/AWS/SNS/ListPlatformApplications.hs
--- a/gen/Network/AWS/SNS/ListPlatformApplications.hs
+++ b/gen/Network/AWS/SNS/ListPlatformApplications.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SNS.ListPlatformApplications
--- 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
@@ -28,8 +28,6 @@
 -- to return, NextToken will be null. For more information, see
 -- <http://docs.aws.amazon.com/sns/latest/dg/SNSMobilePush.html Using Amazon SNS Mobile Push Notifications>.
 --
--- /See:/ <http://docs.aws.amazon.com/sns/latest/api/API_ListPlatformApplications.html AWS API Reference> for ListPlatformApplications.
---
 -- This operation returns paginated results.
 module Network.AWS.SNS.ListPlatformApplications
     (
@@ -91,7 +89,7 @@
 instance AWSRequest ListPlatformApplications where
         type Rs ListPlatformApplications =
              ListPlatformApplicationsResponse
-        request = postQuery sNS
+        request = postQuery sns
         response
           = receiveXMLWrapper "ListPlatformApplicationsResult"
               (\ s h x ->
@@ -100,6 +98,8 @@
                       may (parseXMLList "member"))
                      <*> (x .@? "NextToken")
                      <*> (pure (fromEnum s)))
+
+instance Hashable ListPlatformApplications
 
 instance ToHeaders ListPlatformApplications where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SNS/ListSubscriptions.hs b/gen/Network/AWS/SNS/ListSubscriptions.hs
--- a/gen/Network/AWS/SNS/ListSubscriptions.hs
+++ b/gen/Network/AWS/SNS/ListSubscriptions.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SNS.ListSubscriptions
--- 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 @@
 -- subscriptions, a 'NextToken' is also returned. Use the 'NextToken'
 -- parameter in a new 'ListSubscriptions' call to get further results.
 --
--- /See:/ <http://docs.aws.amazon.com/sns/latest/api/API_ListSubscriptions.html AWS API Reference> for ListSubscriptions.
---
 -- This operation returns paginated results.
 module Network.AWS.SNS.ListSubscriptions
     (
@@ -83,7 +81,7 @@
 
 instance AWSRequest ListSubscriptions where
         type Rs ListSubscriptions = ListSubscriptionsResponse
-        request = postQuery sNS
+        request = postQuery sns
         response
           = receiveXMLWrapper "ListSubscriptionsResult"
               (\ s h x ->
@@ -92,6 +90,8 @@
                      (x .@? "Subscriptions" .!@ mempty >>=
                         may (parseXMLList "member"))
                      <*> (pure (fromEnum s)))
+
+instance Hashable ListSubscriptions
 
 instance ToHeaders ListSubscriptions where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SNS/ListSubscriptionsByTopic.hs b/gen/Network/AWS/SNS/ListSubscriptionsByTopic.hs
--- a/gen/Network/AWS/SNS/ListSubscriptionsByTopic.hs
+++ b/gen/Network/AWS/SNS/ListSubscriptionsByTopic.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SNS.ListSubscriptionsByTopic
--- 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 @@
 -- parameter in a new 'ListSubscriptionsByTopic' call to get further
 -- results.
 --
--- /See:/ <http://docs.aws.amazon.com/sns/latest/api/API_ListSubscriptionsByTopic.html AWS API Reference> for ListSubscriptionsByTopic.
---
 -- This operation returns paginated results.
 module Network.AWS.SNS.ListSubscriptionsByTopic
     (
@@ -95,7 +93,7 @@
 instance AWSRequest ListSubscriptionsByTopic where
         type Rs ListSubscriptionsByTopic =
              ListSubscriptionsByTopicResponse
-        request = postQuery sNS
+        request = postQuery sns
         response
           = receiveXMLWrapper "ListSubscriptionsByTopicResult"
               (\ s h x ->
@@ -104,6 +102,8 @@
                      (x .@? "Subscriptions" .!@ mempty >>=
                         may (parseXMLList "member"))
                      <*> (pure (fromEnum s)))
+
+instance Hashable ListSubscriptionsByTopic
 
 instance ToHeaders ListSubscriptionsByTopic where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SNS/ListTopics.hs b/gen/Network/AWS/SNS/ListTopics.hs
--- a/gen/Network/AWS/SNS/ListTopics.hs
+++ b/gen/Network/AWS/SNS/ListTopics.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SNS.ListTopics
--- 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 @@
 -- also returned. Use the 'NextToken' parameter in a new 'ListTopics' call
 -- to get further results.
 --
--- /See:/ <http://docs.aws.amazon.com/sns/latest/api/API_ListTopics.html AWS API Reference> for ListTopics.
---
 -- This operation returns paginated results.
 module Network.AWS.SNS.ListTopics
     (
@@ -81,7 +79,7 @@
 
 instance AWSRequest ListTopics where
         type Rs ListTopics = ListTopicsResponse
-        request = postQuery sNS
+        request = postQuery sns
         response
           = receiveXMLWrapper "ListTopicsResult"
               (\ s h x ->
@@ -90,6 +88,8 @@
                       may (parseXMLList "member"))
                      <*> (x .@? "NextToken")
                      <*> (pure (fromEnum s)))
+
+instance Hashable ListTopics
 
 instance ToHeaders ListTopics where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SNS/Publish.hs b/gen/Network/AWS/SNS/Publish.hs
--- a/gen/Network/AWS/SNS/Publish.hs
+++ b/gen/Network/AWS/SNS/Publish.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SNS.Publish
--- 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 @@
 -- EndpointArn. The EndpointArn is returned when making a call with the
 -- 'CreatePlatformEndpoint' action. The second example below shows a
 -- request and response for publishing to a mobile endpoint.
---
--- /See:/ <http://docs.aws.amazon.com/sns/latest/api/API_Publish.html AWS API Reference> for Publish.
 module Network.AWS.SNS.Publish
     (
     -- * Creating a Request
@@ -179,12 +177,14 @@
 
 instance AWSRequest Publish where
         type Rs Publish = PublishResponse
-        request = postQuery sNS
+        request = postQuery sns
         response
           = receiveXMLWrapper "PublishResult"
               (\ s h x ->
                  PublishResponse' <$>
                    (x .@? "MessageId") <*> (pure (fromEnum s)))
+
+instance Hashable Publish
 
 instance ToHeaders Publish where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SNS/RemovePermission.hs b/gen/Network/AWS/SNS/RemovePermission.hs
--- a/gen/Network/AWS/SNS/RemovePermission.hs
+++ b/gen/Network/AWS/SNS/RemovePermission.hs
@@ -12,15 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.SNS.RemovePermission
--- 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
 -- Portability : non-portable (GHC extensions)
 --
 -- Removes a statement from a topic\'s access control policy.
---
--- /See:/ <http://docs.aws.amazon.com/sns/latest/api/API_RemovePermission.html AWS API Reference> for RemovePermission.
 module Network.AWS.SNS.RemovePermission
     (
     -- * Creating a Request
@@ -77,8 +75,10 @@
 
 instance AWSRequest RemovePermission where
         type Rs RemovePermission = RemovePermissionResponse
-        request = postQuery sNS
+        request = postQuery sns
         response = receiveNull RemovePermissionResponse'
+
+instance Hashable RemovePermission
 
 instance ToHeaders RemovePermission where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SNS/SetEndpointAttributes.hs b/gen/Network/AWS/SNS/SetEndpointAttributes.hs
--- a/gen/Network/AWS/SNS/SetEndpointAttributes.hs
+++ b/gen/Network/AWS/SNS/SetEndpointAttributes.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SNS.SetEndpointAttributes
--- 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 @@
 -- push notification services, such as GCM and APNS. For more information,
 -- see
 -- <http://docs.aws.amazon.com/sns/latest/dg/SNSMobilePush.html Using Amazon SNS Mobile Push Notifications>.
---
--- /See:/ <http://docs.aws.amazon.com/sns/latest/api/API_SetEndpointAttributes.html AWS API Reference> for SetEndpointAttributes.
 module Network.AWS.SNS.SetEndpointAttributes
     (
     -- * Creating a Request
@@ -93,8 +91,10 @@
 instance AWSRequest SetEndpointAttributes where
         type Rs SetEndpointAttributes =
              SetEndpointAttributesResponse
-        request = postQuery sNS
+        request = postQuery sns
         response = receiveNull SetEndpointAttributesResponse'
+
+instance Hashable SetEndpointAttributes
 
 instance ToHeaders SetEndpointAttributes where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SNS/SetPlatformApplicationAttributes.hs b/gen/Network/AWS/SNS/SetPlatformApplicationAttributes.hs
--- a/gen/Network/AWS/SNS/SetPlatformApplicationAttributes.hs
+++ b/gen/Network/AWS/SNS/SetPlatformApplicationAttributes.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SNS.SetPlatformApplicationAttributes
--- 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 @@
 -- push notification services, such as APNS and GCM. For more information,
 -- see
 -- <http://docs.aws.amazon.com/sns/latest/dg/SNSMobilePush.html Using Amazon SNS Mobile Push Notifications>.
---
--- /See:/ <http://docs.aws.amazon.com/sns/latest/api/API_SetPlatformApplicationAttributes.html AWS API Reference> for SetPlatformApplicationAttributes.
 module Network.AWS.SNS.SetPlatformApplicationAttributes
     (
     -- * Creating a Request
@@ -100,10 +98,12 @@
          where
         type Rs SetPlatformApplicationAttributes =
              SetPlatformApplicationAttributesResponse
-        request = postQuery sNS
+        request = postQuery sns
         response
           = receiveNull
               SetPlatformApplicationAttributesResponse'
+
+instance Hashable SetPlatformApplicationAttributes
 
 instance ToHeaders SetPlatformApplicationAttributes
          where
diff --git a/gen/Network/AWS/SNS/SetSubscriptionAttributes.hs b/gen/Network/AWS/SNS/SetSubscriptionAttributes.hs
--- a/gen/Network/AWS/SNS/SetSubscriptionAttributes.hs
+++ b/gen/Network/AWS/SNS/SetSubscriptionAttributes.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SNS.SetSubscriptionAttributes
--- 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,8 +20,6 @@
 --
 -- Allows a subscription owner to set an attribute of the topic to a new
 -- value.
---
--- /See:/ <http://docs.aws.amazon.com/sns/latest/api/API_SetSubscriptionAttributes.html AWS API Reference> for SetSubscriptionAttributes.
 module Network.AWS.SNS.SetSubscriptionAttributes
     (
     -- * Creating a Request
@@ -91,9 +89,11 @@
 instance AWSRequest SetSubscriptionAttributes where
         type Rs SetSubscriptionAttributes =
              SetSubscriptionAttributesResponse
-        request = postQuery sNS
+        request = postQuery sns
         response
           = receiveNull SetSubscriptionAttributesResponse'
+
+instance Hashable SetSubscriptionAttributes
 
 instance ToHeaders SetSubscriptionAttributes where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SNS/SetTopicAttributes.hs b/gen/Network/AWS/SNS/SetTopicAttributes.hs
--- a/gen/Network/AWS/SNS/SetTopicAttributes.hs
+++ b/gen/Network/AWS/SNS/SetTopicAttributes.hs
@@ -12,15 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.SNS.SetTopicAttributes
--- 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
 -- Portability : non-portable (GHC extensions)
 --
 -- Allows a topic owner to set an attribute of the topic to a new value.
---
--- /See:/ <http://docs.aws.amazon.com/sns/latest/api/API_SetTopicAttributes.html AWS API Reference> for SetTopicAttributes.
 module Network.AWS.SNS.SetTopicAttributes
     (
     -- * Creating a Request
@@ -90,8 +88,10 @@
 instance AWSRequest SetTopicAttributes where
         type Rs SetTopicAttributes =
              SetTopicAttributesResponse
-        request = postQuery sNS
+        request = postQuery sns
         response = receiveNull SetTopicAttributesResponse'
+
+instance Hashable SetTopicAttributes
 
 instance ToHeaders SetTopicAttributes where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SNS/Subscribe.hs b/gen/Network/AWS/SNS/Subscribe.hs
--- a/gen/Network/AWS/SNS/Subscribe.hs
+++ b/gen/Network/AWS/SNS/Subscribe.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SNS.Subscribe
--- 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 actually create a subscription, the endpoint owner must call
 -- the 'ConfirmSubscription' action with the token from the confirmation
 -- message. Confirmation tokens are valid for three days.
---
--- /See:/ <http://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html AWS API Reference> for Subscribe.
 module Network.AWS.SNS.Subscribe
     (
     -- * Creating a Request
@@ -115,12 +113,14 @@
 
 instance AWSRequest Subscribe where
         type Rs Subscribe = SubscribeResponse
-        request = postQuery sNS
+        request = postQuery sns
         response
           = receiveXMLWrapper "SubscribeResult"
               (\ s h x ->
                  SubscribeResponse' <$>
                    (x .@? "SubscriptionArn") <*> (pure (fromEnum s)))
+
+instance Hashable Subscribe
 
 instance ToHeaders Subscribe where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SNS/Types.hs b/gen/Network/AWS/SNS/Types.hs
--- a/gen/Network/AWS/SNS/Types.hs
+++ b/gen/Network/AWS/SNS/Types.hs
@@ -4,7 +4,7 @@
 
 -- |
 -- Module      : Network.AWS.SNS.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,7 +13,7 @@
 module Network.AWS.SNS.Types
     (
     -- * Service Configuration
-      sNS
+      sns
 
     -- * Errors
     , _EndpointDisabledException
@@ -67,14 +67,14 @@
 import           Network.AWS.SNS.Types.Sum
 
 -- | API version '2010-03-31' of the Amazon Simple Notification Service SDK configuration.
-sNS :: Service
-sNS =
+sns :: Service
+sns =
     Service
     { _svcAbbrev = "SNS"
     , _svcSigner = v4
     , _svcPrefix = "sns"
     , _svcVersion = "2010-03-31"
-    , _svcEndpoint = defaultEndpoint sNS
+    , _svcEndpoint = defaultEndpoint sns
     , _svcTimeout = Just 70
     , _svcCheck = statusSuccess
     , _svcError = parseXMLError
@@ -89,6 +89,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"
diff --git a/gen/Network/AWS/SNS/Types/Product.hs b/gen/Network/AWS/SNS/Types/Product.hs
--- a/gen/Network/AWS/SNS/Types/Product.hs
+++ b/gen/Network/AWS/SNS/Types/Product.hs
@@ -9,7 +9,7 @@
 
 -- |
 -- Module      : Network.AWS.SNS.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
@@ -59,6 +59,8 @@
                  may (parseXMLMap "entry" "key" "value"))
                 <*> (x .@? "EndpointArn")
 
+instance Hashable Endpoint
+
 -- | The user-specified message attribute value. For string data types, the
 -- value attribute has the same restrictions on the content as the message
 -- body. For more information, see
@@ -120,6 +122,8 @@
 mavDataType :: Lens' MessageAttributeValue Text
 mavDataType = lens _mavDataType (\ s a -> s{_mavDataType = a});
 
+instance Hashable MessageAttributeValue
+
 instance ToQuery MessageAttributeValue where
         toQuery MessageAttributeValue'{..}
           = mconcat
@@ -165,6 +169,8 @@
                 (x .@? "Attributes" .!@ mempty >>=
                    may (parseXMLMap "entry" "key" "value"))
 
+instance Hashable PlatformApplication
+
 -- | A wrapper type for the attributes of an Amazon SNS subscription.
 --
 -- /See:/ 'subscription' smart constructor.
@@ -228,6 +234,8 @@
                 <*> (x .@? "Endpoint")
                 <*> (x .@? "SubscriptionArn")
 
+instance Hashable Subscription
+
 -- | A wrapper type for the topic\'s Amazon Resource Name (ARN). To retrieve
 -- a topic\'s attributes, use 'GetTopicAttributes'.
 --
@@ -254,3 +262,5 @@
 
 instance FromXML Topic where
         parseXML x = Topic' <$> (x .@? "TopicArn")
+
+instance Hashable Topic
diff --git a/gen/Network/AWS/SNS/Types/Sum.hs b/gen/Network/AWS/SNS/Types/Sum.hs
--- a/gen/Network/AWS/SNS/Types/Sum.hs
+++ b/gen/Network/AWS/SNS/Types/Sum.hs
@@ -9,7 +9,7 @@
 
 -- |
 -- Module      : Network.AWS.SNS.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
diff --git a/gen/Network/AWS/SNS/Unsubscribe.hs b/gen/Network/AWS/SNS/Unsubscribe.hs
--- a/gen/Network/AWS/SNS/Unsubscribe.hs
+++ b/gen/Network/AWS/SNS/Unsubscribe.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SNS.Unsubscribe
--- 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 @@
 -- subscription owner, a final cancellation message is delivered to the
 -- endpoint, so that the endpoint owner can easily resubscribe to the topic
 -- if the 'Unsubscribe' request was unintended.
---
--- /See:/ <http://docs.aws.amazon.com/sns/latest/api/API_Unsubscribe.html AWS API Reference> for Unsubscribe.
 module Network.AWS.SNS.Unsubscribe
     (
     -- * Creating a Request
@@ -73,8 +71,10 @@
 
 instance AWSRequest Unsubscribe where
         type Rs Unsubscribe = UnsubscribeResponse
-        request = postQuery sNS
+        request = postQuery sns
         response = receiveNull UnsubscribeResponse'
+
+instance Hashable Unsubscribe
 
 instance ToHeaders Unsubscribe where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SNS/Waiters.hs b/gen/Network/AWS/SNS/Waiters.hs
--- a/gen/Network/AWS/SNS/Waiters.hs
+++ b/gen/Network/AWS/SNS/Waiters.hs
@@ -7,7 +7,7 @@
 
 -- |
 -- Module      : Network.AWS.SNS.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/SNS.hs b/test/Test/AWS/Gen/SNS.hs
--- a/test/Test/AWS/Gen/SNS.hs
+++ b/test/Test/AWS/Gen/SNS.hs
@@ -5,7 +5,7 @@
 
 -- |
 -- Module      : Test.AWS.Gen.SNS
--- 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
@@ -317,173 +317,173 @@
 testDeleteEndpointResponse = res
     "DeleteEndpointResponse"
     "fixture/DeleteEndpointResponse.proto"
-    sNS
+    sns
     (Proxy :: Proxy DeleteEndpoint)
 
 testRemovePermissionResponse :: RemovePermissionResponse -> TestTree
 testRemovePermissionResponse = res
     "RemovePermissionResponse"
     "fixture/RemovePermissionResponse.proto"
-    sNS
+    sns
     (Proxy :: Proxy RemovePermission)
 
 testDeleteTopicResponse :: DeleteTopicResponse -> TestTree
 testDeleteTopicResponse = res
     "DeleteTopicResponse"
     "fixture/DeleteTopicResponse.proto"
-    sNS
+    sns
     (Proxy :: Proxy DeleteTopic)
 
 testListTopicsResponse :: ListTopicsResponse -> TestTree
 testListTopicsResponse = res
     "ListTopicsResponse"
     "fixture/ListTopicsResponse.proto"
-    sNS
+    sns
     (Proxy :: Proxy ListTopics)
 
 testCreatePlatformEndpointResponse :: CreatePlatformEndpointResponse -> TestTree
 testCreatePlatformEndpointResponse = res
     "CreatePlatformEndpointResponse"
     "fixture/CreatePlatformEndpointResponse.proto"
-    sNS
+    sns
     (Proxy :: Proxy CreatePlatformEndpoint)
 
 testSetPlatformApplicationAttributesResponse :: SetPlatformApplicationAttributesResponse -> TestTree
 testSetPlatformApplicationAttributesResponse = res
     "SetPlatformApplicationAttributesResponse"
     "fixture/SetPlatformApplicationAttributesResponse.proto"
-    sNS
+    sns
     (Proxy :: Proxy SetPlatformApplicationAttributes)
 
 testListSubscriptionsByTopicResponse :: ListSubscriptionsByTopicResponse -> TestTree
 testListSubscriptionsByTopicResponse = res
     "ListSubscriptionsByTopicResponse"
     "fixture/ListSubscriptionsByTopicResponse.proto"
-    sNS
+    sns
     (Proxy :: Proxy ListSubscriptionsByTopic)
 
 testGetTopicAttributesResponse :: GetTopicAttributesResponse -> TestTree
 testGetTopicAttributesResponse = res
     "GetTopicAttributesResponse"
     "fixture/GetTopicAttributesResponse.proto"
-    sNS
+    sns
     (Proxy :: Proxy GetTopicAttributes)
 
 testCreatePlatformApplicationResponse :: CreatePlatformApplicationResponse -> TestTree
 testCreatePlatformApplicationResponse = res
     "CreatePlatformApplicationResponse"
     "fixture/CreatePlatformApplicationResponse.proto"
-    sNS
+    sns
     (Proxy :: Proxy CreatePlatformApplication)
 
 testGetPlatformApplicationAttributesResponse :: GetPlatformApplicationAttributesResponse -> TestTree
 testGetPlatformApplicationAttributesResponse = res
     "GetPlatformApplicationAttributesResponse"
     "fixture/GetPlatformApplicationAttributesResponse.proto"
-    sNS
+    sns
     (Proxy :: Proxy GetPlatformApplicationAttributes)
 
 testListEndpointsByPlatformApplicationResponse :: ListEndpointsByPlatformApplicationResponse -> TestTree
 testListEndpointsByPlatformApplicationResponse = res
     "ListEndpointsByPlatformApplicationResponse"
     "fixture/ListEndpointsByPlatformApplicationResponse.proto"
-    sNS
+    sns
     (Proxy :: Proxy ListEndpointsByPlatformApplication)
 
 testSetTopicAttributesResponse :: SetTopicAttributesResponse -> TestTree
 testSetTopicAttributesResponse = res
     "SetTopicAttributesResponse"
     "fixture/SetTopicAttributesResponse.proto"
-    sNS
+    sns
     (Proxy :: Proxy SetTopicAttributes)
 
 testDeletePlatformApplicationResponse :: DeletePlatformApplicationResponse -> TestTree
 testDeletePlatformApplicationResponse = res
     "DeletePlatformApplicationResponse"
     "fixture/DeletePlatformApplicationResponse.proto"
-    sNS
+    sns
     (Proxy :: Proxy DeletePlatformApplication)
 
 testListPlatformApplicationsResponse :: ListPlatformApplicationsResponse -> TestTree
 testListPlatformApplicationsResponse = res
     "ListPlatformApplicationsResponse"
     "fixture/ListPlatformApplicationsResponse.proto"
-    sNS
+    sns
     (Proxy :: Proxy ListPlatformApplications)
 
 testAddPermissionResponse :: AddPermissionResponse -> TestTree
 testAddPermissionResponse = res
     "AddPermissionResponse"
     "fixture/AddPermissionResponse.proto"
-    sNS
+    sns
     (Proxy :: Proxy AddPermission)
 
 testGetEndpointAttributesResponse :: GetEndpointAttributesResponse -> TestTree
 testGetEndpointAttributesResponse = res
     "GetEndpointAttributesResponse"
     "fixture/GetEndpointAttributesResponse.proto"
-    sNS
+    sns
     (Proxy :: Proxy GetEndpointAttributes)
 
 testListSubscriptionsResponse :: ListSubscriptionsResponse -> TestTree
 testListSubscriptionsResponse = res
     "ListSubscriptionsResponse"
     "fixture/ListSubscriptionsResponse.proto"
-    sNS
+    sns
     (Proxy :: Proxy ListSubscriptions)
 
 testGetSubscriptionAttributesResponse :: GetSubscriptionAttributesResponse -> TestTree
 testGetSubscriptionAttributesResponse = res
     "GetSubscriptionAttributesResponse"
     "fixture/GetSubscriptionAttributesResponse.proto"
-    sNS
+    sns
     (Proxy :: Proxy GetSubscriptionAttributes)
 
 testCreateTopicResponse :: CreateTopicResponse -> TestTree
 testCreateTopicResponse = res
     "CreateTopicResponse"
     "fixture/CreateTopicResponse.proto"
-    sNS
+    sns
     (Proxy :: Proxy CreateTopic)
 
 testSubscribeResponse :: SubscribeResponse -> TestTree
 testSubscribeResponse = res
     "SubscribeResponse"
     "fixture/SubscribeResponse.proto"
-    sNS
+    sns
     (Proxy :: Proxy Subscribe)
 
 testUnsubscribeResponse :: UnsubscribeResponse -> TestTree
 testUnsubscribeResponse = res
     "UnsubscribeResponse"
     "fixture/UnsubscribeResponse.proto"
-    sNS
+    sns
     (Proxy :: Proxy Unsubscribe)
 
 testSetEndpointAttributesResponse :: SetEndpointAttributesResponse -> TestTree
 testSetEndpointAttributesResponse = res
     "SetEndpointAttributesResponse"
     "fixture/SetEndpointAttributesResponse.proto"
-    sNS
+    sns
     (Proxy :: Proxy SetEndpointAttributes)
 
 testSetSubscriptionAttributesResponse :: SetSubscriptionAttributesResponse -> TestTree
 testSetSubscriptionAttributesResponse = res
     "SetSubscriptionAttributesResponse"
     "fixture/SetSubscriptionAttributesResponse.proto"
-    sNS
+    sns
     (Proxy :: Proxy SetSubscriptionAttributes)
 
 testConfirmSubscriptionResponse :: ConfirmSubscriptionResponse -> TestTree
 testConfirmSubscriptionResponse = res
     "ConfirmSubscriptionResponse"
     "fixture/ConfirmSubscriptionResponse.proto"
-    sNS
+    sns
     (Proxy :: Proxy ConfirmSubscription)
 
 testPublishResponse :: PublishResponse -> TestTree
 testPublishResponse = res
     "PublishResponse"
     "fixture/PublishResponse.proto"
-    sNS
+    sns
     (Proxy :: Proxy Publish)
diff --git a/test/Test/AWS/SNS.hs b/test/Test/AWS/SNS.hs
--- a/test/Test/AWS/SNS.hs
+++ b/test/Test/AWS/SNS.hs
@@ -1,7 +1,7 @@
 {-# LANGUAGE OverloadedStrings #-}
 
 -- Module      : Test.AWS.SNS
--- 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/SNS/Internal.hs b/test/Test/AWS/SNS/Internal.hs
--- a/test/Test/AWS/SNS/Internal.hs
+++ b/test/Test/AWS/SNS/Internal.hs
@@ -2,7 +2,7 @@
 {-# OPTIONS_GHC -fno-warn-unused-imports #-}
 
 -- Module      : Test.AWS.SNS.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
