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
@@ -29,7 +29,7 @@
 their cache and can receive alarms if a part of their cache runs hot.
 
 Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-elasticache)
-and the [AWS API Reference](http://docs.aws.amazon.com/AmazonElastiCache/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-elasticache.cabal b/amazonka-elasticache.cabal
--- a/amazonka-elasticache.cabal
+++ b/amazonka-elasticache.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-elasticache
-version:               1.3.7
+version:               1.4.0
 synopsis:              Amazon ElastiCache 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
@@ -39,7 +39,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.ElastiCache" and the <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/Welcome.html AWS API Reference>
+    See "Network.AWS.ElastiCache" or <https://aws.amazon.com/documentation/ the AWS Documentation>
     to get started.
 
 source-repository head
@@ -99,7 +99,7 @@
         , Network.AWS.ElastiCache.Types.Sum
 
     build-depends:
-          amazonka-core == 1.3.7.*
+          amazonka-core == 1.4.0.*
         , base          >= 4.7     && < 5
 
 test-suite amazonka-elasticache-test
@@ -119,9 +119,9 @@
         , Test.AWS.ElastiCache.Internal
 
     build-depends:
-          amazonka-core == 1.3.7.*
-        , amazonka-test == 1.3.7.*
-        , amazonka-elasticache == 1.3.7.*
+          amazonka-core == 1.4.0.*
+        , amazonka-test == 1.4.0.*
+        , amazonka-elasticache == 1.4.0.*
         , base
         , bytestring
         , tasty
diff --git a/gen/Network/AWS/ElastiCache.hs b/gen/Network/AWS/ElastiCache.hs
--- a/gen/Network/AWS/ElastiCache.hs
+++ b/gen/Network/AWS/ElastiCache.hs
@@ -5,7 +5,7 @@
 
 -- |
 -- Module      : Network.AWS.ElastiCache
--- 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 @@
 -- In addition, through integration with Amazon CloudWatch, customers get
 -- enhanced visibility into the key performance statistics associated with
 -- their cache and can receive alarms if a part of their cache runs hot.
---
--- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/Welcome.html AWS API Reference>
 module Network.AWS.ElastiCache
     (
     -- * Service Configuration
diff --git a/gen/Network/AWS/ElastiCache/AddTagsToResource.hs b/gen/Network/AWS/ElastiCache/AddTagsToResource.hs
--- a/gen/Network/AWS/ElastiCache/AddTagsToResource.hs
+++ b/gen/Network/AWS/ElastiCache/AddTagsToResource.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.ElastiCache.AddTagsToResource
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -30,8 +30,6 @@
 -- to organize your costs across multiple services. For more information,
 -- see
 -- <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/Tagging.html Using Cost Allocation Tags in Amazon ElastiCache>.
---
--- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_AddTagsToResource.html AWS API Reference> for AddTagsToResource.
 module Network.AWS.ElastiCache.AddTagsToResource
     (
     -- * Creating a Request
@@ -95,6 +93,8 @@
         response
           = receiveXMLWrapper "AddTagsToResourceResult"
               (\ s h x -> parseXML x)
+
+instance Hashable AddTagsToResource
 
 instance ToHeaders AddTagsToResource where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/ElastiCache/AuthorizeCacheSecurityGroupIngress.hs b/gen/Network/AWS/ElastiCache/AuthorizeCacheSecurityGroupIngress.hs
--- a/gen/Network/AWS/ElastiCache/AuthorizeCacheSecurityGroupIngress.hs
+++ b/gen/Network/AWS/ElastiCache/AuthorizeCacheSecurityGroupIngress.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.ElastiCache.AuthorizeCacheSecurityGroupIngress
--- 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 @@
 --
 -- You cannot authorize ingress from an Amazon EC2 security group in one
 -- region to an ElastiCache cluster in another region.
---
--- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_AuthorizeCacheSecurityGroupIngress.html AWS API Reference> for AuthorizeCacheSecurityGroupIngress.
 module Network.AWS.ElastiCache.AuthorizeCacheSecurityGroupIngress
     (
     -- * Creating a Request
@@ -108,6 +106,8 @@
               (\ s h x ->
                  AuthorizeCacheSecurityGroupIngressResponse' <$>
                    (x .@? "CacheSecurityGroup") <*> (pure (fromEnum s)))
+
+instance Hashable AuthorizeCacheSecurityGroupIngress
 
 instance ToHeaders AuthorizeCacheSecurityGroupIngress
          where
diff --git a/gen/Network/AWS/ElastiCache/CopySnapshot.hs b/gen/Network/AWS/ElastiCache/CopySnapshot.hs
--- a/gen/Network/AWS/ElastiCache/CopySnapshot.hs
+++ b/gen/Network/AWS/ElastiCache/CopySnapshot.hs
@@ -12,15 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.ElastiCache.CopySnapshot
--- 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)
 --
 -- The /CopySnapshot/ action makes a copy of an existing snapshot.
---
--- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CopySnapshot.html AWS API Reference> for CopySnapshot.
 module Network.AWS.ElastiCache.CopySnapshot
     (
     -- * Creating a Request
@@ -86,6 +84,8 @@
               (\ s h x ->
                  CopySnapshotResponse' <$>
                    (x .@? "Snapshot") <*> (pure (fromEnum s)))
+
+instance Hashable CopySnapshot
 
 instance ToHeaders CopySnapshot where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/ElastiCache/CreateCacheCluster.hs b/gen/Network/AWS/ElastiCache/CreateCacheCluster.hs
--- a/gen/Network/AWS/ElastiCache/CreateCacheCluster.hs
+++ b/gen/Network/AWS/ElastiCache/CreateCacheCluster.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.ElastiCache.CreateCacheCluster
--- 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 @@
 -- The /CreateCacheCluster/ action creates a cache cluster. All nodes in
 -- the cache cluster run the same protocol-compliant cache engine software,
 -- either Memcached or Redis.
---
--- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateCacheCluster.html AWS API Reference> for CreateCacheCluster.
 module Network.AWS.ElastiCache.CreateCacheCluster
     (
     -- * Creating a Request
@@ -426,6 +424,8 @@
               (\ s h x ->
                  CreateCacheClusterResponse' <$>
                    (x .@? "CacheCluster") <*> (pure (fromEnum s)))
+
+instance Hashable CreateCacheCluster
 
 instance ToHeaders CreateCacheCluster where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/ElastiCache/CreateCacheParameterGroup.hs b/gen/Network/AWS/ElastiCache/CreateCacheParameterGroup.hs
--- a/gen/Network/AWS/ElastiCache/CreateCacheParameterGroup.hs
+++ b/gen/Network/AWS/ElastiCache/CreateCacheParameterGroup.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.ElastiCache.CreateCacheParameterGroup
--- 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 @@
 -- The /CreateCacheParameterGroup/ action creates a new cache parameter
 -- group. A cache parameter group is a collection of parameters that you
 -- apply to all of the nodes in a cache cluster.
---
--- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateCacheParameterGroup.html AWS API Reference> for CreateCacheParameterGroup.
 module Network.AWS.ElastiCache.CreateCacheParameterGroup
     (
     -- * Creating a Request
@@ -103,6 +101,8 @@
                  CreateCacheParameterGroupResponse' <$>
                    (x .@? "CacheParameterGroup") <*>
                      (pure (fromEnum s)))
+
+instance Hashable CreateCacheParameterGroup
 
 instance ToHeaders CreateCacheParameterGroup where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/ElastiCache/CreateCacheSecurityGroup.hs b/gen/Network/AWS/ElastiCache/CreateCacheSecurityGroup.hs
--- a/gen/Network/AWS/ElastiCache/CreateCacheSecurityGroup.hs
+++ b/gen/Network/AWS/ElastiCache/CreateCacheSecurityGroup.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.ElastiCache.CreateCacheSecurityGroup
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -27,8 +27,6 @@
 -- creating a cache cluster inside of a VPC, use a cache subnet group
 -- instead. For more information, see
 -- <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateCacheSubnetGroup.html CreateCacheSubnetGroup>.
---
--- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateCacheSecurityGroup.html AWS API Reference> for CreateCacheSecurityGroup.
 module Network.AWS.ElastiCache.CreateCacheSecurityGroup
     (
     -- * Creating a Request
@@ -101,6 +99,8 @@
               (\ s h x ->
                  CreateCacheSecurityGroupResponse' <$>
                    (x .@? "CacheSecurityGroup") <*> (pure (fromEnum s)))
+
+instance Hashable CreateCacheSecurityGroup
 
 instance ToHeaders CreateCacheSecurityGroup where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/ElastiCache/CreateCacheSubnetGroup.hs b/gen/Network/AWS/ElastiCache/CreateCacheSubnetGroup.hs
--- a/gen/Network/AWS/ElastiCache/CreateCacheSubnetGroup.hs
+++ b/gen/Network/AWS/ElastiCache/CreateCacheSubnetGroup.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.ElastiCache.CreateCacheSubnetGroup
--- 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 @@
 --
 -- Use this parameter only when you are creating a cluster in an Amazon
 -- Virtual Private Cloud (VPC).
---
--- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateCacheSubnetGroup.html AWS API Reference> for CreateCacheSubnetGroup.
 module Network.AWS.ElastiCache.CreateCacheSubnetGroup
     (
     -- * Creating a Request
@@ -105,6 +103,8 @@
               (\ s h x ->
                  CreateCacheSubnetGroupResponse' <$>
                    (x .@? "CacheSubnetGroup") <*> (pure (fromEnum s)))
+
+instance Hashable CreateCacheSubnetGroup
 
 instance ToHeaders CreateCacheSubnetGroup where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/ElastiCache/CreateReplicationGroup.hs b/gen/Network/AWS/ElastiCache/CreateReplicationGroup.hs
--- a/gen/Network/AWS/ElastiCache/CreateReplicationGroup.hs
+++ b/gen/Network/AWS/ElastiCache/CreateReplicationGroup.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.ElastiCache.CreateReplicationGroup
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -30,8 +30,6 @@
 -- it, up to a total of five read replicas.
 --
 -- __Note:__ This action is valid only for Redis.
---
--- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateReplicationGroup.html AWS API Reference> for CreateReplicationGroup.
 module Network.AWS.ElastiCache.CreateReplicationGroup
     (
     -- * Creating a Request
@@ -415,6 +413,8 @@
               (\ s h x ->
                  CreateReplicationGroupResponse' <$>
                    (x .@? "ReplicationGroup") <*> (pure (fromEnum s)))
+
+instance Hashable CreateReplicationGroup
 
 instance ToHeaders CreateReplicationGroup where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/ElastiCache/CreateSnapshot.hs b/gen/Network/AWS/ElastiCache/CreateSnapshot.hs
--- a/gen/Network/AWS/ElastiCache/CreateSnapshot.hs
+++ b/gen/Network/AWS/ElastiCache/CreateSnapshot.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.ElastiCache.CreateSnapshot
--- 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 @@
 --
 -- The /CreateSnapshot/ action creates a copy of an entire cache cluster at
 -- a specific moment in time.
---
--- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateSnapshot.html AWS API Reference> for CreateSnapshot.
 module Network.AWS.ElastiCache.CreateSnapshot
     (
     -- * Creating a Request
@@ -88,6 +86,8 @@
               (\ s h x ->
                  CreateSnapshotResponse' <$>
                    (x .@? "Snapshot") <*> (pure (fromEnum s)))
+
+instance Hashable CreateSnapshot
 
 instance ToHeaders CreateSnapshot where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/ElastiCache/DeleteCacheCluster.hs b/gen/Network/AWS/ElastiCache/DeleteCacheCluster.hs
--- a/gen/Network/AWS/ElastiCache/DeleteCacheCluster.hs
+++ b/gen/Network/AWS/ElastiCache/DeleteCacheCluster.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.ElastiCache.DeleteCacheCluster
--- 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 @@
 --
 -- This API cannot be used to delete a cache cluster that is the last read
 -- replica of a replication group that has Multi-AZ mode enabled.
---
--- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DeleteCacheCluster.html AWS API Reference> for DeleteCacheCluster.
 module Network.AWS.ElastiCache.DeleteCacheCluster
     (
     -- * Creating a Request
@@ -96,6 +94,8 @@
               (\ s h x ->
                  DeleteCacheClusterResponse' <$>
                    (x .@? "CacheCluster") <*> (pure (fromEnum s)))
+
+instance Hashable DeleteCacheCluster
 
 instance ToHeaders DeleteCacheCluster where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/ElastiCache/DeleteCacheParameterGroup.hs b/gen/Network/AWS/ElastiCache/DeleteCacheParameterGroup.hs
--- a/gen/Network/AWS/ElastiCache/DeleteCacheParameterGroup.hs
+++ b/gen/Network/AWS/ElastiCache/DeleteCacheParameterGroup.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.ElastiCache.DeleteCacheParameterGroup
--- 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 @@
 -- The /DeleteCacheParameterGroup/ action deletes the specified cache
 -- parameter group. You cannot delete a cache parameter group if it is
 -- associated with any cache clusters.
---
--- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DeleteCacheParameterGroup.html AWS API Reference> for DeleteCacheParameterGroup.
 module Network.AWS.ElastiCache.DeleteCacheParameterGroup
     (
     -- * Creating a Request
@@ -76,6 +74,8 @@
         request = postQuery elastiCache
         response
           = receiveNull DeleteCacheParameterGroupResponse'
+
+instance Hashable DeleteCacheParameterGroup
 
 instance ToHeaders DeleteCacheParameterGroup where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/ElastiCache/DeleteCacheSecurityGroup.hs b/gen/Network/AWS/ElastiCache/DeleteCacheSecurityGroup.hs
--- a/gen/Network/AWS/ElastiCache/DeleteCacheSecurityGroup.hs
+++ b/gen/Network/AWS/ElastiCache/DeleteCacheSecurityGroup.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.ElastiCache.DeleteCacheSecurityGroup
--- 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 @@
 --
 -- You cannot delete a cache security group if it is associated with any
 -- cache clusters.
---
--- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DeleteCacheSecurityGroup.html AWS API Reference> for DeleteCacheSecurityGroup.
 module Network.AWS.ElastiCache.DeleteCacheSecurityGroup
     (
     -- * Creating a Request
@@ -76,6 +74,8 @@
         request = postQuery elastiCache
         response
           = receiveNull DeleteCacheSecurityGroupResponse'
+
+instance Hashable DeleteCacheSecurityGroup
 
 instance ToHeaders DeleteCacheSecurityGroup where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/ElastiCache/DeleteCacheSubnetGroup.hs b/gen/Network/AWS/ElastiCache/DeleteCacheSubnetGroup.hs
--- a/gen/Network/AWS/ElastiCache/DeleteCacheSubnetGroup.hs
+++ b/gen/Network/AWS/ElastiCache/DeleteCacheSubnetGroup.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.ElastiCache.DeleteCacheSubnetGroup
--- 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 @@
 --
 -- You cannot delete a cache subnet group if it is associated with any
 -- cache clusters.
---
--- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DeleteCacheSubnetGroup.html AWS API Reference> for DeleteCacheSubnetGroup.
 module Network.AWS.ElastiCache.DeleteCacheSubnetGroup
     (
     -- * Creating a Request
@@ -77,6 +75,8 @@
         request = postQuery elastiCache
         response
           = receiveNull DeleteCacheSubnetGroupResponse'
+
+instance Hashable DeleteCacheSubnetGroup
 
 instance ToHeaders DeleteCacheSubnetGroup where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/ElastiCache/DeleteReplicationGroup.hs b/gen/Network/AWS/ElastiCache/DeleteReplicationGroup.hs
--- a/gen/Network/AWS/ElastiCache/DeleteReplicationGroup.hs
+++ b/gen/Network/AWS/ElastiCache/DeleteReplicationGroup.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.ElastiCache.DeleteReplicationGroup
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -27,8 +27,6 @@
 -- When you receive a successful response from this action, Amazon
 -- ElastiCache immediately begins deleting the selected resources; you
 -- cannot cancel or revert this action.
---
--- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DeleteReplicationGroup.html AWS API Reference> for DeleteReplicationGroup.
 module Network.AWS.ElastiCache.DeleteReplicationGroup
     (
     -- * Creating a Request
@@ -108,6 +106,8 @@
               (\ s h x ->
                  DeleteReplicationGroupResponse' <$>
                    (x .@? "ReplicationGroup") <*> (pure (fromEnum s)))
+
+instance Hashable DeleteReplicationGroup
 
 instance ToHeaders DeleteReplicationGroup where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/ElastiCache/DeleteSnapshot.hs b/gen/Network/AWS/ElastiCache/DeleteSnapshot.hs
--- a/gen/Network/AWS/ElastiCache/DeleteSnapshot.hs
+++ b/gen/Network/AWS/ElastiCache/DeleteSnapshot.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.ElastiCache.DeleteSnapshot
--- 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 @@
 -- The /DeleteSnapshot/ action deletes an existing snapshot. When you
 -- receive a successful response from this action, ElastiCache immediately
 -- begins deleting the snapshot; you cannot cancel or revert this action.
---
--- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DeleteSnapshot.html AWS API Reference> for DeleteSnapshot.
 module Network.AWS.ElastiCache.DeleteSnapshot
     (
     -- * Creating a Request
@@ -78,6 +76,8 @@
               (\ s h x ->
                  DeleteSnapshotResponse' <$>
                    (x .@? "Snapshot") <*> (pure (fromEnum s)))
+
+instance Hashable DeleteSnapshot
 
 instance ToHeaders DeleteSnapshot where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/ElastiCache/DescribeCacheClusters.hs b/gen/Network/AWS/ElastiCache/DescribeCacheClusters.hs
--- a/gen/Network/AWS/ElastiCache/DescribeCacheClusters.hs
+++ b/gen/Network/AWS/ElastiCache/DescribeCacheClusters.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.ElastiCache.DescribeCacheClusters
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -43,8 +43,6 @@
 -- If cache nodes are currently being removed from the cache cluster, no
 -- endpoint information for the removed nodes is displayed.
 --
--- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeCacheClusters.html AWS API Reference> for DescribeCacheClusters.
---
 -- This operation returns paginated results.
 module Network.AWS.ElastiCache.DescribeCacheClusters
     (
@@ -151,6 +149,8 @@
                       may (parseXMLList "CacheCluster"))
                      <*> (x .@? "Marker")
                      <*> (pure (fromEnum s)))
+
+instance Hashable DescribeCacheClusters
 
 instance ToHeaders DescribeCacheClusters where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/ElastiCache/DescribeCacheEngineVersions.hs b/gen/Network/AWS/ElastiCache/DescribeCacheEngineVersions.hs
--- a/gen/Network/AWS/ElastiCache/DescribeCacheEngineVersions.hs
+++ b/gen/Network/AWS/ElastiCache/DescribeCacheEngineVersions.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.ElastiCache.DescribeCacheEngineVersions
--- 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 @@
 -- The /DescribeCacheEngineVersions/ action returns a list of the available
 -- cache engines and their versions.
 --
--- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeCacheEngineVersions.html AWS API Reference> for DescribeCacheEngineVersions.
---
 -- This operation returns paginated results.
 module Network.AWS.ElastiCache.DescribeCacheEngineVersions
     (
@@ -157,6 +155,8 @@
                      <*> (x .@? "Marker")
                      <*> (pure (fromEnum s)))
 
+instance Hashable DescribeCacheEngineVersions
+
 instance ToHeaders DescribeCacheEngineVersions where
         toHeaders = const mempty
 
@@ -176,7 +176,7 @@
                "Engine" =: _dcevEngine, "Marker" =: _dcevMarker,
                "MaxRecords" =: _dcevMaxRecords]
 
--- | Represents the output of a DescribeCacheEngineVersions action.
+-- | Represents the output of a < DescribeCacheEngineVersions> action.
 --
 -- /See:/ 'describeCacheEngineVersionsResponse' smart constructor.
 data DescribeCacheEngineVersionsResponse = DescribeCacheEngineVersionsResponse'
diff --git a/gen/Network/AWS/ElastiCache/DescribeCacheParameterGroups.hs b/gen/Network/AWS/ElastiCache/DescribeCacheParameterGroups.hs
--- a/gen/Network/AWS/ElastiCache/DescribeCacheParameterGroups.hs
+++ b/gen/Network/AWS/ElastiCache/DescribeCacheParameterGroups.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.ElastiCache.DescribeCacheParameterGroups
--- 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 @@
 -- parameter group descriptions. If a cache parameter group name is
 -- specified, the list will contain only the descriptions for that group.
 --
--- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeCacheParameterGroups.html AWS API Reference> for DescribeCacheParameterGroups.
---
 -- This operation returns paginated results.
 module Network.AWS.ElastiCache.DescribeCacheParameterGroups
     (
@@ -121,6 +119,8 @@
                       may (parseXMLList "CacheParameterGroup"))
                      <*> (x .@? "Marker")
                      <*> (pure (fromEnum s)))
+
+instance Hashable DescribeCacheParameterGroups
 
 instance ToHeaders DescribeCacheParameterGroups where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/ElastiCache/DescribeCacheParameters.hs b/gen/Network/AWS/ElastiCache/DescribeCacheParameters.hs
--- a/gen/Network/AWS/ElastiCache/DescribeCacheParameters.hs
+++ b/gen/Network/AWS/ElastiCache/DescribeCacheParameters.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.ElastiCache.DescribeCacheParameters
--- 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 @@
 -- The /DescribeCacheParameters/ action returns the detailed parameter list
 -- for a particular cache parameter group.
 --
--- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeCacheParameters.html AWS API Reference> for DescribeCacheParameters.
---
 -- This operation returns paginated results.
 module Network.AWS.ElastiCache.DescribeCacheParameters
     (
@@ -136,6 +134,8 @@
                         may (parseXMLList "Parameter"))
                      <*> (pure (fromEnum s)))
 
+instance Hashable DescribeCacheParameters
+
 instance ToHeaders DescribeCacheParameters where
         toHeaders = const mempty
 
@@ -195,7 +195,7 @@
 dcprsMarker :: Lens' DescribeCacheParametersResponse (Maybe Text)
 dcprsMarker = lens _dcprsMarker (\ s a -> s{_dcprsMarker = a});
 
--- | A list of Parameter instances.
+-- | A list of < Parameter> instances.
 dcprsParameters :: Lens' DescribeCacheParametersResponse [Parameter]
 dcprsParameters = lens _dcprsParameters (\ s a -> s{_dcprsParameters = a}) . _Default . _Coerce;
 
diff --git a/gen/Network/AWS/ElastiCache/DescribeCacheSecurityGroups.hs b/gen/Network/AWS/ElastiCache/DescribeCacheSecurityGroups.hs
--- a/gen/Network/AWS/ElastiCache/DescribeCacheSecurityGroups.hs
+++ b/gen/Network/AWS/ElastiCache/DescribeCacheSecurityGroups.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.ElastiCache.DescribeCacheSecurityGroups
--- 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 @@
 -- security group descriptions. If a cache security group name is
 -- specified, the list will contain only the description of that group.
 --
--- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeCacheSecurityGroups.html AWS API Reference> for DescribeCacheSecurityGroups.
---
 -- This operation returns paginated results.
 module Network.AWS.ElastiCache.DescribeCacheSecurityGroups
     (
@@ -120,6 +118,8 @@
                       may (parseXMLList "CacheSecurityGroup"))
                      <*> (x .@? "Marker")
                      <*> (pure (fromEnum s)))
+
+instance Hashable DescribeCacheSecurityGroups
 
 instance ToHeaders DescribeCacheSecurityGroups where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/ElastiCache/DescribeCacheSubnetGroups.hs b/gen/Network/AWS/ElastiCache/DescribeCacheSubnetGroups.hs
--- a/gen/Network/AWS/ElastiCache/DescribeCacheSubnetGroups.hs
+++ b/gen/Network/AWS/ElastiCache/DescribeCacheSubnetGroups.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.ElastiCache.DescribeCacheSubnetGroups
--- 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 @@
 -- group descriptions. If a subnet group name is specified, the list will
 -- contain only the description of that group.
 --
--- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeCacheSubnetGroups.html AWS API Reference> for DescribeCacheSubnetGroups.
---
 -- This operation returns paginated results.
 module Network.AWS.ElastiCache.DescribeCacheSubnetGroups
     (
@@ -119,6 +117,8 @@
                      (x .@? "CacheSubnetGroups" .!@ mempty >>=
                         may (parseXMLList "CacheSubnetGroup"))
                      <*> (pure (fromEnum s)))
+
+instance Hashable DescribeCacheSubnetGroups
 
 instance ToHeaders DescribeCacheSubnetGroups where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/ElastiCache/DescribeEngineDefaultParameters.hs b/gen/Network/AWS/ElastiCache/DescribeEngineDefaultParameters.hs
--- a/gen/Network/AWS/ElastiCache/DescribeEngineDefaultParameters.hs
+++ b/gen/Network/AWS/ElastiCache/DescribeEngineDefaultParameters.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.ElastiCache.DescribeEngineDefaultParameters
--- 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 @@
 -- The /DescribeEngineDefaultParameters/ action returns the default engine
 -- and system parameter information for the specified cache engine.
 --
--- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeEngineDefaultParameters.html AWS API Reference> for DescribeEngineDefaultParameters.
---
 -- This operation returns paginated results.
 module Network.AWS.ElastiCache.DescribeEngineDefaultParameters
     (
@@ -124,6 +122,8 @@
               (\ s h x ->
                  DescribeEngineDefaultParametersResponse' <$>
                    (pure (fromEnum s)) <*> (x .@ "EngineDefaults"))
+
+instance Hashable DescribeEngineDefaultParameters
 
 instance ToHeaders DescribeEngineDefaultParameters
          where
diff --git a/gen/Network/AWS/ElastiCache/DescribeEvents.hs b/gen/Network/AWS/ElastiCache/DescribeEvents.hs
--- a/gen/Network/AWS/ElastiCache/DescribeEvents.hs
+++ b/gen/Network/AWS/ElastiCache/DescribeEvents.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.ElastiCache.DescribeEvents
--- 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 @@
 -- By default, only the events occurring within the last hour are returned;
 -- however, you can retrieve up to 14 days\' worth of events if necessary.
 --
--- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeEvents.html AWS API Reference> for DescribeEvents.
---
 -- This operation returns paginated results.
 module Network.AWS.ElastiCache.DescribeEvents
     (
@@ -165,6 +163,8 @@
                       may (parseXMLList "Event"))
                      <*> (x .@? "Marker")
                      <*> (pure (fromEnum s)))
+
+instance Hashable DescribeEvents
 
 instance ToHeaders DescribeEvents where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/ElastiCache/DescribeReplicationGroups.hs b/gen/Network/AWS/ElastiCache/DescribeReplicationGroups.hs
--- a/gen/Network/AWS/ElastiCache/DescribeReplicationGroups.hs
+++ b/gen/Network/AWS/ElastiCache/DescribeReplicationGroups.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.ElastiCache.DescribeReplicationGroups
--- 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 @@
 -- /DescribeReplicationGroups/ returns information about all replication
 -- groups.
 --
--- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeReplicationGroups.html AWS API Reference> for DescribeReplicationGroups.
---
 -- This operation returns paginated results.
 module Network.AWS.ElastiCache.DescribeReplicationGroups
     (
@@ -124,6 +122,8 @@
                      (x .@? "ReplicationGroups" .!@ mempty >>=
                         may (parseXMLList "ReplicationGroup"))
                      <*> (pure (fromEnum s)))
+
+instance Hashable DescribeReplicationGroups
 
 instance ToHeaders DescribeReplicationGroups where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/ElastiCache/DescribeReservedCacheNodes.hs b/gen/Network/AWS/ElastiCache/DescribeReservedCacheNodes.hs
--- a/gen/Network/AWS/ElastiCache/DescribeReservedCacheNodes.hs
+++ b/gen/Network/AWS/ElastiCache/DescribeReservedCacheNodes.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.ElastiCache.DescribeReservedCacheNodes
--- 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 @@
 -- reserved cache nodes for this account, or about a specified reserved
 -- cache node.
 --
--- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeReservedCacheNodes.html AWS API Reference> for DescribeReservedCacheNodes.
---
 -- This operation returns paginated results.
 module Network.AWS.ElastiCache.DescribeReservedCacheNodes
     (
@@ -206,6 +204,8 @@
                      (x .@? "ReservedCacheNodes" .!@ mempty >>=
                         may (parseXMLList "ReservedCacheNode"))
                      <*> (pure (fromEnum s)))
+
+instance Hashable DescribeReservedCacheNodes
 
 instance ToHeaders DescribeReservedCacheNodes where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/ElastiCache/DescribeReservedCacheNodesOfferings.hs b/gen/Network/AWS/ElastiCache/DescribeReservedCacheNodesOfferings.hs
--- a/gen/Network/AWS/ElastiCache/DescribeReservedCacheNodesOfferings.hs
+++ b/gen/Network/AWS/ElastiCache/DescribeReservedCacheNodesOfferings.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.ElastiCache.DescribeReservedCacheNodesOfferings
--- 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 @@
 -- The /DescribeReservedCacheNodesOfferings/ action lists available
 -- reserved cache node offerings.
 --
--- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeReservedCacheNodesOfferings.html AWS API Reference> for DescribeReservedCacheNodesOfferings.
---
 -- This operation returns paginated results.
 module Network.AWS.ElastiCache.DescribeReservedCacheNodesOfferings
     (
@@ -201,6 +199,8 @@
                      (x .@? "ReservedCacheNodesOfferings" .!@ mempty >>=
                         may (parseXMLList "ReservedCacheNodesOffering"))
                      <*> (pure (fromEnum s)))
+
+instance Hashable DescribeReservedCacheNodesOfferings
 
 instance ToHeaders
          DescribeReservedCacheNodesOfferings where
diff --git a/gen/Network/AWS/ElastiCache/DescribeSnapshots.hs b/gen/Network/AWS/ElastiCache/DescribeSnapshots.hs
--- a/gen/Network/AWS/ElastiCache/DescribeSnapshots.hs
+++ b/gen/Network/AWS/ElastiCache/DescribeSnapshots.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.ElastiCache.DescribeSnapshots
--- 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 @@
 -- it can optionally describe a single snapshot, or just the snapshots
 -- associated with a particular cache cluster.
 --
--- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeSnapshots.html AWS API Reference> for DescribeSnapshots.
---
 -- This operation returns paginated results.
 module Network.AWS.ElastiCache.DescribeSnapshots
     (
@@ -142,6 +140,8 @@
                       may (parseXMLList "Snapshot"))
                      <*> (x .@? "Marker")
                      <*> (pure (fromEnum s)))
+
+instance Hashable DescribeSnapshots
 
 instance ToHeaders DescribeSnapshots where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/ElastiCache/ListTagsForResource.hs b/gen/Network/AWS/ElastiCache/ListTagsForResource.hs
--- a/gen/Network/AWS/ElastiCache/ListTagsForResource.hs
+++ b/gen/Network/AWS/ElastiCache/ListTagsForResource.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.ElastiCache.ListTagsForResource
--- 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 @@
 -- You can have a maximum of 10 cost allocation tags on an ElastiCache
 -- resource. For more information, see
 -- <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/BestPractices.html Using Cost Allocation Tags in Amazon ElastiCache>.
---
--- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ListTagsForResource.html AWS API Reference> for ListTagsForResource.
 module Network.AWS.ElastiCache.ListTagsForResource
     (
     -- * Creating a Request
@@ -81,6 +79,8 @@
         response
           = receiveXMLWrapper "ListTagsForResourceResult"
               (\ s h x -> parseXML x)
+
+instance Hashable ListTagsForResource
 
 instance ToHeaders ListTagsForResource where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/ElastiCache/ModifyCacheCluster.hs b/gen/Network/AWS/ElastiCache/ModifyCacheCluster.hs
--- a/gen/Network/AWS/ElastiCache/ModifyCacheCluster.hs
+++ b/gen/Network/AWS/ElastiCache/ModifyCacheCluster.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.ElastiCache.ModifyCacheCluster
--- 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 @@
 -- cluster. You can use this action to change one or more cluster
 -- configuration parameters by specifying the parameters and the new
 -- values.
---
--- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheCluster.html AWS API Reference> for ModifyCacheCluster.
 module Network.AWS.ElastiCache.ModifyCacheCluster
     (
     -- * Creating a Request
@@ -183,13 +181,13 @@
 -- Scenarios:
 --
 -- -   __Scenario 1:__ You have 3 active nodes and wish to add 2 nodes.
---      Specify 'NumCacheNodes=5' (3 + 2) and optionally specify two
+--     Specify 'NumCacheNodes=5' (3 + 2) and optionally specify two
 --     Availability Zones for the two new nodes.
 -- -   __Scenario 2:__ You have 3 active nodes and 2 nodes pending creation
 --     (from the scenario 1 call) and want to add 1 more node.
---      Specify 'NumCacheNodes=6' ((3 + 2) + 1)
+--     Specify 'NumCacheNodes=6' ((3 + 2) + 1)
 -- -   __Scenario 3:__ You want to cancel all pending actions.
---      Specify 'NumCacheNodes=3' to cancel all pending actions.
+--     Specify 'NumCacheNodes=3' to cancel all pending actions.
 --
 -- The Availability Zone placement of nodes pending creation cannot be
 -- modified. If you wish to cancel any nodes pending creation, add 0 nodes
@@ -214,7 +212,7 @@
 -- >   Scenario-3   Create           Delete        The new delete, pending or immediate, replaces the pending create.
 -- >
 -- >   Scenario-4   Create           Create        The new create is added to the pending create.
--- >                                                __Important:__
+-- >                                               __Important:__
 -- >                                               If the new create request is __Apply Immediately - Yes__, all creates are performed immediately. If the new create request is __Apply Immediately - No__, all creates are pending.
 -- >   --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 --
@@ -334,8 +332,8 @@
 -- __Note:__
 -- Adding or removing Memcached cache nodes can be applied immediately or
 -- as a pending action. See 'ApplyImmediately'.
---  A pending action to modify the number of cache nodes in a cluster
--- during its maintenance window, whether by adding or removing nodes in
+-- A pending action to modify the number of cache nodes in a cluster during
+-- its maintenance window, whether by adding or removing nodes in
 -- accordance with the scale out architecture, is not queued. The
 -- customer\'s latest request to add or remove nodes to the cluster
 -- overrides any previous pending actions to modify the number of cache
@@ -379,6 +377,8 @@
               (\ s h x ->
                  ModifyCacheClusterResponse' <$>
                    (x .@? "CacheCluster") <*> (pure (fromEnum s)))
+
+instance Hashable ModifyCacheCluster
 
 instance ToHeaders ModifyCacheCluster where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/ElastiCache/ModifyCacheParameterGroup.hs b/gen/Network/AWS/ElastiCache/ModifyCacheParameterGroup.hs
--- a/gen/Network/AWS/ElastiCache/ModifyCacheParameterGroup.hs
+++ b/gen/Network/AWS/ElastiCache/ModifyCacheParameterGroup.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.ElastiCache.ModifyCacheParameterGroup
--- 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 @@
 -- The /ModifyCacheParameterGroup/ action modifies the parameters of a
 -- cache parameter group. You can modify up to 20 parameters in a single
 -- request by submitting a list parameter name and value pairs.
---
--- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheParameterGroup.html AWS API Reference> for ModifyCacheParameterGroup.
 module Network.AWS.ElastiCache.ModifyCacheParameterGroup
     (
     -- * Creating a Request
@@ -87,6 +85,8 @@
         response
           = receiveXMLWrapper "ModifyCacheParameterGroupResult"
               (\ s h x -> parseXML x)
+
+instance Hashable ModifyCacheParameterGroup
 
 instance ToHeaders ModifyCacheParameterGroup where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/ElastiCache/ModifyCacheSubnetGroup.hs b/gen/Network/AWS/ElastiCache/ModifyCacheSubnetGroup.hs
--- a/gen/Network/AWS/ElastiCache/ModifyCacheSubnetGroup.hs
+++ b/gen/Network/AWS/ElastiCache/ModifyCacheSubnetGroup.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.ElastiCache.ModifyCacheSubnetGroup
--- 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 @@
 --
 -- The /ModifyCacheSubnetGroup/ action modifies an existing cache subnet
 -- group.
---
--- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheSubnetGroup.html AWS API Reference> for ModifyCacheSubnetGroup.
 module Network.AWS.ElastiCache.ModifyCacheSubnetGroup
     (
     -- * Creating a Request
@@ -102,6 +100,8 @@
               (\ s h x ->
                  ModifyCacheSubnetGroupResponse' <$>
                    (x .@? "CacheSubnetGroup") <*> (pure (fromEnum s)))
+
+instance Hashable ModifyCacheSubnetGroup
 
 instance ToHeaders ModifyCacheSubnetGroup where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/ElastiCache/ModifyReplicationGroup.hs b/gen/Network/AWS/ElastiCache/ModifyReplicationGroup.hs
--- a/gen/Network/AWS/ElastiCache/ModifyReplicationGroup.hs
+++ b/gen/Network/AWS/ElastiCache/ModifyReplicationGroup.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.ElastiCache.ModifyReplicationGroup
--- 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 @@
 --
 -- The /ModifyReplicationGroup/ action modifies the settings for a
 -- replication group.
---
--- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyReplicationGroup.html AWS API Reference> for ModifyReplicationGroup.
 module Network.AWS.ElastiCache.ModifyReplicationGroup
     (
     -- * Creating a Request
@@ -285,6 +283,8 @@
               (\ s h x ->
                  ModifyReplicationGroupResponse' <$>
                    (x .@? "ReplicationGroup") <*> (pure (fromEnum s)))
+
+instance Hashable ModifyReplicationGroup
 
 instance ToHeaders ModifyReplicationGroup where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/ElastiCache/PurchaseReservedCacheNodesOffering.hs b/gen/Network/AWS/ElastiCache/PurchaseReservedCacheNodesOffering.hs
--- a/gen/Network/AWS/ElastiCache/PurchaseReservedCacheNodesOffering.hs
+++ b/gen/Network/AWS/ElastiCache/PurchaseReservedCacheNodesOffering.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.ElastiCache.PurchaseReservedCacheNodesOffering
--- 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 @@
 --
 -- The /PurchaseReservedCacheNodesOffering/ action allows you to purchase a
 -- reserved cache node offering.
---
--- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_PurchaseReservedCacheNodesOffering.html AWS API Reference> for PurchaseReservedCacheNodesOffering.
 module Network.AWS.ElastiCache.PurchaseReservedCacheNodesOffering
     (
     -- * Creating a Request
@@ -104,6 +102,8 @@
               (\ s h x ->
                  PurchaseReservedCacheNodesOfferingResponse' <$>
                    (x .@? "ReservedCacheNode") <*> (pure (fromEnum s)))
+
+instance Hashable PurchaseReservedCacheNodesOffering
 
 instance ToHeaders PurchaseReservedCacheNodesOffering
          where
diff --git a/gen/Network/AWS/ElastiCache/RebootCacheCluster.hs b/gen/Network/AWS/ElastiCache/RebootCacheCluster.hs
--- a/gen/Network/AWS/ElastiCache/RebootCacheCluster.hs
+++ b/gen/Network/AWS/ElastiCache/RebootCacheCluster.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.ElastiCache.RebootCacheCluster
--- 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 @@
 -- rebooted) to be lost.
 --
 -- When the reboot is complete, a cache cluster event is created.
---
--- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_RebootCacheCluster.html AWS API Reference> for RebootCacheCluster.
 module Network.AWS.ElastiCache.RebootCacheCluster
     (
     -- * Creating a Request
@@ -99,6 +97,8 @@
               (\ s h x ->
                  RebootCacheClusterResponse' <$>
                    (x .@? "CacheCluster") <*> (pure (fromEnum s)))
+
+instance Hashable RebootCacheCluster
 
 instance ToHeaders RebootCacheCluster where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/ElastiCache/RemoveTagsFromResource.hs b/gen/Network/AWS/ElastiCache/RemoveTagsFromResource.hs
--- a/gen/Network/AWS/ElastiCache/RemoveTagsFromResource.hs
+++ b/gen/Network/AWS/ElastiCache/RemoveTagsFromResource.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.ElastiCache.RemoveTagsFromResource
--- 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 @@
 --
 -- The /RemoveTagsFromResource/ action removes the tags identified by the
 -- 'TagKeys' list from the named resource.
---
--- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_RemoveTagsFromResource.html AWS API Reference> for RemoveTagsFromResource.
 module Network.AWS.ElastiCache.RemoveTagsFromResource
     (
     -- * Creating a Request
@@ -88,6 +86,8 @@
         response
           = receiveXMLWrapper "RemoveTagsFromResourceResult"
               (\ s h x -> parseXML x)
+
+instance Hashable RemoveTagsFromResource
 
 instance ToHeaders RemoveTagsFromResource where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/ElastiCache/ResetCacheParameterGroup.hs b/gen/Network/AWS/ElastiCache/ResetCacheParameterGroup.hs
--- a/gen/Network/AWS/ElastiCache/ResetCacheParameterGroup.hs
+++ b/gen/Network/AWS/ElastiCache/ResetCacheParameterGroup.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.ElastiCache.ResetCacheParameterGroup
--- 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 @@
 -- specific parameters by submitting a list of parameter names. To reset
 -- the entire cache parameter group, specify the /ResetAllParameters/ and
 -- /CacheParameterGroupName/ parameters.
---
--- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ResetCacheParameterGroup.html AWS API Reference> for ResetCacheParameterGroup.
 module Network.AWS.ElastiCache.ResetCacheParameterGroup
     (
     -- * Creating a Request
@@ -101,6 +99,8 @@
         response
           = receiveXMLWrapper "ResetCacheParameterGroupResult"
               (\ s h x -> parseXML x)
+
+instance Hashable ResetCacheParameterGroup
 
 instance ToHeaders ResetCacheParameterGroup where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/ElastiCache/RevokeCacheSecurityGroupIngress.hs b/gen/Network/AWS/ElastiCache/RevokeCacheSecurityGroupIngress.hs
--- a/gen/Network/AWS/ElastiCache/RevokeCacheSecurityGroupIngress.hs
+++ b/gen/Network/AWS/ElastiCache/RevokeCacheSecurityGroupIngress.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.ElastiCache.RevokeCacheSecurityGroupIngress
--- 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 @@
 -- The /RevokeCacheSecurityGroupIngress/ action revokes ingress from a
 -- cache security group. Use this action to disallow access from an Amazon
 -- EC2 security group that had been previously authorized.
---
--- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_RevokeCacheSecurityGroupIngress.html AWS API Reference> for RevokeCacheSecurityGroupIngress.
 module Network.AWS.ElastiCache.RevokeCacheSecurityGroupIngress
     (
     -- * Creating a Request
@@ -103,6 +101,8 @@
               (\ s h x ->
                  RevokeCacheSecurityGroupIngressResponse' <$>
                    (x .@? "CacheSecurityGroup") <*> (pure (fromEnum s)))
+
+instance Hashable RevokeCacheSecurityGroupIngress
 
 instance ToHeaders RevokeCacheSecurityGroupIngress
          where
diff --git a/gen/Network/AWS/ElastiCache/Types.hs b/gen/Network/AWS/ElastiCache/Types.hs
--- a/gen/Network/AWS/ElastiCache/Types.hs
+++ b/gen/Network/AWS/ElastiCache/Types.hs
@@ -4,7 +4,7 @@
 
 -- |
 -- Module      : Network.AWS.ElastiCache.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
@@ -395,6 +395,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/ElastiCache/Types/Product.hs b/gen/Network/AWS/ElastiCache/Types/Product.hs
--- a/gen/Network/AWS/ElastiCache/Types/Product.hs
+++ b/gen/Network/AWS/ElastiCache/Types/Product.hs
@@ -9,7 +9,7 @@
 
 -- |
 -- Module      : Network.AWS.ElastiCache.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
@@ -47,6 +47,8 @@
 instance FromXML AvailabilityZone where
         parseXML x = AvailabilityZone' <$> (x .@? "Name")
 
+instance Hashable AvailabilityZone
+
 -- | Contains all of the attributes of a specific cache cluster.
 --
 -- /See:/ 'cacheCluster' smart constructor.
@@ -338,6 +340,8 @@
                 <*> (x .@? "PendingModifiedValues")
                 <*> (x .@? "NumCacheNodes")
 
+instance Hashable CacheCluster
+
 -- | Provides all of the details about a particular cache engine version.
 --
 -- /See:/ 'cacheEngineVersion' smart constructor.
@@ -403,6 +407,8 @@
                 <*> (x .@? "Engine")
                 <*> (x .@? "CacheEngineVersionDescription")
 
+instance Hashable CacheEngineVersion
+
 -- | Represents an individual cache node within a cache cluster. Each cache
 -- node runs its own instance of the cluster\'s protocol-compliant caching
 -- software - either Memcached or Redis.
@@ -521,6 +527,8 @@
                 <*> (x .@? "CacheNodeStatus")
                 <*> (x .@? "Endpoint")
 
+instance Hashable CacheNode
+
 -- | A parameter that has a different value for each cache node type it is
 -- applied to. For example, in a Redis cache cluster, a /cache.m1.large/
 -- cache node type would have a larger /maxmemory/ value than a
@@ -619,6 +627,8 @@
                 <*> (x .@? "ParameterName")
                 <*> (x .@? "Description")
 
+instance Hashable CacheNodeTypeSpecificParameter
+
 -- | A value that applies only to a certain cache node type.
 --
 -- /See:/ 'cacheNodeTypeSpecificValue' smart constructor.
@@ -655,6 +665,8 @@
           = CacheNodeTypeSpecificValue' <$>
               (x .@? "CacheNodeType") <*> (x .@? "Value")
 
+instance Hashable CacheNodeTypeSpecificValue
+
 -- | Represents the output of a /CreateCacheParameterGroup/ action.
 --
 -- /See:/ 'cacheParameterGroup' smart constructor.
@@ -702,6 +714,8 @@
                 (x .@? "CacheParameterGroupName")
                 <*> (x .@? "Description")
 
+instance Hashable CacheParameterGroup
+
 -- | Represents the output of one of the following actions:
 --
 -- -   /ModifyCacheParameterGroup/
@@ -733,6 +747,8 @@
           = CacheParameterGroupNameMessage' <$>
               (x .@? "CacheParameterGroupName")
 
+instance Hashable CacheParameterGroupNameMessage
+
 -- | The status of the cache parameter group.
 --
 -- /See:/ 'cacheParameterGroupStatus' smart constructor.
@@ -782,6 +798,8 @@
                    may (parseXMLList "CacheNodeId"))
                 <*> (x .@? "ParameterApplyStatus")
 
+instance Hashable CacheParameterGroupStatus
+
 -- | Represents the output of one of the following actions:
 --
 -- -   /AuthorizeCacheSecurityGroupIngress/
@@ -844,6 +862,8 @@
                    may (parseXMLList "EC2SecurityGroup"))
                 <*> (x .@? "Description")
 
+instance Hashable CacheSecurityGroup
+
 -- | Represents a cache cluster\'s status within a particular cache security
 -- group.
 --
@@ -883,6 +903,8 @@
           = CacheSecurityGroupMembership' <$>
               (x .@? "Status") <*> (x .@? "CacheSecurityGroupName")
 
+instance Hashable CacheSecurityGroupMembership
+
 -- | Represents the output of one of the following actions:
 --
 -- -   /CreateCacheSubnetGroup/
@@ -943,6 +965,8 @@
                 <*> (x .@? "CacheSubnetGroupName")
                 <*> (x .@? "CacheSubnetGroupDescription")
 
+instance Hashable CacheSubnetGroup
+
 -- | Provides ownership and status information for an Amazon EC2 security
 -- group.
 --
@@ -990,6 +1014,8 @@
                 (x .@? "EC2SecurityGroupOwnerId")
                 <*> (x .@? "EC2SecurityGroupName")
 
+instance Hashable EC2SecurityGroup
+
 -- | Represents the information required for client programs to connect to a
 -- cache node.
 --
@@ -1026,6 +1052,8 @@
         parseXML x
           = Endpoint' <$> (x .@? "Address") <*> (x .@? "Port")
 
+instance Hashable Endpoint
+
 -- | Represents the output of a /DescribeEngineDefaultParameters/ action.
 --
 -- /See:/ 'engineDefaults' smart constructor.
@@ -1087,6 +1115,8 @@
                 (x .@? "Parameters" .!@ mempty >>=
                    may (parseXMLList "Parameter"))
 
+instance Hashable EngineDefaults
+
 -- | Represents a single occurrence of something interesting within the
 -- system. Some examples of events are creating a cache cluster, adding or
 -- removing a cache node, or rebooting a node.
@@ -1146,6 +1176,8 @@
                 <*> (x .@? "Date")
                 <*> (x .@? "Message")
 
+instance Hashable Event
+
 -- | Represents a collection of cache nodes in a replication group.
 --
 -- /See:/ 'nodeGroup' smart constructor.
@@ -1204,6 +1236,8 @@
                    may (parseXMLList "NodeGroupMember"))
                 <*> (x .@? "NodeGroupId")
 
+instance Hashable NodeGroup
+
 -- | Represents a single node within a node group.
 --
 -- /See:/ 'nodeGroupMember' smart constructor.
@@ -1269,6 +1303,8 @@
                 <*> (x .@? "CurrentRole")
                 <*> (x .@? "ReadEndpoint")
 
+instance Hashable NodeGroupMember
+
 -- | Represents an individual cache node in a snapshot of a cache cluster.
 --
 -- /See:/ 'nodeSnapshot' smart constructor.
@@ -1326,6 +1362,8 @@
                 <*> (x .@? "SnapshotCreateTime")
                 <*> (x .@? "CacheSize")
 
+instance Hashable NodeSnapshot
+
 -- | Describes a notification topic and its status. Notification topics are
 -- used for publishing ElastiCache events to subscribers using Amazon
 -- Simple Notification Service (SNS).
@@ -1364,6 +1402,8 @@
           = NotificationConfiguration' <$>
               (x .@? "TopicStatus") <*> (x .@? "TopicArn")
 
+instance Hashable NotificationConfiguration
+
 -- | Describes an individual setting that controls some aspect of ElastiCache
 -- behavior.
 --
@@ -1458,6 +1498,8 @@
                 <*> (x .@? "ParameterName")
                 <*> (x .@? "Description")
 
+instance Hashable Parameter
+
 -- | Describes a name-value pair that is used to update the value of a
 -- parameter.
 --
@@ -1490,6 +1532,8 @@
 pnvParameterName :: Lens' ParameterNameValue (Maybe Text)
 pnvParameterName = lens _pnvParameterName (\ s a -> s{_pnvParameterName = a});
 
+instance Hashable ParameterNameValue
+
 instance ToQuery ParameterNameValue where
         toQuery ParameterNameValue'{..}
           = mconcat
@@ -1549,6 +1593,8 @@
                    may (parseXMLList "CacheNodeId"))
                 <*> (x .@? "NumCacheNodes")
 
+instance Hashable PendingModifiedValues
+
 -- | Contains the specific price and frequency of a recurring charges for a
 -- reserved cache node, or for a reserved cache node offering.
 --
@@ -1587,6 +1633,8 @@
               (x .@? "RecurringChargeFrequency") <*>
                 (x .@? "RecurringChargeAmount")
 
+instance Hashable RecurringCharge
+
 -- | Contains all of the attributes of a specific replication group.
 --
 -- /See:/ 'replicationGroup' smart constructor.
@@ -1691,6 +1739,8 @@
                 <*> (x .@? "PendingModifiedValues")
                 <*> (x .@? "AutomaticFailover")
 
+instance Hashable ReplicationGroup
+
 -- | The settings to be applied to the replication group, either immediately
 -- or during the next maintenance window.
 --
@@ -1737,6 +1787,9 @@
               (x .@? "PrimaryClusterId") <*>
                 (x .@? "AutomaticFailoverStatus")
 
+instance Hashable
+         ReplicationGroupPendingModifiedValues
+
 -- | Represents the output of a /PurchaseReservedCacheNodesOffering/ action.
 --
 -- /See:/ 'reservedCacheNode' smart constructor.
@@ -1895,6 +1948,8 @@
                 <*> (x .@? "Duration")
                 <*> (x .@? "ReservedCacheNodesOfferingId")
 
+instance Hashable ReservedCacheNode
+
 -- | Describes all of the attributes of a reserved cache node offering.
 --
 -- /See:/ 'reservedCacheNodesOffering' smart constructor.
@@ -2018,6 +2073,8 @@
                 <*> (x .@? "Duration")
                 <*> (x .@? "ReservedCacheNodesOfferingId")
 
+instance Hashable ReservedCacheNodesOffering
+
 -- | Represents a single cache security group and its status.
 --
 -- /See:/ 'securityGroupMembership' smart constructor.
@@ -2056,6 +2113,8 @@
           = SecurityGroupMembership' <$>
               (x .@? "Status") <*> (x .@? "SecurityGroupId")
 
+instance Hashable SecurityGroupMembership
+
 -- | Represents a copy of an entire cache cluster as of the time when the
 -- snapshot was taken.
 --
@@ -2325,6 +2384,8 @@
                 <*> (x .@? "Port")
                 <*> (x .@? "SnapshotSource")
 
+instance Hashable Snapshot
+
 -- | Represents the subnet associated with a cache cluster. This parameter
 -- refers to subnets defined in Amazon Virtual Private Cloud (Amazon VPC)
 -- and used with ElastiCache.
@@ -2364,6 +2425,8 @@
               (x .@? "SubnetIdentifier") <*>
                 (x .@? "SubnetAvailabilityZone")
 
+instance Hashable Subnet
+
 -- | A cost allocation Tag that can be added to an ElastiCache cluster or
 -- replication group. Tags are composed of a Key\/Value pair. A tag with a
 -- null Value is permitted.
@@ -2401,6 +2464,8 @@
         parseXML x
           = Tag' <$> (x .@? "Value") <*> (x .@? "Key")
 
+instance Hashable Tag
+
 instance ToQuery Tag where
         toQuery Tag'{..}
           = mconcat ["Value" =: _tagValue, "Key" =: _tagKey]
@@ -2434,3 +2499,5 @@
           = TagListMessage' <$>
               (x .@? "TagList" .!@ mempty >>=
                  may (parseXMLList "Tag"))
+
+instance Hashable TagListMessage
diff --git a/gen/Network/AWS/ElastiCache/Types/Sum.hs b/gen/Network/AWS/ElastiCache/Types/Sum.hs
--- a/gen/Network/AWS/ElastiCache/Types/Sum.hs
+++ b/gen/Network/AWS/ElastiCache/Types/Sum.hs
@@ -9,7 +9,7 @@
 
 -- |
 -- Module      : Network.AWS.ElastiCache.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/ElastiCache/Waiters.hs b/gen/Network/AWS/ElastiCache/Waiters.hs
--- a/gen/Network/AWS/ElastiCache/Waiters.hs
+++ b/gen/Network/AWS/ElastiCache/Waiters.hs
@@ -7,7 +7,7 @@
 
 -- |
 -- Module      : Network.AWS.ElastiCache.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/ElastiCache.hs b/test/Test/AWS/ElastiCache.hs
--- a/test/Test/AWS/ElastiCache.hs
+++ b/test/Test/AWS/ElastiCache.hs
@@ -1,7 +1,7 @@
 {-# LANGUAGE OverloadedStrings #-}
 
 -- Module      : Test.AWS.ElastiCache
--- 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/ElastiCache/Internal.hs b/test/Test/AWS/ElastiCache/Internal.hs
--- a/test/Test/AWS/ElastiCache/Internal.hs
+++ b/test/Test/AWS/ElastiCache/Internal.hs
@@ -2,7 +2,7 @@
 {-# OPTIONS_GHC -fno-warn-unused-imports #-}
 
 -- Module      : Test.AWS.ElastiCache.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
diff --git a/test/Test/AWS/Gen/ElastiCache.hs b/test/Test/AWS/Gen/ElastiCache.hs
--- a/test/Test/AWS/Gen/ElastiCache.hs
+++ b/test/Test/AWS/Gen/ElastiCache.hs
@@ -5,7 +5,7 @@
 
 -- |
 -- Module      : Test.AWS.Gen.ElastiCache
--- 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
