diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
 
 ## Version
 
-`1.4.0`
+`1.4.1`
 
 
 ## Description
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.4.0
+version:               1.4.1
 synopsis:              Amazon Key Management Service SDK.
 homepage:              https://github.com/brendanhay/amazonka
 bug-reports:           https://github.com/brendanhay/amazonka/issues
@@ -150,7 +150,7 @@
         , Network.AWS.KMS.Types.Sum
 
     build-depends:
-          amazonka-core == 1.4.0.*
+          amazonka-core == 1.4.1.*
         , base          >= 4.7     && < 5
 
 test-suite amazonka-kms-test
@@ -170,9 +170,9 @@
         , Test.AWS.KMS.Internal
 
     build-depends:
-          amazonka-core == 1.4.0.*
-        , amazonka-test == 1.4.0.*
-        , amazonka-kms == 1.4.0.*
+          amazonka-core == 1.4.1.*
+        , amazonka-test == 1.4.1.*
+        , amazonka-kms == 1.4.1.*
         , base
         , bytestring
         , tasty
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
@@ -93,6 +93,8 @@
 
 instance Hashable CancelKeyDeletion
 
+instance NFData CancelKeyDeletion
+
 instance ToHeaders CancelKeyDeletion where
         toHeaders
           = const
@@ -141,3 +143,5 @@
 -- | The response status code.
 ckdrsResponseStatus :: Lens' CancelKeyDeletionResponse Int
 ckdrsResponseStatus = lens _ckdrsResponseStatus (\ s a -> s{_ckdrsResponseStatus = a});
+
+instance NFData CancelKeyDeletionResponse
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
@@ -99,6 +99,8 @@
 
 instance Hashable CreateAlias
 
+instance NFData CreateAlias
+
 instance ToHeaders CreateAlias where
         toHeaders
           = const
@@ -131,3 +133,5 @@
 createAliasResponse
     :: CreateAliasResponse
 createAliasResponse = CreateAliasResponse'
+
+instance NFData CreateAliasResponse
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
@@ -197,6 +197,8 @@
 
 instance Hashable CreateGrant
 
+instance NFData CreateGrant
+
 instance ToHeaders CreateGrant where
         toHeaders
           = const
@@ -268,3 +270,5 @@
 -- | The response status code.
 cgrsResponseStatus :: Lens' CreateGrantResponse Int
 cgrsResponseStatus = lens _cgrsResponseStatus (\ s a -> s{_cgrsResponseStatus = a});
+
+instance NFData CreateGrantResponse
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
@@ -101,6 +101,8 @@
 
 instance Hashable CreateKey
 
+instance NFData CreateKey
+
 instance ToHeaders CreateKey where
         toHeaders
           = const
@@ -153,3 +155,5 @@
 -- | The response status code.
 ckrsResponseStatus :: Lens' CreateKeyResponse Int
 ckrsResponseStatus = lens _ckrsResponseStatus (\ s a -> s{_ckrsResponseStatus = a});
+
+instance NFData CreateKeyResponse
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
@@ -122,6 +122,8 @@
 
 instance Hashable Decrypt
 
+instance NFData Decrypt
+
 instance ToHeaders Decrypt where
         toHeaders
           = const
@@ -190,3 +192,5 @@
 -- | The response status code.
 drsResponseStatus :: Lens' DecryptResponse Int
 drsResponseStatus = lens _drsResponseStatus (\ s a -> s{_drsResponseStatus = a});
+
+instance NFData DecryptResponse
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
@@ -71,6 +71,8 @@
 
 instance Hashable DeleteAlias
 
+instance NFData DeleteAlias
+
 instance ToHeaders DeleteAlias where
         toHeaders
           = const
@@ -101,3 +103,5 @@
 deleteAliasResponse
     :: DeleteAliasResponse
 deleteAliasResponse = DeleteAliasResponse'
+
+instance NFData DeleteAliasResponse
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
@@ -98,6 +98,8 @@
 
 instance Hashable DescribeKey
 
+instance NFData DescribeKey
+
 instance ToHeaders DescribeKey where
         toHeaders
           = const
@@ -149,3 +151,5 @@
 -- | The response status code.
 dkrsResponseStatus :: Lens' DescribeKeyResponse Int
 dkrsResponseStatus = lens _dkrsResponseStatus (\ s a -> s{_dkrsResponseStatus = a});
