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
@@ -71,7 +71,7 @@
 <http://docs.aws.amazon.com/awscloudtrail/latest/userguide/what_is_cloud_trail_top_level.html AWS CloudTrail User Guide>.
 
 Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-sts)
-and the [AWS API Reference](http://docs.aws.amazon.com/STS/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-sts.cabal b/amazonka-sts.cabal
--- a/amazonka-sts.cabal
+++ b/amazonka-sts.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-sts
-version:               1.3.7
+version:               1.4.0
 synopsis:              Amazon Security Token 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
@@ -81,7 +81,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.STS" and the <http://docs.aws.amazon.com/STS/latest/APIReference/Welcome.html AWS API Reference>
+    See "Network.AWS.STS" or <https://aws.amazon.com/documentation/ the AWS Documentation>
     to get started.
 
 source-repository head
@@ -110,7 +110,7 @@
         , Network.AWS.STS.Types.Sum
 
     build-depends:
-          amazonka-core == 1.3.7.*
+          amazonka-core == 1.4.0.*
         , base          >= 4.7     && < 5
 
 test-suite amazonka-sts-test
@@ -130,9 +130,9 @@
         , Test.AWS.STS.Internal
 
     build-depends:
-          amazonka-core == 1.3.7.*
-        , amazonka-test == 1.3.7.*
-        , amazonka-sts == 1.3.7.*
+          amazonka-core == 1.4.0.*
+        , amazonka-test == 1.4.0.*
+        , amazonka-sts == 1.4.0.*
         , base
         , bytestring
         , tasty
diff --git a/gen/Network/AWS/STS.hs b/gen/Network/AWS/STS.hs
--- a/gen/Network/AWS/STS.hs
+++ b/gen/Network/AWS/STS.hs
@@ -5,7 +5,7 @@
 
 -- |
 -- Module      : Network.AWS.STS
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -67,12 +67,10 @@
 -- was made, and so on. To learn more about CloudTrail, including how to
 -- turn it on and find your log files, see the
 -- <http://docs.aws.amazon.com/awscloudtrail/latest/userguide/what_is_cloud_trail_top_level.html AWS CloudTrail User Guide>.
---
--- /See:/ <http://docs.aws.amazon.com/STS/latest/APIReference/Welcome.html AWS API Reference>
 module Network.AWS.STS
     (
     -- * Service Configuration
-      sTS
+      sts
 
     -- * Errors
     -- $errors
@@ -85,6 +83,9 @@
 
     -- ** PackedPolicyTooLargeException
     , _PackedPolicyTooLargeException
+
+    -- ** RegionDisabledException
+    , _RegionDisabledException
 
     -- ** IdPCommunicationErrorException
     , _IdPCommunicationErrorException
diff --git a/gen/Network/AWS/STS/AssumeRole.hs b/gen/Network/AWS/STS/AssumeRole.hs
--- a/gen/Network/AWS/STS/AssumeRole.hs
+++ b/gen/Network/AWS/STS/AssumeRole.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.STS.AssumeRole
--- 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
@@ -96,8 +96,6 @@
 -- 'TokenCode' parameters. The 'SerialNumber' value identifies the user\'s
 -- hardware or virtual MFA device. The 'TokenCode' is the time-based
 -- one-time password (TOTP) that the MFA devices produces.
---
--- /See:/ <http://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html AWS API Reference> for AssumeRole.
 module Network.AWS.STS.AssumeRole
     (
     -- * Creating a Request
@@ -236,7 +234,7 @@
 
 -- | An identifier for the assumed role session.
 --
--- Use the role session name to uniquely identity a session when the same
+-- Use the role session name to uniquely identify a session when the same
 -- role is assumed by different principals or for different reasons. In
 -- cross-account scenarios, the role session name is visible to, and can be
 -- logged by the account that owns the role. The role session name is also
@@ -249,7 +247,7 @@
 
 instance AWSRequest AssumeRole where
         type Rs AssumeRole = AssumeRoleResponse
-        request = postQuery sTS
+        request = postQuery sts
         response
           = receiveXMLWrapper "AssumeRoleResult"
               (\ s h x ->
@@ -258,6 +256,8 @@
                      <*> (x .@? "AssumedRoleUser")
                      <*> (pure (fromEnum s)))
 
+instance Hashable AssumeRole
+
 instance ToHeaders AssumeRole where
         toHeaders = const mempty
 
@@ -276,7 +276,7 @@
                "RoleArn" =: _arRoleARN,
                "RoleSessionName" =: _arRoleSessionName]
 
--- | Contains the response to a successful AssumeRole request, including
+-- | Contains the response to a successful < AssumeRole> request, including
 -- temporary AWS credentials that can be used to make AWS requests.
 --
 -- /See:/ 'assumeRoleResponse' smart constructor.
@@ -317,6 +317,12 @@
 
 -- | The temporary security credentials, which include an access key ID, a
 -- secret access key, and a security (or session) token.
+--
+-- __Note:__ The size of the security token that STS APIs return is not
+-- fixed. We strongly recommend that you make no assumptions about the
+-- maximum size. As of this writing, the typical size is less than 4096
+-- bytes, but that can vary. Also, future updates to AWS might require
+-- larger sizes.
 arrsCredentials :: Lens' AssumeRoleResponse (Maybe Credentials)
 arrsCredentials = lens _arrsCredentials (\ s a -> s{_arrsCredentials = a});
 
diff --git a/gen/Network/AWS/STS/AssumeRoleWithSAML.hs b/gen/Network/AWS/STS/AssumeRoleWithSAML.hs
--- a/gen/Network/AWS/STS/AssumeRoleWithSAML.hs
+++ b/gen/Network/AWS/STS/AssumeRoleWithSAML.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.STS.AssumeRoleWithSAML
--- 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
@@ -72,8 +72,6 @@
 --     in the /Using IAM/.
 -- -   <http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp_saml.html Creating a Role for SAML 2.0 Federation>
 --     in the /Using IAM/.
---
--- /See:/ <http://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html AWS API Reference> for AssumeRoleWithSAML.
 module Network.AWS.STS.AssumeRoleWithSAML
     (
     -- * Creating a Request
@@ -196,7 +194,7 @@
 instance AWSRequest AssumeRoleWithSAML where
         type Rs AssumeRoleWithSAML =
              AssumeRoleWithSAMLResponse
-        request = postQuery sTS
+        request = postQuery sts
         response
           = receiveXMLWrapper "AssumeRoleWithSAMLResult"
               (\ s h x ->
@@ -210,6 +208,8 @@
                      <*> (x .@? "Issuer")
                      <*> (pure (fromEnum s)))
 
+instance Hashable AssumeRoleWithSAML
+
 instance ToHeaders AssumeRoleWithSAML where
         toHeaders = const mempty
 
@@ -227,7 +227,7 @@
                "PrincipalArn" =: _arwsamlPrincipalARN,
                "SAMLAssertion" =: _arwsamlSAMLAssertion]
 
--- | Contains the response to a successful AssumeRoleWithSAML request,
+-- | Contains the response to a successful < AssumeRoleWithSAML> request,
 -- including temporary AWS credentials that can be used to make AWS
 -- requests.
 --
@@ -297,7 +297,14 @@
 arwsamlrsPackedPolicySize :: Lens' AssumeRoleWithSAMLResponse (Maybe Natural)
 arwsamlrsPackedPolicySize = lens _arwsamlrsPackedPolicySize (\ s a -> s{_arwsamlrsPackedPolicySize = a}) . mapping _Nat;
 
--- | Undocumented member.
+-- | The temporary security credentials, which include an access key ID, a
+-- secret access key, and a security (or session) token.
+--
+-- __Note:__ The size of the security token that STS APIs return is not
+-- fixed. We strongly recommend that you make no assumptions about the
+-- maximum size. As of this writing, the typical size is less than 4096
+-- bytes, but that can vary. Also, future updates to AWS might require
+-- larger sizes.
 arwsamlrsCredentials :: Lens' AssumeRoleWithSAMLResponse (Maybe Credentials)
 arwsamlrsCredentials = lens _arwsamlrsCredentials (\ s a -> s{_arwsamlrsCredentials = a});
 
diff --git a/gen/Network/AWS/STS/AssumeRoleWithWebIdentity.hs b/gen/Network/AWS/STS/AssumeRoleWithWebIdentity.hs
--- a/gen/Network/AWS/STS/AssumeRoleWithWebIdentity.hs
+++ b/gen/Network/AWS/STS/AssumeRoleWithWebIdentity.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.STS.AssumeRoleWithWebIdentity
--- 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
@@ -94,8 +94,6 @@
 --     This article discusses web identity federation and shows an example
 --     of how to use web identity federation to get access to content in
 --     Amazon S3.
---
--- /See:/ <http://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html AWS API Reference> for AssumeRoleWithWebIdentity.
 module Network.AWS.STS.AssumeRoleWithWebIdentity
     (
     -- * Creating a Request
@@ -232,7 +230,7 @@
 instance AWSRequest AssumeRoleWithWebIdentity where
         type Rs AssumeRoleWithWebIdentity =
              AssumeRoleWithWebIdentityResponse
-        request = postQuery sTS
+        request = postQuery sts
         response
           = receiveXMLWrapper "AssumeRoleWithWebIdentityResult"
               (\ s h x ->
@@ -245,6 +243,8 @@
                      <*> (x .@? "Provider")
                      <*> (pure (fromEnum s)))
 
+instance Hashable AssumeRoleWithWebIdentity
+
 instance ToHeaders AssumeRoleWithWebIdentity where
         toHeaders = const mempty
 
@@ -263,9 +263,9 @@
                "RoleSessionName" =: _arwwiRoleSessionName,
                "WebIdentityToken" =: _arwwiWebIdentityToken]
 
--- | Contains the response to a successful AssumeRoleWithWebIdentity request,
--- including temporary AWS credentials that can be used to make AWS
--- requests.
+-- | Contains the response to a successful < AssumeRoleWithWebIdentity>
+-- request, including temporary AWS credentials that can be used to make
+-- AWS requests.
 --
 -- /See:/ 'assumeRoleWithWebIdentityResponse' smart constructor.
 data AssumeRoleWithWebIdentityResponse = AssumeRoleWithWebIdentityResponse'
@@ -333,6 +333,12 @@
 
 -- | The temporary security credentials, which include an access key ID, a
 -- secret access key, and a security token.
+--
+-- __Note:__ The size of the security token that STS APIs return is not
+-- fixed. We strongly recommend that you make no assumptions about the
+-- maximum size. As of this writing, the typical size is less than 4096
+-- bytes, but that can vary. Also, future updates to AWS might require
+-- larger sizes.
 arwwirsCredentials :: Lens' AssumeRoleWithWebIdentityResponse (Maybe Credentials)
 arwwirsCredentials = lens _arwwirsCredentials (\ s a -> s{_arwwirsCredentials = a});
 
diff --git a/gen/Network/AWS/STS/DecodeAuthorizationMessage.hs b/gen/Network/AWS/STS/DecodeAuthorizationMessage.hs
--- a/gen/Network/AWS/STS/DecodeAuthorizationMessage.hs
+++ b/gen/Network/AWS/STS/DecodeAuthorizationMessage.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.STS.DecodeAuthorizationMessage
--- 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,8 +47,6 @@
 -- -   The requested action.
 -- -   The requested resource.
 -- -   The values of condition keys in the context of the user\'s request.
---
--- /See:/ <http://docs.aws.amazon.com/STS/latest/APIReference/API_DecodeAuthorizationMessage.html AWS API Reference> for DecodeAuthorizationMessage.
 module Network.AWS.STS.DecodeAuthorizationMessage
     (
     -- * Creating a Request
@@ -97,13 +95,15 @@
 instance AWSRequest DecodeAuthorizationMessage where
         type Rs DecodeAuthorizationMessage =
              DecodeAuthorizationMessageResponse
-        request = postQuery sTS
+        request = postQuery sts
         response
           = receiveXMLWrapper
               "DecodeAuthorizationMessageResult"
               (\ s h x ->
                  DecodeAuthorizationMessageResponse' <$>
                    (x .@? "DecodedMessage") <*> (pure (fromEnum s)))
+
+instance Hashable DecodeAuthorizationMessage
 
 instance ToHeaders DecodeAuthorizationMessage where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/STS/GetFederationToken.hs b/gen/Network/AWS/STS/GetFederationToken.hs
--- a/gen/Network/AWS/STS/GetFederationToken.hs
+++ b/gen/Network/AWS/STS/GetFederationToken.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.STS.GetFederationToken
--- 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
@@ -89,8 +89,6 @@
 -- For information about using 'GetFederationToken' to create temporary
 -- security credentials, see
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getfederationtoken GetFederationToken—Federation Through a Custom Identity Broker>.
---
--- /See:/ <http://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html AWS API Reference> for GetFederationToken.
 module Network.AWS.STS.GetFederationToken
     (
     -- * Creating a Request
@@ -192,7 +190,7 @@
 instance AWSRequest GetFederationToken where
         type Rs GetFederationToken =
              GetFederationTokenResponse
-        request = postQuery sTS
+        request = postQuery sts
         response
           = receiveXMLWrapper "GetFederationTokenResult"
               (\ s h x ->
@@ -201,6 +199,8 @@
                      <*> (x .@? "FederatedUser")
                      <*> (pure (fromEnum s)))
 
+instance Hashable GetFederationToken
+
 instance ToHeaders GetFederationToken where
         toHeaders = const mempty
 
@@ -215,7 +215,7 @@
                "DurationSeconds" =: _gftDurationSeconds,
                "Policy" =: _gftPolicy, "Name" =: _gftName]
 
--- | Contains the response to a successful GetFederationToken request,
+-- | Contains the response to a successful < GetFederationToken> request,
 -- including temporary AWS credentials that can be used to make AWS
 -- requests.
 --
@@ -255,7 +255,14 @@
 gftrsPackedPolicySize :: Lens' GetFederationTokenResponse (Maybe Natural)
 gftrsPackedPolicySize = lens _gftrsPackedPolicySize (\ s a -> s{_gftrsPackedPolicySize = a}) . mapping _Nat;
 
--- | Credentials for the service API authentication.
+-- | The temporary security credentials, which include an access key ID, a
+-- secret access key, and a security (or session) token.
+--
+-- __Note:__ The size of the security token that STS APIs return is not
+-- fixed. We strongly recommend that you make no assumptions about the
+-- maximum size. As of this writing, the typical size is less than 4096
+-- bytes, but that can vary. Also, future updates to AWS might require
+-- larger sizes.
 gftrsCredentials :: Lens' GetFederationTokenResponse (Maybe Credentials)
 gftrsCredentials = lens _gftrsCredentials (\ s a -> s{_gftrsCredentials = a});
 
diff --git a/gen/Network/AWS/STS/GetSessionToken.hs b/gen/Network/AWS/STS/GetSessionToken.hs
--- a/gen/Network/AWS/STS/GetSessionToken.hs
+++ b/gen/Network/AWS/STS/GetSessionToken.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.STS.GetSessionToken
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -54,8 +54,6 @@
 -- credentials, go to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getsessiontoken Temporary Credentials for Users in Untrusted Environments>
 -- in the /Using IAM/.
---
--- /See:/ <http://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html AWS API Reference> for GetSessionToken.
 module Network.AWS.STS.GetSessionToken
     (
     -- * Creating a Request
@@ -137,13 +135,15 @@
 
 instance AWSRequest GetSessionToken where
         type Rs GetSessionToken = GetSessionTokenResponse
-        request = postQuery sTS
+        request = postQuery sts
         response
           = receiveXMLWrapper "GetSessionTokenResult"
               (\ s h x ->
                  GetSessionTokenResponse' <$>
                    (x .@? "Credentials") <*> (pure (fromEnum s)))
 
+instance Hashable GetSessionToken
+
 instance ToHeaders GetSessionToken where
         toHeaders = const mempty
 
@@ -159,8 +159,9 @@
                "DurationSeconds" =: _gstDurationSeconds,
                "SerialNumber" =: _gstSerialNumber]
 
--- | Contains the response to a successful GetSessionToken request, including
--- temporary AWS credentials that can be used to make AWS requests.
+-- | Contains the response to a successful < GetSessionToken> request,
+-- including temporary AWS credentials that can be used to make AWS
+-- requests.
 --
 -- /See:/ 'getSessionTokenResponse' smart constructor.
 data GetSessionTokenResponse = GetSessionTokenResponse'
@@ -184,7 +185,14 @@
     , _gstrsResponseStatus = pResponseStatus_
     }
 
--- | The session credentials for API authentication.
+-- | The temporary security credentials, which include an access key ID, a
+-- secret access key, and a security (or session) token.
+--
+-- __Note:__ The size of the security token that STS APIs return is not
+-- fixed. We strongly recommend that you make no assumptions about the
+-- maximum size. As of this writing, the typical size is less than 4096
+-- bytes, but that can vary. Also, future updates to AWS might require
+-- larger sizes.
 gstrsCredentials :: Lens' GetSessionTokenResponse (Maybe Credentials)
 gstrsCredentials = lens _gstrsCredentials (\ s a -> s{_gstrsCredentials = a});
 
diff --git a/gen/Network/AWS/STS/Types.hs b/gen/Network/AWS/STS/Types.hs
--- a/gen/Network/AWS/STS/Types.hs
+++ b/gen/Network/AWS/STS/Types.hs
@@ -4,7 +4,7 @@
 
 -- |
 -- Module      : Network.AWS.STS.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,12 +13,13 @@
 module Network.AWS.STS.Types
     (
     -- * Service Configuration
-      sTS
+      sts
 
     -- * Errors
     , _MalformedPolicyDocumentException
     , _InvalidAuthorizationMessageException
     , _PackedPolicyTooLargeException
+    , _RegionDisabledException
     , _IdPCommunicationErrorException
     , _InvalidIdentityTokenException
     , _ExpiredTokenException
@@ -52,14 +53,14 @@
 import           Network.AWS.STS.Types.Sum
 
 -- | API version '2011-06-15' of the Amazon Security Token Service SDK configuration.
-sTS :: Service
-sTS =
+sts :: Service
+sts =
     Service
     { _svcAbbrev = "STS"
     , _svcSigner = v4
     , _svcPrefix = "sts"
     , _svcVersion = "2011-06-15"
-    , _svcEndpoint = defaultEndpoint sTS
+    , _svcEndpoint = defaultEndpoint sts
     , _svcTimeout = Just 70
     , _svcCheck = statusSuccess
     , _svcError = parseXMLError
@@ -74,6 +75,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"
@@ -102,6 +104,16 @@
 _PackedPolicyTooLargeException :: AsError a => Getting (First ServiceError) a ServiceError
 _PackedPolicyTooLargeException =
     _ServiceError . hasStatus 400 . hasCode "PackedPolicyTooLarge"
+
+-- | STS is not activated in the requested region for the account that is
+-- being asked to create temporary credentials. The account administrator
+-- must activate STS in that region using the IAM Console. For more
+-- information, see
+-- <http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html Activating and Deactivating AWS STS in an AWS Region>
+-- in the /Using IAM/.
+_RegionDisabledException :: AsError a => Getting (First ServiceError) a ServiceError
+_RegionDisabledException =
+    _ServiceError . hasStatus 403 . hasCode "RegionDisabledException"
 
 -- | The request could not be fulfilled because the non-AWS identity provider
 -- (IDP) that was asked to verify the incoming identity token could not be
diff --git a/gen/Network/AWS/STS/Types/Product.hs b/gen/Network/AWS/STS/Types/Product.hs
--- a/gen/Network/AWS/STS/Types/Product.hs
+++ b/gen/Network/AWS/STS/Types/Product.hs
@@ -9,7 +9,7 @@
 
 -- |
 -- Module      : Network.AWS.STS.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
@@ -54,8 +54,8 @@
 aruAssumedRoleId = lens _aruAssumedRoleId (\ s a -> s{_aruAssumedRoleId = a});
 
 -- | The ARN of the temporary security credentials that are returned from the
--- AssumeRole action. For more information about ARNs and how to use them
--- in policies, see
+-- < AssumeRole> action. For more information about ARNs and how to use
+-- them in policies, see
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html IAM Identifiers>
 -- in /Using IAM/.
 aruARN :: Lens' AssumedRoleUser Text
@@ -66,6 +66,8 @@
           = AssumedRoleUser' <$>
               (x .@ "AssumedRoleId") <*> (x .@ "Arn")
 
+instance Hashable AssumedRoleUser
+
 -- | AWS credentials for API authentication.
 --
 -- /See:/ 'credentials' smart constructor.
@@ -125,6 +127,8 @@
                 (x .@ "SessionToken")
                 <*> (x .@ "Expiration")
 
+instance Hashable Credentials
+
 -- | Identifiers for the federated user that is associated with the
 -- credentials.
 --
@@ -168,3 +172,5 @@
         parseXML x
           = FederatedUser' <$>
               (x .@ "FederatedUserId") <*> (x .@ "Arn")
+
+instance Hashable FederatedUser
diff --git a/gen/Network/AWS/STS/Types/Sum.hs b/gen/Network/AWS/STS/Types/Sum.hs
--- a/gen/Network/AWS/STS/Types/Sum.hs
+++ b/gen/Network/AWS/STS/Types/Sum.hs
@@ -9,7 +9,7 @@
 
 -- |
 -- Module      : Network.AWS.STS.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/STS/Waiters.hs b/gen/Network/AWS/STS/Waiters.hs
--- a/gen/Network/AWS/STS/Waiters.hs
+++ b/gen/Network/AWS/STS/Waiters.hs
@@ -7,7 +7,7 @@
 
 -- |
 -- Module      : Network.AWS.STS.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/STS.hs b/test/Test/AWS/Gen/STS.hs
--- a/test/Test/AWS/Gen/STS.hs
+++ b/test/Test/AWS/Gen/STS.hs
@@ -5,7 +5,7 @@
 
 -- |
 -- Module      : Test.AWS.Gen.STS
--- 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
@@ -108,40 +108,40 @@
 testAssumeRoleResponse = res
     "AssumeRoleResponse"
     "fixture/AssumeRoleResponse.proto"
-    sTS
+    sts
     (Proxy :: Proxy AssumeRole)
 
 testDecodeAuthorizationMessageResponse :: DecodeAuthorizationMessageResponse -> TestTree
 testDecodeAuthorizationMessageResponse = res
     "DecodeAuthorizationMessageResponse"
     "fixture/DecodeAuthorizationMessageResponse.proto"
-    sTS
+    sts
     (Proxy :: Proxy DecodeAuthorizationMessage)
 
 testAssumeRoleWithWebIdentityResponse :: AssumeRoleWithWebIdentityResponse -> TestTree
 testAssumeRoleWithWebIdentityResponse = res
     "AssumeRoleWithWebIdentityResponse"
     "fixture/AssumeRoleWithWebIdentityResponse.proto"
-    sTS
+    sts
     (Proxy :: Proxy AssumeRoleWithWebIdentity)
 
 testGetFederationTokenResponse :: GetFederationTokenResponse -> TestTree
 testGetFederationTokenResponse = res
     "GetFederationTokenResponse"
     "fixture/GetFederationTokenResponse.proto"
-    sTS
+    sts
     (Proxy :: Proxy GetFederationToken)
 
 testGetSessionTokenResponse :: GetSessionTokenResponse -> TestTree
 testGetSessionTokenResponse = res
     "GetSessionTokenResponse"
     "fixture/GetSessionTokenResponse.proto"
-    sTS
+    sts
     (Proxy :: Proxy GetSessionToken)
 
 testAssumeRoleWithSAMLResponse :: AssumeRoleWithSAMLResponse -> TestTree
 testAssumeRoleWithSAMLResponse = res
     "AssumeRoleWithSAMLResponse"
     "fixture/AssumeRoleWithSAMLResponse.proto"
-    sTS
+    sts
     (Proxy :: Proxy AssumeRoleWithSAML)
diff --git a/test/Test/AWS/STS.hs b/test/Test/AWS/STS.hs
--- a/test/Test/AWS/STS.hs
+++ b/test/Test/AWS/STS.hs
@@ -1,7 +1,7 @@
 {-# LANGUAGE OverloadedStrings #-}
 
 -- Module      : Test.AWS.STS
--- 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/STS/Internal.hs b/test/Test/AWS/STS/Internal.hs
--- a/test/Test/AWS/STS/Internal.hs
+++ b/test/Test/AWS/STS/Internal.hs
@@ -2,7 +2,7 @@
 {-# OPTIONS_GHC -fno-warn-unused-imports #-}
 
 -- Module      : Test.AWS.STS.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
