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
@@ -44,7 +44,7 @@
 <http://aws.amazon.com/tools/ Tools for Amazon Web Services>.
 
 Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-sqs)
-and the [AWS API Reference](http://docs.aws.amazon.com/AWSSimpleQueueService/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-sqs.cabal b/amazonka-sqs.cabal
--- a/amazonka-sqs.cabal
+++ b/amazonka-sqs.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-sqs
-version:               1.3.7
+version:               1.4.0
 synopsis:              Amazon Simple Queue 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
@@ -54,7 +54,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.SQS" and the <http://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/Welcome.html AWS API Reference>
+    See "Network.AWS.SQS" or <https://aws.amazon.com/documentation/ the AWS Documentation>
     to get started.
 
 source-repository head
@@ -94,7 +94,7 @@
         , Network.AWS.SQS.Types.Sum
 
     build-depends:
-          amazonka-core == 1.3.7.*
+          amazonka-core == 1.4.0.*
         , base          >= 4.7     && < 5
 
 test-suite amazonka-sqs-test
@@ -114,9 +114,9 @@
         , Test.AWS.SQS.Internal
 
     build-depends:
-          amazonka-core == 1.3.7.*
-        , amazonka-test == 1.3.7.*
-        , amazonka-sqs == 1.3.7.*
+          amazonka-core == 1.4.0.*
+        , amazonka-test == 1.4.0.*
+        , amazonka-sqs == 1.4.0.*
         , base
         , bytestring
         , tasty
diff --git a/gen/Network/AWS/SQS.hs b/gen/Network/AWS/SQS.hs
--- a/gen/Network/AWS/SQS.hs
+++ b/gen/Network/AWS/SQS.hs
@@ -5,7 +5,7 @@
 
 -- |
 -- Module      : Network.AWS.SQS
--- 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
@@ -40,12 +40,10 @@
 --
 -- For a list of available SDKs, go to
 -- <http://aws.amazon.com/tools/ Tools for Amazon Web Services>.
---
--- /See:/ <http://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/Welcome.html AWS API Reference>
 module Network.AWS.SQS
     (
     -- * Service Configuration
-      sQS
+      sqs
 
     -- * Errors
     -- $errors
diff --git a/gen/Network/AWS/SQS/AddPermission.hs b/gen/Network/AWS/SQS/AddPermission.hs
--- a/gen/Network/AWS/SQS/AddPermission.hs
+++ b/gen/Network/AWS/SQS/AddPermission.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SQS.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
@@ -29,8 +29,8 @@
 -- in the /Amazon SQS Developer Guide/.
 --
 -- 'AddPermission' writes an Amazon SQS-generated policy. If you want to
--- write your own policy, use SetQueueAttributes to upload your policy. For
--- more information about writing your own policy, see
+-- write your own policy, use < SetQueueAttributes> to upload your policy.
+-- For more information about writing your own policy, see
 -- <http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/AccessPolicyLanguage.html Using The Access Policy Language>
 -- in the /Amazon SQS Developer Guide/.
 --
@@ -41,8 +41,6 @@
 -- '&Attribute.1=this'
 --
 -- '&Attribute.2=that'
---
--- /See:/ <http://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_AddPermission.html AWS API Reference> for AddPermission.
 module Network.AWS.SQS.AddPermission
     (
     -- * Creating a Request
@@ -133,8 +131,10 @@
 
 instance AWSRequest AddPermission where
         type Rs AddPermission = AddPermissionResponse
-        request = postQuery sQS
+        request = postQuery sqs
         response = receiveNull AddPermissionResponse'
+
+instance Hashable AddPermission
 
 instance ToHeaders AddPermission where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SQS/ChangeMessageVisibility.hs b/gen/Network/AWS/SQS/ChangeMessageVisibility.hs
--- a/gen/Network/AWS/SQS/ChangeMessageVisibility.hs
+++ b/gen/Network/AWS/SQS/ChangeMessageVisibility.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SQS.ChangeMessageVisibility
--- 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
@@ -54,8 +54,6 @@
 -- it is received, the visibility timeout for the message the next time it
 -- is received reverts to the original timeout value, not the value you set
 -- with the 'ChangeMessageVisibility' action.
---
--- /See:/ <http://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ChangeMessageVisibility.html AWS API Reference> for ChangeMessageVisibility.
 module Network.AWS.SQS.ChangeMessageVisibility
     (
     -- * Creating a Request
@@ -111,7 +109,7 @@
 cmvQueueURL = lens _cmvQueueURL (\ s a -> s{_cmvQueueURL = a});
 
 -- | The receipt handle associated with the message whose visibility timeout
--- should be changed. This parameter is returned by the ReceiveMessage
+-- should be changed. This parameter is returned by the < ReceiveMessage>
 -- action.
 cmvReceiptHandle :: Lens' ChangeMessageVisibility Text
 cmvReceiptHandle = lens _cmvReceiptHandle (\ s a -> s{_cmvReceiptHandle = a});
@@ -124,9 +122,11 @@
 instance AWSRequest ChangeMessageVisibility where
         type Rs ChangeMessageVisibility =
              ChangeMessageVisibilityResponse
-        request = postQuery sQS
+        request = postQuery sqs
         response
           = receiveNull ChangeMessageVisibilityResponse'
+
+instance Hashable ChangeMessageVisibility
 
 instance ToHeaders ChangeMessageVisibility where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SQS/ChangeMessageVisibilityBatch.hs b/gen/Network/AWS/SQS/ChangeMessageVisibilityBatch.hs
--- a/gen/Network/AWS/SQS/ChangeMessageVisibilityBatch.hs
+++ b/gen/Network/AWS/SQS/ChangeMessageVisibilityBatch.hs
@@ -12,16 +12,16 @@
 
 -- |
 -- Module      : Network.AWS.SQS.ChangeMessageVisibilityBatch
--- 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)
 --
 -- Changes the visibility timeout of multiple messages. This is a batch
--- version of ChangeMessageVisibility. The result of the action on each
+-- version of < ChangeMessageVisibility>. The result of the action on each
 -- message is reported individually in the response. You can send up to 10
--- ChangeMessageVisibility requests with each
+-- < ChangeMessageVisibility> requests with each
 -- 'ChangeMessageVisibilityBatch' action.
 --
 -- Because the batch request can result in a combination of successful and
@@ -35,8 +35,6 @@
 -- '&Attribute.1=this'
 --
 -- '&Attribute.2=that'
---
--- /See:/ <http://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ChangeMessageVisibilityBatch.html AWS API Reference> for ChangeMessageVisibilityBatch.
 module Network.AWS.SQS.ChangeMessageVisibilityBatch
     (
     -- * Creating a Request
@@ -97,7 +95,7 @@
          where
         type Rs ChangeMessageVisibilityBatch =
              ChangeMessageVisibilityBatchResponse
-        request = postQuery sQS
+        request = postQuery sqs
         response
           = receiveXMLWrapper
               "ChangeMessageVisibilityBatchResult"
@@ -109,6 +107,8 @@
                         x)
                      <*> (parseXMLList "BatchResultErrorEntry" x))
 
+instance Hashable ChangeMessageVisibilityBatch
+
 instance ToHeaders ChangeMessageVisibilityBatch where
         toHeaders = const mempty
 
@@ -127,8 +127,8 @@
                  _cmvbEntries]
 
 -- | For each message in the batch, the response contains a
--- ChangeMessageVisibilityBatchResultEntry tag if the message succeeds or a
--- BatchResultErrorEntry tag if the message fails.
+-- < ChangeMessageVisibilityBatchResultEntry> tag if the message succeeds
+-- or a < BatchResultErrorEntry> tag if the message fails.
 --
 -- /See:/ 'changeMessageVisibilityBatchResponse' smart constructor.
 data ChangeMessageVisibilityBatchResponse = ChangeMessageVisibilityBatchResponse'
@@ -160,10 +160,10 @@
 cmvbrsResponseStatus :: Lens' ChangeMessageVisibilityBatchResponse Int
 cmvbrsResponseStatus = lens _cmvbrsResponseStatus (\ s a -> s{_cmvbrsResponseStatus = a});
 
--- | A list of ChangeMessageVisibilityBatchResultEntry items.
+-- | A list of < ChangeMessageVisibilityBatchResultEntry> items.
 cmvbrsSuccessful :: Lens' ChangeMessageVisibilityBatchResponse [ChangeMessageVisibilityBatchResultEntry]
 cmvbrsSuccessful = lens _cmvbrsSuccessful (\ s a -> s{_cmvbrsSuccessful = a}) . _Coerce;
 
--- | A list of BatchResultErrorEntry items.
+-- | A list of < BatchResultErrorEntry> items.
 cmvbrsFailed :: Lens' ChangeMessageVisibilityBatchResponse [BatchResultErrorEntry]
 cmvbrsFailed = lens _cmvbrsFailed (\ s a -> s{_cmvbrsFailed = a}) . _Coerce;
diff --git a/gen/Network/AWS/SQS/CreateQueue.hs b/gen/Network/AWS/SQS/CreateQueue.hs
--- a/gen/Network/AWS/SQS/CreateQueue.hs
+++ b/gen/Network/AWS/SQS/CreateQueue.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SQS.CreateQueue
--- 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,10 +29,10 @@
 -- You may pass one or more attributes in the request. If you do not
 -- provide a value for any attribute, the queue will have the default value
 -- for that attribute. Permitted attributes are the same that can be set
--- using SetQueueAttributes.
+-- using < SetQueueAttributes>.
 --
--- Use GetQueueUrl to get a queue\'s URL. GetQueueUrl requires only the
--- 'QueueName' parameter.
+-- Use < GetQueueUrl> to get a queue\'s URL. < GetQueueUrl> requires only
+-- the 'QueueName' parameter.
 --
 -- If you provide the name of an existing queue, along with the exact names
 -- and values of all the queue\'s attributes, 'CreateQueue' returns the
@@ -47,8 +47,6 @@
 -- '&Attribute.1=this'
 --
 -- '&Attribute.2=that'
---
--- /See:/ <http://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CreateQueue.html AWS API Reference> for CreateQueue.
 module Network.AWS.SQS.CreateQueue
     (
     -- * Creating a Request
@@ -116,7 +114,7 @@
 --     <http://docs.aws.amazon.com/IAM/latest/UserGuide/PoliciesOverview.html Overview of AWS IAM Policies>
 --     in the /Amazon IAM User Guide/.
 -- -   'ReceiveMessageWaitTimeSeconds' - The time for which a
---     ReceiveMessage call will wait for a message to arrive. An integer
+--     < ReceiveMessage> call will wait for a message to arrive. An integer
 --     from 0 to 20 (seconds). The default for this attribute is 0.
 -- -   'VisibilityTimeout' - The visibility timeout for the queue. An
 --     integer from 0 to 43200 (12 hours). The default for this attribute
@@ -132,12 +130,14 @@
 
 instance AWSRequest CreateQueue where
         type Rs CreateQueue = CreateQueueResponse
-        request = postQuery sQS
+        request = postQuery sqs
         response
           = receiveXMLWrapper "CreateQueueResult"
               (\ s h x ->
                  CreateQueueResponse' <$>
                    (x .@? "QueueUrl") <*> (pure (fromEnum s)))
+
+instance Hashable CreateQueue
 
 instance ToHeaders CreateQueue where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SQS/DeleteMessage.hs b/gen/Network/AWS/SQS/DeleteMessage.hs
--- a/gen/Network/AWS/SQS/DeleteMessage.hs
+++ b/gen/Network/AWS/SQS/DeleteMessage.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SQS.DeleteMessage
--- 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
@@ -40,8 +40,6 @@
 -- again on a subsequent receive request. You should create your system to
 -- be idempotent so that receiving a particular message more than once is
 -- not a problem.
---
--- /See:/ <http://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_DeleteMessage.html AWS API Reference> for DeleteMessage.
 module Network.AWS.SQS.DeleteMessage
     (
     -- * Creating a Request
@@ -96,8 +94,10 @@
 
 instance AWSRequest DeleteMessage where
         type Rs DeleteMessage = DeleteMessageResponse
-        request = postQuery sQS
+        request = postQuery sqs
         response = receiveNull DeleteMessageResponse'
+
+instance Hashable DeleteMessage
 
 instance ToHeaders DeleteMessage where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SQS/DeleteMessageBatch.hs b/gen/Network/AWS/SQS/DeleteMessageBatch.hs
--- a/gen/Network/AWS/SQS/DeleteMessageBatch.hs
+++ b/gen/Network/AWS/SQS/DeleteMessageBatch.hs
@@ -12,14 +12,14 @@
 
 -- |
 -- Module      : Network.AWS.SQS.DeleteMessageBatch
--- 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)
 --
 -- Deletes up to ten messages from the specified queue. This is a batch
--- version of DeleteMessage. The result of the delete action on each
+-- version of < DeleteMessage>. The result of the delete action on each
 -- message is reported individually in the response.
 --
 -- Because the batch request can result in a combination of successful and
@@ -33,8 +33,6 @@
 -- '&Attribute.1=this'
 --
 -- '&Attribute.2=that'
---
--- /See:/ <http://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_DeleteMessageBatch.html AWS API Reference> for DeleteMessageBatch.
 module Network.AWS.SQS.DeleteMessageBatch
     (
     -- * Creating a Request
@@ -93,7 +91,7 @@
 instance AWSRequest DeleteMessageBatch where
         type Rs DeleteMessageBatch =
              DeleteMessageBatchResponse
-        request = postQuery sQS
+        request = postQuery sqs
         response
           = receiveXMLWrapper "DeleteMessageBatchResult"
               (\ s h x ->
@@ -102,6 +100,8 @@
                      (parseXMLList "DeleteMessageBatchResultEntry" x)
                      <*> (parseXMLList "BatchResultErrorEntry" x))
 
+instance Hashable DeleteMessageBatch
+
 instance ToHeaders DeleteMessageBatch where
         toHeaders = const mempty
 
@@ -118,8 +118,8 @@
                  _dmbEntries]
 
 -- | For each message in the batch, the response contains a
--- DeleteMessageBatchResultEntry tag if the message is deleted or a
--- BatchResultErrorEntry tag if the message cannot be deleted.
+-- < DeleteMessageBatchResultEntry> tag if the message is deleted or a
+-- < BatchResultErrorEntry> tag if the message cannot be deleted.
 --
 -- /See:/ 'deleteMessageBatchResponse' smart constructor.
 data DeleteMessageBatchResponse = DeleteMessageBatchResponse'
@@ -151,10 +151,10 @@
 dmbrsResponseStatus :: Lens' DeleteMessageBatchResponse Int
 dmbrsResponseStatus = lens _dmbrsResponseStatus (\ s a -> s{_dmbrsResponseStatus = a});
 
--- | A list of DeleteMessageBatchResultEntry items.
+-- | A list of < DeleteMessageBatchResultEntry> items.
 dmbrsSuccessful :: Lens' DeleteMessageBatchResponse [DeleteMessageBatchResultEntry]
 dmbrsSuccessful = lens _dmbrsSuccessful (\ s a -> s{_dmbrsSuccessful = a}) . _Coerce;
 
--- | A list of BatchResultErrorEntry items.
+-- | A list of < BatchResultErrorEntry> items.
 dmbrsFailed :: Lens' DeleteMessageBatchResponse [BatchResultErrorEntry]
 dmbrsFailed = lens _dmbrsFailed (\ s a -> s{_dmbrsFailed = a}) . _Coerce;
diff --git a/gen/Network/AWS/SQS/DeleteQueue.hs b/gen/Network/AWS/SQS/DeleteQueue.hs
--- a/gen/Network/AWS/SQS/DeleteQueue.hs
+++ b/gen/Network/AWS/SQS/DeleteQueue.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SQS.DeleteQueue
--- 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,17 +27,15 @@
 --
 -- When you delete a queue, the deletion process takes up to 60 seconds.
 -- Requests you send involving that queue during the 60 seconds might
--- succeed. For example, a SendMessage request might succeed, but after the
--- 60 seconds, the queue and that message you sent no longer exist. Also,
--- when you delete a queue, you must wait at least 60 seconds before
+-- succeed. For example, a < SendMessage> request might succeed, but after
+-- the 60 seconds, the queue and that message you sent no longer exist.
+-- Also, when you delete a queue, you must wait at least 60 seconds before
 -- creating a queue with the same name.
 --
 -- We reserve the right to delete queues that have had no activity for more
 -- than 30 days. For more information, see
 -- <http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/SQSConcepts.html How Amazon SQS Queues Work>
 -- in the /Amazon SQS Developer Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_DeleteQueue.html AWS API Reference> for DeleteQueue.
 module Network.AWS.SQS.DeleteQueue
     (
     -- * Creating a Request
@@ -82,8 +80,10 @@
 
 instance AWSRequest DeleteQueue where
         type Rs DeleteQueue = DeleteQueueResponse
-        request = postQuery sQS
+        request = postQuery sqs
         response = receiveNull DeleteQueueResponse'
+
+instance Hashable DeleteQueue
 
 instance ToHeaders DeleteQueue where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SQS/GetQueueAttributes.hs b/gen/Network/AWS/SQS/GetQueueAttributes.hs
--- a/gen/Network/AWS/SQS/GetQueueAttributes.hs
+++ b/gen/Network/AWS/SQS/GetQueueAttributes.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SQS.GetQueueAttributes
--- 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
@@ -67,8 +67,6 @@
 -- '&Attribute.1=this'
 --
 -- '&Attribute.2=that'
---
--- /See:/ <http://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_GetQueueAttributes.html AWS API Reference> for GetQueueAttributes.
 module Network.AWS.SQS.GetQueueAttributes
     (
     -- * Creating a Request
@@ -126,13 +124,15 @@
 instance AWSRequest GetQueueAttributes where
         type Rs GetQueueAttributes =
              GetQueueAttributesResponse
-        request = postQuery sQS
+        request = postQuery sqs
         response
           = receiveXMLWrapper "GetQueueAttributesResult"
               (\ s h x ->
                  GetQueueAttributesResponse' <$>
                    (may (parseXMLMap "Attribute" "Name" "Value") x) <*>
                      (pure (fromEnum s)))
+
+instance Hashable GetQueueAttributes
 
 instance ToHeaders GetQueueAttributes where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SQS/GetQueueURL.hs b/gen/Network/AWS/SQS/GetQueueURL.hs
--- a/gen/Network/AWS/SQS/GetQueueURL.hs
+++ b/gen/Network/AWS/SQS/GetQueueURL.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SQS.GetQueueURL
--- 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,11 +25,9 @@
 -- 'QueueOwnerAWSAccountId' parameter to specify the account ID of the
 -- queue\'s owner. The queue\'s owner must grant you permission to access
 -- the queue. For more information about shared queue access, see
--- AddPermission or go to
+-- < AddPermission> or go to
 -- <http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/acp-overview.html Shared Queues>
 -- in the /Amazon SQS Developer Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_GetQueueURL.html AWS API Reference> for GetQueueURL.
 module Network.AWS.SQS.GetQueueURL
     (
     -- * Creating a Request
@@ -87,12 +85,14 @@
 
 instance AWSRequest GetQueueURL where
         type Rs GetQueueURL = GetQueueURLResponse
-        request = postQuery sQS
+        request = postQuery sqs
         response
           = receiveXMLWrapper "GetQueueUrlResult"
               (\ s h x ->
                  GetQueueURLResponse' <$>
                    (pure (fromEnum s)) <*> (x .@ "QueueUrl"))
+
+instance Hashable GetQueueURL
 
 instance ToHeaders GetQueueURL where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SQS/ListDeadLetterSourceQueues.hs b/gen/Network/AWS/SQS/ListDeadLetterSourceQueues.hs
--- a/gen/Network/AWS/SQS/ListDeadLetterSourceQueues.hs
+++ b/gen/Network/AWS/SQS/ListDeadLetterSourceQueues.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SQS.ListDeadLetterSourceQueues
--- 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 @@
 --
 -- For more information about using dead letter queues, see
 -- <http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/SQSDeadLetterQueue.html Using Amazon SQS Dead Letter Queues>.
---
--- /See:/ <http://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ListDeadLetterSourceQueues.html AWS API Reference> for ListDeadLetterSourceQueues.
 module Network.AWS.SQS.ListDeadLetterSourceQueues
     (
     -- * Creating a Request
@@ -73,13 +71,15 @@
 instance AWSRequest ListDeadLetterSourceQueues where
         type Rs ListDeadLetterSourceQueues =
              ListDeadLetterSourceQueuesResponse
-        request = postQuery sQS
+        request = postQuery sqs
         response
           = receiveXMLWrapper
               "ListDeadLetterSourceQueuesResult"
               (\ s h x ->
                  ListDeadLetterSourceQueuesResponse' <$>
                    (pure (fromEnum s)) <*> (parseXMLList "QueueUrl" x))
+
+instance Hashable ListDeadLetterSourceQueues
 
 instance ToHeaders ListDeadLetterSourceQueues where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SQS/ListQueues.hs b/gen/Network/AWS/SQS/ListQueues.hs
--- a/gen/Network/AWS/SQS/ListQueues.hs
+++ b/gen/Network/AWS/SQS/ListQueues.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SQS.ListQueues
--- 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 @@
 -- returned is 1000. If you specify a value for the optional
 -- 'QueueNamePrefix' parameter, only queues with a name beginning with the
 -- specified value are returned.
---
--- /See:/ <http://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ListQueues.html AWS API Reference> for ListQueues.
 module Network.AWS.SQS.ListQueues
     (
     -- * Creating a Request
@@ -71,13 +69,15 @@
 
 instance AWSRequest ListQueues where
         type Rs ListQueues = ListQueuesResponse
-        request = postQuery sQS
+        request = postQuery sqs
         response
           = receiveXMLWrapper "ListQueuesResult"
               (\ s h x ->
                  ListQueuesResponse' <$>
                    (may (parseXMLList "QueueUrl") x) <*>
                      (pure (fromEnum s)))
+
+instance Hashable ListQueues
 
 instance ToHeaders ListQueues where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SQS/PurgeQueue.hs b/gen/Network/AWS/SQS/PurgeQueue.hs
--- a/gen/Network/AWS/SQS/PurgeQueue.hs
+++ b/gen/Network/AWS/SQS/PurgeQueue.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SQS.PurgeQueue
--- 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 @@
 -- deleted. While the queue is being purged, messages sent to the queue
 -- before 'PurgeQueue' was called may be received, but will be deleted
 -- within the next minute.
---
--- /See:/ <http://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_PurgeQueue.html AWS API Reference> for PurgeQueue.
 module Network.AWS.SQS.PurgeQueue
     (
     -- * Creating a Request
@@ -76,8 +74,10 @@
 
 instance AWSRequest PurgeQueue where
         type Rs PurgeQueue = PurgeQueueResponse
-        request = postQuery sQS
+        request = postQuery sqs
         response = receiveNull PurgeQueueResponse'
+
+instance Hashable PurgeQueue
 
 instance ToHeaders PurgeQueue where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SQS/ReceiveMessage.hs b/gen/Network/AWS/SQS/ReceiveMessage.hs
--- a/gen/Network/AWS/SQS/ReceiveMessage.hs
+++ b/gen/Network/AWS/SQS/ReceiveMessage.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SQS.ReceiveMessage
--- 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
@@ -63,8 +63,6 @@
 -- Going forward, new attributes might be added. If you are writing code
 -- that calls this action, we recommend that you structure your code so
 -- that it can handle new attributes gracefully.
---
--- /See:/ <http://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html AWS API Reference> for ReceiveMessage.
 module Network.AWS.SQS.ReceiveMessage
     (
     -- * Creating a Request
@@ -191,13 +189,15 @@
 
 instance AWSRequest ReceiveMessage where
         type Rs ReceiveMessage = ReceiveMessageResponse
-        request = postQuery sQS
+        request = postQuery sqs
         response
           = receiveXMLWrapper "ReceiveMessageResult"
               (\ s h x ->
                  ReceiveMessageResponse' <$>
                    (may (parseXMLList "Message") x) <*>
                      (pure (fromEnum s)))
+
+instance Hashable ReceiveMessage
 
 instance ToHeaders ReceiveMessage where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SQS/RemovePermission.hs b/gen/Network/AWS/SQS/RemovePermission.hs
--- a/gen/Network/AWS/SQS/RemovePermission.hs
+++ b/gen/Network/AWS/SQS/RemovePermission.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SQS.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
@@ -20,8 +20,6 @@
 --
 -- Revokes any permissions in the queue policy that matches the specified
 -- 'Label' parameter. Only the owner of the queue can remove permissions.
---
--- /See:/ <http://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_RemovePermission.html AWS API Reference> for RemovePermission.
 module Network.AWS.SQS.RemovePermission
     (
     -- * Creating a Request
@@ -71,14 +69,16 @@
 rpQueueURL = lens _rpQueueURL (\ s a -> s{_rpQueueURL = a});
 
 -- | The identification of the permission to remove. This is the label added
--- with the AddPermission action.
+-- with the < AddPermission> action.
 rpLabel :: Lens' RemovePermission Text
 rpLabel = lens _rpLabel (\ s a -> s{_rpLabel = a});
 
 instance AWSRequest RemovePermission where
         type Rs RemovePermission = RemovePermissionResponse
-        request = postQuery sQS
+        request = postQuery sqs
         response = receiveNull RemovePermissionResponse'
+
+instance Hashable RemovePermission
 
 instance ToHeaders RemovePermission where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SQS/SendMessage.hs b/gen/Network/AWS/SQS/SendMessage.hs
--- a/gen/Network/AWS/SQS/SendMessage.hs
+++ b/gen/Network/AWS/SQS/SendMessage.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SQS.SendMessage
--- 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 @@
 --
 -- #x9 | #xA | #xD | [#x20 to #xD7FF] | [#xE000 to #xFFFD] | [#x10000 to
 -- #x10FFFF]
---
--- /See:/ <http://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html AWS API Reference> for SendMessage.
 module Network.AWS.SQS.SendMessage
     (
     -- * Creating a Request
@@ -116,7 +114,7 @@
 
 instance AWSRequest SendMessage where
         type Rs SendMessage = SendMessageResponse
-        request = postQuery sQS
+        request = postQuery sqs
         response
           = receiveXMLWrapper "SendMessageResult"
               (\ s h x ->
@@ -124,6 +122,8 @@
                    (x .@? "MessageId") <*> (x .@? "MD5OfMessageBody")
                      <*> (x .@? "MD5OfMessageAttributes")
                      <*> (pure (fromEnum s)))
+
+instance Hashable SendMessage
 
 instance ToHeaders SendMessage where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SQS/SendMessageBatch.hs b/gen/Network/AWS/SQS/SendMessageBatch.hs
--- a/gen/Network/AWS/SQS/SendMessageBatch.hs
+++ b/gen/Network/AWS/SQS/SendMessageBatch.hs
@@ -12,15 +12,15 @@
 
 -- |
 -- Module      : Network.AWS.SQS.SendMessageBatch
--- 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)
 --
 -- Delivers up to ten messages to the specified queue. This is a batch
--- version of SendMessage. The result of the send action on each message is
--- reported individually in the response. The maximum allowed individual
+-- version of < SendMessage>. The result of the send action on each message
+-- is reported individually in the response. The maximum allowed individual
 -- message size is 256 KB (262,144 bytes).
 --
 -- The maximum total payload size (i.e., the sum of all a batch\'s
@@ -49,8 +49,6 @@
 -- '&Attribute.1=this'
 --
 -- '&Attribute.2=that'
---
--- /See:/ <http://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessageBatch.html AWS API Reference> for SendMessageBatch.
 module Network.AWS.SQS.SendMessageBatch
     (
     -- * Creating a Request
@@ -102,13 +100,13 @@
 smbQueueURL :: Lens' SendMessageBatch Text
 smbQueueURL = lens _smbQueueURL (\ s a -> s{_smbQueueURL = a});
 
--- | A list of SendMessageBatchRequestEntry items.
+-- | A list of < SendMessageBatchRequestEntry> items.
 smbEntries :: Lens' SendMessageBatch [SendMessageBatchRequestEntry]
 smbEntries = lens _smbEntries (\ s a -> s{_smbEntries = a}) . _Coerce;
 
 instance AWSRequest SendMessageBatch where
         type Rs SendMessageBatch = SendMessageBatchResponse
-        request = postQuery sQS
+        request = postQuery sqs
         response
           = receiveXMLWrapper "SendMessageBatchResult"
               (\ s h x ->
@@ -117,6 +115,8 @@
                      (parseXMLList "SendMessageBatchResultEntry" x)
                      <*> (parseXMLList "BatchResultErrorEntry" x))
 
+instance Hashable SendMessageBatch
+
 instance ToHeaders SendMessageBatch where
         toHeaders = const mempty
 
@@ -133,8 +133,8 @@
                  _smbEntries]
 
 -- | For each message in the batch, the response contains a
--- SendMessageBatchResultEntry tag if the message succeeds or a
--- BatchResultErrorEntry tag if the message fails.
+-- < SendMessageBatchResultEntry> tag if the message succeeds or a
+-- < BatchResultErrorEntry> tag if the message fails.
 --
 -- /See:/ 'sendMessageBatchResponse' smart constructor.
 data SendMessageBatchResponse = SendMessageBatchResponse'
@@ -166,11 +166,11 @@
 smbrsResponseStatus :: Lens' SendMessageBatchResponse Int
 smbrsResponseStatus = lens _smbrsResponseStatus (\ s a -> s{_smbrsResponseStatus = a});
 
--- | A list of SendMessageBatchResultEntry items.
+-- | A list of < SendMessageBatchResultEntry> items.
 smbrsSuccessful :: Lens' SendMessageBatchResponse [SendMessageBatchResultEntry]
 smbrsSuccessful = lens _smbrsSuccessful (\ s a -> s{_smbrsSuccessful = a}) . _Coerce;
 
--- | A list of BatchResultErrorEntry items with the error detail about each
--- message that could not be enqueued.
+-- | A list of < BatchResultErrorEntry> items with the error detail about
+-- each message that could not be enqueued.
 smbrsFailed :: Lens' SendMessageBatchResponse [BatchResultErrorEntry]
 smbrsFailed = lens _smbrsFailed (\ s a -> s{_smbrsFailed = a}) . _Coerce;
diff --git a/gen/Network/AWS/SQS/SetQueueAttributes.hs b/gen/Network/AWS/SQS/SetQueueAttributes.hs
--- a/gen/Network/AWS/SQS/SetQueueAttributes.hs
+++ b/gen/Network/AWS/SQS/SetQueueAttributes.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.SQS.SetQueueAttributes
--- 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 @@
 -- Going forward, new attributes might be added. If you are writing code
 -- that calls this action, we recommend that you structure your code so
 -- that it can handle new attributes gracefully.
---
--- /See:/ <http://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SetQueueAttributes.html AWS API Reference> for SetQueueAttributes.
 module Network.AWS.SQS.SetQueueAttributes
     (
     -- * Creating a Request
@@ -112,8 +110,10 @@
 instance AWSRequest SetQueueAttributes where
         type Rs SetQueueAttributes =
              SetQueueAttributesResponse
-        request = postQuery sQS
+        request = postQuery sqs
         response = receiveNull SetQueueAttributesResponse'
+
+instance Hashable SetQueueAttributes
 
 instance ToHeaders SetQueueAttributes where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/SQS/Types.hs b/gen/Network/AWS/SQS/Types.hs
--- a/gen/Network/AWS/SQS/Types.hs
+++ b/gen/Network/AWS/SQS/Types.hs
@@ -4,7 +4,7 @@
 
 -- |
 -- Module      : Network.AWS.SQS.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.SQS.Types
     (
     -- * Service Configuration
-      sQS
+      sqs
 
     -- * Errors
     , _InvalidBatchEntryId
@@ -114,14 +114,14 @@
 import           Network.AWS.SQS.Types.Sum
 
 -- | API version '2012-11-05' of the Amazon Simple Queue Service SDK configuration.
-sQS :: Service
-sQS =
+sqs :: Service
+sqs =
     Service
     { _svcAbbrev = "SQS"
     , _svcSigner = v4
     , _svcPrefix = "sqs"
     , _svcVersion = "2012-11-05"
-    , _svcEndpoint = defaultEndpoint sQS
+    , _svcEndpoint = defaultEndpoint sqs
     , _svcTimeout = Just 70
     , _svcCheck = statusSuccess
     , _svcError = parseXMLError
@@ -138,6 +138,7 @@
     check e
       | has (hasCode "RequestThrottled" . hasStatus 403) e =
           Just "request_limit_exceeded"
+      | 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"
@@ -195,8 +196,8 @@
 
 -- | The action that you requested would violate a limit. For example,
 -- ReceiveMessage returns this error if the maximum number of messages
--- inflight has already been reached. AddPermission returns this error if
--- the maximum number of permissions for the queue has already been
+-- inflight has already been reached. < AddPermission> returns this error
+-- if the maximum number of permissions for the queue has already been
 -- reached.
 _OverLimit :: AsError a => Getting (First ServiceError) a ServiceError
 _OverLimit = _ServiceError . hasStatus 403 . hasCode "OverLimit"
diff --git a/gen/Network/AWS/SQS/Types/Product.hs b/gen/Network/AWS/SQS/Types/Product.hs
--- a/gen/Network/AWS/SQS/Types/Product.hs
+++ b/gen/Network/AWS/SQS/Types/Product.hs
@@ -9,7 +9,7 @@
 
 -- |
 -- Module      : Network.AWS.SQS.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
@@ -79,8 +79,10 @@
                 (x .@ "SenderFault")
                 <*> (x .@ "Code")
 
+instance Hashable BatchResultErrorEntry
+
 -- | Encloses a receipt handle and an entry id for each message in
--- ChangeMessageVisibilityBatch.
+-- < ChangeMessageVisibilityBatch>.
 --
 -- All of the following parameters are list parameters that must be
 -- prefixed with 'ChangeMessageVisibilityBatchRequestEntry.n', where 'n' is
@@ -134,6 +136,9 @@
 cReceiptHandle :: Lens' ChangeMessageVisibilityBatchRequestEntry Text
 cReceiptHandle = lens _cReceiptHandle (\ s a -> s{_cReceiptHandle = a});
 
+instance Hashable
+         ChangeMessageVisibilityBatchRequestEntry
+
 instance ToQuery
          ChangeMessageVisibilityBatchRequestEntry where
         toQuery ChangeMessageVisibilityBatchRequestEntry'{..}
@@ -141,7 +146,7 @@
               ["VisibilityTimeout" =: _cVisibilityTimeout,
                "Id" =: _cId, "ReceiptHandle" =: _cReceiptHandle]
 
--- | Encloses the id of an entry in ChangeMessageVisibilityBatch.
+-- | Encloses the id of an entry in < ChangeMessageVisibilityBatch>.
 --
 -- /See:/ 'changeMessageVisibilityBatchResultEntry' smart constructor.
 newtype ChangeMessageVisibilityBatchResultEntry = ChangeMessageVisibilityBatchResultEntry'
@@ -172,6 +177,9 @@
           = ChangeMessageVisibilityBatchResultEntry' <$>
               (x .@ "Id")
 
+instance Hashable
+         ChangeMessageVisibilityBatchResultEntry
+
 -- | Encloses a receipt handle and an identifier for it.
 --
 -- /See:/ 'deleteMessageBatchRequestEntry' smart constructor.
@@ -207,13 +215,15 @@
 dmbreReceiptHandle :: Lens' DeleteMessageBatchRequestEntry Text
 dmbreReceiptHandle = lens _dmbreReceiptHandle (\ s a -> s{_dmbreReceiptHandle = a});
 
+instance Hashable DeleteMessageBatchRequestEntry
+
 instance ToQuery DeleteMessageBatchRequestEntry where
         toQuery DeleteMessageBatchRequestEntry'{..}
           = mconcat
               ["Id" =: _dmbreId,
                "ReceiptHandle" =: _dmbreReceiptHandle]
 
--- | Encloses the id an entry in DeleteMessageBatch.
+-- | Encloses the id an entry in < DeleteMessageBatch>.
 --
 -- /See:/ 'deleteMessageBatchResultEntry' smart constructor.
 newtype DeleteMessageBatchResultEntry = DeleteMessageBatchResultEntry'
@@ -241,6 +251,8 @@
         parseXML x
           = DeleteMessageBatchResultEntry' <$> (x .@ "Id")
 
+instance Hashable DeleteMessageBatchResultEntry
+
 -- | An Amazon SQS message.
 --
 -- /See:/ 'message' smart constructor.
@@ -337,6 +349,8 @@
                 <*> (x .@? "MessageId")
                 <*> (x .@? "MD5OfMessageAttributes")
 
+instance Hashable Message
+
 -- | 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
@@ -425,6 +439,8 @@
                    may (parseXMLList "BinaryListValue"))
                 <*> (x .@ "DataType")
 
+instance Hashable MessageAttributeValue
+
 instance ToQuery MessageAttributeValue where
         toQuery MessageAttributeValue'{..}
           = mconcat
@@ -493,6 +509,8 @@
 sMessageBody :: Lens' SendMessageBatchRequestEntry Text
 sMessageBody = lens _sMessageBody (\ s a -> s{_sMessageBody = a});
 
+instance Hashable SendMessageBatchRequestEntry
+
 instance ToQuery SendMessageBatchRequestEntry where
         toQuery SendMessageBatchRequestEntry'{..}
           = mconcat
@@ -503,7 +521,7 @@
                "MessageBody" =: _sMessageBody]
 
 -- | Encloses a message ID for successfully enqueued message of a
--- SendMessageBatch.
+-- < SendMessageBatch>.
 --
 -- /See:/ 'sendMessageBatchResultEntry' smart constructor.
 data SendMessageBatchResultEntry = SendMessageBatchResultEntry'
@@ -566,3 +584,5 @@
               (x .@? "MD5OfMessageAttributes") <*> (x .@ "Id") <*>
                 (x .@ "MessageId")
                 <*> (x .@ "MD5OfMessageBody")
+
+instance Hashable SendMessageBatchResultEntry
diff --git a/gen/Network/AWS/SQS/Types/Sum.hs b/gen/Network/AWS/SQS/Types/Sum.hs
--- a/gen/Network/AWS/SQS/Types/Sum.hs
+++ b/gen/Network/AWS/SQS/Types/Sum.hs
@@ -9,7 +9,7 @@
 
 -- |
 -- Module      : Network.AWS.SQS.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/SQS/Waiters.hs b/gen/Network/AWS/SQS/Waiters.hs
--- a/gen/Network/AWS/SQS/Waiters.hs
+++ b/gen/Network/AWS/SQS/Waiters.hs
@@ -7,7 +7,7 @@
 
 -- |
 -- Module      : Network.AWS.SQS.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/SQS.hs b/test/Test/AWS/Gen/SQS.hs
--- a/test/Test/AWS/Gen/SQS.hs
+++ b/test/Test/AWS/Gen/SQS.hs
@@ -5,7 +5,7 @@
 
 -- |
 -- Module      : Test.AWS.Gen.SQS
--- 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
@@ -229,117 +229,117 @@
 testGetQueueURLResponse = res
     "GetQueueURLResponse"
     "fixture/GetQueueURLResponse.proto"
-    sQS
+    sqs
     (Proxy :: Proxy GetQueueURL)
 
 testPurgeQueueResponse :: PurgeQueueResponse -> TestTree
 testPurgeQueueResponse = res
     "PurgeQueueResponse"
     "fixture/PurgeQueueResponse.proto"
-    sQS
+    sqs
     (Proxy :: Proxy PurgeQueue)
 
 testChangeMessageVisibilityBatchResponse :: ChangeMessageVisibilityBatchResponse -> TestTree
 testChangeMessageVisibilityBatchResponse = res
     "ChangeMessageVisibilityBatchResponse"
     "fixture/ChangeMessageVisibilityBatchResponse.proto"
-    sQS
+    sqs
     (Proxy :: Proxy ChangeMessageVisibilityBatch)
 
 testSendMessageResponse :: SendMessageResponse -> TestTree
 testSendMessageResponse = res
     "SendMessageResponse"
     "fixture/SendMessageResponse.proto"
-    sQS
+    sqs
     (Proxy :: Proxy SendMessage)
 
 testRemovePermissionResponse :: RemovePermissionResponse -> TestTree
 testRemovePermissionResponse = res
     "RemovePermissionResponse"
     "fixture/RemovePermissionResponse.proto"
-    sQS
+    sqs
     (Proxy :: Proxy RemovePermission)
 
 testGetQueueAttributesResponse :: GetQueueAttributesResponse -> TestTree
 testGetQueueAttributesResponse = res
     "GetQueueAttributesResponse"
     "fixture/GetQueueAttributesResponse.proto"
-    sQS
+    sqs
     (Proxy :: Proxy GetQueueAttributes)
 
 testListQueuesResponse :: ListQueuesResponse -> TestTree
 testListQueuesResponse = res
     "ListQueuesResponse"
     "fixture/ListQueuesResponse.proto"
-    sQS
+    sqs
     (Proxy :: Proxy ListQueues)
 
 testReceiveMessageResponse :: ReceiveMessageResponse -> TestTree
 testReceiveMessageResponse = res
     "ReceiveMessageResponse"
     "fixture/ReceiveMessageResponse.proto"
-    sQS
+    sqs
     (Proxy :: Proxy ReceiveMessage)
 
 testDeleteQueueResponse :: DeleteQueueResponse -> TestTree
 testDeleteQueueResponse = res
     "DeleteQueueResponse"
     "fixture/DeleteQueueResponse.proto"
-    sQS
+    sqs
     (Proxy :: Proxy DeleteQueue)
 
 testDeleteMessageBatchResponse :: DeleteMessageBatchResponse -> TestTree
 testDeleteMessageBatchResponse = res
     "DeleteMessageBatchResponse"
     "fixture/DeleteMessageBatchResponse.proto"
-    sQS
+    sqs
     (Proxy :: Proxy DeleteMessageBatch)
 
 testSetQueueAttributesResponse :: SetQueueAttributesResponse -> TestTree
 testSetQueueAttributesResponse = res
     "SetQueueAttributesResponse"
     "fixture/SetQueueAttributesResponse.proto"
-    sQS
+    sqs
     (Proxy :: Proxy SetQueueAttributes)
 
 testListDeadLetterSourceQueuesResponse :: ListDeadLetterSourceQueuesResponse -> TestTree
 testListDeadLetterSourceQueuesResponse = res
     "ListDeadLetterSourceQueuesResponse"
     "fixture/ListDeadLetterSourceQueuesResponse.proto"
-    sQS
+    sqs
     (Proxy :: Proxy ListDeadLetterSourceQueues)
 
 testAddPermissionResponse :: AddPermissionResponse -> TestTree
 testAddPermissionResponse = res
     "AddPermissionResponse"
     "fixture/AddPermissionResponse.proto"
-    sQS
+    sqs
     (Proxy :: Proxy AddPermission)
 
 testDeleteMessageResponse :: DeleteMessageResponse -> TestTree
 testDeleteMessageResponse = res
     "DeleteMessageResponse"
     "fixture/DeleteMessageResponse.proto"
-    sQS
+    sqs
     (Proxy :: Proxy DeleteMessage)
 
 testCreateQueueResponse :: CreateQueueResponse -> TestTree
 testCreateQueueResponse = res
     "CreateQueueResponse"
     "fixture/CreateQueueResponse.proto"
-    sQS
+    sqs
     (Proxy :: Proxy CreateQueue)
 
 testSendMessageBatchResponse :: SendMessageBatchResponse -> TestTree
 testSendMessageBatchResponse = res
     "SendMessageBatchResponse"
     "fixture/SendMessageBatchResponse.proto"
-    sQS
+    sqs
     (Proxy :: Proxy SendMessageBatch)
 
 testChangeMessageVisibilityResponse :: ChangeMessageVisibilityResponse -> TestTree
 testChangeMessageVisibilityResponse = res
     "ChangeMessageVisibilityResponse"
     "fixture/ChangeMessageVisibilityResponse.proto"
-    sQS
+    sqs
     (Proxy :: Proxy ChangeMessageVisibility)
diff --git a/test/Test/AWS/SQS.hs b/test/Test/AWS/SQS.hs
--- a/test/Test/AWS/SQS.hs
+++ b/test/Test/AWS/SQS.hs
@@ -2,7 +2,7 @@
 
 -- |
 -- Module      : Test.AWS.SQS
--- 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   : experimental
diff --git a/test/Test/AWS/SQS/Internal.hs b/test/Test/AWS/SQS/Internal.hs
--- a/test/Test/AWS/SQS/Internal.hs
+++ b/test/Test/AWS/SQS/Internal.hs
@@ -2,7 +2,7 @@
 {-# OPTIONS_GHC -fno-warn-unused-imports #-}
 
 -- Module      : Test.AWS.SQS.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