+
+instance NFData DescribeKeyResponse
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
@@ -78,6 +78,8 @@
 
 instance Hashable DisableKey
 
+instance NFData DisableKey
+
 instance ToHeaders DisableKey where
         toHeaders
           = const
@@ -107,3 +109,5 @@
 disableKeyResponse
     :: DisableKeyResponse
 disableKeyResponse = DisableKeyResponse'
+
+instance NFData DisableKeyResponse
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
@@ -75,6 +75,8 @@
 
 instance Hashable DisableKeyRotation
 
+instance NFData DisableKeyRotation
+
 instance ToHeaders DisableKeyRotation where
         toHeaders
           = const
@@ -104,3 +106,5 @@
 disableKeyRotationResponse
     :: DisableKeyRotationResponse
 disableKeyRotationResponse = DisableKeyRotationResponse'
+
+instance NFData DisableKeyRotationResponse
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
@@ -74,6 +74,8 @@
 
 instance Hashable EnableKey
 
+instance NFData EnableKey
+
 instance ToHeaders EnableKey where
         toHeaders
           = const
@@ -103,3 +105,5 @@
 enableKeyResponse
     :: EnableKeyResponse
 enableKeyResponse = EnableKeyResponse'
+
+instance NFData EnableKeyResponse
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
@@ -74,6 +74,8 @@
 
 instance Hashable EnableKeyRotation
 
+instance NFData EnableKeyRotation
+
 instance ToHeaders EnableKeyRotation where
         toHeaders
           = const
@@ -103,3 +105,5 @@
 enableKeyRotationResponse
     :: EnableKeyRotationResponse
 enableKeyRotationResponse = EnableKeyRotationResponse'
+
+instance NFData EnableKeyRotationResponse
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
@@ -149,6 +149,8 @@
 
 instance Hashable Encrypt
 
+instance NFData Encrypt
+
 instance ToHeaders Encrypt where
         toHeaders
           = const
@@ -217,3 +219,5 @@
 -- | The response status code.
 ersResponseStatus :: Lens' EncryptResponse Int
 ersResponseStatus = lens _ersResponseStatus (\ s a -> s{_ersResponseStatus = a});
+
+instance NFData EncryptResponse
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
@@ -168,6 +168,8 @@
 
 instance Hashable GenerateDataKey
 
+instance NFData GenerateDataKey
+
 instance ToHeaders GenerateDataKey where
         toHeaders
           = const
@@ -262,3 +264,5 @@
 -- This 'Lens' accepts and returns only raw unencoded data.
 gdkrsCiphertextBlob :: Lens' GenerateDataKeyResponse ByteString
 gdkrsCiphertextBlob = lens _gdkrsCiphertextBlob (\ s a -> s{_gdkrsCiphertextBlob = a}) . _Base64;
+
+instance NFData GenerateDataKeyResponse
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
@@ -137,6 +137,8 @@
 
 instance Hashable GenerateDataKeyWithoutPlaintext
 
+instance NFData GenerateDataKeyWithoutPlaintext
+
 instance ToHeaders GenerateDataKeyWithoutPlaintext
          where
         toHeaders
@@ -214,3 +216,6 @@
 -- | The response status code.
 gdkwprsResponseStatus :: Lens' GenerateDataKeyWithoutPlaintextResponse Int
 gdkwprsResponseStatus = lens _gdkwprsResponseStatus (\ s a -> s{_gdkwprsResponseStatus = a});
+
+instance NFData
+         GenerateDataKeyWithoutPlaintextResponse
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
@@ -75,6 +75,8 @@
 
 instance Hashable GenerateRandom
 
+instance NFData GenerateRandom
+
 instance ToHeaders GenerateRandom where
         toHeaders
           = const
@@ -131,3 +133,5 @@
 -- | The response status code.
 grrsResponseStatus :: Lens' GenerateRandomResponse Int
 grrsResponseStatus = lens _grrsResponseStatus (\ s a -> s{_grrsResponseStatus = a});
+
+instance NFData GenerateRandomResponse
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
@@ -93,6 +93,8 @@
 
 instance Hashable GetKeyPolicy
 
+instance NFData GetKeyPolicy
+
 instance ToHeaders GetKeyPolicy where
         toHeaders
           = const
