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
@@ -82,13 +82,13 @@
 these, such as creating keys and assigning policies, by using the
 console.
 
--   Encrypt
--   Decrypt
--   GenerateDataKey
--   GenerateDataKeyWithoutPlaintext
+-   < Encrypt>
+-   < Decrypt>
+-   < GenerateDataKey>
+-   < GenerateDataKeyWithoutPlaintext>
 
 Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-kms)
-and the [AWS API Reference](http://docs.aws.amazon.com/kms/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-kms.cabal b/amazonka-kms.cabal
--- a/amazonka-kms.cabal
+++ b/amazonka-kms.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-kms
-version:               1.3.7
+version:               1.4.0
 synopsis:              Amazon Key Management 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
@@ -82,10 +82,10 @@
     these, such as creating keys and assigning policies, by using the
     console.
 
-    -   Encrypt
-    -   Decrypt
-    -   GenerateDataKey
-    -   GenerateDataKeyWithoutPlaintext
+    -   < Encrypt>
+    -   < Decrypt>
+    -   < GenerateDataKey>
+    -   < GenerateDataKeyWithoutPlaintext>
     .
     The types from this library are intended to be used with
     <http://hackage.haskell.org/package/amazonka amazonka>, which provides
@@ -98,7 +98,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.KMS" and the <http://docs.aws.amazon.com/kms/latest/APIReference/Welcome.html AWS API Reference>
+    See "Network.AWS.KMS" or <https://aws.amazon.com/documentation/ the AWS Documentation>
     to get started.
 
 source-repository head
@@ -150,7 +150,7 @@
         , Network.AWS.KMS.Types.Sum
 
     build-depends:
-          amazonka-core == 1.3.7.*
+          amazonka-core == 1.4.0.*
         , base          >= 4.7     && < 5
 
 test-suite amazonka-kms-test
@@ -170,9 +170,9 @@
         , Test.AWS.KMS.Internal
 
     build-depends:
-          amazonka-core == 1.3.7.*
-        , amazonka-test == 1.3.7.*
-        , amazonka-kms == 1.3.7.*
+          amazonka-core == 1.4.0.*
+        , amazonka-test == 1.4.0.*
+        , amazonka-kms == 1.4.0.*
         , base
         , bytestring
         , tasty
diff --git a/gen/Network/AWS/KMS.hs b/gen/Network/AWS/KMS.hs
--- a/gen/Network/AWS/KMS.hs
+++ b/gen/Network/AWS/KMS.hs
@@ -5,7 +5,7 @@
 
 -- |
 -- Module      : Network.AWS.KMS
--- 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
@@ -80,16 +80,14 @@
 -- these, such as creating keys and assigning policies, by using the
 -- console.
 --
--- -   Encrypt
--- -   Decrypt
--- -   GenerateDataKey
--- -   GenerateDataKeyWithoutPlaintext
---
--- /See:/ <http://docs.aws.amazon.com/kms/latest/APIReference/Welcome.html AWS API Reference>
+-- -   < Encrypt>
+-- -   < Decrypt>
+-- -   < GenerateDataKey>
+-- -   < GenerateDataKeyWithoutPlaintext>
 module Network.AWS.KMS
     (
     -- * Service Configuration
-      kMS
+      kms
 
     -- * Errors
     -- $errors
diff --git a/gen/Network/AWS/KMS/CancelKeyDeletion.hs b/gen/Network/AWS/KMS/CancelKeyDeletion.hs
--- a/gen/Network/AWS/KMS/CancelKeyDeletion.hs
+++ b/gen/Network/AWS/KMS/CancelKeyDeletion.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.KMS.CancelKeyDeletion
--- 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,14 +20,12 @@
 --
 -- Cancels the deletion of a customer master key (CMK). When this operation
 -- is successful, the CMK is set to the 'Disabled' state. To enable a CMK,
--- use EnableKey.
+-- use < EnableKey>.
 --
 -- For more information about scheduling and canceling deletion of a CMK,
 -- go to
 -- <http://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html Deleting Customer Master Keys>
 -- in the /AWS Key Management Service Developer Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/kms/latest/APIReference/API_CancelKeyDeletion.html AWS API Reference> for CancelKeyDeletion.
 module Network.AWS.KMS.CancelKeyDeletion
     (
     -- * Creating a Request
@@ -79,19 +77,21 @@
 -- -   Key ARN:
 --     arn:aws:kms:us-west-2:111122223333:key\/1234abcd-12ab-34cd-56ef-1234567890ab
 --
--- To obtain the unique key ID and key ARN for a given CMK, use ListKeys or
--- DescribeKey.
+-- To obtain the unique key ID and key ARN for a given CMK, use < ListKeys>
+-- or < DescribeKey>.
 ckdKeyId :: Lens' CancelKeyDeletion Text
 ckdKeyId = lens _ckdKeyId (\ s a -> s{_ckdKeyId = a});
 
 instance AWSRequest CancelKeyDeletion where
         type Rs CancelKeyDeletion = CancelKeyDeletionResponse
-        request = postJSON kMS
+        request = postJSON kms
         response
           = receiveJSON
               (\ s h x ->
                  CancelKeyDeletionResponse' <$>
                    (x .?> "KeyId") <*> (pure (fromEnum s)))
+
+instance Hashable CancelKeyDeletion
 
 instance ToHeaders CancelKeyDeletion where
         toHeaders
diff --git a/gen/Network/AWS/KMS/CreateAlias.hs b/gen/Network/AWS/KMS/CreateAlias.hs
--- a/gen/Network/AWS/KMS/CreateAlias.hs
+++ b/gen/Network/AWS/KMS/CreateAlias.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.KMS.CreateAlias
--- 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,9 +30,7 @@
 -- The alias and the key it is mapped to must be in the same AWS account
 -- and the same region.
 --
--- To map an alias to a different key, call UpdateAlias.
---
--- /See:/ <http://docs.aws.amazon.com/kms/latest/APIReference/API_CreateAlias.html AWS API Reference> for CreateAlias.
+-- To map an alias to a different key, call < UpdateAlias>.
 module Network.AWS.KMS.CreateAlias
     (
     -- * Creating a Request
@@ -96,8 +94,10 @@
 
 instance AWSRequest CreateAlias where
         type Rs CreateAlias = CreateAliasResponse
-        request = postJSON kMS
+        request = postJSON kms
         response = receiveNull CreateAliasResponse'
+
+instance Hashable CreateAlias
 
 instance ToHeaders CreateAlias where
         toHeaders
diff --git a/gen/Network/AWS/KMS/CreateGrant.hs b/gen/Network/AWS/KMS/CreateGrant.hs
--- a/gen/Network/AWS/KMS/CreateGrant.hs
+++ b/gen/Network/AWS/KMS/CreateGrant.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.KMS.CreateGrant
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -24,8 +24,6 @@
 -- For more information about grants, see
 -- <http://docs.aws.amazon.com/kms/latest/developerguide/grants.html Grants>
 -- in the /AWS Key Management Service Developer Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html AWS API Reference> for CreateGrant.
 module Network.AWS.KMS.CreateGrant
     (
     -- * Creating a Request
@@ -100,7 +98,7 @@
     }
 
 -- | The principal that is given permission to retire the grant by using
--- RetireGrant operation.
+-- < RetireGrant> operation.
 --
 -- To specify the principal, use the
 -- <http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Name (ARN)>
@@ -189,7 +187,7 @@
 
 instance AWSRequest CreateGrant where
         type Rs CreateGrant = CreateGrantResponse
-        request = postJSON kMS
+        request = postJSON kms
         response
           = receiveJSON
               (\ s h x ->
@@ -197,6 +195,8 @@
                    (x .?> "GrantId") <*> (x .?> "GrantToken") <*>
                      (pure (fromEnum s)))
 
+instance Hashable CreateGrant
+
 instance ToHeaders CreateGrant where
         toHeaders
           = const
@@ -252,8 +252,8 @@
 
 -- | The unique identifier for the grant.
 --
--- You can use the 'GrantId' in a subsequent RetireGrant or RevokeGrant
--- operation.
+-- You can use the 'GrantId' in a subsequent < RetireGrant> or
+-- < RevokeGrant> operation.
 cgrsGrantId :: Lens' CreateGrantResponse (Maybe Text)
 cgrsGrantId = lens _cgrsGrantId (\ s a -> s{_cgrsGrantId = a});
 
diff --git a/gen/Network/AWS/KMS/CreateKey.hs b/gen/Network/AWS/KMS/CreateKey.hs
--- a/gen/Network/AWS/KMS/CreateKey.hs
+++ b/gen/Network/AWS/KMS/CreateKey.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.KMS.CreateKey
--- 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,9 +22,7 @@
 -- encrypt small amounts of data (less than 4K) directly, but they are most
 -- commonly used to encrypt or envelope data keys that are then used to
 -- encrypt customer data. For more information about data keys, see
--- GenerateDataKey and GenerateDataKeyWithoutPlaintext.
---
--- /See:/ <http://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html AWS API Reference> for CreateKey.
+-- < GenerateDataKey> and < GenerateDataKeyWithoutPlaintext>.
 module Network.AWS.KMS.CreateKey
     (
     -- * Creating a Request
@@ -94,12 +92,14 @@
 
 instance AWSRequest CreateKey where
         type Rs CreateKey = CreateKeyResponse
-        request = postJSON kMS
+        request = postJSON kms
         response
           = receiveJSON
               (\ s h x ->
                  CreateKeyResponse' <$>
                    (x .?> "KeyMetadata") <*> (pure (fromEnum s)))
+
+instance Hashable CreateKey
 
 instance ToHeaders CreateKey where
         toHeaders
diff --git a/gen/Network/AWS/KMS/Decrypt.hs b/gen/Network/AWS/KMS/Decrypt.hs
--- a/gen/Network/AWS/KMS/Decrypt.hs
+++ b/gen/Network/AWS/KMS/Decrypt.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.KMS.Decrypt
--- 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,9 +21,9 @@
 -- Decrypts ciphertext. Ciphertext is plaintext that has been previously
 -- encrypted by using any of the following functions:
 --
--- -   GenerateDataKey
--- -   GenerateDataKeyWithoutPlaintext
--- -   Encrypt
+-- -   < GenerateDataKey>
+-- -   < GenerateDataKeyWithoutPlaintext>
+-- -   < Encrypt>
 --
 -- Note that if a caller has been granted access permissions to all keys
 -- (through, for example, IAM user policies that grant 'Decrypt' permission
@@ -33,8 +33,6 @@
 -- IAM user policy. Instead grant 'Decrypt' access only in key policies. If
 -- you must grant 'Decrypt' access in an IAM user policy, you should scope
 -- the resource to specific keys or to specific trusted accounts.
---
--- /See:/ <http://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html AWS API Reference> for Decrypt.
 module Network.AWS.KMS.Decrypt
     (
     -- * Creating a Request
@@ -87,9 +85,9 @@
     , _decCiphertextBlob = _Base64 # pCiphertextBlob_
     }
 
--- | The encryption context. If this was specified in the Encrypt function,
--- it must be specified here or the decryption operation will fail. For
--- more information, see
+-- | The encryption context. If this was specified in the < Encrypt>
+-- function, it must be specified here or the decryption operation will
+-- fail. For more information, see
 -- <http://docs.aws.amazon.com/kms/latest/developerguide/encrypt-context.html Encryption Context>.
 decEncryptionContext :: Lens' Decrypt (HashMap Text Text)
 decEncryptionContext = lens _decEncryptionContext (\ s a -> s{_decEncryptionContext = a}) . _Default . _Map;
@@ -114,13 +112,15 @@
 
 instance AWSRequest Decrypt where
         type Rs Decrypt = DecryptResponse
-        request = postJSON kMS
+        request = postJSON kms
         response
           = receiveJSON
               (\ s h x ->
                  DecryptResponse' <$>
                    (x .?> "KeyId") <*> (x .?> "Plaintext") <*>
                      (pure (fromEnum s)))
+
+instance Hashable Decrypt
 
 instance ToHeaders Decrypt where
         toHeaders
diff --git a/gen/Network/AWS/KMS/DeleteAlias.hs b/gen/Network/AWS/KMS/DeleteAlias.hs
--- a/gen/Network/AWS/KMS/DeleteAlias.hs
+++ b/gen/Network/AWS/KMS/DeleteAlias.hs
@@ -12,16 +12,14 @@
 
 -- |
 -- Module      : Network.AWS.KMS.DeleteAlias
--- 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 the specified alias. To map an alias to a different key, call
--- UpdateAlias.
---
--- /See:/ <http://docs.aws.amazon.com/kms/latest/APIReference/API_DeleteAlias.html AWS API Reference> for DeleteAlias.
+-- < UpdateAlias>.
 module Network.AWS.KMS.DeleteAlias
     (
     -- * Creating a Request
@@ -68,8 +66,10 @@
 
 instance AWSRequest DeleteAlias where
         type Rs DeleteAlias = DeleteAliasResponse
-        request = postJSON kMS
+        request = postJSON kms
         response = receiveNull DeleteAliasResponse'
+
+instance Hashable DeleteAlias
 
 instance ToHeaders DeleteAlias where
         toHeaders
diff --git a/gen/Network/AWS/KMS/DescribeKey.hs b/gen/Network/AWS/KMS/DescribeKey.hs
--- a/gen/Network/AWS/KMS/DescribeKey.hs
+++ b/gen/Network/AWS/KMS/DescribeKey.hs
@@ -12,15 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.KMS.DescribeKey
--- 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)
 --
 -- Provides detailed information about the specified customer master key.
---
--- /See:/ <http://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html AWS API Reference> for DescribeKey.
 module Network.AWS.KMS.DescribeKey
     (
     -- * Creating a Request
@@ -91,12 +89,14 @@
 
 instance AWSRequest DescribeKey where
         type Rs DescribeKey = DescribeKeyResponse
-        request = postJSON kMS
+        request = postJSON kms
         response
           = receiveJSON
               (\ s h x ->
                  DescribeKeyResponse' <$>
                    (x .?> "KeyMetadata") <*> (pure (fromEnum s)))
+
+instance Hashable DescribeKey
 
 instance ToHeaders DescribeKey where
         toHeaders
diff --git a/gen/Network/AWS/KMS/DisableKey.hs b/gen/Network/AWS/KMS/DisableKey.hs
--- a/gen/Network/AWS/KMS/DisableKey.hs
+++ b/gen/Network/AWS/KMS/DisableKey.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.KMS.DisableKey
--- 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 @@
 -- affects the use of a master key, go to
 -- <http://docs.aws.amazon.com/kms/latest/developerguide/key-state.html How Key State Affects the Use of a Customer Master Key>
 -- in the /AWS Key Management Service Developer Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/kms/latest/APIReference/API_DisableKey.html AWS API Reference> for DisableKey.
 module Network.AWS.KMS.DisableKey
     (
     -- * Creating a Request
@@ -75,8 +73,10 @@
 
 instance AWSRequest DisableKey where
         type Rs DisableKey = DisableKeyResponse
-        request = postJSON kMS
+        request = postJSON kms
         response = receiveNull DisableKeyResponse'
+
+instance Hashable DisableKey
 
 instance ToHeaders DisableKey where
         toHeaders
diff --git a/gen/Network/AWS/KMS/DisableKeyRotation.hs b/gen/Network/AWS/KMS/DisableKeyRotation.hs
--- a/gen/Network/AWS/KMS/DisableKeyRotation.hs
+++ b/gen/Network/AWS/KMS/DisableKeyRotation.hs
@@ -12,15 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.KMS.DisableKeyRotation
--- 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)
 --
 -- Disables rotation of the specified key.
---
--- /See:/ <http://docs.aws.amazon.com/kms/latest/APIReference/API_DisableKeyRotation.html AWS API Reference> for DisableKeyRotation.
 module Network.AWS.KMS.DisableKeyRotation
     (
     -- * Creating a Request
@@ -72,8 +70,10 @@
 instance AWSRequest DisableKeyRotation where
         type Rs DisableKeyRotation =
              DisableKeyRotationResponse
-        request = postJSON kMS
+        request = postJSON kms
         response = receiveNull DisableKeyRotationResponse'
+
+instance Hashable DisableKeyRotation
 
 instance ToHeaders DisableKeyRotation where
         toHeaders
diff --git a/gen/Network/AWS/KMS/EnableKey.hs b/gen/Network/AWS/KMS/EnableKey.hs
--- a/gen/Network/AWS/KMS/EnableKey.hs
+++ b/gen/Network/AWS/KMS/EnableKey.hs
@@ -12,15 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.KMS.EnableKey
--- 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)
 --
 -- Marks a key as enabled, thereby permitting its use.
---
--- /See:/ <http://docs.aws.amazon.com/kms/latest/APIReference/API_EnableKey.html AWS API Reference> for EnableKey.
 module Network.AWS.KMS.EnableKey
     (
     -- * Creating a Request
@@ -71,8 +69,10 @@
 
 instance AWSRequest EnableKey where
         type Rs EnableKey = EnableKeyResponse
-        request = postJSON kMS
+        request = postJSON kms
         response = receiveNull EnableKeyResponse'
+
+instance Hashable EnableKey
 
 instance ToHeaders EnableKey where
         toHeaders
diff --git a/gen/Network/AWS/KMS/EnableKeyRotation.hs b/gen/Network/AWS/KMS/EnableKeyRotation.hs
--- a/gen/Network/AWS/KMS/EnableKeyRotation.hs
+++ b/gen/Network/AWS/KMS/EnableKeyRotation.hs
@@ -12,15 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.KMS.EnableKeyRotation
--- 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)
 --
 -- Enables rotation of the specified customer master key.
---
--- /See:/ <http://docs.aws.amazon.com/kms/latest/APIReference/API_EnableKeyRotation.html AWS API Reference> for EnableKeyRotation.
 module Network.AWS.KMS.EnableKeyRotation
     (
     -- * Creating a Request
@@ -71,8 +69,10 @@
 
 instance AWSRequest EnableKeyRotation where
         type Rs EnableKeyRotation = EnableKeyRotationResponse
-        request = postJSON kMS
+        request = postJSON kms
         response = receiveNull EnableKeyRotationResponse'
+
+instance Hashable EnableKeyRotation
 
 instance ToHeaders EnableKeyRotation where
         toHeaders
diff --git a/gen/Network/AWS/KMS/Encrypt.hs b/gen/Network/AWS/KMS/Encrypt.hs
--- a/gen/Network/AWS/KMS/Encrypt.hs
+++ b/gen/Network/AWS/KMS/Encrypt.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.KMS.Encrypt
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -33,15 +33,13 @@
 -- Unless you are moving encrypted data from one region to another, you
 -- don\'t use this function to encrypt a generated data key within a
 -- region. You retrieve data keys already encrypted by calling the
--- GenerateDataKey or GenerateDataKeyWithoutPlaintext function. Data keys
--- don\'t need to be encrypted again by calling 'Encrypt'.
+-- < GenerateDataKey> or < GenerateDataKeyWithoutPlaintext> function. Data
+-- keys don\'t need to be encrypted again by calling 'Encrypt'.
 --
 -- If you want to encrypt data locally in your application, you can use the
 -- 'GenerateDataKey' function to return a plaintext data encryption key and
 -- a copy of the key encrypted under the customer master key (CMK) of your
 -- choosing.
---
--- /See:/ <http://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html AWS API Reference> for Encrypt.
 module Network.AWS.KMS.Encrypt
     (
     -- * Creating a Request
@@ -141,13 +139,15 @@
 
 instance AWSRequest Encrypt where
         type Rs Encrypt = EncryptResponse
-        request = postJSON kMS
+        request = postJSON kms
         response
           = receiveJSON
               (\ s h x ->
                  EncryptResponse' <$>
                    (x .?> "KeyId") <*> (x .?> "CiphertextBlob") <*>
                      (pure (fromEnum s)))
+
+instance Hashable Encrypt
 
 instance ToHeaders Encrypt where
         toHeaders
diff --git a/gen/Network/AWS/KMS/GenerateDataKey.hs b/gen/Network/AWS/KMS/GenerateDataKey.hs
--- a/gen/Network/AWS/KMS/GenerateDataKey.hs
+++ b/gen/Network/AWS/KMS/GenerateDataKey.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.KMS.GenerateDataKey
--- 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
@@ -52,8 +52,6 @@
 -- the encryption context, if any, that you specified when you generated
 -- the key. The encryption context is logged by CloudTrail, and you can use
 -- this log to help track the use of particular data.
---
--- /See:/ <http://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html AWS API Reference> for GenerateDataKey.
 module Network.AWS.KMS.GenerateDataKey
     (
     -- * Creating a Request
@@ -159,7 +157,7 @@
 
 instance AWSRequest GenerateDataKey where
         type Rs GenerateDataKey = GenerateDataKeyResponse
-        request = postJSON kMS
+        request = postJSON kms
         response
           = receiveJSON
               (\ s h x ->
@@ -168,6 +166,8 @@
                      (x .:> "Plaintext")
                      <*> (x .:> "CiphertextBlob"))
 
+instance Hashable GenerateDataKey
+
 instance ToHeaders GenerateDataKey where
         toHeaders
           = const
@@ -249,8 +249,8 @@
 -- | Ciphertext that contains the encrypted data key. You must store the blob
 -- and enough information to reconstruct the encryption context so that the
 -- data encrypted by using the key can later be decrypted. You must provide
--- both the ciphertext blob and the encryption context to the Decrypt API
--- to recover the plaintext data key and decrypt the object.
+-- both the ciphertext blob and the encryption context to the < Decrypt>
+-- API to recover the plaintext data key and decrypt the object.
 --
 -- If you are using the CLI, the value is Base64 encoded. Otherwise, it is
 -- not encoded.
diff --git a/gen/Network/AWS/KMS/GenerateDataKeyWithoutPlaintext.hs b/gen/Network/AWS/KMS/GenerateDataKeyWithoutPlaintext.hs
--- a/gen/Network/AWS/KMS/GenerateDataKeyWithoutPlaintext.hs
+++ b/gen/Network/AWS/KMS/GenerateDataKeyWithoutPlaintext.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.KMS.GenerateDataKeyWithoutPlaintext
--- 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,11 +20,9 @@
 --
 -- Returns a data key encrypted by a customer master key without the
 -- plaintext copy of that key. Otherwise, this API functions exactly like
--- GenerateDataKey. You can use this API to, for example, satisfy an audit
--- requirement that an encrypted key be made available without exposing the
--- plaintext copy of that key.
---
--- /See:/ <http://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html AWS API Reference> for GenerateDataKeyWithoutPlaintext.
+-- < GenerateDataKey>. You can use this API to, for example, satisfy an
+-- audit requirement that an encrypted key be made available without
+-- exposing the plaintext copy of that key.
 module Network.AWS.KMS.GenerateDataKeyWithoutPlaintext
     (
     -- * Creating a Request
@@ -129,13 +127,15 @@
          where
         type Rs GenerateDataKeyWithoutPlaintext =
              GenerateDataKeyWithoutPlaintextResponse
-        request = postJSON kMS
+        request = postJSON kms
         response
           = receiveJSON
               (\ s h x ->
                  GenerateDataKeyWithoutPlaintextResponse' <$>
                    (x .?> "KeyId") <*> (x .?> "CiphertextBlob") <*>
                      (pure (fromEnum s)))
+
+instance Hashable GenerateDataKeyWithoutPlaintext
 
 instance ToHeaders GenerateDataKeyWithoutPlaintext
          where
diff --git a/gen/Network/AWS/KMS/GenerateRandom.hs b/gen/Network/AWS/KMS/GenerateRandom.hs
--- a/gen/Network/AWS/KMS/GenerateRandom.hs
+++ b/gen/Network/AWS/KMS/GenerateRandom.hs
@@ -12,15 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.KMS.GenerateRandom
--- 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)
 --
 -- Generates an unpredictable byte string.
---
--- /See:/ <http://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateRandom.html AWS API Reference> for GenerateRandom.
 module Network.AWS.KMS.GenerateRandom
     (
     -- * Creating a Request
@@ -68,12 +66,14 @@
 
 instance AWSRequest GenerateRandom where
         type Rs GenerateRandom = GenerateRandomResponse
-        request = postJSON kMS
+        request = postJSON kms
         response
           = receiveJSON
               (\ s h x ->
                  GenerateRandomResponse' <$>
                    (x .?> "Plaintext") <*> (pure (fromEnum s)))
+
+instance Hashable GenerateRandom
 
 instance ToHeaders GenerateRandom where
         toHeaders
diff --git a/gen/Network/AWS/KMS/GetKeyPolicy.hs b/gen/Network/AWS/KMS/GetKeyPolicy.hs
--- a/gen/Network/AWS/KMS/GetKeyPolicy.hs
+++ b/gen/Network/AWS/KMS/GetKeyPolicy.hs
@@ -12,15 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.KMS.GetKeyPolicy
--- 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)
 --
 -- Retrieves a policy attached to the specified key.
---
--- /See:/ <http://docs.aws.amazon.com/kms/latest/APIReference/API_GetKeyPolicy.html AWS API Reference> for GetKeyPolicy.
 module Network.AWS.KMS.GetKeyPolicy
     (
     -- * Creating a Request
@@ -79,18 +77,21 @@
 gkpKeyId = lens _gkpKeyId (\ s a -> s{_gkpKeyId = a});
 
 -- | String that contains the name of the policy. Currently, this must be
--- \"default\". Policy names can be discovered by calling ListKeyPolicies.
+-- \"default\". Policy names can be discovered by calling
+-- < ListKeyPolicies>.
 gkpPolicyName :: Lens' GetKeyPolicy Text
 gkpPolicyName = lens _gkpPolicyName (\ s a -> s{_gkpPolicyName = a});
 
 instance AWSRequest GetKeyPolicy where
         type Rs GetKeyPolicy = GetKeyPolicyResponse
-        request = postJSON kMS
+        request = postJSON kms
         response
           = receiveJSON
               (\ s h x ->
                  GetKeyPolicyResponse' <$>
                    (x .?> "Policy") <*> (pure (fromEnum s)))
+
+instance Hashable GetKeyPolicy
 
 instance ToHeaders GetKeyPolicy where
         toHeaders
diff --git a/gen/Network/AWS/KMS/GetKeyRotationStatus.hs b/gen/Network/AWS/KMS/GetKeyRotationStatus.hs
--- a/gen/Network/AWS/KMS/GetKeyRotationStatus.hs
+++ b/gen/Network/AWS/KMS/GetKeyRotationStatus.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.KMS.GetKeyRotationStatus
--- 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 @@
 --
 -- Retrieves a Boolean value that indicates whether key rotation is enabled
 -- for the specified key.
---
--- /See:/ <http://docs.aws.amazon.com/kms/latest/APIReference/API_GetKeyRotationStatus.html AWS API Reference> for GetKeyRotationStatus.
 module Network.AWS.KMS.GetKeyRotationStatus
     (
     -- * Creating a Request
@@ -76,12 +74,14 @@
 instance AWSRequest GetKeyRotationStatus where
         type Rs GetKeyRotationStatus =
              GetKeyRotationStatusResponse
-        request = postJSON kMS
+        request = postJSON kms
         response
           = receiveJSON
               (\ s h x ->
                  GetKeyRotationStatusResponse' <$>
                    (x .?> "KeyRotationEnabled") <*> (pure (fromEnum s)))
+
+instance Hashable GetKeyRotationStatus
 
 instance ToHeaders GetKeyRotationStatus where
         toHeaders
diff --git a/gen/Network/AWS/KMS/ListAliases.hs b/gen/Network/AWS/KMS/ListAliases.hs
--- a/gen/Network/AWS/KMS/ListAliases.hs
+++ b/gen/Network/AWS/KMS/ListAliases.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.KMS.ListAliases
--- 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 @@
 --
 -- Lists all of the key aliases in the account.
 --
--- /See:/ <http://docs.aws.amazon.com/kms/latest/APIReference/API_ListAliases.html AWS API Reference> for ListAliases.
---
 -- This operation returns paginated results.
 module Network.AWS.KMS.ListAliases
     (
@@ -95,7 +93,7 @@
 
 instance AWSRequest ListAliases where
         type Rs ListAliases = ListAliasesResponse
-        request = postJSON kMS
+        request = postJSON kms
         response
           = receiveJSON
               (\ s h x ->
@@ -103,6 +101,8 @@
                    (x .?> "Truncated") <*> (x .?> "Aliases" .!@ mempty)
                      <*> (x .?> "NextMarker")
                      <*> (pure (fromEnum s)))
+
+instance Hashable ListAliases
 
 instance ToHeaders ListAliases where
         toHeaders
diff --git a/gen/Network/AWS/KMS/ListGrants.hs b/gen/Network/AWS/KMS/ListGrants.hs
--- a/gen/Network/AWS/KMS/ListGrants.hs
+++ b/gen/Network/AWS/KMS/ListGrants.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.KMS.ListGrants
--- 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 @@
 --
 -- List the grants for a specified key.
 --
--- /See:/ <http://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html AWS API Reference> for ListGrants.
---
 -- This operation returns paginated results.
 module Network.AWS.KMS.ListGrants
     (
@@ -110,8 +108,10 @@
 
 instance AWSRequest ListGrants where
         type Rs ListGrants = ListGrantsResponse
-        request = postJSON kMS
+        request = postJSON kms
         response = receiveJSON (\ s h x -> eitherParseJSON x)
+
+instance Hashable ListGrants
 
 instance ToHeaders ListGrants where
         toHeaders
diff --git a/gen/Network/AWS/KMS/ListKeyPolicies.hs b/gen/Network/AWS/KMS/ListKeyPolicies.hs
--- a/gen/Network/AWS/KMS/ListKeyPolicies.hs
+++ b/gen/Network/AWS/KMS/ListKeyPolicies.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.KMS.ListKeyPolicies
--- 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 @@
 --
 -- Retrieves a list of policies attached to a key.
 --
--- /See:/ <http://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeyPolicies.html AWS API Reference> for ListKeyPolicies.
---
 -- This operation returns paginated results.
 module Network.AWS.KMS.ListKeyPolicies
     (
@@ -117,7 +115,7 @@
 
 instance AWSRequest ListKeyPolicies where
         type Rs ListKeyPolicies = ListKeyPoliciesResponse
-        request = postJSON kMS
+        request = postJSON kms
         response
           = receiveJSON
               (\ s h x ->
@@ -126,6 +124,8 @@
                      (x .?> "Truncated")
                      <*> (x .?> "NextMarker")
                      <*> (pure (fromEnum s)))
+
+instance Hashable ListKeyPolicies
 
 instance ToHeaders ListKeyPolicies where
         toHeaders
diff --git a/gen/Network/AWS/KMS/ListKeys.hs b/gen/Network/AWS/KMS/ListKeys.hs
--- a/gen/Network/AWS/KMS/ListKeys.hs
+++ b/gen/Network/AWS/KMS/ListKeys.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.KMS.ListKeys
--- 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 @@
 --
 -- Lists the customer master keys.
 --
--- /See:/ <http://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeys.html AWS API Reference> for ListKeys.
---
 -- This operation returns paginated results.
 module Network.AWS.KMS.ListKeys
     (
@@ -95,7 +93,7 @@
 
 instance AWSRequest ListKeys where
         type Rs ListKeys = ListKeysResponse
-        request = postJSON kMS
+        request = postJSON kms
         response
           = receiveJSON
               (\ s h x ->
@@ -103,6 +101,8 @@
                    (x .?> "Truncated") <*> (x .?> "Keys" .!@ mempty) <*>
                      (x .?> "NextMarker")
                      <*> (pure (fromEnum s)))
+
+instance Hashable ListKeys
 
 instance ToHeaders ListKeys where
         toHeaders
diff --git a/gen/Network/AWS/KMS/ListRetirableGrants.hs b/gen/Network/AWS/KMS/ListRetirableGrants.hs
--- a/gen/Network/AWS/KMS/ListRetirableGrants.hs
+++ b/gen/Network/AWS/KMS/ListRetirableGrants.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.KMS.ListRetirableGrants
--- 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,9 +22,7 @@
 -- matches the one specified.
 --
 -- A typical use is to list all grants that you are able to retire. To
--- retire a grant, use RetireGrant.
---
--- /See:/ <http://docs.aws.amazon.com/kms/latest/APIReference/API_ListRetirableGrants.html AWS API Reference> for ListRetirableGrants.
+-- retire a grant, use < RetireGrant>.
 module Network.AWS.KMS.ListRetirableGrants
     (
     -- * Creating a Request
@@ -107,8 +105,10 @@
 
 instance AWSRequest ListRetirableGrants where
         type Rs ListRetirableGrants = ListGrantsResponse
-        request = postJSON kMS
+        request = postJSON kms
         response = receiveJSON (\ s h x -> eitherParseJSON x)
+
+instance Hashable ListRetirableGrants
 
 instance ToHeaders ListRetirableGrants where
         toHeaders
diff --git a/gen/Network/AWS/KMS/PutKeyPolicy.hs b/gen/Network/AWS/KMS/PutKeyPolicy.hs
--- a/gen/Network/AWS/KMS/PutKeyPolicy.hs
+++ b/gen/Network/AWS/KMS/PutKeyPolicy.hs
@@ -12,15 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.KMS.PutKeyPolicy
--- 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)
 --
 -- Attaches a policy to the specified key.
---
--- /See:/ <http://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html AWS API Reference> for PutKeyPolicy.
 module Network.AWS.KMS.PutKeyPolicy
     (
     -- * Creating a Request
@@ -94,8 +92,10 @@
 
 instance AWSRequest PutKeyPolicy where
         type Rs PutKeyPolicy = PutKeyPolicyResponse
-        request = postJSON kMS
+        request = postJSON kms
         response = receiveNull PutKeyPolicyResponse'
+
+instance Hashable PutKeyPolicy
 
 instance ToHeaders PutKeyPolicy where
         toHeaders
diff --git a/gen/Network/AWS/KMS/ReEncrypt.hs b/gen/Network/AWS/KMS/ReEncrypt.hs
--- a/gen/Network/AWS/KMS/ReEncrypt.hs
+++ b/gen/Network/AWS/KMS/ReEncrypt.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.KMS.ReEncrypt
--- 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,9 +30,7 @@
 -- re-encryption from or to the key. The statement is included
 -- automatically when you authorize use of the key through the console but
 -- must be included manually when you set a policy by using the
--- PutKeyPolicy function.
---
--- /See:/ <http://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html AWS API Reference> for ReEncrypt.
+-- < PutKeyPolicy> function.
 module Network.AWS.KMS.ReEncrypt
     (
     -- * Creating a Request
@@ -141,7 +139,7 @@
 
 instance AWSRequest ReEncrypt where
         type Rs ReEncrypt = ReEncryptResponse
-        request = postJSON kMS
+        request = postJSON kms
         response
           = receiveJSON
               (\ s h x ->
@@ -149,6 +147,8 @@
                    (x .?> "SourceKeyId") <*> (x .?> "KeyId") <*>
                      (x .?> "CiphertextBlob")
                      <*> (pure (fromEnum s)))
+
+instance Hashable ReEncrypt
 
 instance ToHeaders ReEncrypt where
         toHeaders
diff --git a/gen/Network/AWS/KMS/RetireGrant.hs b/gen/Network/AWS/KMS/RetireGrant.hs
--- a/gen/Network/AWS/KMS/RetireGrant.hs
+++ b/gen/Network/AWS/KMS/RetireGrant.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.KMS.RetireGrant
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -32,8 +32,6 @@
 -- variable-length base64-encoded string. A grant ID is a 64 character
 -- unique identifier of a grant. Both are returned by the 'CreateGrant'
 -- function.
---
--- /See:/ <http://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html AWS API Reference> for RetireGrant.
 module Network.AWS.KMS.RetireGrant
     (
     -- * Creating a Request
@@ -106,8 +104,10 @@
 
 instance AWSRequest RetireGrant where
         type Rs RetireGrant = RetireGrantResponse
-        request = postJSON kMS
+        request = postJSON kms
         response = receiveNull RetireGrantResponse'
+
+instance Hashable RetireGrant
 
 instance ToHeaders RetireGrant where
         toHeaders
diff --git a/gen/Network/AWS/KMS/RevokeGrant.hs b/gen/Network/AWS/KMS/RevokeGrant.hs
--- a/gen/Network/AWS/KMS/RevokeGrant.hs
+++ b/gen/Network/AWS/KMS/RevokeGrant.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.KMS.RevokeGrant
--- 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 a grant. You can revoke a grant to actively deny operations that
 -- depend on it.
---
--- /See:/ <http://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html AWS API Reference> for RevokeGrant.
 module Network.AWS.KMS.RevokeGrant
     (
     -- * Creating a Request
@@ -83,8 +81,10 @@
 
 instance AWSRequest RevokeGrant where
         type Rs RevokeGrant = RevokeGrantResponse
-        request = postJSON kMS
+        request = postJSON kms
         response = receiveNull RevokeGrantResponse'
+
+instance Hashable RevokeGrant
 
 instance ToHeaders RevokeGrant where
         toHeaders
diff --git a/gen/Network/AWS/KMS/ScheduleKeyDeletion.hs b/gen/Network/AWS/KMS/ScheduleKeyDeletion.hs
--- a/gen/Network/AWS/KMS/ScheduleKeyDeletion.hs
+++ b/gen/Network/AWS/KMS/ScheduleKeyDeletion.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.KMS.ScheduleKeyDeletion
--- 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,20 +23,18 @@
 -- provide a waiting period, the default period of 30 days is used. When
 -- this operation is successful, the state of the CMK changes to
 -- 'PendingDeletion'. Before the waiting period ends, you can use
--- CancelKeyDeletion to cancel the deletion of the CMK. After the waiting
--- period ends, AWS KMS deletes the CMK and all AWS KMS data associated
--- with it, including all aliases that point to it.
+-- < CancelKeyDeletion> to cancel the deletion of the CMK. After the
+-- waiting period ends, AWS KMS deletes the CMK and all AWS KMS data
+-- associated with it, including all aliases that point to it.
 --
 -- Deleting a CMK is a destructive and potentially dangerous operation.
 -- When a CMK is deleted, all data that was encrypted under the CMK is
 -- rendered unrecoverable. To restrict the use of a CMK without deleting
--- it, use DisableKey.
+-- it, use < DisableKey>.
 --
 -- For more information about scheduling a CMK for deletion, go to
 -- <http://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html Deleting Customer Master Keys>
 -- in the /AWS Key Management Service Developer Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html AWS API Reference> for ScheduleKeyDeletion.
 module Network.AWS.KMS.ScheduleKeyDeletion
     (
     -- * Creating a Request
@@ -101,21 +99,23 @@
 -- -   Key ARN:
 --     arn:aws:kms:us-west-2:111122223333:key\/1234abcd-12ab-34cd-56ef-1234567890ab
 --
--- To obtain the unique key ID and key ARN for a given CMK, use ListKeys or
--- DescribeKey.
+-- To obtain the unique key ID and key ARN for a given CMK, use < ListKeys>
+-- or < DescribeKey>.
 skdKeyId :: Lens' ScheduleKeyDeletion Text
 skdKeyId = lens _skdKeyId (\ s a -> s{_skdKeyId = a});
 
 instance AWSRequest ScheduleKeyDeletion where
         type Rs ScheduleKeyDeletion =
              ScheduleKeyDeletionResponse
-        request = postJSON kMS
+        request = postJSON kms
         response
           = receiveJSON
               (\ s h x ->
                  ScheduleKeyDeletionResponse' <$>
                    (x .?> "KeyId") <*> (x .?> "DeletionDate") <*>
                      (pure (fromEnum s)))
+
+instance Hashable ScheduleKeyDeletion
 
 instance ToHeaders ScheduleKeyDeletion where
         toHeaders
diff --git a/gen/Network/AWS/KMS/Types.hs b/gen/Network/AWS/KMS/Types.hs
--- a/gen/Network/AWS/KMS/Types.hs
+++ b/gen/Network/AWS/KMS/Types.hs
@@ -4,7 +4,7 @@
 
 -- |
 -- Module      : Network.AWS.KMS.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.KMS.Types
     (
     -- * Service Configuration
-      kMS
+      kms
 
     -- * Errors
     , _InvalidMarkerException
@@ -106,14 +106,14 @@
 import           Network.AWS.Sign.V4
 
 -- | API version '2014-11-01' of the Amazon Key Management Service SDK configuration.
-kMS :: Service
-kMS =
+kms :: Service
+kms =
     Service
     { _svcAbbrev = "KMS"
     , _svcSigner = v4
     , _svcPrefix = "kms"
     , _svcVersion = "2014-11-01"
-    , _svcEndpoint = defaultEndpoint kMS
+    , _svcEndpoint = defaultEndpoint kms
     , _svcTimeout = Just 70
     , _svcCheck = statusSuccess
     , _svcError = parseJSONError
@@ -128,6 +128,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/KMS/Types/Product.hs b/gen/Network/AWS/KMS/Types/Product.hs
--- a/gen/Network/AWS/KMS/Types/Product.hs
+++ b/gen/Network/AWS/KMS/Types/Product.hs
@@ -9,7 +9,7 @@
 
 -- |
 -- Module      : Network.AWS.KMS.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
@@ -68,6 +68,8 @@
                    (x .:? "TargetKeyId") <*> (x .:? "AliasName") <*>
                      (x .:? "AliasArn"))
 
+instance Hashable AliasListEntry
+
 -- | A structure for specifying the conditions under which the operations
 -- permitted by the grant are allowed.
 --
@@ -122,6 +124,8 @@
                    (x .:? "EncryptionContextEquals" .!= mempty) <*>
                      (x .:? "EncryptionContextSubset" .!= mempty))
 
+instance Hashable GrantConstraints
+
 instance ToJSON GrantConstraints where
         toJSON GrantConstraints'{..}
           = object
@@ -208,8 +212,8 @@
 gleGranteePrincipal = lens _gleGranteePrincipal (\ s a -> s{_gleGranteePrincipal = a});
 
 -- | The friendly name that identifies the grant. If a name was provided in
--- the CreateGrant request, that name is returned. Otherwise this value is
--- null.
+-- the < CreateGrant> request, that name is returned. Otherwise this value
+-- is null.
 gleName :: Lens' GrantListEntry (Maybe Text)
 gleName = lens _gleName (\ s a -> s{_gleName = a});
 
@@ -235,6 +239,8 @@
                      <*> (x .:? "CreationDate")
                      <*> (x .:? "Operations" .!= mempty))
 
+instance Hashable GrantListEntry
+
 -- | Contains information about each entry in the key list.
 --
 -- /See:/ 'keyListEntry' smart constructor.
@@ -273,10 +279,12 @@
                  KeyListEntry' <$>
                    (x .:? "KeyId") <*> (x .:? "KeyArn"))
 
+instance Hashable KeyListEntry
+
 -- | Contains metadata about a customer master key (CMK).
 --
--- This data type is used as a response element for the CreateKey and
--- DescribeKey operations.
+-- This data type is used as a response element for the < CreateKey> and
+-- < DescribeKey> operations.
 --
 -- /See:/ 'keyMetadata' smart constructor.
 data KeyMetadata = KeyMetadata'
@@ -353,7 +361,7 @@
 
 -- | The cryptographic operations for which you can use the key. Currently
 -- the only allowed value is 'ENCRYPT_DECRYPT', which means you can use the
--- key for the Encrypt and Decrypt operations.
+-- key for the < Encrypt> and < Decrypt> operations.
 kmKeyUsage :: Lens' KeyMetadata (Maybe KeyUsageType)
 kmKeyUsage = lens _kmKeyUsage (\ s a -> s{_kmKeyUsage = a});
 
@@ -389,6 +397,8 @@
                      <*> (x .:? "Description")
                      <*> (x .: "KeyId"))
 
+instance Hashable KeyMetadata
+
 -- | /See:/ 'listGrantsResponse' smart constructor.
 data ListGrantsResponse = ListGrantsResponse'
     { _lgTruncated  :: !(Maybe Bool)
@@ -436,3 +446,5 @@
                  ListGrantsResponse' <$>
                    (x .:? "Truncated") <*> (x .:? "Grants" .!= mempty)
                      <*> (x .:? "NextMarker"))
+
+instance Hashable ListGrantsResponse
diff --git a/gen/Network/AWS/KMS/Types/Sum.hs b/gen/Network/AWS/KMS/Types/Sum.hs
--- a/gen/Network/AWS/KMS/Types/Sum.hs
+++ b/gen/Network/AWS/KMS/Types/Sum.hs
@@ -9,7 +9,7 @@
 
 -- |
 -- Module      : Network.AWS.KMS.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/KMS/UpdateAlias.hs b/gen/Network/AWS/KMS/UpdateAlias.hs
--- a/gen/Network/AWS/KMS/UpdateAlias.hs
+++ b/gen/Network/AWS/KMS/UpdateAlias.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.KMS.UpdateAlias
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -32,8 +32,6 @@
 --
 -- The alias and the key it is mapped to must be in the same AWS account
 -- and the same region.
---
--- /See:/ <http://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateAlias.html AWS API Reference> for UpdateAlias.
 module Network.AWS.KMS.UpdateAlias
     (
     -- * Creating a Request
@@ -93,15 +91,17 @@
 -- -   Globally Unique Key ID Example -
 --     12345678-1234-1234-1234-123456789012
 --
--- You can call ListAliases to verify that the alias is mapped to the
+-- You can call < ListAliases> to verify that the alias is mapped to the
 -- correct 'TargetKeyId'.
 uaTargetKeyId :: Lens' UpdateAlias Text
 uaTargetKeyId = lens _uaTargetKeyId (\ s a -> s{_uaTargetKeyId = a});
 
 instance AWSRequest UpdateAlias where
         type Rs UpdateAlias = UpdateAliasResponse
-        request = postJSON kMS
+        request = postJSON kms
         response = receiveNull UpdateAliasResponse'
+
+instance Hashable UpdateAlias
 
 instance ToHeaders UpdateAlias where
         toHeaders
diff --git a/gen/Network/AWS/KMS/UpdateKeyDescription.hs b/gen/Network/AWS/KMS/UpdateKeyDescription.hs
--- a/gen/Network/AWS/KMS/UpdateKeyDescription.hs
+++ b/gen/Network/AWS/KMS/UpdateKeyDescription.hs
@@ -12,15 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.KMS.UpdateKeyDescription
--- 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)
 --
 -- Updates the description of a key.
---
--- /See:/ <http://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateKeyDescription.html AWS API Reference> for UpdateKeyDescription.
 module Network.AWS.KMS.UpdateKeyDescription
     (
     -- * Creating a Request
@@ -82,8 +80,10 @@
 instance AWSRequest UpdateKeyDescription where
         type Rs UpdateKeyDescription =
              UpdateKeyDescriptionResponse
-        request = postJSON kMS
+        request = postJSON kms
         response = receiveNull UpdateKeyDescriptionResponse'
+
+instance Hashable UpdateKeyDescription
 
 instance ToHeaders UpdateKeyDescription where
         toHeaders
diff --git a/gen/Network/AWS/KMS/Waiters.hs b/gen/Network/AWS/KMS/Waiters.hs
--- a/gen/Network/AWS/KMS/Waiters.hs
+++ b/gen/Network/AWS/KMS/Waiters.hs
@@ -7,7 +7,7 @@
 
 -- |
 -- Module      : Network.AWS.KMS.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/KMS.hs b/test/Test/AWS/Gen/KMS.hs
--- a/test/Test/AWS/Gen/KMS.hs
+++ b/test/Test/AWS/Gen/KMS.hs
@@ -5,7 +5,7 @@
 
 -- |
 -- Module      : Test.AWS.Gen.KMS
--- 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
@@ -361,201 +361,201 @@
 testEncryptResponse = res
     "EncryptResponse"
     "fixture/EncryptResponse.proto"
-    kMS
+    kms
     (Proxy :: Proxy Encrypt)
 
 testListGrantsResponse :: ListGrantsResponse -> TestTree
 testListGrantsResponse = res
     "ListGrantsResponse"
     "fixture/ListGrantsResponse.proto"
-    kMS
+    kms
     (Proxy :: Proxy ListGrants)
 
 testDisableKeyRotationResponse :: DisableKeyRotationResponse -> TestTree
 testDisableKeyRotationResponse = res
     "DisableKeyRotationResponse"
     "fixture/DisableKeyRotationResponse.proto"
-    kMS
+    kms
     (Proxy :: Proxy DisableKeyRotation)
 
 testGenerateDataKeyWithoutPlaintextResponse :: GenerateDataKeyWithoutPlaintextResponse -> TestTree
 testGenerateDataKeyWithoutPlaintextResponse = res
     "GenerateDataKeyWithoutPlaintextResponse"
     "fixture/GenerateDataKeyWithoutPlaintextResponse.proto"
-    kMS
+    kms
     (Proxy :: Proxy GenerateDataKeyWithoutPlaintext)
 
 testEnableKeyRotationResponse :: EnableKeyRotationResponse -> TestTree
 testEnableKeyRotationResponse = res
     "EnableKeyRotationResponse"
     "fixture/EnableKeyRotationResponse.proto"
-    kMS
+    kms
     (Proxy :: Proxy EnableKeyRotation)
 
 testCreateAliasResponse :: CreateAliasResponse -> TestTree
 testCreateAliasResponse = res
     "CreateAliasResponse"
     "fixture/CreateAliasResponse.proto"
-    kMS
+    kms
     (Proxy :: Proxy CreateAlias)
 
 testCreateGrantResponse :: CreateGrantResponse -> TestTree
 testCreateGrantResponse = res
     "CreateGrantResponse"
     "fixture/CreateGrantResponse.proto"
-    kMS
+    kms
     (Proxy :: Proxy CreateGrant)
 
 testListAliasesResponse :: ListAliasesResponse -> TestTree
 testListAliasesResponse = res
     "ListAliasesResponse"
     "fixture/ListAliasesResponse.proto"
-    kMS
+    kms
     (Proxy :: Proxy ListAliases)
 
 testListRetirableGrantsResponse :: ListGrantsResponse -> TestTree
 testListRetirableGrantsResponse = res
     "ListRetirableGrantsResponse"
     "fixture/ListRetirableGrantsResponse.proto"
-    kMS
+    kms
     (Proxy :: Proxy ListRetirableGrants)
 
 testGenerateRandomResponse :: GenerateRandomResponse -> TestTree
 testGenerateRandomResponse = res
     "GenerateRandomResponse"
     "fixture/GenerateRandomResponse.proto"
-    kMS
+    kms
     (Proxy :: Proxy GenerateRandom)
 
 testCreateKeyResponse :: CreateKeyResponse -> TestTree
 testCreateKeyResponse = res
     "CreateKeyResponse"
     "fixture/CreateKeyResponse.proto"
-    kMS
+    kms
     (Proxy :: Proxy CreateKey)
 
 testDisableKeyResponse :: DisableKeyResponse -> TestTree
 testDisableKeyResponse = res
     "DisableKeyResponse"
     "fixture/DisableKeyResponse.proto"
-    kMS
+    kms
     (Proxy :: Proxy DisableKey)
 
 testRetireGrantResponse :: RetireGrantResponse -> TestTree
 testRetireGrantResponse = res
     "RetireGrantResponse"
     "fixture/RetireGrantResponse.proto"
-    kMS
+    kms
     (Proxy :: Proxy RetireGrant)
 
 testListKeysResponse :: ListKeysResponse -> TestTree
 testListKeysResponse = res
     "ListKeysResponse"
     "fixture/ListKeysResponse.proto"
-    kMS
+    kms
     (Proxy :: Proxy ListKeys)
 
 testGetKeyRotationStatusResponse :: GetKeyRotationStatusResponse -> TestTree
 testGetKeyRotationStatusResponse = res
     "GetKeyRotationStatusResponse"
     "fixture/GetKeyRotationStatusResponse.proto"
-    kMS
+    kms
     (Proxy :: Proxy GetKeyRotationStatus)
 
 testGenerateDataKeyResponse :: GenerateDataKeyResponse -> TestTree
 testGenerateDataKeyResponse = res
     "GenerateDataKeyResponse"
     "fixture/GenerateDataKeyResponse.proto"
-    kMS
+    kms
     (Proxy :: Proxy GenerateDataKey)
 
 testDeleteAliasResponse :: DeleteAliasResponse -> TestTree
 testDeleteAliasResponse = res
     "DeleteAliasResponse"
     "fixture/DeleteAliasResponse.proto"
-    kMS
+    kms
     (Proxy :: Proxy DeleteAlias)
 
 testUpdateAliasResponse :: UpdateAliasResponse -> TestTree
 testUpdateAliasResponse = res
     "UpdateAliasResponse"
     "fixture/UpdateAliasResponse.proto"
-    kMS
+    kms
     (Proxy :: Proxy UpdateAlias)
 
 testDescribeKeyResponse :: DescribeKeyResponse -> TestTree
 testDescribeKeyResponse = res
     "DescribeKeyResponse"
     "fixture/DescribeKeyResponse.proto"
-    kMS
+    kms
     (Proxy :: Proxy DescribeKey)
 
 testCancelKeyDeletionResponse :: CancelKeyDeletionResponse -> TestTree
 testCancelKeyDeletionResponse = res
     "CancelKeyDeletionResponse"
     "fixture/CancelKeyDeletionResponse.proto"
-    kMS
+    kms
     (Proxy :: Proxy CancelKeyDeletion)
 
 testDecryptResponse :: DecryptResponse -> TestTree
 testDecryptResponse = res
     "DecryptResponse"
     "fixture/DecryptResponse.proto"
-    kMS
+    kms
     (Proxy :: Proxy Decrypt)
 
 testUpdateKeyDescriptionResponse :: UpdateKeyDescriptionResponse -> TestTree
 testUpdateKeyDescriptionResponse = res
     "UpdateKeyDescriptionResponse"
     "fixture/UpdateKeyDescriptionResponse.proto"
-    kMS
+    kms
     (Proxy :: Proxy UpdateKeyDescription)
 
 testReEncryptResponse :: ReEncryptResponse -> TestTree
 testReEncryptResponse = res
     "ReEncryptResponse"
     "fixture/ReEncryptResponse.proto"
-    kMS
+    kms
     (Proxy :: Proxy ReEncrypt)
 
 testListKeyPoliciesResponse :: ListKeyPoliciesResponse -> TestTree
 testListKeyPoliciesResponse = res
     "ListKeyPoliciesResponse"
     "fixture/ListKeyPoliciesResponse.proto"
-    kMS
+    kms
     (Proxy :: Proxy ListKeyPolicies)
 
 testScheduleKeyDeletionResponse :: ScheduleKeyDeletionResponse -> TestTree
 testScheduleKeyDeletionResponse = res
     "ScheduleKeyDeletionResponse"
     "fixture/ScheduleKeyDeletionResponse.proto"
-    kMS
+    kms
     (Proxy :: Proxy ScheduleKeyDeletion)
 
 testPutKeyPolicyResponse :: PutKeyPolicyResponse -> TestTree
 testPutKeyPolicyResponse = res
     "PutKeyPolicyResponse"
     "fixture/PutKeyPolicyResponse.proto"
-    kMS
+    kms
     (Proxy :: Proxy PutKeyPolicy)
 
 testEnableKeyResponse :: EnableKeyResponse -> TestTree
 testEnableKeyResponse = res
     "EnableKeyResponse"
     "fixture/EnableKeyResponse.proto"
-    kMS
+    kms
     (Proxy :: Proxy EnableKey)
 
 testRevokeGrantResponse :: RevokeGrantResponse -> TestTree
 testRevokeGrantResponse = res
     "RevokeGrantResponse"
     "fixture/RevokeGrantResponse.proto"
-    kMS
+    kms
     (Proxy :: Proxy RevokeGrant)
 
 testGetKeyPolicyResponse :: GetKeyPolicyResponse -> TestTree
 testGetKeyPolicyResponse = res
     "GetKeyPolicyResponse"
     "fixture/GetKeyPolicyResponse.proto"
-    kMS
+    kms
     (Proxy :: Proxy GetKeyPolicy)
diff --git a/test/Test/AWS/KMS.hs b/test/Test/AWS/KMS.hs
--- a/test/Test/AWS/KMS.hs
+++ b/test/Test/AWS/KMS.hs
@@ -1,7 +1,7 @@
 {-# LANGUAGE OverloadedStrings #-}
 
 -- Module      : Test.AWS.KMS
--- 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/KMS/Internal.hs b/test/Test/AWS/KMS/Internal.hs
--- a/test/Test/AWS/KMS/Internal.hs
+++ b/test/Test/AWS/KMS/Internal.hs
@@ -2,7 +2,7 @@
 {-# OPTIONS_GHC -fno-warn-unused-imports #-}
 
 -- Module      : Test.AWS.KMS.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