@@ -144,3 +146,5 @@
 -- | The response status code.
 gkprsResponseStatus :: Lens' GetKeyPolicyResponse Int
 gkprsResponseStatus = lens _gkprsResponseStatus (\ s a -> s{_gkprsResponseStatus = a});
+
+instance NFData GetKeyPolicyResponse
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
@@ -83,6 +83,8 @@
 
 instance Hashable GetKeyRotationStatus
 
+instance NFData GetKeyRotationStatus
+
 instance ToHeaders GetKeyRotationStatus where
         toHeaders
           = const
@@ -131,3 +133,5 @@
 -- | The response status code.
 gkrsrsResponseStatus :: Lens' GetKeyRotationStatusResponse Int
 gkrsrsResponseStatus = lens _gkrsrsResponseStatus (\ s a -> s{_gkrsrsResponseStatus = a});
+
+instance NFData GetKeyRotationStatusResponse
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
@@ -70,8 +70,8 @@
     }
 
 -- | Use this parameter only when paginating results and only in a subsequent
--- request after you\'ve received a response with truncated results. Set it
--- to the value of 'NextMarker' from the response you just received.
+-- request after you receive a response with truncated results. Set it to
+-- the value of 'NextMarker' from the response you just received.
 laMarker :: Lens' ListAliases (Maybe Text)
 laMarker = lens _laMarker (\ s a -> s{_laMarker = a});
 
@@ -104,6 +104,8 @@
 
 instance Hashable ListAliases
 
+instance NFData ListAliases
+
 instance ToHeaders ListAliases where
         toHeaders
           = const
@@ -174,3 +176,5 @@
 -- | The response status code.
 larsResponseStatus :: Lens' ListAliasesResponse Int
 larsResponseStatus = lens _larsResponseStatus (\ s a -> s{_larsResponseStatus = a});
+
+instance NFData ListAliasesResponse
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
@@ -75,8 +75,8 @@
     }
 
 -- | Use this parameter only when paginating results and only in a subsequent
--- request after you\'ve received a response with truncated results. Set it
--- to the value of 'NextMarker' from the response you just received.
+-- request after you receive a response with truncated results. Set it to
+-- the value of 'NextMarker' from the response you just received.
 lgMarker :: Lens' ListGrants (Maybe Text)
 lgMarker = lens _lgMarker (\ s a -> s{_lgMarker = a});
 
@@ -112,6 +112,8 @@
         response = receiveJSON (\ s h x -> eitherParseJSON x)
 
 instance Hashable ListGrants
+
+instance NFData 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
@@ -76,8 +76,8 @@
     }
 
 -- | Use this parameter only when paginating results and only in a subsequent
--- request after you\'ve received a response with truncated results. Set it
--- to the value of 'NextMarker' from the response you just received.
+-- request after you receive a response with truncated results. Set it to
+-- the value of 'NextMarker' from the response you just received.
 lkpMarker :: Lens' ListKeyPolicies (Maybe Text)
 lkpMarker = lens _lkpMarker (\ s a -> s{_lkpMarker = a});
 
@@ -127,6 +127,8 @@
 
 instance Hashable ListKeyPolicies
 
+instance NFData ListKeyPolicies
+
 instance ToHeaders ListKeyPolicies where
         toHeaders
           = const
@@ -199,3 +201,5 @@
 -- | The response status code.
 lkprsResponseStatus :: Lens' ListKeyPoliciesResponse Int
 lkprsResponseStatus = lens _lkprsResponseStatus (\ s a -> s{_lkprsResponseStatus = a});
+
+instance NFData ListKeyPoliciesResponse
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
@@ -70,8 +70,8 @@
     }
 
 -- | Use this parameter only when paginating results and only in a subsequent
--- request after you\'ve received a response with truncated results. Set it
--- to the value of 'NextMarker' from the response you just received.
+-- request after you receive a response with truncated results. Set it to
+-- the value of 'NextMarker' from the response you just received.
 lkMarker :: Lens' ListKeys (Maybe Text)
 lkMarker = lens _lkMarker (\ s a -> s{_lkMarker = a});
 
@@ -104,6 +104,8 @@
 
 instance Hashable ListKeys
 
+instance NFData ListKeys
+
 instance ToHeaders ListKeys where
         toHeaders
           = const
@@ -174,3 +176,5 @@
 -- | The response status code.
 lkrsResponseStatus :: Lens' ListKeysResponse Int
 lkrsResponseStatus = lens _lkrsResponseStatus (\ s a -> s{_lkrsResponseStatus = a});
+
+instance NFData ListKeysResponse
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
@@ -76,8 +76,8 @@
     }
 
 -- | Use this parameter only when paginating results and only in a subsequent
--- request after you\'ve received a response with truncated results. Set it
--- to the value of 'NextMarker' from the response you just received.
+-- request after you receive a response with truncated results. Set it to
+-- the value of 'NextMarker' from the response you just received.
 lrgMarker :: Lens' ListRetirableGrants (Maybe Text)
 lrgMarker = lens _lrgMarker (\ s a -> s{_lrgMarker = a});
 
@@ -109,6 +109,8 @@
         response = receiveJSON (\ s h x -> eitherParseJSON x)
 
 instance Hashable ListRetirableGrants
+
+instance NFData 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
@@ -97,6 +97,8 @@
 
 instance Hashable PutKeyPolicy
 
+instance NFData PutKeyPolicy
+
 instance ToHeaders PutKeyPolicy where
         toHeaders
           = const
@@ -130,3 +132,5 @@
 putKeyPolicyResponse
     :: PutKeyPolicyResponse
 putKeyPolicyResponse = PutKeyPolicyResponse'
+
+instance NFData PutKeyPolicyResponse
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
@@ -150,6 +150,8 @@
 
 instance Hashable ReEncrypt
 
+instance NFData ReEncrypt
+
 instance ToHeaders ReEncrypt where
         toHeaders
           = const
@@ -229,3 +231,5 @@
 -- | The response status code.
 rersResponseStatus :: Lens' ReEncryptResponse Int
 rersResponseStatus = lens _rersResponseStatus (\ s a -> s{_rersResponseStatus = a});
+
+instance NFData ReEncryptResponse
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
@@ -109,6 +109,8 @@
 
 instance Hashable RetireGrant
 
+instance NFData RetireGrant
+
 instance ToHeaders RetireGrant where
         toHeaders
           = const
@@ -142,3 +144,5 @@
 retireGrantResponse
     :: RetireGrantResponse
 retireGrantResponse = RetireGrantResponse'
+
+instance NFData RetireGrantResponse
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
@@ -86,6 +86,8 @@
 
 instance Hashable RevokeGrant
 
+instance NFData RevokeGrant
+
 instance ToHeaders RevokeGrant where
         toHeaders
           = const
@@ -118,3 +120,5 @@
 revokeGrantResponse
     :: RevokeGrantResponse
 revokeGrantResponse = RevokeGrantResponse'
+
+instance NFData RevokeGrantResponse
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
@@ -117,6 +117,8 @@
 
 instance Hashable ScheduleKeyDeletion
 
+instance NFData ScheduleKeyDeletion
+
 instance ToHeaders ScheduleKeyDeletion where
         toHeaders
           = const
@@ -179,3 +181,5 @@
 -- | The response status code.
 skdrsResponseStatus :: Lens' ScheduleKeyDeletionResponse Int
 skdrsResponseStatus = lens _skdrsResponseStatus (\ s a -> s{_skdrsResponseStatus = a});
+
+instance NFData ScheduleKeyDeletionResponse
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
@@ -132,6 +132,8 @@
       | has (hasCode "ThrottlingException" . hasStatus 400) e =
           Just "throttling_exception"
       | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"
+      | has (hasStatus 504) e = Just "gateway_timeout"
+      | has (hasStatus 502) e = Just "bad_gateway"
       | has (hasStatus 503) e = Just "service_unavailable"
       | has (hasStatus 500) e = Just "general_server_error"
       | has (hasStatus 509) e = Just "limit_exceeded"
@@ -140,8 +142,7 @@
 -- | The request was rejected because the marker that specifies where
 -- pagination should next begin is not valid.
 _InvalidMarkerException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidMarkerException =
-    _ServiceError . hasStatus 400 . hasCode "InvalidMarker"
+_InvalidMarkerException = _ServiceError . hasCode "InvalidMarkerException"
 
 -- | The request was rejected because the state of the specified resource is
 -- not valid for this request.
@@ -151,89 +152,83 @@
 -- <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/.
 _KMSInvalidStateException :: AsError a => Getting (First ServiceError) a ServiceError
-_KMSInvalidStateException =
-    _ServiceError . hasStatus 409 . hasCode "KMSInvalidStateException"
+_KMSInvalidStateException = _ServiceError . hasCode "KMSInvalidStateException"
 
 -- | The request was rejected because the specified KeySpec parameter is not
 -- valid. The currently supported value is ENCRYPT\/DECRYPT.
 _InvalidKeyUsageException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidKeyUsageException =
-    _ServiceError . hasStatus 400 . hasCode "InvalidKeyUsage"
+_InvalidKeyUsageException = _ServiceError . hasCode "InvalidKeyUsageException"
 
 -- | The request was rejected because the specified policy is not
 -- syntactically or semantically correct.
 _MalformedPolicyDocumentException :: AsError a => Getting (First ServiceError) a ServiceError
 _MalformedPolicyDocumentException =
-    _ServiceError . hasStatus 400 . hasCode "MalformedPolicyDocument"
+    _ServiceError . hasCode "MalformedPolicyDocumentException"
 
 -- | The request was rejected because a specified parameter is not supported.
 _UnsupportedOperationException :: AsError a => Getting (First ServiceError) a ServiceError
 _UnsupportedOperationException =
-    _ServiceError . hasStatus 400 . hasCode "UnsupportedOperation"
+    _ServiceError . hasCode "UnsupportedOperationException"
 
 -- | The request was rejected because the specified key was marked as
 -- disabled.
 _DisabledException :: AsError a => Getting (First ServiceError) a ServiceError
-_DisabledException = _ServiceError . hasStatus 409 . hasCode "Disabled"
+_DisabledException = _ServiceError . hasCode "DisabledException"
 
 -- | The request was rejected because the key was not available. The request
 -- can be retried.
 _KeyUnavailableException :: AsError a => Getting (First ServiceError) a ServiceError
-_KeyUnavailableException =
-    _ServiceError . hasStatus 500 . hasCode "KeyUnavailable"
+_KeyUnavailableException = _ServiceError . hasCode "KeyUnavailableException"
 
 -- | The request was rejected because an internal exception occurred. The
 -- request can be retried.
 _KMSInternalException :: AsError a => Getting (First ServiceError) a ServiceError
-_KMSInternalException = _ServiceError . hasStatus 500 . hasCode "KMSInternal"
+_KMSInternalException = _ServiceError . hasCode "KMSInternalException"
 
 -- | The request was rejected because the specified entity or resource could
 -- not be found.
 _NotFoundException :: AsError a => Getting (First ServiceError) a ServiceError
-_NotFoundException = _ServiceError . hasStatus 404 . hasCode "NotFound"
+_NotFoundException = _ServiceError . hasCode "NotFoundException"
 
 -- | The request was rejected because the specified alias name is not valid.
 _InvalidAliasNameException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidAliasNameException =
-    _ServiceError . hasStatus 400 . hasCode "InvalidAliasName"
+    _ServiceError . hasCode "InvalidAliasNameException"
 
 -- | The request was rejected because the specified 'GrantId' is not valid.
 _InvalidGrantIdException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidGrantIdException =
-    _ServiceError . hasStatus 400 . hasCode "InvalidGrantId"
+_InvalidGrantIdException = _ServiceError . hasCode "InvalidGrantIdException"
 
 -- | The request was rejected because a grant token provided as part of the
 -- request is invalid.
 _InvalidGrantTokenException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidGrantTokenException =
-    _ServiceError . hasStatus 400 . hasCode "InvalidGrantToken"
+    _ServiceError . hasCode "InvalidGrantTokenException"
 
 -- | The request was rejected because a specified ARN was not valid.
 _InvalidARNException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidARNException = _ServiceError . hasStatus 400 . hasCode "InvalidArn"
+_InvalidARNException = _ServiceError . hasCode "InvalidArnException"
 
 -- | The system timed out while trying to fulfill the request. The request
 -- can be retried.
 _DependencyTimeoutException :: AsError a => Getting (First ServiceError) a ServiceError
 _DependencyTimeoutException =
-    _ServiceError . hasStatus 503 . hasCode "DependencyTimeout"
+    _ServiceError . hasCode "DependencyTimeoutException"
 
 -- | The request was rejected because the specified ciphertext has been
 -- corrupted or is otherwise invalid.
 _InvalidCiphertextException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidCiphertextException =
-    _ServiceError . hasStatus 400 . hasCode "InvalidCiphertext"
+    _ServiceError . hasCode "InvalidCiphertextException"
 
 -- | The request was rejected because it attempted to create a resource that
 -- already exists.
 _AlreadyExistsException :: AsError a => Getting (First ServiceError) a ServiceError
-_AlreadyExistsException =
-    _ServiceError . hasStatus 400 . hasCode "AlreadyExists"
+_AlreadyExistsException = _ServiceError . hasCode "AlreadyExistsException"
 
 -- | The request was rejected because a limit was exceeded. For more
 -- information, see
 -- <http://docs.aws.amazon.com/kms/latest/developerguide/limits.html Limits>
 -- in the /AWS Key Management Service Developer Guide/.
 _LimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
-_LimitExceededException =
-    _ServiceError . hasStatus 400 . hasCode "LimitExceeded"
+_LimitExceededException = _ServiceError . hasCode "LimitExceededException"
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
@@ -70,6 +70,8 @@
 
 instance Hashable AliasListEntry
 
+instance NFData AliasListEntry
+
 -- | A structure for specifying the conditions under which the operations
 -- permitted by the grant are allowed.
 --
@@ -126,6 +128,8 @@
 
 instance Hashable GrantConstraints
 
+instance NFData GrantConstraints
+
 instance ToJSON GrantConstraints where
         toJSON GrantConstraints'{..}
           = object
@@ -241,6 +245,8 @@
 
 instance Hashable GrantListEntry
 
+instance NFData GrantListEntry
+
 -- | Contains information about each entry in the key list.
 --
 -- /See:/ 'keyListEntry' smart constructor.
@@ -281,6 +287,8 @@
 
 instance Hashable KeyListEntry
 
+instance NFData KeyListEntry
+
 -- | Contains metadata about a customer master key (CMK).
 --
 -- This data type is used as a response element for the < CreateKey> and
@@ -399,6 +407,8 @@
 
 instance Hashable KeyMetadata
 
+instance NFData KeyMetadata
+
 -- | /See:/ 'listGrantsResponse' smart constructor.
 data ListGrantsResponse = ListGrantsResponse'
     { _lgTruncated  :: !(Maybe Bool)
@@ -448,3 +458,5 @@
                      <*> (x .:? "NextMarker"))
 
 instance Hashable ListGrantsResponse
+
+instance NFData 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
@@ -37,6 +37,7 @@
         AES256 -> "AES_256"
 
 instance Hashable     DataKeySpec
+instance NFData       DataKeySpec
 instance ToByteString DataKeySpec
 instance ToQuery      DataKeySpec
 instance ToHeader     DataKeySpec
@@ -83,6 +84,7 @@
         RetireGrant -> "RetireGrant"
 
 instance Hashable     GrantOperation
+instance NFData       GrantOperation
 instance ToByteString GrantOperation
 instance ToQuery      GrantOperation
 instance ToHeader     GrantOperation
@@ -114,6 +116,7 @@
         PendingDeletion -> "PendingDeletion"
 
 instance Hashable     KeyState
+instance NFData       KeyState
 instance ToByteString KeyState
 instance ToQuery      KeyState
 instance ToHeader     KeyState
@@ -136,6 +139,7 @@
         EncryptDecrypt -> "ENCRYPT_DECRYPT"
 
 instance Hashable     KeyUsageType
+instance NFData       KeyUsageType
 instance ToByteString KeyUsageType
 instance ToQuery      KeyUsageType
 instance ToHeader     KeyUsageType
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
@@ -103,6 +103,8 @@
 
 instance Hashable UpdateAlias
 
+instance NFData UpdateAlias
+
 instance ToHeaders UpdateAlias where
         toHeaders
           = const
@@ -135,3 +137,5 @@
 updateAliasResponse
     :: UpdateAliasResponse
 updateAliasResponse = UpdateAliasResponse'
+
+instance NFData UpdateAliasResponse
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
@@ -85,6 +85,8 @@
 
 instance Hashable UpdateKeyDescription
 
+instance NFData UpdateKeyDescription
+
 instance ToHeaders UpdateKeyDescription where
         toHeaders
           = const
@@ -117,3 +119,5 @@
 updateKeyDescriptionResponse
     :: UpdateKeyDescriptionResponse
 updateKeyDescriptionResponse = UpdateKeyDescriptionResponse'
+
+instance NFData UpdateKeyDescriptionResponse
