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
@@ -73,7 +73,7 @@
     using an access key ID and secret access key.
 
 Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-iam)
-and the [AWS API Reference](http://docs.aws.amazon.com/IAM/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-iam.cabal b/amazonka-iam.cabal
--- a/amazonka-iam.cabal
+++ b/amazonka-iam.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-iam
-version:               1.3.7
+version:               1.4.0
 synopsis:              Amazon Identity and Access Management 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
@@ -83,7 +83,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.IAM" and the <http://docs.aws.amazon.com/IAM/latest/APIReference/Welcome.html AWS API Reference>
+    See "Network.AWS.IAM" or <https://aws.amazon.com/documentation/ the AWS Documentation>
     to get started.
 
 source-repository head
@@ -219,7 +219,7 @@
         , Network.AWS.IAM.Types.Sum
 
     build-depends:
-          amazonka-core == 1.3.7.*
+          amazonka-core == 1.4.0.*
         , base          >= 4.7     && < 5
 
 test-suite amazonka-iam-test
@@ -239,9 +239,9 @@
         , Test.AWS.IAM.Internal
 
     build-depends:
-          amazonka-core == 1.3.7.*
-        , amazonka-test == 1.3.7.*
-        , amazonka-iam == 1.3.7.*
+          amazonka-core == 1.4.0.*
+        , amazonka-test == 1.4.0.*
+        , amazonka-iam == 1.4.0.*
         , base
         , bytestring
         , tasty
diff --git a/gen/Network/AWS/IAM.hs b/gen/Network/AWS/IAM.hs
--- a/gen/Network/AWS/IAM.hs
+++ b/gen/Network/AWS/IAM.hs
@@ -5,7 +5,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM
--- 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
@@ -69,12 +69,10 @@
 -- -   <http://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html Signing AWS API Requests>.
 --     This set of topics walk you through the process of signing a request
 --     using an access key ID and secret access key.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/Welcome.html AWS API Reference>
 module Network.AWS.IAM
     (
     -- * Service Configuration
-      iAM
+      iam
 
     -- * Errors
     -- $errors
@@ -685,17 +683,20 @@
     -- ** PolicyGroup
     , PolicyGroup
     , policyGroup
+    , pgGroupId
     , pgGroupName
 
     -- ** PolicyRole
     , PolicyRole
     , policyRole
     , prRoleName
+    , prRoleId
 
     -- ** PolicyUser
     , PolicyUser
     , policyUser
     , puUserName
+    , puUserId
 
     -- ** PolicyVersion
     , PolicyVersion
@@ -722,7 +723,7 @@
 
     -- ** Role
     , Role
-    , role
+    , role'
     , rAssumeRolePolicyDocument
     , rPath
     , rRoleName
diff --git a/gen/Network/AWS/IAM/AddClientIdToOpenIdConnectProvider.hs b/gen/Network/AWS/IAM/AddClientIdToOpenIdConnectProvider.hs
--- a/gen/Network/AWS/IAM/AddClientIdToOpenIdConnectProvider.hs
+++ b/gen/Network/AWS/IAM/AddClientIdToOpenIdConnectProvider.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.AddClientIdToOpenIdConnectProvider
--- 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 @@
 --
 -- This action is idempotent; it does not fail or return an error if you
 -- add an existing client ID to the provider.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_AddClientIdToOpenIdConnectProvider.html AWS API Reference> for AddClientIdToOpenIdConnectProvider.
 module Network.AWS.IAM.AddClientIdToOpenIdConnectProvider
     (
     -- * Creating a Request
@@ -71,7 +69,7 @@
 
 -- | The Amazon Resource Name (ARN) of the IAM OpenID Connect (OIDC) provider
 -- to add the client ID to. You can get a list of OIDC provider ARNs by
--- using the ListOpenIDConnectProviders action.
+-- using the < ListOpenIDConnectProviders> action.
 acitoicpOpenIdConnectProviderARN :: Lens' AddClientIdToOpenIdConnectProvider Text
 acitoicpOpenIdConnectProviderARN = lens _acitoicpOpenIdConnectProviderARN (\ s a -> s{_acitoicpOpenIdConnectProviderARN = a});
 
@@ -84,10 +82,12 @@
          AddClientIdToOpenIdConnectProvider where
         type Rs AddClientIdToOpenIdConnectProvider =
              AddClientIdToOpenIdConnectProviderResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveNull
               AddClientIdToOpenIdConnectProviderResponse'
+
+instance Hashable AddClientIdToOpenIdConnectProvider
 
 instance ToHeaders AddClientIdToOpenIdConnectProvider
          where
diff --git a/gen/Network/AWS/IAM/AddRoleToInstanceProfile.hs b/gen/Network/AWS/IAM/AddRoleToInstanceProfile.hs
--- a/gen/Network/AWS/IAM/AddRoleToInstanceProfile.hs
+++ b/gen/Network/AWS/IAM/AddRoleToInstanceProfile.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.AddRoleToInstanceProfile
--- 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 @@
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html Working with Roles>.
 -- For more information about instance profiles, go to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/AboutInstanceProfiles.html About Instance Profiles>.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_AddRoleToInstanceProfile.html AWS API Reference> for AddRoleToInstanceProfile.
 module Network.AWS.IAM.AddRoleToInstanceProfile
     (
     -- * Creating a Request
@@ -80,9 +78,11 @@
 instance AWSRequest AddRoleToInstanceProfile where
         type Rs AddRoleToInstanceProfile =
              AddRoleToInstanceProfileResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveNull AddRoleToInstanceProfileResponse'
+
+instance Hashable AddRoleToInstanceProfile
 
 instance ToHeaders AddRoleToInstanceProfile where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/AddUserToGroup.hs b/gen/Network/AWS/IAM/AddUserToGroup.hs
--- a/gen/Network/AWS/IAM/AddUserToGroup.hs
+++ b/gen/Network/AWS/IAM/AddUserToGroup.hs
@@ -12,15 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.IAM.AddUserToGroup
--- 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)
 --
 -- Adds the specified user to the specified group.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_AddUserToGroup.html AWS API Reference> for AddUserToGroup.
 module Network.AWS.IAM.AddUserToGroup
     (
     -- * Creating a Request
@@ -75,8 +73,10 @@
 
 instance AWSRequest AddUserToGroup where
         type Rs AddUserToGroup = AddUserToGroupResponse
-        request = postQuery iAM
+        request = postQuery iam
         response = receiveNull AddUserToGroupResponse'
+
+instance Hashable AddUserToGroup
 
 instance ToHeaders AddUserToGroup where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/AttachGroupPolicy.hs b/gen/Network/AWS/IAM/AttachGroupPolicy.hs
--- a/gen/Network/AWS/IAM/AttachGroupPolicy.hs
+++ b/gen/Network/AWS/IAM/AttachGroupPolicy.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.AttachGroupPolicy
--- 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,13 +21,11 @@
 -- Attaches the specified managed policy to the specified group.
 --
 -- You use this API to attach a managed policy to a group. To embed an
--- inline policy in a group, use PutGroupPolicy.
+-- inline policy in a group, use < PutGroupPolicy>.
 --
 -- For more information about policies, refer to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html Managed Policies and Inline Policies>
 -- in the /IAM User Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachGroupPolicy.html AWS API Reference> for AttachGroupPolicy.
 module Network.AWS.IAM.AttachGroupPolicy
     (
     -- * Creating a Request
@@ -82,8 +80,10 @@
 
 instance AWSRequest AttachGroupPolicy where
         type Rs AttachGroupPolicy = AttachGroupPolicyResponse
-        request = postQuery iAM
+        request = postQuery iam
         response = receiveNull AttachGroupPolicyResponse'
+
+instance Hashable AttachGroupPolicy
 
 instance ToHeaders AttachGroupPolicy where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/AttachRolePolicy.hs b/gen/Network/AWS/IAM/AttachRolePolicy.hs
--- a/gen/Network/AWS/IAM/AttachRolePolicy.hs
+++ b/gen/Network/AWS/IAM/AttachRolePolicy.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.AttachRolePolicy
--- 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,16 +23,14 @@
 -- When you attach a managed policy to a role, the managed policy is used
 -- as the role\'s access (permissions) policy. You cannot use a managed
 -- policy as the role\'s trust policy. The role\'s trust policy is created
--- at the same time as the role, using CreateRole. You can update a role\'s
--- trust policy using UpdateAssumeRolePolicy.
+-- at the same time as the role, using < CreateRole>. You can update a
+-- role\'s trust policy using < UpdateAssumeRolePolicy>.
 --
 -- Use this API to attach a managed policy to a role. To embed an inline
--- policy in a role, use PutRolePolicy. For more information about
+-- policy in a role, use < PutRolePolicy>. For more information about
 -- policies, refer to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html Managed Policies and Inline Policies>
 -- in the /IAM User Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachRolePolicy.html AWS API Reference> for AttachRolePolicy.
 module Network.AWS.IAM.AttachRolePolicy
     (
     -- * Creating a Request
@@ -87,8 +85,10 @@
 
 instance AWSRequest AttachRolePolicy where
         type Rs AttachRolePolicy = AttachRolePolicyResponse
-        request = postQuery iAM
+        request = postQuery iam
         response = receiveNull AttachRolePolicyResponse'
+
+instance Hashable AttachRolePolicy
 
 instance ToHeaders AttachRolePolicy where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/AttachUserPolicy.hs b/gen/Network/AWS/IAM/AttachUserPolicy.hs
--- a/gen/Network/AWS/IAM/AttachUserPolicy.hs
+++ b/gen/Network/AWS/IAM/AttachUserPolicy.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.AttachUserPolicy
--- 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,13 +21,11 @@
 -- Attaches the specified managed policy to the specified user.
 --
 -- You use this API to attach a managed policy to a user. To embed an
--- inline policy in a user, use PutUserPolicy.
+-- inline policy in a user, use < PutUserPolicy>.
 --
 -- For more information about policies, refer to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html Managed Policies and Inline Policies>
 -- in the /IAM User Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachUserPolicy.html AWS API Reference> for AttachUserPolicy.
 module Network.AWS.IAM.AttachUserPolicy
     (
     -- * Creating a Request
@@ -82,8 +80,10 @@
 
 instance AWSRequest AttachUserPolicy where
         type Rs AttachUserPolicy = AttachUserPolicyResponse
-        request = postQuery iAM
+        request = postQuery iam
         response = receiveNull AttachUserPolicyResponse'
+
+instance Hashable AttachUserPolicy
 
 instance ToHeaders AttachUserPolicy where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/ChangePassword.hs b/gen/Network/AWS/IAM/ChangePassword.hs
--- a/gen/Network/AWS/IAM/ChangePassword.hs
+++ b/gen/Network/AWS/IAM/ChangePassword.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.ChangePassword
--- 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,12 +21,10 @@
 -- Changes the password of the IAM user who is calling this action. The
 -- root account password is not affected by this action.
 --
--- To change the password for a different user, see UpdateLoginProfile. For
--- more information about modifying passwords, see
+-- To change the password for a different user, see < UpdateLoginProfile>.
+-- For more information about modifying passwords, see
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingLogins.html Managing Passwords>
 -- in the /IAM User Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_ChangePassword.html AWS API Reference> for ChangePassword.
 module Network.AWS.IAM.ChangePassword
     (
     -- * Creating a Request
@@ -82,8 +80,10 @@
 
 instance AWSRequest ChangePassword where
         type Rs ChangePassword = ChangePasswordResponse
-        request = postQuery iAM
+        request = postQuery iam
         response = receiveNull ChangePasswordResponse'
+
+instance Hashable ChangePassword
 
 instance ToHeaders ChangePassword where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/CreateAccessKey.hs b/gen/Network/AWS/IAM/CreateAccessKey.hs
--- a/gen/Network/AWS/IAM/CreateAccessKey.hs
+++ b/gen/Network/AWS/IAM/CreateAccessKey.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.CreateAccessKey
--- 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
@@ -36,8 +36,6 @@
 -- example, in a text file) if you want to be able to access it again. If a
 -- secret key is lost, you can delete the access keys for the associated
 -- user and then create new keys.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateAccessKey.html AWS API Reference> for CreateAccessKey.
 module Network.AWS.IAM.CreateAccessKey
     (
     -- * Creating a Request
@@ -84,13 +82,15 @@
 
 instance AWSRequest CreateAccessKey where
         type Rs CreateAccessKey = CreateAccessKeyResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "CreateAccessKeyResult"
               (\ s h x ->
                  CreateAccessKeyResponse' <$>
                    (pure (fromEnum s)) <*> (x .@ "AccessKey"))
 
+instance Hashable CreateAccessKey
+
 instance ToHeaders CreateAccessKey where
         toHeaders = const mempty
 
@@ -104,7 +104,7 @@
                "Version" =: ("2010-05-08" :: ByteString),
                "UserName" =: _cakUserName]
 
--- | Contains the response to a successful CreateAccessKey request.
+-- | Contains the response to a successful < CreateAccessKey> request.
 --
 -- /See:/ 'createAccessKeyResponse' smart constructor.
 data CreateAccessKeyResponse = CreateAccessKeyResponse'
diff --git a/gen/Network/AWS/IAM/CreateAccountAlias.hs b/gen/Network/AWS/IAM/CreateAccountAlias.hs
--- a/gen/Network/AWS/IAM/CreateAccountAlias.hs
+++ b/gen/Network/AWS/IAM/CreateAccountAlias.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.CreateAccountAlias
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -22,8 +22,6 @@
 -- AWS account alias, see
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/AccountAlias.html Using an Alias for Your AWS Account ID>
 -- in the /IAM User Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateAccountAlias.html AWS API Reference> for CreateAccountAlias.
 module Network.AWS.IAM.CreateAccountAlias
     (
     -- * Creating a Request
@@ -69,8 +67,10 @@
 instance AWSRequest CreateAccountAlias where
         type Rs CreateAccountAlias =
              CreateAccountAliasResponse
-        request = postQuery iAM
+        request = postQuery iam
         response = receiveNull CreateAccountAliasResponse'
+
+instance Hashable CreateAccountAlias
 
 instance ToHeaders CreateAccountAlias where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/CreateGroup.hs b/gen/Network/AWS/IAM/CreateGroup.hs
--- a/gen/Network/AWS/IAM/CreateGroup.hs
+++ b/gen/Network/AWS/IAM/CreateGroup.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.CreateGroup
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -23,8 +23,6 @@
 -- For information about the number of groups you can create, see
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html Limitations on IAM Entities>
 -- in the /IAM User Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateGroup.html AWS API Reference> for CreateGroup.
 module Network.AWS.IAM.CreateGroup
     (
     -- * Creating a Request
@@ -86,13 +84,15 @@
 
 instance AWSRequest CreateGroup where
         type Rs CreateGroup = CreateGroupResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "CreateGroupResult"
               (\ s h x ->
                  CreateGroupResponse' <$>
                    (pure (fromEnum s)) <*> (x .@ "Group"))
 
+instance Hashable CreateGroup
+
 instance ToHeaders CreateGroup where
         toHeaders = const mempty
 
@@ -106,7 +106,7 @@
                "Version" =: ("2010-05-08" :: ByteString),
                "Path" =: _cgPath, "GroupName" =: _cgGroupName]
 
--- | Contains the response to a successful CreateGroup request.
+-- | Contains the response to a successful < CreateGroup> request.
 --
 -- /See:/ 'createGroupResponse' smart constructor.
 data CreateGroupResponse = CreateGroupResponse'
diff --git a/gen/Network/AWS/IAM/CreateInstanceProfile.hs b/gen/Network/AWS/IAM/CreateInstanceProfile.hs
--- a/gen/Network/AWS/IAM/CreateInstanceProfile.hs
+++ b/gen/Network/AWS/IAM/CreateInstanceProfile.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.CreateInstanceProfile
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -26,8 +26,6 @@
 -- see
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html Limitations on IAM Entities>
 -- in the /IAM User Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateInstanceProfile.html AWS API Reference> for CreateInstanceProfile.
 module Network.AWS.IAM.CreateInstanceProfile
     (
     -- * Creating a Request
@@ -90,13 +88,15 @@
 instance AWSRequest CreateInstanceProfile where
         type Rs CreateInstanceProfile =
              CreateInstanceProfileResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "CreateInstanceProfileResult"
               (\ s h x ->
                  CreateInstanceProfileResponse' <$>
                    (pure (fromEnum s)) <*> (x .@ "InstanceProfile"))
 
+instance Hashable CreateInstanceProfile
+
 instance ToHeaders CreateInstanceProfile where
         toHeaders = const mempty
 
@@ -111,7 +111,7 @@
                "Path" =: _cipPath,
                "InstanceProfileName" =: _cipInstanceProfileName]
 
--- | Contains the response to a successful CreateInstanceProfile request.
+-- | Contains the response to a successful < CreateInstanceProfile> request.
 --
 -- /See:/ 'createInstanceProfileResponse' smart constructor.
 data CreateInstanceProfileResponse = CreateInstanceProfileResponse'
diff --git a/gen/Network/AWS/IAM/CreateLoginProfile.hs b/gen/Network/AWS/IAM/CreateLoginProfile.hs
--- a/gen/Network/AWS/IAM/CreateLoginProfile.hs
+++ b/gen/Network/AWS/IAM/CreateLoginProfile.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.CreateLoginProfile
--- 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 @@
 -- information about managing passwords, see
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingLogins.html Managing Passwords>
 -- in the /Using IAM/ guide.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateLoginProfile.html AWS API Reference> for CreateLoginProfile.
 module Network.AWS.IAM.CreateLoginProfile
     (
     -- * Creating a Request
@@ -93,13 +91,15 @@
 instance AWSRequest CreateLoginProfile where
         type Rs CreateLoginProfile =
              CreateLoginProfileResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "CreateLoginProfileResult"
               (\ s h x ->
                  CreateLoginProfileResponse' <$>
                    (pure (fromEnum s)) <*> (x .@ "LoginProfile"))
 
+instance Hashable CreateLoginProfile
+
 instance ToHeaders CreateLoginProfile where
         toHeaders = const mempty
 
@@ -115,7 +115,7 @@
                "UserName" =: _clpUserName,
                "Password" =: _clpPassword]
 
--- | Contains the response to a successful CreateLoginProfile request.
+-- | Contains the response to a successful < CreateLoginProfile> request.
 --
 -- /See:/ 'createLoginProfileResponse' smart constructor.
 data CreateLoginProfileResponse = CreateLoginProfileResponse'
diff --git a/gen/Network/AWS/IAM/CreateOpenIdConnectProvider.hs b/gen/Network/AWS/IAM/CreateOpenIdConnectProvider.hs
--- a/gen/Network/AWS/IAM/CreateOpenIdConnectProvider.hs
+++ b/gen/Network/AWS/IAM/CreateOpenIdConnectProvider.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.CreateOpenIdConnectProvider
--- 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
@@ -35,9 +35,7 @@
 --
 -- Because trust for the OIDC provider is ultimately derived from the IAM
 -- provider that this action creates, it is a best practice to limit access
--- to the CreateOpenIDConnectProvider action to highly-privileged users.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateOpenIdConnectProvider.html AWS API Reference> for CreateOpenIdConnectProvider.
+-- to the < CreateOpenIDConnectProvider> action to highly-privileged users.
 module Network.AWS.IAM.CreateOpenIdConnectProvider
     (
     -- * Creating a Request
@@ -145,7 +143,7 @@
 instance AWSRequest CreateOpenIdConnectProvider where
         type Rs CreateOpenIdConnectProvider =
              CreateOpenIdConnectProviderResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper
               "CreateOpenIDConnectProviderResult"
@@ -154,6 +152,8 @@
                    (x .@? "OpenIDConnectProviderArn") <*>
                      (pure (fromEnum s)))
 
+instance Hashable CreateOpenIdConnectProvider
+
 instance ToHeaders CreateOpenIdConnectProvider where
         toHeaders = const mempty
 
@@ -173,7 +173,7 @@
                "ThumbprintList" =:
                  toQueryList "member" _coicpThumbprintList]
 
--- | Contains the response to a successful CreateOpenIDConnectProvider
+-- | Contains the response to a successful < CreateOpenIDConnectProvider>
 -- request.
 --
 -- /See:/ 'createOpenIdConnectProviderResponse' smart constructor.
@@ -199,7 +199,8 @@
     }
 
 -- | The Amazon Resource Name (ARN) of the IAM OpenID Connect provider that
--- was created. For more information, see OpenIDConnectProviderListEntry.
+-- was created. For more information, see
+-- < OpenIDConnectProviderListEntry>.
 coicprsOpenIdConnectProviderARN :: Lens' CreateOpenIdConnectProviderResponse (Maybe Text)
 coicprsOpenIdConnectProviderARN = lens _coicprsOpenIdConnectProviderARN (\ s a -> s{_coicprsOpenIdConnectProviderARN = a});
 
diff --git a/gen/Network/AWS/IAM/CreatePolicy.hs b/gen/Network/AWS/IAM/CreatePolicy.hs
--- a/gen/Network/AWS/IAM/CreatePolicy.hs
+++ b/gen/Network/AWS/IAM/CreatePolicy.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.CreatePolicy
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -29,8 +29,6 @@
 -- For more information about managed policies in general, refer to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html Managed Policies and Inline Policies>
 -- in the /IAM User Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicy.html AWS API Reference> for CreatePolicy.
 module Network.AWS.IAM.CreatePolicy
     (
     -- * Creating a Request
@@ -119,13 +117,15 @@
 
 instance AWSRequest CreatePolicy where
         type Rs CreatePolicy = CreatePolicyResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "CreatePolicyResult"
               (\ s h x ->
                  CreatePolicyResponse' <$>
                    (x .@? "Policy") <*> (pure (fromEnum s)))
 
+instance Hashable CreatePolicy
+
 instance ToHeaders CreatePolicy where
         toHeaders = const mempty
 
@@ -141,7 +141,7 @@
                "PolicyName" =: _cpPolicyName,
                "PolicyDocument" =: _cpPolicyDocument]
 
--- | Contains the response to a successful CreatePolicy request.
+-- | Contains the response to a successful < CreatePolicy> request.
 --
 -- /See:/ 'createPolicyResponse' smart constructor.
 data CreatePolicyResponse = CreatePolicyResponse'
diff --git a/gen/Network/AWS/IAM/CreatePolicyVersion.hs b/gen/Network/AWS/IAM/CreatePolicyVersion.hs
--- a/gen/Network/AWS/IAM/CreatePolicyVersion.hs
+++ b/gen/Network/AWS/IAM/CreatePolicyVersion.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.CreatePolicyVersion
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -21,8 +21,8 @@
 -- Creates a new version of the specified managed policy. To update a
 -- managed policy, you create a new policy version. A managed policy can
 -- have up to five versions. If the policy has five versions, you must
--- delete an existing version using DeletePolicyVersion before you create a
--- new version.
+-- delete an existing version using < DeletePolicyVersion> before you
+-- create a new version.
 --
 -- Optionally, you can set the new version as the policy\'s default
 -- version. The default version is the operative version; that is, the
@@ -32,8 +32,6 @@
 -- For more information about managed policy versions, see
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html Versioning for Managed Policies>
 -- in the /IAM User Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicyVersion.html AWS API Reference> for CreatePolicyVersion.
 module Network.AWS.IAM.CreatePolicyVersion
     (
     -- * Creating a Request
@@ -109,13 +107,15 @@
 instance AWSRequest CreatePolicyVersion where
         type Rs CreatePolicyVersion =
              CreatePolicyVersionResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "CreatePolicyVersionResult"
               (\ s h x ->
                  CreatePolicyVersionResponse' <$>
                    (x .@? "PolicyVersion") <*> (pure (fromEnum s)))
 
+instance Hashable CreatePolicyVersion
+
 instance ToHeaders CreatePolicyVersion where
         toHeaders = const mempty
 
@@ -131,7 +131,7 @@
                "PolicyArn" =: _cpvPolicyARN,
                "PolicyDocument" =: _cpvPolicyDocument]
 
--- | Contains the response to a successful CreatePolicyVersion request.
+-- | Contains the response to a successful < CreatePolicyVersion> request.
 --
 -- /See:/ 'createPolicyVersionResponse' smart constructor.
 data CreatePolicyVersionResponse = CreatePolicyVersionResponse'
diff --git a/gen/Network/AWS/IAM/CreateRole.hs b/gen/Network/AWS/IAM/CreateRole.hs
--- a/gen/Network/AWS/IAM/CreateRole.hs
+++ b/gen/Network/AWS/IAM/CreateRole.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.CreateRole
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -25,8 +25,6 @@
 -- you can create, go to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html Limitations on IAM Entities>
 -- in the /IAM User Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html AWS API Reference> for CreateRole.
 module Network.AWS.IAM.CreateRole
     (
     -- * Creating a Request
@@ -99,13 +97,15 @@
 
 instance AWSRequest CreateRole where
         type Rs CreateRole = CreateRoleResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "CreateRoleResult"
               (\ s h x ->
                  CreateRoleResponse' <$>
                    (pure (fromEnum s)) <*> (x .@ "Role"))
 
+instance Hashable CreateRole
+
 instance ToHeaders CreateRole where
         toHeaders = const mempty
 
@@ -121,7 +121,7 @@
                "AssumeRolePolicyDocument" =:
                  _crAssumeRolePolicyDocument]
 
--- | Contains the response to a successful CreateRole request.
+-- | Contains the response to a successful < CreateRole> request.
 --
 -- /See:/ 'createRoleResponse' smart constructor.
 data CreateRoleResponse = CreateRoleResponse'
diff --git a/gen/Network/AWS/IAM/CreateSAMLProvider.hs b/gen/Network/AWS/IAM/CreateSAMLProvider.hs
--- a/gen/Network/AWS/IAM/CreateSAMLProvider.hs
+++ b/gen/Network/AWS/IAM/CreateSAMLProvider.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.CreateSAMLProvider
--- 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
@@ -42,8 +42,6 @@
 -- and
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html About SAML 2.0-based Federation>
 -- in the /IAM User Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateSAMLProvider.html AWS API Reference> for CreateSAMLProvider.
 module Network.AWS.IAM.CreateSAMLProvider
     (
     -- * Creating a Request
@@ -111,13 +109,15 @@
 instance AWSRequest CreateSAMLProvider where
         type Rs CreateSAMLProvider =
              CreateSAMLProviderResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "CreateSAMLProviderResult"
               (\ s h x ->
                  CreateSAMLProviderResponse' <$>
                    (x .@? "SAMLProviderArn") <*> (pure (fromEnum s)))
 
+instance Hashable CreateSAMLProvider
+
 instance ToHeaders CreateSAMLProvider where
         toHeaders = const mempty
 
@@ -133,7 +133,7 @@
                  _csamlpSAMLMetadataDocument,
                "Name" =: _csamlpName]
 
--- | Contains the response to a successful CreateSAMLProvider request.
+-- | Contains the response to a successful < CreateSAMLProvider> request.
 --
 -- /See:/ 'createSAMLProviderResponse' smart constructor.
 data CreateSAMLProviderResponse = CreateSAMLProviderResponse'
diff --git a/gen/Network/AWS/IAM/CreateUser.hs b/gen/Network/AWS/IAM/CreateUser.hs
--- a/gen/Network/AWS/IAM/CreateUser.hs
+++ b/gen/Network/AWS/IAM/CreateUser.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.CreateUser
--- 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 @@
 -- see
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html Limitations on IAM Entities>
 -- in the /IAM User Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateUser.html AWS API Reference> for CreateUser.
 module Network.AWS.IAM.CreateUser
     (
     -- * Creating a Request
@@ -87,13 +85,15 @@
 
 instance AWSRequest CreateUser where
         type Rs CreateUser = CreateUserResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "CreateUserResult"
               (\ s h x ->
                  CreateUserResponse' <$>
                    (x .@? "User") <*> (pure (fromEnum s)))
 
+instance Hashable CreateUser
+
 instance ToHeaders CreateUser where
         toHeaders = const mempty
 
@@ -107,7 +107,7 @@
                "Version" =: ("2010-05-08" :: ByteString),
                "Path" =: _cuPath, "UserName" =: _cuUserName]
 
--- | Contains the response to a successful CreateUser request.
+-- | Contains the response to a successful < CreateUser> request.
 --
 -- /See:/ 'createUserResponse' smart constructor.
 data CreateUserResponse = CreateUserResponse'
diff --git a/gen/Network/AWS/IAM/CreateVirtualMFADevice.hs b/gen/Network/AWS/IAM/CreateVirtualMFADevice.hs
--- a/gen/Network/AWS/IAM/CreateVirtualMFADevice.hs
+++ b/gen/Network/AWS/IAM/CreateVirtualMFADevice.hs
@@ -12,14 +12,14 @@
 
 -- |
 -- Module      : Network.AWS.IAM.CreateVirtualMFADevice
--- 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)
 --
 -- Creates a new virtual MFA device for the AWS account. After creating the
--- virtual MFA, use EnableMFADevice to attach the MFA device to an IAM
+-- virtual MFA, use < EnableMFADevice> to attach the MFA device to an IAM
 -- user. For more information about creating and working with virtual MFA
 -- devices, go to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_VirtualMFA.html Using a Virtual MFA Device>
@@ -35,8 +35,6 @@
 -- AWS access keys or your passwords. After you provision your virtual
 -- device, you should ensure that the information is destroyed following
 -- secure procedures.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateVirtualMFADevice.html AWS API Reference> for CreateVirtualMFADevice.
 module Network.AWS.IAM.CreateVirtualMFADevice
     (
     -- * Creating a Request
@@ -101,13 +99,15 @@
 instance AWSRequest CreateVirtualMFADevice where
         type Rs CreateVirtualMFADevice =
              CreateVirtualMFADeviceResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "CreateVirtualMFADeviceResult"
               (\ s h x ->
                  CreateVirtualMFADeviceResponse' <$>
                    (pure (fromEnum s)) <*> (x .@ "VirtualMFADevice"))
 
+instance Hashable CreateVirtualMFADevice
+
 instance ToHeaders CreateVirtualMFADevice where
         toHeaders = const mempty
 
@@ -123,7 +123,7 @@
                "Path" =: _cvmdPath,
                "VirtualMFADeviceName" =: _cvmdVirtualMFADeviceName]
 
--- | Contains the response to a successful CreateVirtualMFADevice request.
+-- | Contains the response to a successful < CreateVirtualMFADevice> request.
 --
 -- /See:/ 'createVirtualMFADeviceResponse' smart constructor.
 data CreateVirtualMFADeviceResponse = CreateVirtualMFADeviceResponse'
diff --git a/gen/Network/AWS/IAM/DeactivateMFADevice.hs b/gen/Network/AWS/IAM/DeactivateMFADevice.hs
--- a/gen/Network/AWS/IAM/DeactivateMFADevice.hs
+++ b/gen/Network/AWS/IAM/DeactivateMFADevice.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.DeactivateMFADevice
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -25,8 +25,6 @@
 -- devices, go to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_VirtualMFA.html Using a Virtual MFA Device>
 -- in the /Using IAM/ guide.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_DeactivateMFADevice.html AWS API Reference> for DeactivateMFADevice.
 module Network.AWS.IAM.DeactivateMFADevice
     (
     -- * Creating a Request
@@ -83,8 +81,10 @@
 instance AWSRequest DeactivateMFADevice where
         type Rs DeactivateMFADevice =
              DeactivateMFADeviceResponse
-        request = postQuery iAM
+        request = postQuery iam
         response = receiveNull DeactivateMFADeviceResponse'
+
+instance Hashable DeactivateMFADevice
 
 instance ToHeaders DeactivateMFADevice where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/DeleteAccessKey.hs b/gen/Network/AWS/IAM/DeleteAccessKey.hs
--- a/gen/Network/AWS/IAM/DeleteAccessKey.hs
+++ b/gen/Network/AWS/IAM/DeleteAccessKey.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.DeleteAccessKey
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -25,8 +25,6 @@
 -- this action works for access keys under the AWS account, you can use
 -- this action to manage root credentials even if the AWS account has no
 -- associated users.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteAccessKey.html AWS API Reference> for DeleteAccessKey.
 module Network.AWS.IAM.DeleteAccessKey
     (
     -- * Creating a Request
@@ -81,8 +79,10 @@
 
 instance AWSRequest DeleteAccessKey where
         type Rs DeleteAccessKey = DeleteAccessKeyResponse
-        request = postQuery iAM
+        request = postQuery iam
         response = receiveNull DeleteAccessKeyResponse'
+
+instance Hashable DeleteAccessKey
 
 instance ToHeaders DeleteAccessKey where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/DeleteAccountAlias.hs b/gen/Network/AWS/IAM/DeleteAccountAlias.hs
--- a/gen/Network/AWS/IAM/DeleteAccountAlias.hs
+++ b/gen/Network/AWS/IAM/DeleteAccountAlias.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.DeleteAccountAlias
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -22,8 +22,6 @@
 -- AWS account alias, see
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/AccountAlias.html Using an Alias for Your AWS Account ID>
 -- in the /IAM User Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteAccountAlias.html AWS API Reference> for DeleteAccountAlias.
 module Network.AWS.IAM.DeleteAccountAlias
     (
     -- * Creating a Request
@@ -69,8 +67,10 @@
 instance AWSRequest DeleteAccountAlias where
         type Rs DeleteAccountAlias =
              DeleteAccountAliasResponse
-        request = postQuery iAM
+        request = postQuery iam
         response = receiveNull DeleteAccountAliasResponse'
+
+instance Hashable DeleteAccountAlias
 
 instance ToHeaders DeleteAccountAlias where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/DeleteAccountPasswordPolicy.hs b/gen/Network/AWS/IAM/DeleteAccountPasswordPolicy.hs
--- a/gen/Network/AWS/IAM/DeleteAccountPasswordPolicy.hs
+++ b/gen/Network/AWS/IAM/DeleteAccountPasswordPolicy.hs
@@ -12,15 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.IAM.DeleteAccountPasswordPolicy
--- 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 password policy for the AWS account.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteAccountPasswordPolicy.html AWS API Reference> for DeleteAccountPasswordPolicy.
 module Network.AWS.IAM.DeleteAccountPasswordPolicy
     (
     -- * Creating a Request
@@ -53,9 +51,11 @@
 instance AWSRequest DeleteAccountPasswordPolicy where
         type Rs DeleteAccountPasswordPolicy =
              DeleteAccountPasswordPolicyResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveNull DeleteAccountPasswordPolicyResponse'
+
+instance Hashable DeleteAccountPasswordPolicy
 
 instance ToHeaders DeleteAccountPasswordPolicy where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/DeleteGroup.hs b/gen/Network/AWS/IAM/DeleteGroup.hs
--- a/gen/Network/AWS/IAM/DeleteGroup.hs
+++ b/gen/Network/AWS/IAM/DeleteGroup.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.DeleteGroup
--- 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 @@
 --
 -- Deletes the specified group. The group must not contain any users or
 -- have any attached policies.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteGroup.html AWS API Reference> for DeleteGroup.
 module Network.AWS.IAM.DeleteGroup
     (
     -- * Creating a Request
@@ -66,8 +64,10 @@
 
 instance AWSRequest DeleteGroup where
         type Rs DeleteGroup = DeleteGroupResponse
-        request = postQuery iAM
+        request = postQuery iam
         response = receiveNull DeleteGroupResponse'
+
+instance Hashable DeleteGroup
 
 instance ToHeaders DeleteGroup where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/DeleteGroupPolicy.hs b/gen/Network/AWS/IAM/DeleteGroupPolicy.hs
--- a/gen/Network/AWS/IAM/DeleteGroupPolicy.hs
+++ b/gen/Network/AWS/IAM/DeleteGroupPolicy.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.DeleteGroupPolicy
--- 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,12 +22,10 @@
 -- group.
 --
 -- A group can also have managed policies attached to it. To detach a
--- managed policy from a group, use DetachGroupPolicy. For more information
--- about policies, refer to
+-- managed policy from a group, use < DetachGroupPolicy>. For more
+-- information about policies, refer to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html Managed Policies and Inline Policies>
 -- in the /IAM User Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteGroupPolicy.html AWS API Reference> for DeleteGroupPolicy.
 module Network.AWS.IAM.DeleteGroupPolicy
     (
     -- * Creating a Request
@@ -83,8 +81,10 @@
 
 instance AWSRequest DeleteGroupPolicy where
         type Rs DeleteGroupPolicy = DeleteGroupPolicyResponse
-        request = postQuery iAM
+        request = postQuery iam
         response = receiveNull DeleteGroupPolicyResponse'
+
+instance Hashable DeleteGroupPolicy
 
 instance ToHeaders DeleteGroupPolicy where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/DeleteInstanceProfile.hs b/gen/Network/AWS/IAM/DeleteInstanceProfile.hs
--- a/gen/Network/AWS/IAM/DeleteInstanceProfile.hs
+++ b/gen/Network/AWS/IAM/DeleteInstanceProfile.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.DeleteInstanceProfile
--- 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
@@ -28,8 +28,6 @@
 --
 -- For more information about instance profiles, go to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/AboutInstanceProfiles.html About Instance Profiles>.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteInstanceProfile.html AWS API Reference> for DeleteInstanceProfile.
 module Network.AWS.IAM.DeleteInstanceProfile
     (
     -- * Creating a Request
@@ -75,8 +73,10 @@
 instance AWSRequest DeleteInstanceProfile where
         type Rs DeleteInstanceProfile =
              DeleteInstanceProfileResponse
-        request = postQuery iAM
+        request = postQuery iam
         response = receiveNull DeleteInstanceProfileResponse'
+
+instance Hashable DeleteInstanceProfile
 
 instance ToHeaders DeleteInstanceProfile where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/DeleteLoginProfile.hs b/gen/Network/AWS/IAM/DeleteLoginProfile.hs
--- a/gen/Network/AWS/IAM/DeleteLoginProfile.hs
+++ b/gen/Network/AWS/IAM/DeleteLoginProfile.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.DeleteLoginProfile
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -26,9 +26,7 @@
 -- through the command line interface or the API. To prevent all user
 -- access you must also either make the access key inactive or delete it.
 -- For more information about making keys inactive or deleting them, see
--- UpdateAccessKey and DeleteAccessKey.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteLoginProfile.html AWS API Reference> for DeleteLoginProfile.
+-- < UpdateAccessKey> and < DeleteAccessKey>.
 module Network.AWS.IAM.DeleteLoginProfile
     (
     -- * Creating a Request
@@ -74,8 +72,10 @@
 instance AWSRequest DeleteLoginProfile where
         type Rs DeleteLoginProfile =
              DeleteLoginProfileResponse
-        request = postQuery iAM
+        request = postQuery iam
         response = receiveNull DeleteLoginProfileResponse'
+
+instance Hashable DeleteLoginProfile
 
 instance ToHeaders DeleteLoginProfile where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/DeleteOpenIdConnectProvider.hs b/gen/Network/AWS/IAM/DeleteOpenIdConnectProvider.hs
--- a/gen/Network/AWS/IAM/DeleteOpenIdConnectProvider.hs
+++ b/gen/Network/AWS/IAM/DeleteOpenIdConnectProvider.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.DeleteOpenIdConnectProvider
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -26,8 +26,6 @@
 --
 -- This action is idempotent; it does not fail or return an error if you
 -- call the action for a provider that was already deleted.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteOpenIdConnectProvider.html AWS API Reference> for DeleteOpenIdConnectProvider.
 module Network.AWS.IAM.DeleteOpenIdConnectProvider
     (
     -- * Creating a Request
@@ -68,16 +66,18 @@
 
 -- | The Amazon Resource Name (ARN) of the IAM OpenID Connect provider to
 -- delete. You can get a list of OpenID Connect provider ARNs by using the
--- ListOpenIDConnectProviders action.
+-- < ListOpenIDConnectProviders> action.
 doicpOpenIdConnectProviderARN :: Lens' DeleteOpenIdConnectProvider Text
 doicpOpenIdConnectProviderARN = lens _doicpOpenIdConnectProviderARN (\ s a -> s{_doicpOpenIdConnectProviderARN = a});
 
 instance AWSRequest DeleteOpenIdConnectProvider where
         type Rs DeleteOpenIdConnectProvider =
              DeleteOpenIdConnectProviderResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveNull DeleteOpenIdConnectProviderResponse'
+
+instance Hashable DeleteOpenIdConnectProvider
 
 instance ToHeaders DeleteOpenIdConnectProvider where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/DeletePolicy.hs b/gen/Network/AWS/IAM/DeletePolicy.hs
--- a/gen/Network/AWS/IAM/DeletePolicy.hs
+++ b/gen/Network/AWS/IAM/DeletePolicy.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.DeletePolicy
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -26,13 +26,13 @@
 -- for deleting a managed policy:
 --
 -- 1.  Detach the policy from all users, groups, and roles that the policy
---     is attached to, using the DetachUserPolicy, DetachGroupPolicy, or
---     DetachRolePolicy APIs. To list all the users, groups, and roles that
---     a policy is attached to, use ListEntitiesForPolicy.
--- 2.  Delete all versions of the policy using DeletePolicyVersion. To list
---     the policy\'s versions, use ListPolicyVersions. You cannot use
---     DeletePolicyVersion to delete the version that is marked as the
---     default version. You delete the policy\'s default version in the
+--     is attached to, using the < DetachUserPolicy>, < DetachGroupPolicy>,
+--     or < DetachRolePolicy> APIs. To list all the users, groups, and
+--     roles that a policy is attached to, use < ListEntitiesForPolicy>.
+-- 2.  Delete all versions of the policy using < DeletePolicyVersion>. To
+--     list the policy\'s versions, use < ListPolicyVersions>. You cannot
+--     use < DeletePolicyVersion> to delete the version that is marked as
+--     the default version. You delete the policy\'s default version in the
 --     next step of the process.
 -- 3.  Delete the policy (this automatically deletes the policy\'s default
 --     version) using this API.
@@ -40,8 +40,6 @@
 -- For information about managed policies, refer to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html Managed Policies and Inline Policies>
 -- in the /IAM User Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_DeletePolicy.html AWS API Reference> for DeletePolicy.
 module Network.AWS.IAM.DeletePolicy
     (
     -- * Creating a Request
@@ -86,8 +84,10 @@
 
 instance AWSRequest DeletePolicy where
         type Rs DeletePolicy = DeletePolicyResponse
-        request = postQuery iAM
+        request = postQuery iam
         response = receiveNull DeletePolicyResponse'
+
+instance Hashable DeletePolicy
 
 instance ToHeaders DeletePolicy where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/DeletePolicyVersion.hs b/gen/Network/AWS/IAM/DeletePolicyVersion.hs
--- a/gen/Network/AWS/IAM/DeletePolicyVersion.hs
+++ b/gen/Network/AWS/IAM/DeletePolicyVersion.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.DeletePolicyVersion
--- 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,15 +21,13 @@
 -- Deletes the specified version of the specified managed policy.
 --
 -- You cannot delete the default version of a policy using this API. To
--- delete the default version of a policy, use DeletePolicy. To find out
+-- delete the default version of a policy, use < DeletePolicy>. To find out
 -- which version of a policy is marked as the default version, use
--- ListPolicyVersions.
+-- < ListPolicyVersions>.
 --
 -- For information about versions for managed policies, refer to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html Versioning for Managed Policies>
 -- in the /IAM User Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_DeletePolicyVersion.html AWS API Reference> for DeletePolicyVersion.
 module Network.AWS.IAM.DeletePolicyVersion
     (
     -- * Creating a Request
@@ -89,8 +87,10 @@
 instance AWSRequest DeletePolicyVersion where
         type Rs DeletePolicyVersion =
              DeletePolicyVersionResponse
-        request = postQuery iAM
+        request = postQuery iam
         response = receiveNull DeletePolicyVersionResponse'
+
+instance Hashable DeletePolicyVersion
 
 instance ToHeaders DeletePolicyVersion where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/DeleteRole.hs b/gen/Network/AWS/IAM/DeleteRole.hs
--- a/gen/Network/AWS/IAM/DeleteRole.hs
+++ b/gen/Network/AWS/IAM/DeleteRole.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.DeleteRole
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -26,8 +26,6 @@
 -- you are about to delete. Deleting a role or instance profile that is
 -- associated with a running instance will break any applications running
 -- on the instance.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteRole.html AWS API Reference> for DeleteRole.
 module Network.AWS.IAM.DeleteRole
     (
     -- * Creating a Request
@@ -72,8 +70,10 @@
 
 instance AWSRequest DeleteRole where
         type Rs DeleteRole = DeleteRoleResponse
-        request = postQuery iAM
+        request = postQuery iam
         response = receiveNull DeleteRoleResponse'
+
+instance Hashable DeleteRole
 
 instance ToHeaders DeleteRole where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/DeleteRolePolicy.hs b/gen/Network/AWS/IAM/DeleteRolePolicy.hs
--- a/gen/Network/AWS/IAM/DeleteRolePolicy.hs
+++ b/gen/Network/AWS/IAM/DeleteRolePolicy.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.DeleteRolePolicy
--- 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,12 +22,10 @@
 -- role.
 --
 -- A role can also have managed policies attached to it. To detach a
--- managed policy from a role, use DetachRolePolicy. For more information
--- about policies, refer to
+-- managed policy from a role, use < DetachRolePolicy>. For more
+-- information about policies, refer to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html Managed Policies and Inline Policies>
 -- in the /IAM User Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteRolePolicy.html AWS API Reference> for DeleteRolePolicy.
 module Network.AWS.IAM.DeleteRolePolicy
     (
     -- * Creating a Request
@@ -83,8 +81,10 @@
 
 instance AWSRequest DeleteRolePolicy where
         type Rs DeleteRolePolicy = DeleteRolePolicyResponse
-        request = postQuery iAM
+        request = postQuery iam
         response = receiveNull DeleteRolePolicyResponse'
+
+instance Hashable DeleteRolePolicy
 
 instance ToHeaders DeleteRolePolicy where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/DeleteSAMLProvider.hs b/gen/Network/AWS/IAM/DeleteSAMLProvider.hs
--- a/gen/Network/AWS/IAM/DeleteSAMLProvider.hs
+++ b/gen/Network/AWS/IAM/DeleteSAMLProvider.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.DeleteSAMLProvider
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -26,8 +26,6 @@
 --
 -- This operation requires
 -- <http://docs.aws.amazon.com/general/latest/gr/signature-version-4.html Signature Version 4>.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteSAMLProvider.html AWS API Reference> for DeleteSAMLProvider.
 module Network.AWS.IAM.DeleteSAMLProvider
     (
     -- * Creating a Request
@@ -73,8 +71,10 @@
 instance AWSRequest DeleteSAMLProvider where
         type Rs DeleteSAMLProvider =
              DeleteSAMLProviderResponse
-        request = postQuery iAM
+        request = postQuery iam
         response = receiveNull DeleteSAMLProviderResponse'
+
+instance Hashable DeleteSAMLProvider
 
 instance ToHeaders DeleteSAMLProvider where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/DeleteSSHPublicKey.hs b/gen/Network/AWS/IAM/DeleteSSHPublicKey.hs
--- a/gen/Network/AWS/IAM/DeleteSSHPublicKey.hs
+++ b/gen/Network/AWS/IAM/DeleteSSHPublicKey.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.DeleteSSHPublicKey
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -26,8 +26,6 @@
 -- CodeCommit repository, see
 -- <http://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-credentials-ssh.html Set up AWS CodeCommit for SSH Connections>
 -- in the /AWS CodeCommit User Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteSSHPublicKey.html AWS API Reference> for DeleteSSHPublicKey.
 module Network.AWS.IAM.DeleteSSHPublicKey
     (
     -- * Creating a Request
@@ -83,8 +81,10 @@
 instance AWSRequest DeleteSSHPublicKey where
         type Rs DeleteSSHPublicKey =
              DeleteSSHPublicKeyResponse
-        request = postQuery iAM
+        request = postQuery iam
         response = receiveNull DeleteSSHPublicKeyResponse'
+
+instance Hashable DeleteSSHPublicKey
 
 instance ToHeaders DeleteSSHPublicKey where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/DeleteServerCertificate.hs b/gen/Network/AWS/IAM/DeleteServerCertificate.hs
--- a/gen/Network/AWS/IAM/DeleteServerCertificate.hs
+++ b/gen/Network/AWS/IAM/DeleteServerCertificate.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.DeleteServerCertificate
--- 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
@@ -36,8 +36,6 @@
 -- information, go to
 -- <http://docs.aws.amazon.com/ElasticLoadBalancing/latest/APIReference/API_DeleteLoadBalancerListeners.html DeleteLoadBalancerListeners>
 -- in the /Elastic Load Balancing API Reference/.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServerCertificate.html AWS API Reference> for DeleteServerCertificate.
 module Network.AWS.IAM.DeleteServerCertificate
     (
     -- * Creating a Request
@@ -83,9 +81,11 @@
 instance AWSRequest DeleteServerCertificate where
         type Rs DeleteServerCertificate =
              DeleteServerCertificateResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveNull DeleteServerCertificateResponse'
+
+instance Hashable DeleteServerCertificate
 
 instance ToHeaders DeleteServerCertificate where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/DeleteSigningCertificate.hs b/gen/Network/AWS/IAM/DeleteSigningCertificate.hs
--- a/gen/Network/AWS/IAM/DeleteSigningCertificate.hs
+++ b/gen/Network/AWS/IAM/DeleteSigningCertificate.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.DeleteSigningCertificate
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -26,8 +26,6 @@
 -- this action works for access keys under the AWS account, you can use
 -- this action to manage root credentials even if the AWS account has no
 -- associated users.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteSigningCertificate.html AWS API Reference> for DeleteSigningCertificate.
 module Network.AWS.IAM.DeleteSigningCertificate
     (
     -- * Creating a Request
@@ -82,9 +80,11 @@
 instance AWSRequest DeleteSigningCertificate where
         type Rs DeleteSigningCertificate =
              DeleteSigningCertificateResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveNull DeleteSigningCertificateResponse'
+
+instance Hashable DeleteSigningCertificate
 
 instance ToHeaders DeleteSigningCertificate where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/DeleteUser.hs b/gen/Network/AWS/IAM/DeleteUser.hs
--- a/gen/Network/AWS/IAM/DeleteUser.hs
+++ b/gen/Network/AWS/IAM/DeleteUser.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.DeleteUser
--- 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 @@
 --
 -- Deletes the specified user. The user must not belong to any groups, have
 -- any keys or signing certificates, or have any attached policies.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteUser.html AWS API Reference> for DeleteUser.
 module Network.AWS.IAM.DeleteUser
     (
     -- * Creating a Request
@@ -66,8 +64,10 @@
 
 instance AWSRequest DeleteUser where
         type Rs DeleteUser = DeleteUserResponse
-        request = postQuery iAM
+        request = postQuery iam
         response = receiveNull DeleteUserResponse'
+
+instance Hashable DeleteUser
 
 instance ToHeaders DeleteUser where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/DeleteUserPolicy.hs b/gen/Network/AWS/IAM/DeleteUserPolicy.hs
--- a/gen/Network/AWS/IAM/DeleteUserPolicy.hs
+++ b/gen/Network/AWS/IAM/DeleteUserPolicy.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.DeleteUserPolicy
--- 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,12 +22,10 @@
 -- user.
 --
 -- A user can also have managed policies attached to it. To detach a
--- managed policy from a user, use DetachUserPolicy. For more information
--- about policies, refer to
+-- managed policy from a user, use < DetachUserPolicy>. For more
+-- information about policies, refer to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html Managed Policies and Inline Policies>
 -- in the /IAM User Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteUserPolicy.html AWS API Reference> for DeleteUserPolicy.
 module Network.AWS.IAM.DeleteUserPolicy
     (
     -- * Creating a Request
@@ -83,8 +81,10 @@
 
 instance AWSRequest DeleteUserPolicy where
         type Rs DeleteUserPolicy = DeleteUserPolicyResponse
-        request = postQuery iAM
+        request = postQuery iam
         response = receiveNull DeleteUserPolicyResponse'
+
+instance Hashable DeleteUserPolicy
 
 instance ToHeaders DeleteUserPolicy where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/DeleteVirtualMFADevice.hs b/gen/Network/AWS/IAM/DeleteVirtualMFADevice.hs
--- a/gen/Network/AWS/IAM/DeleteVirtualMFADevice.hs
+++ b/gen/Network/AWS/IAM/DeleteVirtualMFADevice.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.DeleteVirtualMFADevice
--- 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 @@
 --
 -- You must deactivate a user\'s virtual MFA device before you can delete
 -- it. For information about deactivating MFA devices, see
--- DeactivateMFADevice.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteVirtualMFADevice.html AWS API Reference> for DeleteVirtualMFADevice.
+-- < DeactivateMFADevice>.
 module Network.AWS.IAM.DeleteVirtualMFADevice
     (
     -- * Creating a Request
@@ -71,9 +69,11 @@
 instance AWSRequest DeleteVirtualMFADevice where
         type Rs DeleteVirtualMFADevice =
              DeleteVirtualMFADeviceResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveNull DeleteVirtualMFADeviceResponse'
+
+instance Hashable DeleteVirtualMFADevice
 
 instance ToHeaders DeleteVirtualMFADevice where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/DetachGroupPolicy.hs b/gen/Network/AWS/IAM/DetachGroupPolicy.hs
--- a/gen/Network/AWS/IAM/DetachGroupPolicy.hs
+++ b/gen/Network/AWS/IAM/DetachGroupPolicy.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.DetachGroupPolicy
--- 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,12 +21,10 @@
 -- Removes the specified managed policy from the specified group.
 --
 -- A group can also have inline policies embedded with it. To delete an
--- inline policy, use the DeleteGroupPolicy API. For information about
+-- inline policy, use the < DeleteGroupPolicy> API. For information about
 -- policies, refer to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html Managed Policies and Inline Policies>
 -- in the /IAM User Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachGroupPolicy.html AWS API Reference> for DetachGroupPolicy.
 module Network.AWS.IAM.DetachGroupPolicy
     (
     -- * Creating a Request
@@ -82,8 +80,10 @@
 
 instance AWSRequest DetachGroupPolicy where
         type Rs DetachGroupPolicy = DetachGroupPolicyResponse
-        request = postQuery iAM
+        request = postQuery iam
         response = receiveNull DetachGroupPolicyResponse'
+
+instance Hashable DetachGroupPolicy
 
 instance ToHeaders DetachGroupPolicy where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/DetachRolePolicy.hs b/gen/Network/AWS/IAM/DetachRolePolicy.hs
--- a/gen/Network/AWS/IAM/DetachRolePolicy.hs
+++ b/gen/Network/AWS/IAM/DetachRolePolicy.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.DetachRolePolicy
--- 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,12 +21,10 @@
 -- Removes the specified managed policy from the specified role.
 --
 -- A role can also have inline policies embedded with it. To delete an
--- inline policy, use the DeleteRolePolicy API. For information about
+-- inline policy, use the < DeleteRolePolicy> API. For information about
 -- policies, refer to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html Managed Policies and Inline Policies>
 -- in the /IAM User Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachRolePolicy.html AWS API Reference> for DetachRolePolicy.
 module Network.AWS.IAM.DetachRolePolicy
     (
     -- * Creating a Request
@@ -81,8 +79,10 @@
 
 instance AWSRequest DetachRolePolicy where
         type Rs DetachRolePolicy = DetachRolePolicyResponse
-        request = postQuery iAM
+        request = postQuery iam
         response = receiveNull DetachRolePolicyResponse'
+
+instance Hashable DetachRolePolicy
 
 instance ToHeaders DetachRolePolicy where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/DetachUserPolicy.hs b/gen/Network/AWS/IAM/DetachUserPolicy.hs
--- a/gen/Network/AWS/IAM/DetachUserPolicy.hs
+++ b/gen/Network/AWS/IAM/DetachUserPolicy.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.DetachUserPolicy
--- 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,12 +21,10 @@
 -- Removes the specified managed policy from the specified user.
 --
 -- A user can also have inline policies embedded with it. To delete an
--- inline policy, use the DeleteUserPolicy API. For information about
+-- inline policy, use the < DeleteUserPolicy> API. For information about
 -- policies, refer to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html Managed Policies and Inline Policies>
 -- in the /IAM User Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachUserPolicy.html AWS API Reference> for DetachUserPolicy.
 module Network.AWS.IAM.DetachUserPolicy
     (
     -- * Creating a Request
@@ -81,8 +79,10 @@
 
 instance AWSRequest DetachUserPolicy where
         type Rs DetachUserPolicy = DetachUserPolicyResponse
-        request = postQuery iAM
+        request = postQuery iam
         response = receiveNull DetachUserPolicyResponse'
+
+instance Hashable DetachUserPolicy
 
 instance ToHeaders DetachUserPolicy where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/EnableMFADevice.hs b/gen/Network/AWS/IAM/EnableMFADevice.hs
--- a/gen/Network/AWS/IAM/EnableMFADevice.hs
+++ b/gen/Network/AWS/IAM/EnableMFADevice.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.EnableMFADevice
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -21,8 +21,6 @@
 -- Enables the specified MFA device and associates it with the specified
 -- user name. When enabled, the MFA device is required for every subsequent
 -- login by the user name associated with the device.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_EnableMFADevice.html AWS API Reference> for EnableMFADevice.
 module Network.AWS.IAM.EnableMFADevice
     (
     -- * Creating a Request
@@ -98,8 +96,10 @@
 
 instance AWSRequest EnableMFADevice where
         type Rs EnableMFADevice = EnableMFADeviceResponse
-        request = postQuery iAM
+        request = postQuery iam
         response = receiveNull EnableMFADeviceResponse'
+
+instance Hashable EnableMFADevice
 
 instance ToHeaders EnableMFADevice where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/GenerateCredentialReport.hs b/gen/Network/AWS/IAM/GenerateCredentialReport.hs
--- a/gen/Network/AWS/IAM/GenerateCredentialReport.hs
+++ b/gen/Network/AWS/IAM/GenerateCredentialReport.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.GenerateCredentialReport
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -22,8 +22,6 @@
 -- about the credential report, see
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/credential-reports.html Getting Credential Reports>
 -- in the /IAM User Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_GenerateCredentialReport.html AWS API Reference> for GenerateCredentialReport.
 module Network.AWS.IAM.GenerateCredentialReport
     (
     -- * Creating a Request
@@ -60,7 +58,7 @@
 instance AWSRequest GenerateCredentialReport where
         type Rs GenerateCredentialReport =
              GenerateCredentialReportResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "GenerateCredentialReportResult"
               (\ s h x ->
@@ -68,6 +66,8 @@
                    (x .@? "State") <*> (x .@? "Description") <*>
                      (pure (fromEnum s)))
 
+instance Hashable GenerateCredentialReport
+
 instance ToHeaders GenerateCredentialReport where
         toHeaders = const mempty
 
@@ -82,7 +82,8 @@
                     ("GenerateCredentialReport" :: ByteString),
                   "Version" =: ("2010-05-08" :: ByteString)])
 
--- | Contains the response to a successful GenerateCredentialReport request.
+-- | Contains the response to a successful < GenerateCredentialReport>
+-- request.
 --
 -- /See:/ 'generateCredentialReportResponse' smart constructor.
 data GenerateCredentialReportResponse = GenerateCredentialReportResponse'
diff --git a/gen/Network/AWS/IAM/GetAccessKeyLastUsed.hs b/gen/Network/AWS/IAM/GetAccessKeyLastUsed.hs
--- a/gen/Network/AWS/IAM/GetAccessKeyLastUsed.hs
+++ b/gen/Network/AWS/IAM/GetAccessKeyLastUsed.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.GetAccessKeyLastUsed
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -22,8 +22,6 @@
 -- The information includes the date and time of last use, along with the
 -- AWS service and region that were specified in the last request made with
 -- that key.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccessKeyLastUsed.html AWS API Reference> for GetAccessKeyLastUsed.
 module Network.AWS.IAM.GetAccessKeyLastUsed
     (
     -- * Creating a Request
@@ -73,7 +71,7 @@
 instance AWSRequest GetAccessKeyLastUsed where
         type Rs GetAccessKeyLastUsed =
              GetAccessKeyLastUsedResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "GetAccessKeyLastUsedResult"
               (\ s h x ->
@@ -81,6 +79,8 @@
                    (x .@? "UserName") <*> (x .@? "AccessKeyLastUsed")
                      <*> (pure (fromEnum s)))
 
+instance Hashable GetAccessKeyLastUsed
+
 instance ToHeaders GetAccessKeyLastUsed where
         toHeaders = const mempty
 
@@ -94,9 +94,9 @@
                "Version" =: ("2010-05-08" :: ByteString),
                "AccessKeyId" =: _gakluAccessKeyId]
 
--- | Contains the response to a successful GetAccessKeyLastUsed request. It
--- is also returned as a member of the AccessKeyMetaData structure returned
--- by the ListAccessKeys action.
+-- | Contains the response to a successful < GetAccessKeyLastUsed> request.
+-- It is also returned as a member of the < AccessKeyMetaData> structure
+-- returned by the < ListAccessKeys> action.
 --
 -- /See:/ 'getAccessKeyLastUsedResponse' smart constructor.
 data GetAccessKeyLastUsedResponse = GetAccessKeyLastUsedResponse'
diff --git a/gen/Network/AWS/IAM/GetAccountAuthorizationDetails.hs b/gen/Network/AWS/IAM/GetAccountAuthorizationDetails.hs
--- a/gen/Network/AWS/IAM/GetAccountAuthorizationDetails.hs
+++ b/gen/Network/AWS/IAM/GetAccountAuthorizationDetails.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.GetAccountAuthorizationDetails
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -25,8 +25,6 @@
 --
 -- You can optionally filter the results using the 'Filter' parameter. You
 -- can paginate the results using the 'MaxItems' and 'Marker' parameters.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccountAuthorizationDetails.html AWS API Reference> for GetAccountAuthorizationDetails.
 module Network.AWS.IAM.GetAccountAuthorizationDetails
     (
     -- * Creating a Request
@@ -110,7 +108,7 @@
          where
         type Rs GetAccountAuthorizationDetails =
              GetAccountAuthorizationDetailsResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper
               "GetAccountAuthorizationDetailsResult"
@@ -131,6 +129,8 @@
                         may (parseXMLList "member"))
                      <*> (pure (fromEnum s)))
 
+instance Hashable GetAccountAuthorizationDetails
+
 instance ToHeaders GetAccountAuthorizationDetails
          where
         toHeaders = const mempty
@@ -148,7 +148,7 @@
                "Filter" =:
                  toQuery (toQueryList "member" <$> _gaadFilter)]
 
--- | Contains the response to a successful GetAccountAuthorizationDetails
+-- | Contains the response to a successful < GetAccountAuthorizationDetails>
 -- request.
 --
 -- /See:/ 'getAccountAuthorizationDetailsResponse' smart constructor.
diff --git a/gen/Network/AWS/IAM/GetAccountPasswordPolicy.hs b/gen/Network/AWS/IAM/GetAccountPasswordPolicy.hs
--- a/gen/Network/AWS/IAM/GetAccountPasswordPolicy.hs
+++ b/gen/Network/AWS/IAM/GetAccountPasswordPolicy.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.GetAccountPasswordPolicy
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -21,8 +21,6 @@
 -- Retrieves the password policy for the AWS account. For more information
 -- about using a password policy, go to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingPasswordPolicies.html Managing an IAM Password Policy>.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccountPasswordPolicy.html AWS API Reference> for GetAccountPasswordPolicy.
 module Network.AWS.IAM.GetAccountPasswordPolicy
     (
     -- * Creating a Request
@@ -58,13 +56,15 @@
 instance AWSRequest GetAccountPasswordPolicy where
         type Rs GetAccountPasswordPolicy =
              GetAccountPasswordPolicyResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "GetAccountPasswordPolicyResult"
               (\ s h x ->
                  GetAccountPasswordPolicyResponse' <$>
                    (pure (fromEnum s)) <*> (x .@ "PasswordPolicy"))
 
+instance Hashable GetAccountPasswordPolicy
+
 instance ToHeaders GetAccountPasswordPolicy where
         toHeaders = const mempty
 
@@ -79,7 +79,8 @@
                     ("GetAccountPasswordPolicy" :: ByteString),
                   "Version" =: ("2010-05-08" :: ByteString)])
 
--- | Contains the response to a successful GetAccountPasswordPolicy request.
+-- | Contains the response to a successful < GetAccountPasswordPolicy>
+-- request.
 --
 -- /See:/ 'getAccountPasswordPolicyResponse' smart constructor.
 data GetAccountPasswordPolicyResponse = GetAccountPasswordPolicyResponse'
diff --git a/gen/Network/AWS/IAM/GetAccountSummary.hs b/gen/Network/AWS/IAM/GetAccountSummary.hs
--- a/gen/Network/AWS/IAM/GetAccountSummary.hs
+++ b/gen/Network/AWS/IAM/GetAccountSummary.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.GetAccountSummary
--- 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 information about limitations on IAM entities, see
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html Limitations on IAM Entities>
 -- in the /IAM User Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccountSummary.html AWS API Reference> for GetAccountSummary.
 module Network.AWS.IAM.GetAccountSummary
     (
     -- * Creating a Request
@@ -60,7 +58,7 @@
 
 instance AWSRequest GetAccountSummary where
         type Rs GetAccountSummary = GetAccountSummaryResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "GetAccountSummaryResult"
               (\ s h x ->
@@ -69,6 +67,8 @@
                       may (parseXMLMap "entry" "key" "value"))
                      <*> (pure (fromEnum s)))
 
+instance Hashable GetAccountSummary
+
 instance ToHeaders GetAccountSummary where
         toHeaders = const mempty
 
@@ -82,7 +82,7 @@
                  ["Action" =: ("GetAccountSummary" :: ByteString),
                   "Version" =: ("2010-05-08" :: ByteString)])
 
--- | Contains the response to a successful GetAccountSummary request.
+-- | Contains the response to a successful < GetAccountSummary> request.
 --
 -- /See:/ 'getAccountSummaryResponse' smart constructor.
 data GetAccountSummaryResponse = GetAccountSummaryResponse'
diff --git a/gen/Network/AWS/IAM/GetContextKeysForCustomPolicy.hs b/gen/Network/AWS/IAM/GetContextKeysForCustomPolicy.hs
--- a/gen/Network/AWS/IAM/GetContextKeysForCustomPolicy.hs
+++ b/gen/Network/AWS/IAM/GetContextKeysForCustomPolicy.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.GetContextKeysForCustomPolicy
--- 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,17 +21,16 @@
 -- Gets a list of all of the context keys referenced in 'Condition'
 -- elements in the input policies. The policies are supplied as a list of
 -- one or more strings. To get the context keys from policies associated
--- with an IAM user, group, or role, use GetContextKeysForPrincipalPolicy.
+-- with an IAM user, group, or role, use
+-- < GetContextKeysForPrincipalPolicy>.
 --
 -- Context keys are variables maintained by AWS and its services that
 -- provide details about the context of an API query request, and can be
 -- evaluated by using the 'Condition' element of an IAM policy. Use
 -- GetContextKeysForCustomPolicy to understand what key names and values
--- you must supply when you call SimulateCustomPolicy. Note that all
+-- you must supply when you call < SimulateCustomPolicy>. Note that all
 -- parameters are shown in unencoded form here for clarity, but must be URL
 -- encoded to be included as a part of a real HTML request.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForCustomPolicy.html AWS API Reference> for GetContextKeysForCustomPolicy.
 module Network.AWS.IAM.GetContextKeysForCustomPolicy
     (
     -- * Creating a Request
@@ -81,11 +80,13 @@
          where
         type Rs GetContextKeysForCustomPolicy =
              GetContextKeysForPolicyResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper
               "GetContextKeysForCustomPolicyResult"
               (\ s h x -> parseXML x)
+
+instance Hashable GetContextKeysForCustomPolicy
 
 instance ToHeaders GetContextKeysForCustomPolicy
          where
diff --git a/gen/Network/AWS/IAM/GetContextKeysForPrincipalPolicy.hs b/gen/Network/AWS/IAM/GetContextKeysForPrincipalPolicy.hs
--- a/gen/Network/AWS/IAM/GetContextKeysForPrincipalPolicy.hs
+++ b/gen/Network/AWS/IAM/GetContextKeysForPrincipalPolicy.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.GetContextKeysForPrincipalPolicy
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -26,20 +26,18 @@
 --
 -- You can optionally include a list of one or more additional policies,
 -- specified as strings. If you want to include only a list of policies by
--- string, use GetContextKeysForCustomPolicy instead.
+-- string, use < GetContextKeysForCustomPolicy> instead.
 --
 -- __Note:__ This API discloses information about the permissions granted
 -- to other users. If you do not want users to see other user\'s
 -- permissions, then consider allowing them to use
--- GetContextKeysForCustomPolicy instead.
+-- < GetContextKeysForCustomPolicy> instead.
 --
 -- Context keys are variables maintained by AWS and its services that
 -- provide details about the context of an API query request, and can be
 -- evaluated by using the 'Condition' element of an IAM policy. Use
 -- GetContextKeysForPrincipalPolicy to understand what key names and values
--- you must supply when you call SimulatePrincipalPolicy.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForPrincipalPolicy.html AWS API Reference> for GetContextKeysForPrincipalPolicy.
+-- you must supply when you call < SimulatePrincipalPolicy>.
 module Network.AWS.IAM.GetContextKeysForPrincipalPolicy
     (
     -- * Creating a Request
@@ -105,11 +103,13 @@
          where
         type Rs GetContextKeysForPrincipalPolicy =
              GetContextKeysForPolicyResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper
               "GetContextKeysForPrincipalPolicyResult"
               (\ s h x -> parseXML x)
+
+instance Hashable GetContextKeysForPrincipalPolicy
 
 instance ToHeaders GetContextKeysForPrincipalPolicy
          where
diff --git a/gen/Network/AWS/IAM/GetCredentialReport.hs b/gen/Network/AWS/IAM/GetCredentialReport.hs
--- a/gen/Network/AWS/IAM/GetCredentialReport.hs
+++ b/gen/Network/AWS/IAM/GetCredentialReport.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.GetCredentialReport
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -22,8 +22,6 @@
 -- about the credential report, see
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/credential-reports.html Getting Credential Reports>
 -- in the /IAM User Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_GetCredentialReport.html AWS API Reference> for GetCredentialReport.
 module Network.AWS.IAM.GetCredentialReport
     (
     -- * Creating a Request
@@ -61,7 +59,7 @@
 instance AWSRequest GetCredentialReport where
         type Rs GetCredentialReport =
              GetCredentialReportResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "GetCredentialReportResult"
               (\ s h x ->
@@ -70,6 +68,8 @@
                      (x .@? "ReportFormat")
                      <*> (pure (fromEnum s)))
 
+instance Hashable GetCredentialReport
+
 instance ToHeaders GetCredentialReport where
         toHeaders = const mempty
 
@@ -83,7 +83,7 @@
                  ["Action" =: ("GetCredentialReport" :: ByteString),
                   "Version" =: ("2010-05-08" :: ByteString)])
 
--- | Contains the response to a successful GetCredentialReport request.
+-- | Contains the response to a successful < GetCredentialReport> request.
 --
 -- /See:/ 'getCredentialReportResponse' smart constructor.
 data GetCredentialReportResponse = GetCredentialReportResponse'
diff --git a/gen/Network/AWS/IAM/GetGroup.hs b/gen/Network/AWS/IAM/GetGroup.hs
--- a/gen/Network/AWS/IAM/GetGroup.hs
+++ b/gen/Network/AWS/IAM/GetGroup.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.GetGroup
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -21,8 +21,6 @@
 -- Returns a list of users that are in the specified group. You can
 -- paginate the results using the 'MaxItems' and 'Marker' parameters.
 --
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_GetGroup.html AWS API Reference> for GetGroup.
---
 -- This operation returns paginated results.
 module Network.AWS.IAM.GetGroup
     (
@@ -111,7 +109,7 @@
 
 instance AWSRequest GetGroup where
         type Rs GetGroup = GetGroupResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "GetGroupResult"
               (\ s h x ->
@@ -122,6 +120,8 @@
                      <*>
                      (x .@? "Users" .!@ mempty >>= parseXMLList "member"))
 
+instance Hashable GetGroup
+
 instance ToHeaders GetGroup where
         toHeaders = const mempty
 
@@ -136,7 +136,7 @@
                "Marker" =: _ggMarker, "MaxItems" =: _ggMaxItems,
                "GroupName" =: _ggGroupName]
 
--- | Contains the response to a successful GetGroup request.
+-- | Contains the response to a successful < GetGroup> request.
 --
 -- /See:/ 'getGroupResponse' smart constructor.
 data GetGroupResponse = GetGroupResponse'
diff --git a/gen/Network/AWS/IAM/GetGroupPolicy.hs b/gen/Network/AWS/IAM/GetGroupPolicy.hs
--- a/gen/Network/AWS/IAM/GetGroupPolicy.hs
+++ b/gen/Network/AWS/IAM/GetGroupPolicy.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.GetGroupPolicy
--- 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,15 +22,13 @@
 -- specified group.
 --
 -- A group can also have managed policies attached to it. To retrieve a
--- managed policy document that is attached to a group, use GetPolicy to
--- determine the policy\'s default version, then use GetPolicyVersion to
+-- managed policy document that is attached to a group, use < GetPolicy> to
+-- determine the policy\'s default version, then use < GetPolicyVersion> to
 -- retrieve the policy document.
 --
 -- For more information about policies, refer to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html Managed Policies and Inline Policies>
 -- in the /IAM User Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_GetGroupPolicy.html AWS API Reference> for GetGroupPolicy.
 module Network.AWS.IAM.GetGroupPolicy
     (
     -- * Creating a Request
@@ -90,7 +88,7 @@
 
 instance AWSRequest GetGroupPolicy where
         type Rs GetGroupPolicy = GetGroupPolicyResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "GetGroupPolicyResult"
               (\ s h x ->
@@ -99,6 +97,8 @@
                      (x .@ "PolicyName")
                      <*> (x .@ "PolicyDocument"))
 
+instance Hashable GetGroupPolicy
+
 instance ToHeaders GetGroupPolicy where
         toHeaders = const mempty
 
@@ -113,7 +113,7 @@
                "GroupName" =: _ggpGroupName,
                "PolicyName" =: _ggpPolicyName]
 
--- | Contains the response to a successful GetGroupPolicy request.
+-- | Contains the response to a successful < GetGroupPolicy> request.
 --
 -- /See:/ 'getGroupPolicyResponse' smart constructor.
 data GetGroupPolicyResponse = GetGroupPolicyResponse'
diff --git a/gen/Network/AWS/IAM/GetInstanceProfile.hs b/gen/Network/AWS/IAM/GetInstanceProfile.hs
--- a/gen/Network/AWS/IAM/GetInstanceProfile.hs
+++ b/gen/Network/AWS/IAM/GetInstanceProfile.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.GetInstanceProfile
--- 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 @@
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/AboutInstanceProfiles.html About Instance Profiles>.
 -- For more information about ARNs, go to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html#Identifiers_ARNs ARNs>.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_GetInstanceProfile.html AWS API Reference> for GetInstanceProfile.
 module Network.AWS.IAM.GetInstanceProfile
     (
     -- * Creating a Request
@@ -74,13 +72,15 @@
 instance AWSRequest GetInstanceProfile where
         type Rs GetInstanceProfile =
              GetInstanceProfileResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "GetInstanceProfileResult"
               (\ s h x ->
                  GetInstanceProfileResponse' <$>
                    (pure (fromEnum s)) <*> (x .@ "InstanceProfile"))
 
+instance Hashable GetInstanceProfile
+
 instance ToHeaders GetInstanceProfile where
         toHeaders = const mempty
 
@@ -94,7 +94,7 @@
                "Version" =: ("2010-05-08" :: ByteString),
                "InstanceProfileName" =: _gipInstanceProfileName]
 
--- | Contains the response to a successful GetInstanceProfile request.
+-- | Contains the response to a successful < GetInstanceProfile> request.
 --
 -- /See:/ 'getInstanceProfileResponse' smart constructor.
 data GetInstanceProfileResponse = GetInstanceProfileResponse'
diff --git a/gen/Network/AWS/IAM/GetLoginProfile.hs b/gen/Network/AWS/IAM/GetLoginProfile.hs
--- a/gen/Network/AWS/IAM/GetLoginProfile.hs
+++ b/gen/Network/AWS/IAM/GetLoginProfile.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.GetLoginProfile
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -21,8 +21,6 @@
 -- Retrieves the user name and password-creation date for the specified
 -- user. If the user has not been assigned a password, the action returns a
 -- 404 ('NoSuchEntity') error.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_GetLoginProfile.html AWS API Reference> for GetLoginProfile.
 module Network.AWS.IAM.GetLoginProfile
     (
     -- * Creating a Request
@@ -70,13 +68,15 @@
 
 instance AWSRequest GetLoginProfile where
         type Rs GetLoginProfile = GetLoginProfileResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "GetLoginProfileResult"
               (\ s h x ->
                  GetLoginProfileResponse' <$>
                    (pure (fromEnum s)) <*> (x .@ "LoginProfile"))
 
+instance Hashable GetLoginProfile
+
 instance ToHeaders GetLoginProfile where
         toHeaders = const mempty
 
@@ -90,7 +90,7 @@
                "Version" =: ("2010-05-08" :: ByteString),
                "UserName" =: _glpUserName]
 
--- | Contains the response to a successful GetLoginProfile request.
+-- | Contains the response to a successful < GetLoginProfile> request.
 --
 -- /See:/ 'getLoginProfileResponse' smart constructor.
 data GetLoginProfileResponse = GetLoginProfileResponse'
diff --git a/gen/Network/AWS/IAM/GetOpenIdConnectProvider.hs b/gen/Network/AWS/IAM/GetOpenIdConnectProvider.hs
--- a/gen/Network/AWS/IAM/GetOpenIdConnectProvider.hs
+++ b/gen/Network/AWS/IAM/GetOpenIdConnectProvider.hs
@@ -12,15 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.IAM.GetOpenIdConnectProvider
--- 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)
 --
 -- Returns information about the specified OpenID Connect provider.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_GetOpenIdConnectProvider.html AWS API Reference> for GetOpenIdConnectProvider.
 module Network.AWS.IAM.GetOpenIdConnectProvider
     (
     -- * Creating a Request
@@ -67,14 +65,14 @@
 
 -- | The Amazon Resource Name (ARN) of the IAM OpenID Connect (OIDC) provider
 -- to get information for. You can get a list of OIDC provider ARNs by
--- using the ListOpenIDConnectProviders action.
+-- using the < ListOpenIDConnectProviders> action.
 goicpOpenIdConnectProviderARN :: Lens' GetOpenIdConnectProvider Text
 goicpOpenIdConnectProviderARN = lens _goicpOpenIdConnectProviderARN (\ s a -> s{_goicpOpenIdConnectProviderARN = a});
 
 instance AWSRequest GetOpenIdConnectProvider where
         type Rs GetOpenIdConnectProvider =
              GetOpenIdConnectProviderResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "GetOpenIDConnectProviderResult"
               (\ s h x ->
@@ -87,6 +85,8 @@
                         may (parseXMLList "member"))
                      <*> (pure (fromEnum s)))
 
+instance Hashable GetOpenIdConnectProvider
+
 instance ToHeaders GetOpenIdConnectProvider where
         toHeaders = const mempty
 
@@ -102,7 +102,8 @@
                "OpenIDConnectProviderArn" =:
                  _goicpOpenIdConnectProviderARN]
 
--- | Contains the response to a successful GetOpenIDConnectProvider request.
+-- | Contains the response to a successful < GetOpenIDConnectProvider>
+-- request.
 --
 -- /See:/ 'getOpenIdConnectProviderResponse' smart constructor.
 data GetOpenIdConnectProviderResponse = GetOpenIdConnectProviderResponse'
@@ -144,19 +145,19 @@
 goicprsCreateDate = lens _goicprsCreateDate (\ s a -> s{_goicprsCreateDate = a}) . mapping _Time;
 
 -- | The URL that the IAM OpenID Connect provider is associated with. For
--- more information, see CreateOpenIDConnectProvider.
+-- more information, see < CreateOpenIDConnectProvider>.
 goicprsURL :: Lens' GetOpenIdConnectProviderResponse (Maybe Text)
 goicprsURL = lens _goicprsURL (\ s a -> s{_goicprsURL = a});
 
 -- | A list of certificate thumbprints that are associated with the specified
 -- IAM OpenID Connect provider. For more information, see
--- CreateOpenIDConnectProvider.
+-- < CreateOpenIDConnectProvider>.
 goicprsThumbprintList :: Lens' GetOpenIdConnectProviderResponse [Text]
 goicprsThumbprintList = lens _goicprsThumbprintList (\ s a -> s{_goicprsThumbprintList = a}) . _Default . _Coerce;
 
 -- | A list of client IDs (also known as audiences) that are associated with
 -- the specified IAM OpenID Connect provider. For more information, see
--- CreateOpenIDConnectProvider.
+-- < CreateOpenIDConnectProvider>.
 goicprsClientIdList :: Lens' GetOpenIdConnectProviderResponse [Text]
 goicprsClientIdList = lens _goicprsClientIdList (\ s a -> s{_goicprsClientIdList = a}) . _Default . _Coerce;
 
diff --git a/gen/Network/AWS/IAM/GetPolicy.hs b/gen/Network/AWS/IAM/GetPolicy.hs
--- a/gen/Network/AWS/IAM/GetPolicy.hs
+++ b/gen/Network/AWS/IAM/GetPolicy.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.GetPolicy
--- 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,19 +22,18 @@
 -- policy\'s default version and the total number of users, groups, and
 -- roles that the policy is attached to. For a list of the specific users,
 -- groups, and roles that the policy is attached to, use the
--- ListEntitiesForPolicy API. This API returns metadata about the policy.
--- To retrieve the policy document for a specific version of the policy,
--- use GetPolicyVersion.
+-- < ListEntitiesForPolicy> API. This API returns metadata about the
+-- policy. To retrieve the policy document for a specific version of the
+-- policy, use < GetPolicyVersion>.
 --
 -- This API retrieves information about managed policies. To retrieve
 -- information about an inline policy that is embedded with a user, group,
--- or role, use the GetUserPolicy, GetGroupPolicy, or GetRolePolicy API.
+-- or role, use the < GetUserPolicy>, < GetGroupPolicy>, or
+-- < GetRolePolicy> API.
 --
 -- For more information about policies, refer to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html Managed Policies and Inline Policies>
 -- in the /IAM User Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicy.html AWS API Reference> for GetPolicy.
 module Network.AWS.IAM.GetPolicy
     (
     -- * Creating a Request
@@ -82,13 +81,15 @@
 
 instance AWSRequest GetPolicy where
         type Rs GetPolicy = GetPolicyResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "GetPolicyResult"
               (\ s h x ->
                  GetPolicyResponse' <$>
                    (x .@? "Policy") <*> (pure (fromEnum s)))
 
+instance Hashable GetPolicy
+
 instance ToHeaders GetPolicy where
         toHeaders = const mempty
 
@@ -102,7 +103,7 @@
                "Version" =: ("2010-05-08" :: ByteString),
                "PolicyArn" =: _gpPolicyARN]
 
--- | Contains the response to a successful GetPolicy request.
+-- | Contains the response to a successful < GetPolicy> request.
 --
 -- /See:/ 'getPolicyResponse' smart constructor.
 data GetPolicyResponse = GetPolicyResponse'
diff --git a/gen/Network/AWS/IAM/GetPolicyVersion.hs b/gen/Network/AWS/IAM/GetPolicyVersion.hs
--- a/gen/Network/AWS/IAM/GetPolicyVersion.hs
+++ b/gen/Network/AWS/IAM/GetPolicyVersion.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.GetPolicyVersion
--- 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,17 +21,16 @@
 -- Retrieves information about the specified version of the specified
 -- managed policy, including the policy document.
 --
--- To list the available versions for a policy, use ListPolicyVersions.
+-- To list the available versions for a policy, use < ListPolicyVersions>.
 --
 -- This API retrieves information about managed policies. To retrieve
 -- information about an inline policy that is embedded in a user, group, or
--- role, use the GetUserPolicy, GetGroupPolicy, or GetRolePolicy API.
+-- role, use the < GetUserPolicy>, < GetGroupPolicy>, or < GetRolePolicy>
+-- API.
 --
 -- For more information about the types of policies, refer to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html Managed Policies and Inline Policies>
 -- in the /IAM User Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicyVersion.html AWS API Reference> for GetPolicyVersion.
 module Network.AWS.IAM.GetPolicyVersion
     (
     -- * Creating a Request
@@ -89,13 +88,15 @@
 
 instance AWSRequest GetPolicyVersion where
         type Rs GetPolicyVersion = GetPolicyVersionResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "GetPolicyVersionResult"
               (\ s h x ->
                  GetPolicyVersionResponse' <$>
                    (x .@? "PolicyVersion") <*> (pure (fromEnum s)))
 
+instance Hashable GetPolicyVersion
+
 instance ToHeaders GetPolicyVersion where
         toHeaders = const mempty
 
@@ -110,7 +111,7 @@
                "PolicyArn" =: _gpvPolicyARN,
                "VersionId" =: _gpvVersionId]
 
--- | Contains the response to a successful GetPolicyVersion request.
+-- | Contains the response to a successful < GetPolicyVersion> request.
 --
 -- /See:/ 'getPolicyVersionResponse' smart constructor.
 data GetPolicyVersionResponse = GetPolicyVersionResponse'
diff --git a/gen/Network/AWS/IAM/GetRole.hs b/gen/Network/AWS/IAM/GetRole.hs
--- a/gen/Network/AWS/IAM/GetRole.hs
+++ b/gen/Network/AWS/IAM/GetRole.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.GetRole
--- 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 @@
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html#Identifiers_ARNs ARNs>.
 -- For more information about roles, go to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html Working with Roles>.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRole.html AWS API Reference> for GetRole.
 module Network.AWS.IAM.GetRole
     (
     -- * Creating a Request
@@ -73,13 +71,15 @@
 
 instance AWSRequest GetRole where
         type Rs GetRole = GetRoleResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "GetRoleResult"
               (\ s h x ->
                  GetRoleResponse' <$>
                    (pure (fromEnum s)) <*> (x .@ "Role"))
 
+instance Hashable GetRole
+
 instance ToHeaders GetRole where
         toHeaders = const mempty
 
@@ -93,7 +93,7 @@
                "Version" =: ("2010-05-08" :: ByteString),
                "RoleName" =: _grRoleName]
 
--- | Contains the response to a successful GetRole request.
+-- | Contains the response to a successful < GetRole> request.
 --
 -- /See:/ 'getRoleResponse' smart constructor.
 data GetRoleResponse = GetRoleResponse'
diff --git a/gen/Network/AWS/IAM/GetRolePolicy.hs b/gen/Network/AWS/IAM/GetRolePolicy.hs
--- a/gen/Network/AWS/IAM/GetRolePolicy.hs
+++ b/gen/Network/AWS/IAM/GetRolePolicy.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.GetRolePolicy
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -22,8 +22,8 @@
 -- specified role.
 --
 -- A role can also have managed policies attached to it. To retrieve a
--- managed policy document that is attached to a role, use GetPolicy to
--- determine the policy\'s default version, then use GetPolicyVersion to
+-- managed policy document that is attached to a role, use < GetPolicy> to
+-- determine the policy\'s default version, then use < GetPolicyVersion> to
 -- retrieve the policy document.
 --
 -- For more information about policies, refer to
@@ -32,8 +32,6 @@
 --
 -- For more information about roles, go to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html Using Roles to Delegate Permissions and Federate Identities>.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRolePolicy.html AWS API Reference> for GetRolePolicy.
 module Network.AWS.IAM.GetRolePolicy
     (
     -- * Creating a Request
@@ -93,7 +91,7 @@
 
 instance AWSRequest GetRolePolicy where
         type Rs GetRolePolicy = GetRolePolicyResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "GetRolePolicyResult"
               (\ s h x ->
@@ -102,6 +100,8 @@
                      (x .@ "PolicyName")
                      <*> (x .@ "PolicyDocument"))
 
+instance Hashable GetRolePolicy
+
 instance ToHeaders GetRolePolicy where
         toHeaders = const mempty
 
@@ -116,7 +116,7 @@
                "RoleName" =: _grpRoleName,
                "PolicyName" =: _grpPolicyName]
 
--- | Contains the response to a successful GetRolePolicy request.
+-- | Contains the response to a successful < GetRolePolicy> request.
 --
 -- /See:/ 'getRolePolicyResponse' smart constructor.
 data GetRolePolicyResponse = GetRolePolicyResponse'
diff --git a/gen/Network/AWS/IAM/GetSAMLProvider.hs b/gen/Network/AWS/IAM/GetSAMLProvider.hs
--- a/gen/Network/AWS/IAM/GetSAMLProvider.hs
+++ b/gen/Network/AWS/IAM/GetSAMLProvider.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.GetSAMLProvider
--- 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 @@
 --
 -- This operation requires
 -- <http://docs.aws.amazon.com/general/latest/gr/signature-version-4.html Signature Version 4>.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_GetSAMLProvider.html AWS API Reference> for GetSAMLProvider.
 module Network.AWS.IAM.GetSAMLProvider
     (
     -- * Creating a Request
@@ -75,7 +73,7 @@
 
 instance AWSRequest GetSAMLProvider where
         type Rs GetSAMLProvider = GetSAMLProviderResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "GetSAMLProviderResult"
               (\ s h x ->
@@ -84,6 +82,8 @@
                      (x .@? "SAMLMetadataDocument")
                      <*> (pure (fromEnum s)))
 
+instance Hashable GetSAMLProvider
+
 instance ToHeaders GetSAMLProvider where
         toHeaders = const mempty
 
@@ -97,7 +97,7 @@
                "Version" =: ("2010-05-08" :: ByteString),
                "SAMLProviderArn" =: _gsamlpSAMLProviderARN]
 
--- | Contains the response to a successful GetSAMLProvider request.
+-- | Contains the response to a successful < GetSAMLProvider> request.
 --
 -- /See:/ 'getSAMLProviderResponse' smart constructor.
 data GetSAMLProviderResponse = GetSAMLProviderResponse'
diff --git a/gen/Network/AWS/IAM/GetSSHPublicKey.hs b/gen/Network/AWS/IAM/GetSSHPublicKey.hs
--- a/gen/Network/AWS/IAM/GetSSHPublicKey.hs
+++ b/gen/Network/AWS/IAM/GetSSHPublicKey.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.GetSSHPublicKey
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -27,8 +27,6 @@
 -- CodeCommit repository, see
 -- <http://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-credentials-ssh.html Set up AWS CodeCommit for SSH Connections>
 -- in the /AWS CodeCommit User Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_GetSSHPublicKey.html AWS API Reference> for GetSSHPublicKey.
 module Network.AWS.IAM.GetSSHPublicKey
     (
     -- * Creating a Request
@@ -98,13 +96,15 @@
 
 instance AWSRequest GetSSHPublicKey where
         type Rs GetSSHPublicKey = GetSSHPublicKeyResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "GetSSHPublicKeyResult"
               (\ s h x ->
                  GetSSHPublicKeyResponse' <$>
                    (x .@? "SSHPublicKey") <*> (pure (fromEnum s)))
 
+instance Hashable GetSSHPublicKey
+
 instance ToHeaders GetSSHPublicKey where
         toHeaders = const mempty
 
@@ -120,7 +120,7 @@
                "SSHPublicKeyId" =: _gspkSSHPublicKeyId,
                "Encoding" =: _gspkEncoding]
 
--- | Contains the response to a successful GetSSHPublicKey request.
+-- | Contains the response to a successful < GetSSHPublicKey> request.
 --
 -- /See:/ 'getSSHPublicKeyResponse' smart constructor.
 data GetSSHPublicKeyResponse = GetSSHPublicKeyResponse'
diff --git a/gen/Network/AWS/IAM/GetServerCertificate.hs b/gen/Network/AWS/IAM/GetServerCertificate.hs
--- a/gen/Network/AWS/IAM/GetServerCertificate.hs
+++ b/gen/Network/AWS/IAM/GetServerCertificate.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.GetServerCertificate
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -25,8 +25,6 @@
 -- manage with IAM, go to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html Working with Server Certificates>
 -- in the /IAM User Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServerCertificate.html AWS API Reference> for GetServerCertificate.
 module Network.AWS.IAM.GetServerCertificate
     (
     -- * Creating a Request
@@ -76,13 +74,15 @@
 instance AWSRequest GetServerCertificate where
         type Rs GetServerCertificate =
              GetServerCertificateResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "GetServerCertificateResult"
               (\ s h x ->
                  GetServerCertificateResponse' <$>
                    (pure (fromEnum s)) <*> (x .@ "ServerCertificate"))
 
+instance Hashable GetServerCertificate
+
 instance ToHeaders GetServerCertificate where
         toHeaders = const mempty
 
@@ -96,7 +96,7 @@
                "Version" =: ("2010-05-08" :: ByteString),
                "ServerCertificateName" =: _gscServerCertificateName]
 
--- | Contains the response to a successful GetServerCertificate request.
+-- | Contains the response to a successful < GetServerCertificate> request.
 --
 -- /See:/ 'getServerCertificateResponse' smart constructor.
 data GetServerCertificateResponse = GetServerCertificateResponse'
diff --git a/gen/Network/AWS/IAM/GetUser.hs b/gen/Network/AWS/IAM/GetUser.hs
--- a/gen/Network/AWS/IAM/GetUser.hs
+++ b/gen/Network/AWS/IAM/GetUser.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.GetUser
--- 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 @@
 --
 -- If you do not specify a user name, IAM determines the user name
 -- implicitly based on the AWS access key ID used to sign the request.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUser.html AWS API Reference> for GetUser.
 module Network.AWS.IAM.GetUser
     (
     -- * Creating a Request
@@ -74,13 +72,15 @@
 
 instance AWSRequest GetUser where
         type Rs GetUser = GetUserResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "GetUserResult"
               (\ s h x ->
                  GetUserResponse' <$>
                    (pure (fromEnum s)) <*> (x .@ "User"))
 
+instance Hashable GetUser
+
 instance ToHeaders GetUser where
         toHeaders = const mempty
 
@@ -94,7 +94,7 @@
                "Version" =: ("2010-05-08" :: ByteString),
                "UserName" =: _guUserName]
 
--- | Contains the response to a successful GetUser request.
+-- | Contains the response to a successful < GetUser> request.
 --
 -- /See:/ 'getUserResponse' smart constructor.
 data GetUserResponse = GetUserResponse'
diff --git a/gen/Network/AWS/IAM/GetUserPolicy.hs b/gen/Network/AWS/IAM/GetUserPolicy.hs
--- a/gen/Network/AWS/IAM/GetUserPolicy.hs
+++ b/gen/Network/AWS/IAM/GetUserPolicy.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.GetUserPolicy
--- 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,15 +22,13 @@
 -- specified user.
 --
 -- A user can also have managed policies attached to it. To retrieve a
--- managed policy document that is attached to a user, use GetPolicy to
--- determine the policy\'s default version, then use GetPolicyVersion to
+-- managed policy document that is attached to a user, use < GetPolicy> to
+-- determine the policy\'s default version, then use < GetPolicyVersion> to
 -- retrieve the policy document.
 --
 -- For more information about policies, refer to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html Managed Policies and Inline Policies>
 -- in the /IAM User Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUserPolicy.html AWS API Reference> for GetUserPolicy.
 module Network.AWS.IAM.GetUserPolicy
     (
     -- * Creating a Request
@@ -90,7 +88,7 @@
 
 instance AWSRequest GetUserPolicy where
         type Rs GetUserPolicy = GetUserPolicyResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "GetUserPolicyResult"
               (\ s h x ->
@@ -99,6 +97,8 @@
                      (x .@ "PolicyName")
                      <*> (x .@ "PolicyDocument"))
 
+instance Hashable GetUserPolicy
+
 instance ToHeaders GetUserPolicy where
         toHeaders = const mempty
 
@@ -113,7 +113,7 @@
                "UserName" =: _gupUserName,
                "PolicyName" =: _gupPolicyName]
 
--- | Contains the response to a successful GetUserPolicy request.
+-- | Contains the response to a successful < GetUserPolicy> request.
 --
 -- /See:/ 'getUserPolicyResponse' smart constructor.
 data GetUserPolicyResponse = GetUserPolicyResponse'
diff --git a/gen/Network/AWS/IAM/ListAccessKeys.hs b/gen/Network/AWS/IAM/ListAccessKeys.hs
--- a/gen/Network/AWS/IAM/ListAccessKeys.hs
+++ b/gen/Network/AWS/IAM/ListAccessKeys.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.ListAccessKeys
--- 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,8 +33,6 @@
 -- To ensure the security of your AWS account, the secret access key is
 -- accessible only during key and user creation.
 --
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAccessKeys.html AWS API Reference> for ListAccessKeys.
---
 -- This operation returns paginated results.
 module Network.AWS.IAM.ListAccessKeys
     (
@@ -121,7 +119,7 @@
 
 instance AWSRequest ListAccessKeys where
         type Rs ListAccessKeys = ListAccessKeysResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "ListAccessKeysResult"
               (\ s h x ->
@@ -132,6 +130,8 @@
                      (x .@? "AccessKeyMetadata" .!@ mempty >>=
                         parseXMLList "member"))
 
+instance Hashable ListAccessKeys
+
 instance ToHeaders ListAccessKeys where
         toHeaders = const mempty
 
@@ -146,7 +146,7 @@
                "UserName" =: _lakUserName, "Marker" =: _lakMarker,
                "MaxItems" =: _lakMaxItems]
 
--- | Contains the response to a successful ListAccessKeys request.
+-- | Contains the response to a successful < ListAccessKeys> request.
 --
 -- /See:/ 'listAccessKeysResponse' smart constructor.
 data ListAccessKeysResponse = ListAccessKeysResponse'
diff --git a/gen/Network/AWS/IAM/ListAccountAliases.hs b/gen/Network/AWS/IAM/ListAccountAliases.hs
--- a/gen/Network/AWS/IAM/ListAccountAliases.hs
+++ b/gen/Network/AWS/IAM/ListAccountAliases.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.ListAccountAliases
--- 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 @@
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/AccountAlias.html Using an Alias for Your AWS Account ID>
 -- in the /IAM User Guide/.
 --
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAccountAliases.html AWS API Reference> for ListAccountAliases.
---
 -- This operation returns paginated results.
 module Network.AWS.IAM.ListAccountAliases
     (
@@ -103,7 +101,7 @@
 instance AWSRequest ListAccountAliases where
         type Rs ListAccountAliases =
              ListAccountAliasesResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "ListAccountAliasesResult"
               (\ s h x ->
@@ -114,6 +112,8 @@
                      (x .@? "AccountAliases" .!@ mempty >>=
                         parseXMLList "member"))
 
+instance Hashable ListAccountAliases
+
 instance ToHeaders ListAccountAliases where
         toHeaders = const mempty
 
@@ -127,7 +127,7 @@
                "Version" =: ("2010-05-08" :: ByteString),
                "Marker" =: _laaMarker, "MaxItems" =: _laaMaxItems]
 
--- | Contains the response to a successful ListAccountAliases request.
+-- | Contains the response to a successful < ListAccountAliases> request.
 --
 -- /See:/ 'listAccountAliasesResponse' smart constructor.
 data ListAccountAliasesResponse = ListAccountAliasesResponse'
diff --git a/gen/Network/AWS/IAM/ListAttachedGroupPolicies.hs b/gen/Network/AWS/IAM/ListAttachedGroupPolicies.hs
--- a/gen/Network/AWS/IAM/ListAttachedGroupPolicies.hs
+++ b/gen/Network/AWS/IAM/ListAttachedGroupPolicies.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.ListAttachedGroupPolicies
--- 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,7 +21,7 @@
 -- Lists all managed policies that are attached to the specified group.
 --
 -- A group can also have inline policies embedded with it. To list the
--- inline policies for a group, use the ListGroupPolicies API. For
+-- inline policies for a group, use the < ListGroupPolicies> API. For
 -- information about policies, refer to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html Managed Policies and Inline Policies>
 -- in the /IAM User Guide/.
@@ -32,8 +32,6 @@
 -- no policies attached to the specified group (or none that match the
 -- specified path prefix), the action returns an empty list.
 --
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedGroupPolicies.html AWS API Reference> for ListAttachedGroupPolicies.
---
 -- This operation returns paginated results.
 module Network.AWS.IAM.ListAttachedGroupPolicies
     (
@@ -134,7 +132,7 @@
 instance AWSRequest ListAttachedGroupPolicies where
         type Rs ListAttachedGroupPolicies =
              ListAttachedGroupPoliciesResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "ListAttachedGroupPoliciesResult"
               (\ s h x ->
@@ -145,6 +143,8 @@
                      <*> (x .@? "IsTruncated")
                      <*> (pure (fromEnum s)))
 
+instance Hashable ListAttachedGroupPolicies
+
 instance ToHeaders ListAttachedGroupPolicies where
         toHeaders = const mempty
 
@@ -161,7 +161,8 @@
                "Marker" =: _lagpMarker, "MaxItems" =: _lagpMaxItems,
                "GroupName" =: _lagpGroupName]
 
--- | Contains the response to a successful ListAttachedGroupPolicies request.
+-- | Contains the response to a successful < ListAttachedGroupPolicies>
+-- request.
 --
 -- /See:/ 'listAttachedGroupPoliciesResponse' smart constructor.
 data ListAttachedGroupPoliciesResponse = ListAttachedGroupPoliciesResponse'
diff --git a/gen/Network/AWS/IAM/ListAttachedRolePolicies.hs b/gen/Network/AWS/IAM/ListAttachedRolePolicies.hs
--- a/gen/Network/AWS/IAM/ListAttachedRolePolicies.hs
+++ b/gen/Network/AWS/IAM/ListAttachedRolePolicies.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.ListAttachedRolePolicies
--- 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,7 +21,7 @@
 -- Lists all managed policies that are attached to the specified role.
 --
 -- A role can also have inline policies embedded with it. To list the
--- inline policies for a role, use the ListRolePolicies API. For
+-- inline policies for a role, use the < ListRolePolicies> API. For
 -- information about policies, refer to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html Managed Policies and Inline Policies>
 -- in the /IAM User Guide/.
@@ -32,8 +32,6 @@
 -- no policies attached to the specified role (or none that match the
 -- specified path prefix), the action returns an empty list.
 --
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedRolePolicies.html AWS API Reference> for ListAttachedRolePolicies.
---
 -- This operation returns paginated results.
 module Network.AWS.IAM.ListAttachedRolePolicies
     (
@@ -134,7 +132,7 @@
 instance AWSRequest ListAttachedRolePolicies where
         type Rs ListAttachedRolePolicies =
              ListAttachedRolePoliciesResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "ListAttachedRolePoliciesResult"
               (\ s h x ->
@@ -145,6 +143,8 @@
                      <*> (x .@? "IsTruncated")
                      <*> (pure (fromEnum s)))
 
+instance Hashable ListAttachedRolePolicies
+
 instance ToHeaders ListAttachedRolePolicies where
         toHeaders = const mempty
 
@@ -161,7 +161,8 @@
                "Marker" =: _larpMarker, "MaxItems" =: _larpMaxItems,
                "RoleName" =: _larpRoleName]
 
--- | Contains the response to a successful ListAttachedRolePolicies request.
+-- | Contains the response to a successful < ListAttachedRolePolicies>
+-- request.
 --
 -- /See:/ 'listAttachedRolePoliciesResponse' smart constructor.
 data ListAttachedRolePoliciesResponse = ListAttachedRolePoliciesResponse'
diff --git a/gen/Network/AWS/IAM/ListAttachedUserPolicies.hs b/gen/Network/AWS/IAM/ListAttachedUserPolicies.hs
--- a/gen/Network/AWS/IAM/ListAttachedUserPolicies.hs
+++ b/gen/Network/AWS/IAM/ListAttachedUserPolicies.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.ListAttachedUserPolicies
--- 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,7 +21,7 @@
 -- Lists all managed policies that are attached to the specified user.
 --
 -- A user can also have inline policies embedded with it. To list the
--- inline policies for a user, use the ListUserPolicies API. For
+-- inline policies for a user, use the < ListUserPolicies> API. For
 -- information about policies, refer to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html Managed Policies and Inline Policies>
 -- in the /IAM User Guide/.
@@ -32,8 +32,6 @@
 -- no policies attached to the specified group (or none that match the
 -- specified path prefix), the action returns an empty list.
 --
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedUserPolicies.html AWS API Reference> for ListAttachedUserPolicies.
---
 -- This operation returns paginated results.
 module Network.AWS.IAM.ListAttachedUserPolicies
     (
@@ -134,7 +132,7 @@
 instance AWSRequest ListAttachedUserPolicies where
         type Rs ListAttachedUserPolicies =
              ListAttachedUserPoliciesResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "ListAttachedUserPoliciesResult"
               (\ s h x ->
@@ -145,6 +143,8 @@
                      <*> (x .@? "IsTruncated")
                      <*> (pure (fromEnum s)))
 
+instance Hashable ListAttachedUserPolicies
+
 instance ToHeaders ListAttachedUserPolicies where
         toHeaders = const mempty
 
@@ -161,7 +161,8 @@
                "Marker" =: _laupMarker, "MaxItems" =: _laupMaxItems,
                "UserName" =: _laupUserName]
 
--- | Contains the response to a successful ListAttachedUserPolicies request.
+-- | Contains the response to a successful < ListAttachedUserPolicies>
+-- request.
 --
 -- /See:/ 'listAttachedUserPoliciesResponse' smart constructor.
 data ListAttachedUserPoliciesResponse = ListAttachedUserPoliciesResponse'
diff --git a/gen/Network/AWS/IAM/ListEntitiesForPolicy.hs b/gen/Network/AWS/IAM/ListEntitiesForPolicy.hs
--- a/gen/Network/AWS/IAM/ListEntitiesForPolicy.hs
+++ b/gen/Network/AWS/IAM/ListEntitiesForPolicy.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.ListEntitiesForPolicy
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -29,8 +29,6 @@
 -- You can paginate the results using the 'MaxItems' and 'Marker'
 -- parameters.
 --
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_ListEntitiesForPolicy.html AWS API Reference> for ListEntitiesForPolicy.
---
 -- This operation returns paginated results.
 module Network.AWS.IAM.ListEntitiesForPolicy
     (
@@ -146,7 +144,7 @@
 instance AWSRequest ListEntitiesForPolicy where
         type Rs ListEntitiesForPolicy =
              ListEntitiesForPolicyResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "ListEntitiesForPolicyResult"
               (\ s h x ->
@@ -163,6 +161,8 @@
                      <*> (x .@? "IsTruncated")
                      <*> (pure (fromEnum s)))
 
+instance Hashable ListEntitiesForPolicy
+
 instance ToHeaders ListEntitiesForPolicy where
         toHeaders = const mempty
 
@@ -179,7 +179,7 @@
                "Marker" =: _lefpMarker, "MaxItems" =: _lefpMaxItems,
                "PolicyArn" =: _lefpPolicyARN]
 
--- | Contains the response to a successful ListEntitiesForPolicy request.
+-- | Contains the response to a successful < ListEntitiesForPolicy> request.
 --
 -- /See:/ 'listEntitiesForPolicyResponse' smart constructor.
 data ListEntitiesForPolicyResponse = ListEntitiesForPolicyResponse'
diff --git a/gen/Network/AWS/IAM/ListGroupPolicies.hs b/gen/Network/AWS/IAM/ListGroupPolicies.hs
--- a/gen/Network/AWS/IAM/ListGroupPolicies.hs
+++ b/gen/Network/AWS/IAM/ListGroupPolicies.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.ListGroupPolicies
--- 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,7 +23,8 @@
 --
 -- A group can also have managed policies attached to it. To list the
 -- managed policies that are attached to a group, use
--- ListAttachedGroupPolicies. For more information about policies, refer to
+-- < ListAttachedGroupPolicies>. For more information about policies, refer
+-- to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html Managed Policies and Inline Policies>
 -- in the /IAM User Guide/.
 --
@@ -31,8 +32,6 @@
 -- parameters. If there are no inline policies embedded with the specified
 -- group, the action returns an empty list.
 --
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_ListGroupPolicies.html AWS API Reference> for ListGroupPolicies.
---
 -- This operation returns paginated results.
 module Network.AWS.IAM.ListGroupPolicies
     (
@@ -120,7 +119,7 @@
 
 instance AWSRequest ListGroupPolicies where
         type Rs ListGroupPolicies = ListGroupPoliciesResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "ListGroupPoliciesResult"
               (\ s h x ->
@@ -131,6 +130,8 @@
                      (x .@? "PolicyNames" .!@ mempty >>=
                         parseXMLList "member"))
 
+instance Hashable ListGroupPolicies
+
 instance ToHeaders ListGroupPolicies where
         toHeaders = const mempty
 
@@ -145,7 +146,7 @@
                "Marker" =: _lgpMarker, "MaxItems" =: _lgpMaxItems,
                "GroupName" =: _lgpGroupName]
 
--- | Contains the response to a successful ListGroupPolicies request.
+-- | Contains the response to a successful < ListGroupPolicies> request.
 --
 -- /See:/ 'listGroupPoliciesResponse' smart constructor.
 data ListGroupPoliciesResponse = ListGroupPoliciesResponse'
diff --git a/gen/Network/AWS/IAM/ListGroups.hs b/gen/Network/AWS/IAM/ListGroups.hs
--- a/gen/Network/AWS/IAM/ListGroups.hs
+++ b/gen/Network/AWS/IAM/ListGroups.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.ListGroups
--- 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 @@
 -- You can paginate the results using the 'MaxItems' and 'Marker'
 -- parameters.
 --
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_ListGroups.html AWS API Reference> for ListGroups.
---
 -- This operation returns paginated results.
 module Network.AWS.IAM.ListGroups
     (
@@ -116,7 +114,7 @@
 
 instance AWSRequest ListGroups where
         type Rs ListGroups = ListGroupsResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "ListGroupsResult"
               (\ s h x ->
@@ -127,6 +125,8 @@
                      (x .@? "Groups" .!@ mempty >>=
                         parseXMLList "member"))
 
+instance Hashable ListGroups
+
 instance ToHeaders ListGroups where
         toHeaders = const mempty
 
@@ -141,7 +141,7 @@
                "PathPrefix" =: _lgPathPrefix, "Marker" =: _lgMarker,
                "MaxItems" =: _lgMaxItems]
 
--- | Contains the response to a successful ListGroups request.
+-- | Contains the response to a successful < ListGroups> request.
 --
 -- /See:/ 'listGroupsResponse' smart constructor.
 data ListGroupsResponse = ListGroupsResponse'
diff --git a/gen/Network/AWS/IAM/ListGroupsForUser.hs b/gen/Network/AWS/IAM/ListGroupsForUser.hs
--- a/gen/Network/AWS/IAM/ListGroupsForUser.hs
+++ b/gen/Network/AWS/IAM/ListGroupsForUser.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.ListGroupsForUser
--- 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 @@
 -- You can paginate the results using the 'MaxItems' and 'Marker'
 -- parameters.
 --
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_ListGroupsForUser.html AWS API Reference> for ListGroupsForUser.
---
 -- This operation returns paginated results.
 module Network.AWS.IAM.ListGroupsForUser
     (
@@ -112,7 +110,7 @@
 
 instance AWSRequest ListGroupsForUser where
         type Rs ListGroupsForUser = ListGroupsForUserResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "ListGroupsForUserResult"
               (\ s h x ->
@@ -123,6 +121,8 @@
                      (x .@? "Groups" .!@ mempty >>=
                         parseXMLList "member"))
 
+instance Hashable ListGroupsForUser
+
 instance ToHeaders ListGroupsForUser where
         toHeaders = const mempty
 
@@ -137,7 +137,7 @@
                "Marker" =: _lgfuMarker, "MaxItems" =: _lgfuMaxItems,
                "UserName" =: _lgfuUserName]
 
--- | Contains the response to a successful ListGroupsForUser request.
+-- | Contains the response to a successful < ListGroupsForUser> request.
 --
 -- /See:/ 'listGroupsForUserResponse' smart constructor.
 data ListGroupsForUserResponse = ListGroupsForUserResponse'
diff --git a/gen/Network/AWS/IAM/ListInstanceProfiles.hs b/gen/Network/AWS/IAM/ListInstanceProfiles.hs
--- a/gen/Network/AWS/IAM/ListInstanceProfiles.hs
+++ b/gen/Network/AWS/IAM/ListInstanceProfiles.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.ListInstanceProfiles
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -26,8 +26,6 @@
 -- You can paginate the results using the 'MaxItems' and 'Marker'
 -- parameters.
 --
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_ListInstanceProfiles.html AWS API Reference> for ListInstanceProfiles.
---
 -- This operation returns paginated results.
 module Network.AWS.IAM.ListInstanceProfiles
     (
@@ -120,7 +118,7 @@
 instance AWSRequest ListInstanceProfiles where
         type Rs ListInstanceProfiles =
              ListInstanceProfilesResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "ListInstanceProfilesResult"
               (\ s h x ->
@@ -131,6 +129,8 @@
                      (x .@? "InstanceProfiles" .!@ mempty >>=
                         parseXMLList "member"))
 
+instance Hashable ListInstanceProfiles
+
 instance ToHeaders ListInstanceProfiles where
         toHeaders = const mempty
 
@@ -145,7 +145,7 @@
                "PathPrefix" =: _lipPathPrefix,
                "Marker" =: _lipMarker, "MaxItems" =: _lipMaxItems]
 
--- | Contains the response to a successful ListInstanceProfiles request.
+-- | Contains the response to a successful < ListInstanceProfiles> request.
 --
 -- /See:/ 'listInstanceProfilesResponse' smart constructor.
 data ListInstanceProfilesResponse = ListInstanceProfilesResponse'
diff --git a/gen/Network/AWS/IAM/ListInstanceProfilesForRole.hs b/gen/Network/AWS/IAM/ListInstanceProfilesForRole.hs
--- a/gen/Network/AWS/IAM/ListInstanceProfilesForRole.hs
+++ b/gen/Network/AWS/IAM/ListInstanceProfilesForRole.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.ListInstanceProfilesForRole
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -26,8 +26,6 @@
 -- You can paginate the results using the 'MaxItems' and 'Marker'
 -- parameters.
 --
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_ListInstanceProfilesForRole.html AWS API Reference> for ListInstanceProfilesForRole.
---
 -- This operation returns paginated results.
 module Network.AWS.IAM.ListInstanceProfilesForRole
     (
@@ -116,7 +114,7 @@
 instance AWSRequest ListInstanceProfilesForRole where
         type Rs ListInstanceProfilesForRole =
              ListInstanceProfilesForRoleResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper
               "ListInstanceProfilesForRoleResult"
@@ -128,6 +126,8 @@
                      (x .@? "InstanceProfiles" .!@ mempty >>=
                         parseXMLList "member"))
 
+instance Hashable ListInstanceProfilesForRole
+
 instance ToHeaders ListInstanceProfilesForRole where
         toHeaders = const mempty
 
@@ -144,7 +144,7 @@
                "MaxItems" =: _lipfrMaxItems,
                "RoleName" =: _lipfrRoleName]
 
--- | Contains the response to a successful ListInstanceProfilesForRole
+-- | Contains the response to a successful < ListInstanceProfilesForRole>
 -- request.
 --
 -- /See:/ 'listInstanceProfilesForRoleResponse' smart constructor.
diff --git a/gen/Network/AWS/IAM/ListMFADevices.hs b/gen/Network/AWS/IAM/ListMFADevices.hs
--- a/gen/Network/AWS/IAM/ListMFADevices.hs
+++ b/gen/Network/AWS/IAM/ListMFADevices.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.ListMFADevices
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -26,8 +26,6 @@
 -- You can paginate the results using the 'MaxItems' and 'Marker'
 -- parameters.
 --
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_ListMFADevices.html AWS API Reference> for ListMFADevices.
---
 -- This operation returns paginated results.
 module Network.AWS.IAM.ListMFADevices
     (
@@ -114,7 +112,7 @@
 
 instance AWSRequest ListMFADevices where
         type Rs ListMFADevices = ListMFADevicesResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "ListMFADevicesResult"
               (\ s h x ->
@@ -125,6 +123,8 @@
                      (x .@? "MFADevices" .!@ mempty >>=
                         parseXMLList "member"))
 
+instance Hashable ListMFADevices
+
 instance ToHeaders ListMFADevices where
         toHeaders = const mempty
 
@@ -139,7 +139,7 @@
                "UserName" =: _lmdUserName, "Marker" =: _lmdMarker,
                "MaxItems" =: _lmdMaxItems]
 
--- | Contains the response to a successful ListMFADevices request.
+-- | Contains the response to a successful < ListMFADevices> request.
 --
 -- /See:/ 'listMFADevicesResponse' smart constructor.
 data ListMFADevicesResponse = ListMFADevicesResponse'
diff --git a/gen/Network/AWS/IAM/ListOpenIdConnectProviders.hs b/gen/Network/AWS/IAM/ListOpenIdConnectProviders.hs
--- a/gen/Network/AWS/IAM/ListOpenIdConnectProviders.hs
+++ b/gen/Network/AWS/IAM/ListOpenIdConnectProviders.hs
@@ -12,15 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.IAM.ListOpenIdConnectProviders
--- 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)
 --
 -- Lists information about the OpenID Connect providers in the AWS account.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_ListOpenIdConnectProviders.html AWS API Reference> for ListOpenIdConnectProviders.
 module Network.AWS.IAM.ListOpenIdConnectProviders
     (
     -- * Creating a Request
@@ -56,7 +54,7 @@
 instance AWSRequest ListOpenIdConnectProviders where
         type Rs ListOpenIdConnectProviders =
              ListOpenIdConnectProvidersResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper
               "ListOpenIDConnectProvidersResult"
@@ -66,6 +64,8 @@
                       may (parseXMLList "member"))
                      <*> (pure (fromEnum s)))
 
+instance Hashable ListOpenIdConnectProviders
+
 instance ToHeaders ListOpenIdConnectProviders where
         toHeaders = const mempty
 
@@ -80,7 +80,7 @@
                     ("ListOpenIDConnectProviders" :: ByteString),
                   "Version" =: ("2010-05-08" :: ByteString)])
 
--- | Contains the response to a successful ListOpenIDConnectProviders
+-- | Contains the response to a successful < ListOpenIDConnectProviders>
 -- request.
 --
 -- /See:/ 'listOpenIdConnectProvidersResponse' smart constructor.
diff --git a/gen/Network/AWS/IAM/ListPolicies.hs b/gen/Network/AWS/IAM/ListPolicies.hs
--- a/gen/Network/AWS/IAM/ListPolicies.hs
+++ b/gen/Network/AWS/IAM/ListPolicies.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.ListPolicies
--- 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
@@ -34,8 +34,6 @@
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html Managed Policies and Inline Policies>
 -- in the /IAM User Guide/.
 --
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPolicies.html AWS API Reference> for ListPolicies.
---
 -- This operation returns paginated results.
 module Network.AWS.IAM.ListPolicies
     (
@@ -154,7 +152,7 @@
 
 instance AWSRequest ListPolicies where
         type Rs ListPolicies = ListPoliciesResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "ListPoliciesResult"
               (\ s h x ->
@@ -164,6 +162,8 @@
                         may (parseXMLList "member"))
                      <*> (pure (fromEnum s)))
 
+instance Hashable ListPolicies
+
 instance ToHeaders ListPolicies where
         toHeaders = const mempty
 
@@ -180,7 +180,7 @@
                "Marker" =: _lpMarker, "Scope" =: _lpScope,
                "MaxItems" =: _lpMaxItems]
 
--- | Contains the response to a successful ListPolicies request.
+-- | Contains the response to a successful < ListPolicies> request.
 --
 -- /See:/ 'listPoliciesResponse' smart constructor.
 data ListPoliciesResponse = ListPoliciesResponse'
diff --git a/gen/Network/AWS/IAM/ListPolicyVersions.hs b/gen/Network/AWS/IAM/ListPolicyVersions.hs
--- a/gen/Network/AWS/IAM/ListPolicyVersions.hs
+++ b/gen/Network/AWS/IAM/ListPolicyVersions.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.ListPolicyVersions
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -25,8 +25,6 @@
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html Managed Policies and Inline Policies>
 -- in the /IAM User Guide/.
 --
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPolicyVersions.html AWS API Reference> for ListPolicyVersions.
---
 -- This operation returns paginated results.
 module Network.AWS.IAM.ListPolicyVersions
     (
@@ -115,7 +113,7 @@
 instance AWSRequest ListPolicyVersions where
         type Rs ListPolicyVersions =
              ListPolicyVersionsResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "ListPolicyVersionsResult"
               (\ s h x ->
@@ -126,6 +124,8 @@
                      <*> (x .@? "IsTruncated")
                      <*> (pure (fromEnum s)))
 
+instance Hashable ListPolicyVersions
+
 instance ToHeaders ListPolicyVersions where
         toHeaders = const mempty
 
@@ -140,7 +140,7 @@
                "Marker" =: _lpvMarker, "MaxItems" =: _lpvMaxItems,
                "PolicyArn" =: _lpvPolicyARN]
 
--- | Contains the response to a successful ListPolicyVersions request.
+-- | Contains the response to a successful < ListPolicyVersions> request.
 --
 -- /See:/ 'listPolicyVersionsResponse' smart constructor.
 data ListPolicyVersionsResponse = ListPolicyVersionsResponse'
diff --git a/gen/Network/AWS/IAM/ListRolePolicies.hs b/gen/Network/AWS/IAM/ListRolePolicies.hs
--- a/gen/Network/AWS/IAM/ListRolePolicies.hs
+++ b/gen/Network/AWS/IAM/ListRolePolicies.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.ListRolePolicies
--- 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,7 +23,8 @@
 --
 -- A role can also have managed policies attached to it. To list the
 -- managed policies that are attached to a role, use
--- ListAttachedRolePolicies. For more information about policies, refer to
+-- < ListAttachedRolePolicies>. For more information about policies, refer
+-- to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html Managed Policies and Inline Policies>
 -- in the /IAM User Guide/.
 --
@@ -31,8 +32,6 @@
 -- parameters. If there are no inline policies embedded with the specified
 -- role, the action returns an empty list.
 --
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_ListRolePolicies.html AWS API Reference> for ListRolePolicies.
---
 -- This operation returns paginated results.
 module Network.AWS.IAM.ListRolePolicies
     (
@@ -120,7 +119,7 @@
 
 instance AWSRequest ListRolePolicies where
         type Rs ListRolePolicies = ListRolePoliciesResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "ListRolePoliciesResult"
               (\ s h x ->
@@ -131,6 +130,8 @@
                      (x .@? "PolicyNames" .!@ mempty >>=
                         parseXMLList "member"))
 
+instance Hashable ListRolePolicies
+
 instance ToHeaders ListRolePolicies where
         toHeaders = const mempty
 
@@ -145,7 +146,7 @@
                "Marker" =: _lrpMarker, "MaxItems" =: _lrpMaxItems,
                "RoleName" =: _lrpRoleName]
 
--- | Contains the response to a successful ListRolePolicies request.
+-- | Contains the response to a successful < ListRolePolicies> request.
 --
 -- /See:/ 'listRolePoliciesResponse' smart constructor.
 data ListRolePoliciesResponse = ListRolePoliciesResponse'
diff --git a/gen/Network/AWS/IAM/ListRoles.hs b/gen/Network/AWS/IAM/ListRoles.hs
--- a/gen/Network/AWS/IAM/ListRoles.hs
+++ b/gen/Network/AWS/IAM/ListRoles.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.ListRoles
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -26,8 +26,6 @@
 -- You can paginate the results using the 'MaxItems' and 'Marker'
 -- parameters.
 --
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_ListRoles.html AWS API Reference> for ListRoles.
---
 -- This operation returns paginated results.
 module Network.AWS.IAM.ListRoles
     (
@@ -119,7 +117,7 @@
 
 instance AWSRequest ListRoles where
         type Rs ListRoles = ListRolesResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "ListRolesResult"
               (\ s h x ->
@@ -129,6 +127,8 @@
                      <*>
                      (x .@? "Roles" .!@ mempty >>= parseXMLList "member"))
 
+instance Hashable ListRoles
+
 instance ToHeaders ListRoles where
         toHeaders = const mempty
 
@@ -143,7 +143,7 @@
                "PathPrefix" =: _lrPathPrefix, "Marker" =: _lrMarker,
                "MaxItems" =: _lrMaxItems]
 
--- | Contains the response to a successful ListRoles request.
+-- | Contains the response to a successful < ListRoles> request.
 --
 -- /See:/ 'listRolesResponse' smart constructor.
 data ListRolesResponse = ListRolesResponse'
diff --git a/gen/Network/AWS/IAM/ListSAMLProviders.hs b/gen/Network/AWS/IAM/ListSAMLProviders.hs
--- a/gen/Network/AWS/IAM/ListSAMLProviders.hs
+++ b/gen/Network/AWS/IAM/ListSAMLProviders.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.ListSAMLProviders
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -22,8 +22,6 @@
 --
 -- This operation requires
 -- <http://docs.aws.amazon.com/general/latest/gr/signature-version-4.html Signature Version 4>.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_ListSAMLProviders.html AWS API Reference> for ListSAMLProviders.
 module Network.AWS.IAM.ListSAMLProviders
     (
     -- * Creating a Request
@@ -58,7 +56,7 @@
 
 instance AWSRequest ListSAMLProviders where
         type Rs ListSAMLProviders = ListSAMLProvidersResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "ListSAMLProvidersResult"
               (\ s h x ->
@@ -67,6 +65,8 @@
                       may (parseXMLList "member"))
                      <*> (pure (fromEnum s)))
 
+instance Hashable ListSAMLProviders
+
 instance ToHeaders ListSAMLProviders where
         toHeaders = const mempty
 
@@ -80,7 +80,7 @@
                  ["Action" =: ("ListSAMLProviders" :: ByteString),
                   "Version" =: ("2010-05-08" :: ByteString)])
 
--- | Contains the response to a successful ListSAMLProviders request.
+-- | Contains the response to a successful < ListSAMLProviders> request.
 --
 -- /See:/ 'listSAMLProvidersResponse' smart constructor.
 data ListSAMLProvidersResponse = ListSAMLProvidersResponse'
diff --git a/gen/Network/AWS/IAM/ListSSHPublicKeys.hs b/gen/Network/AWS/IAM/ListSSHPublicKeys.hs
--- a/gen/Network/AWS/IAM/ListSSHPublicKeys.hs
+++ b/gen/Network/AWS/IAM/ListSSHPublicKeys.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.ListSSHPublicKeys
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -30,8 +30,6 @@
 --
 -- Although each user is limited to a small number of keys, you can still
 -- paginate the results using the 'MaxItems' and 'Marker' parameters.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_ListSSHPublicKeys.html AWS API Reference> for ListSSHPublicKeys.
 module Network.AWS.IAM.ListSSHPublicKeys
     (
     -- * Creating a Request
@@ -111,7 +109,7 @@
 
 instance AWSRequest ListSSHPublicKeys where
         type Rs ListSSHPublicKeys = ListSSHPublicKeysResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "ListSSHPublicKeysResult"
               (\ s h x ->
@@ -122,6 +120,8 @@
                      <*> (x .@? "IsTruncated")
                      <*> (pure (fromEnum s)))
 
+instance Hashable ListSSHPublicKeys
+
 instance ToHeaders ListSSHPublicKeys where
         toHeaders = const mempty
 
@@ -136,7 +136,7 @@
                "UserName" =: _lspkUserName, "Marker" =: _lspkMarker,
                "MaxItems" =: _lspkMaxItems]
 
--- | Contains the response to a successful ListSSHPublicKeys request.
+-- | Contains the response to a successful < ListSSHPublicKeys> request.
 --
 -- /See:/ 'listSSHPublicKeysResponse' smart constructor.
 data ListSSHPublicKeysResponse = ListSSHPublicKeysResponse'
diff --git a/gen/Network/AWS/IAM/ListServerCertificates.hs b/gen/Network/AWS/IAM/ListServerCertificates.hs
--- a/gen/Network/AWS/IAM/ListServerCertificates.hs
+++ b/gen/Network/AWS/IAM/ListServerCertificates.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.ListServerCertificates
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -30,8 +30,6 @@
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html Working with Server Certificates>
 -- in the /IAM User Guide/.
 --
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_ListServerCertificates.html AWS API Reference> for ListServerCertificates.
---
 -- This operation returns paginated results.
 module Network.AWS.IAM.ListServerCertificates
     (
@@ -124,7 +122,7 @@
 instance AWSRequest ListServerCertificates where
         type Rs ListServerCertificates =
              ListServerCertificatesResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "ListServerCertificatesResult"
               (\ s h x ->
@@ -135,6 +133,8 @@
                      (x .@? "ServerCertificateMetadataList" .!@ mempty >>=
                         parseXMLList "member"))
 
+instance Hashable ListServerCertificates
+
 instance ToHeaders ListServerCertificates where
         toHeaders = const mempty
 
@@ -150,7 +150,7 @@
                "PathPrefix" =: _lscPathPrefix,
                "Marker" =: _lscMarker, "MaxItems" =: _lscMaxItems]
 
--- | Contains the response to a successful ListServerCertificates request.
+-- | Contains the response to a successful < ListServerCertificates> request.
 --
 -- /See:/ 'listServerCertificatesResponse' smart constructor.
 data ListServerCertificatesResponse = ListServerCertificatesResponse'
diff --git a/gen/Network/AWS/IAM/ListSigningCertificates.hs b/gen/Network/AWS/IAM/ListSigningCertificates.hs
--- a/gen/Network/AWS/IAM/ListSigningCertificates.hs
+++ b/gen/Network/AWS/IAM/ListSigningCertificates.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.ListSigningCertificates
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -31,8 +31,6 @@
 -- use this action to manage root credentials even if the AWS account has
 -- no associated users.
 --
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_ListSigningCertificates.html AWS API Reference> for ListSigningCertificates.
---
 -- This operation returns paginated results.
 module Network.AWS.IAM.ListSigningCertificates
     (
@@ -119,7 +117,7 @@
 instance AWSRequest ListSigningCertificates where
         type Rs ListSigningCertificates =
              ListSigningCertificatesResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "ListSigningCertificatesResult"
               (\ s h x ->
@@ -130,6 +128,8 @@
                      (x .@? "Certificates" .!@ mempty >>=
                         parseXMLList "member"))
 
+instance Hashable ListSigningCertificates
+
 instance ToHeaders ListSigningCertificates where
         toHeaders = const mempty
 
@@ -145,7 +145,8 @@
                "UserName" =: _lUserName, "Marker" =: _lMarker,
                "MaxItems" =: _lMaxItems]
 
--- | Contains the response to a successful ListSigningCertificates request.
+-- | Contains the response to a successful < ListSigningCertificates>
+-- request.
 --
 -- /See:/ 'listSigningCertificatesResponse' smart constructor.
 data ListSigningCertificatesResponse = ListSigningCertificatesResponse'
diff --git a/gen/Network/AWS/IAM/ListUserPolicies.hs b/gen/Network/AWS/IAM/ListUserPolicies.hs
--- a/gen/Network/AWS/IAM/ListUserPolicies.hs
+++ b/gen/Network/AWS/IAM/ListUserPolicies.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.ListUserPolicies
--- 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,7 +22,8 @@
 --
 -- A user can also have managed policies attached to it. To list the
 -- managed policies that are attached to a user, use
--- ListAttachedUserPolicies. For more information about policies, refer to
+-- < ListAttachedUserPolicies>. For more information about policies, refer
+-- to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html Managed Policies and Inline Policies>
 -- in the /IAM User Guide/.
 --
@@ -30,8 +31,6 @@
 -- parameters. If there are no inline policies embedded with the specified
 -- user, the action returns an empty list.
 --
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUserPolicies.html AWS API Reference> for ListUserPolicies.
---
 -- This operation returns paginated results.
 module Network.AWS.IAM.ListUserPolicies
     (
@@ -119,7 +118,7 @@
 
 instance AWSRequest ListUserPolicies where
         type Rs ListUserPolicies = ListUserPoliciesResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "ListUserPoliciesResult"
               (\ s h x ->
@@ -130,6 +129,8 @@
                      (x .@? "PolicyNames" .!@ mempty >>=
                         parseXMLList "member"))
 
+instance Hashable ListUserPolicies
+
 instance ToHeaders ListUserPolicies where
         toHeaders = const mempty
 
@@ -144,7 +145,7 @@
                "Marker" =: _lupMarker, "MaxItems" =: _lupMaxItems,
                "UserName" =: _lupUserName]
 
--- | Contains the response to a successful ListUserPolicies request.
+-- | Contains the response to a successful < ListUserPolicies> request.
 --
 -- /See:/ 'listUserPoliciesResponse' smart constructor.
 data ListUserPoliciesResponse = ListUserPoliciesResponse'
diff --git a/gen/Network/AWS/IAM/ListUsers.hs b/gen/Network/AWS/IAM/ListUsers.hs
--- a/gen/Network/AWS/IAM/ListUsers.hs
+++ b/gen/Network/AWS/IAM/ListUsers.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.ListUsers
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -25,8 +25,6 @@
 -- You can paginate the results using the 'MaxItems' and 'Marker'
 -- parameters.
 --
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUsers.html AWS API Reference> for ListUsers.
---
 -- This operation returns paginated results.
 module Network.AWS.IAM.ListUsers
     (
@@ -118,7 +116,7 @@
 
 instance AWSRequest ListUsers where
         type Rs ListUsers = ListUsersResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "ListUsersResult"
               (\ s h x ->
@@ -128,6 +126,8 @@
                      <*>
                      (x .@? "Users" .!@ mempty >>= parseXMLList "member"))
 
+instance Hashable ListUsers
+
 instance ToHeaders ListUsers where
         toHeaders = const mempty
 
@@ -142,7 +142,7 @@
                "PathPrefix" =: _luPathPrefix, "Marker" =: _luMarker,
                "MaxItems" =: _luMaxItems]
 
--- | Contains the response to a successful ListUsers request.
+-- | Contains the response to a successful < ListUsers> request.
 --
 -- /See:/ 'listUsersResponse' smart constructor.
 data ListUsersResponse = ListUsersResponse'
diff --git a/gen/Network/AWS/IAM/ListVirtualMFADevices.hs b/gen/Network/AWS/IAM/ListVirtualMFADevices.hs
--- a/gen/Network/AWS/IAM/ListVirtualMFADevices.hs
+++ b/gen/Network/AWS/IAM/ListVirtualMFADevices.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.ListVirtualMFADevices
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -26,8 +26,6 @@
 -- You can paginate the results using the 'MaxItems' and 'Marker'
 -- parameters.
 --
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_ListVirtualMFADevices.html AWS API Reference> for ListVirtualMFADevices.
---
 -- This operation returns paginated results.
 module Network.AWS.IAM.ListVirtualMFADevices
     (
@@ -117,7 +115,7 @@
 instance AWSRequest ListVirtualMFADevices where
         type Rs ListVirtualMFADevices =
              ListVirtualMFADevicesResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "ListVirtualMFADevicesResult"
               (\ s h x ->
@@ -128,6 +126,8 @@
                      (x .@? "VirtualMFADevices" .!@ mempty >>=
                         parseXMLList "member"))
 
+instance Hashable ListVirtualMFADevices
+
 instance ToHeaders ListVirtualMFADevices where
         toHeaders = const mempty
 
@@ -142,7 +142,7 @@
                "AssignmentStatus" =: _lvmdAssignmentStatus,
                "Marker" =: _lvmdMarker, "MaxItems" =: _lvmdMaxItems]
 
--- | Contains the response to a successful ListVirtualMFADevices request.
+-- | Contains the response to a successful < ListVirtualMFADevices> request.
 --
 -- /See:/ 'listVirtualMFADevicesResponse' smart constructor.
 data ListVirtualMFADevicesResponse = ListVirtualMFADevicesResponse'
diff --git a/gen/Network/AWS/IAM/PutGroupPolicy.hs b/gen/Network/AWS/IAM/PutGroupPolicy.hs
--- a/gen/Network/AWS/IAM/PutGroupPolicy.hs
+++ b/gen/Network/AWS/IAM/PutGroupPolicy.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.PutGroupPolicy
--- 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,9 @@
 -- specified group.
 --
 -- A user can also have managed policies attached to it. To attach a
--- managed policy to a group, use AttachGroupPolicy. To create a new
--- managed policy, use CreatePolicy. For information about policies, refer
--- to
+-- managed policy to a group, use < AttachGroupPolicy>. To create a new
+-- managed policy, use < CreatePolicy>. For information about policies,
+-- refer to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html Managed Policies and Inline Policies>
 -- in the /IAM User Guide/.
 --
@@ -38,8 +38,6 @@
 -- the Query API with IAM, go to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html Making Query Requests>
 -- in the /Using IAM/ guide.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_PutGroupPolicy.html AWS API Reference> for PutGroupPolicy.
 module Network.AWS.IAM.PutGroupPolicy
     (
     -- * Creating a Request
@@ -104,8 +102,10 @@
 
 instance AWSRequest PutGroupPolicy where
         type Rs PutGroupPolicy = PutGroupPolicyResponse
-        request = postQuery iAM
+        request = postQuery iam
         response = receiveNull PutGroupPolicyResponse'
+
+instance Hashable PutGroupPolicy
 
 instance ToHeaders PutGroupPolicy where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/PutRolePolicy.hs b/gen/Network/AWS/IAM/PutRolePolicy.hs
--- a/gen/Network/AWS/IAM/PutRolePolicy.hs
+++ b/gen/Network/AWS/IAM/PutRolePolicy.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.PutRolePolicy
--- 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,14 +23,15 @@
 --
 -- When you embed an inline policy in a role, the inline policy is used as
 -- the role\'s access (permissions) policy. The role\'s trust policy is
--- created at the same time as the role, using CreateRole. You can update a
--- role\'s trust policy using UpdateAssumeRolePolicy. For more information
--- about roles, go to
+-- created at the same time as the role, using < CreateRole>. You can
+-- update a role\'s trust policy using < UpdateAssumeRolePolicy>. For more
+-- information about roles, go to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html Using Roles to Delegate Permissions and Federate Identities>.
 --
 -- A role can also have a managed policy attached to it. To attach a
--- managed policy to a role, use AttachRolePolicy. To create a new managed
--- policy, use CreatePolicy. For information about policies, refer to
+-- managed policy to a role, use < AttachRolePolicy>. To create a new
+-- managed policy, use < CreatePolicy>. For information about policies,
+-- refer to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html Managed Policies and Inline Policies>
 -- in the /IAM User Guide/.
 --
@@ -44,8 +45,6 @@
 -- the Query API with IAM, go to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html Making Query Requests>
 -- in the /Using IAM/ guide.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_PutRolePolicy.html AWS API Reference> for PutRolePolicy.
 module Network.AWS.IAM.PutRolePolicy
     (
     -- * Creating a Request
@@ -110,8 +109,10 @@
 
 instance AWSRequest PutRolePolicy where
         type Rs PutRolePolicy = PutRolePolicyResponse
-        request = postQuery iAM
+        request = postQuery iam
         response = receiveNull PutRolePolicyResponse'
+
+instance Hashable PutRolePolicy
 
 instance ToHeaders PutRolePolicy where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/PutUserPolicy.hs b/gen/Network/AWS/IAM/PutUserPolicy.hs
--- a/gen/Network/AWS/IAM/PutUserPolicy.hs
+++ b/gen/Network/AWS/IAM/PutUserPolicy.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.PutUserPolicy
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -22,8 +22,9 @@
 -- specified user.
 --
 -- A user can also have a managed policy attached to it. To attach a
--- managed policy to a user, use AttachUserPolicy. To create a new managed
--- policy, use CreatePolicy. For information about policies, refer to
+-- managed policy to a user, use < AttachUserPolicy>. To create a new
+-- managed policy, use < CreatePolicy>. For information about policies,
+-- refer to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html Managed Policies and Inline Policies>
 -- in the /IAM User Guide/.
 --
@@ -37,8 +38,6 @@
 -- the Query API with IAM, go to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html Making Query Requests>
 -- in the /Using IAM/ guide.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_PutUserPolicy.html AWS API Reference> for PutUserPolicy.
 module Network.AWS.IAM.PutUserPolicy
     (
     -- * Creating a Request
@@ -103,8 +102,10 @@
 
 instance AWSRequest PutUserPolicy where
         type Rs PutUserPolicy = PutUserPolicyResponse
-        request = postQuery iAM
+        request = postQuery iam
         response = receiveNull PutUserPolicyResponse'
+
+instance Hashable PutUserPolicy
 
 instance ToHeaders PutUserPolicy where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/RemoveClientIdFromOpenIdConnectProvider.hs b/gen/Network/AWS/IAM/RemoveClientIdFromOpenIdConnectProvider.hs
--- a/gen/Network/AWS/IAM/RemoveClientIdFromOpenIdConnectProvider.hs
+++ b/gen/Network/AWS/IAM/RemoveClientIdFromOpenIdConnectProvider.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.RemoveClientIdFromOpenIdConnectProvider
--- 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 @@
 --
 -- This action is idempotent; it does not fail or return an error if you
 -- try to remove a client ID that was removed previously.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_RemoveClientIdFromOpenIdConnectProvider.html AWS API Reference> for RemoveClientIdFromOpenIdConnectProvider.
 module Network.AWS.IAM.RemoveClientIdFromOpenIdConnectProvider
     (
     -- * Creating a Request
@@ -71,13 +69,13 @@
 
 -- | The Amazon Resource Name (ARN) of the IAM OpenID Connect (OIDC) provider
 -- to remove the client ID from. You can get a list of OIDC provider ARNs
--- by using the ListOpenIDConnectProviders action.
+-- by using the < ListOpenIDConnectProviders> action.
 rcifoicpOpenIdConnectProviderARN :: Lens' RemoveClientIdFromOpenIdConnectProvider Text
 rcifoicpOpenIdConnectProviderARN = lens _rcifoicpOpenIdConnectProviderARN (\ s a -> s{_rcifoicpOpenIdConnectProviderARN = a});
 
 -- | The client ID (also known as audience) to remove from the IAM OpenID
 -- Connect provider. For more information about client IDs, see
--- CreateOpenIDConnectProvider.
+-- < CreateOpenIDConnectProvider>.
 rcifoicpClientId :: Lens' RemoveClientIdFromOpenIdConnectProvider Text
 rcifoicpClientId = lens _rcifoicpClientId (\ s a -> s{_rcifoicpClientId = a});
 
@@ -85,10 +83,13 @@
          RemoveClientIdFromOpenIdConnectProvider where
         type Rs RemoveClientIdFromOpenIdConnectProvider =
              RemoveClientIdFromOpenIdConnectProviderResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveNull
               RemoveClientIdFromOpenIdConnectProviderResponse'
+
+instance Hashable
+         RemoveClientIdFromOpenIdConnectProvider
 
 instance ToHeaders
          RemoveClientIdFromOpenIdConnectProvider where
diff --git a/gen/Network/AWS/IAM/RemoveRoleFromInstanceProfile.hs b/gen/Network/AWS/IAM/RemoveRoleFromInstanceProfile.hs
--- a/gen/Network/AWS/IAM/RemoveRoleFromInstanceProfile.hs
+++ b/gen/Network/AWS/IAM/RemoveRoleFromInstanceProfile.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.RemoveRoleFromInstanceProfile
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -29,8 +29,6 @@
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html Working with Roles>.
 -- For more information about instance profiles, go to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/AboutInstanceProfiles.html About Instance Profiles>.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_RemoveRoleFromInstanceProfile.html AWS API Reference> for RemoveRoleFromInstanceProfile.
 module Network.AWS.IAM.RemoveRoleFromInstanceProfile
     (
     -- * Creating a Request
@@ -87,9 +85,11 @@
          where
         type Rs RemoveRoleFromInstanceProfile =
              RemoveRoleFromInstanceProfileResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveNull RemoveRoleFromInstanceProfileResponse'
+
+instance Hashable RemoveRoleFromInstanceProfile
 
 instance ToHeaders RemoveRoleFromInstanceProfile
          where
diff --git a/gen/Network/AWS/IAM/RemoveUserFromGroup.hs b/gen/Network/AWS/IAM/RemoveUserFromGroup.hs
--- a/gen/Network/AWS/IAM/RemoveUserFromGroup.hs
+++ b/gen/Network/AWS/IAM/RemoveUserFromGroup.hs
@@ -12,15 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.IAM.RemoveUserFromGroup
--- 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)
 --
 -- Removes the specified user from the specified group.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_RemoveUserFromGroup.html AWS API Reference> for RemoveUserFromGroup.
 module Network.AWS.IAM.RemoveUserFromGroup
     (
     -- * Creating a Request
@@ -76,8 +74,10 @@
 instance AWSRequest RemoveUserFromGroup where
         type Rs RemoveUserFromGroup =
              RemoveUserFromGroupResponse
-        request = postQuery iAM
+        request = postQuery iam
         response = receiveNull RemoveUserFromGroupResponse'
+
+instance Hashable RemoveUserFromGroup
 
 instance ToHeaders RemoveUserFromGroup where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/ResyncMFADevice.hs b/gen/Network/AWS/IAM/ResyncMFADevice.hs
--- a/gen/Network/AWS/IAM/ResyncMFADevice.hs
+++ b/gen/Network/AWS/IAM/ResyncMFADevice.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.ResyncMFADevice
--- 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 @@
 -- devices, go to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_VirtualMFA.html Using a Virtual MFA Device>
 -- in the /Using IAM/ guide.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_ResyncMFADevice.html AWS API Reference> for ResyncMFADevice.
 module Network.AWS.IAM.ResyncMFADevice
     (
     -- * Creating a Request
@@ -100,8 +98,10 @@
 
 instance AWSRequest ResyncMFADevice where
         type Rs ResyncMFADevice = ResyncMFADeviceResponse
-        request = postQuery iAM
+        request = postQuery iam
         response = receiveNull ResyncMFADeviceResponse'
+
+instance Hashable ResyncMFADevice
 
 instance ToHeaders ResyncMFADevice where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/SetDefaultPolicyVersion.hs b/gen/Network/AWS/IAM/SetDefaultPolicyVersion.hs
--- a/gen/Network/AWS/IAM/SetDefaultPolicyVersion.hs
+++ b/gen/Network/AWS/IAM/SetDefaultPolicyVersion.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.SetDefaultPolicyVersion
--- 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,13 +23,11 @@
 --
 -- This action affects all users, groups, and roles that the policy is
 -- attached to. To list the users, groups, and roles that the policy is
--- attached to, use the ListEntitiesForPolicy API.
+-- attached to, use the < ListEntitiesForPolicy> API.
 --
 -- For information about managed policies, refer to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html Managed Policies and Inline Policies>
 -- in the /IAM User Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_SetDefaultPolicyVersion.html AWS API Reference> for SetDefaultPolicyVersion.
 module Network.AWS.IAM.SetDefaultPolicyVersion
     (
     -- * Creating a Request
@@ -89,9 +87,11 @@
 instance AWSRequest SetDefaultPolicyVersion where
         type Rs SetDefaultPolicyVersion =
              SetDefaultPolicyVersionResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveNull SetDefaultPolicyVersionResponse'
+
+instance Hashable SetDefaultPolicyVersion
 
 instance ToHeaders SetDefaultPolicyVersion where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/SimulateCustomPolicy.hs b/gen/Network/AWS/IAM/SimulateCustomPolicy.hs
--- a/gen/Network/AWS/IAM/SimulateCustomPolicy.hs
+++ b/gen/Network/AWS/IAM/SimulateCustomPolicy.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.SimulateCustomPolicy
--- 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
@@ -28,18 +28,16 @@
 -- actions.
 --
 -- If you want to simulate existing policies attached to an IAM user,
--- group, or role, use SimulatePrincipalPolicy instead.
+-- group, or role, use < SimulatePrincipalPolicy> instead.
 --
 -- Context keys are variables maintained by AWS and its services that
 -- provide details about the context of an API query request. You can use
 -- the 'Condition' element of an IAM policy to evaluate context keys. To
 -- get the list of context keys that the policies require for correct
--- simulation, use GetContextKeysForCustomPolicy.
+-- simulation, use < GetContextKeysForCustomPolicy>.
 --
 -- If the output is long, you can use 'MaxItems' and 'Marker' parameters to
 -- paginate the results.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulateCustomPolicy.html AWS API Reference> for SimulateCustomPolicy.
 module Network.AWS.IAM.SimulateCustomPolicy
     (
     -- * Creating a Request
@@ -266,10 +264,12 @@
 
 instance AWSRequest SimulateCustomPolicy where
         type Rs SimulateCustomPolicy = SimulatePolicyResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "SimulateCustomPolicyResult"
               (\ s h x -> parseXML x)
+
+instance Hashable SimulateCustomPolicy
 
 instance ToHeaders SimulateCustomPolicy where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/SimulatePrincipalPolicy.hs b/gen/Network/AWS/IAM/SimulatePrincipalPolicy.hs
--- a/gen/Network/AWS/IAM/SimulatePrincipalPolicy.hs
+++ b/gen/Network/AWS/IAM/SimulatePrincipalPolicy.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.SimulatePrincipalPolicy
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -26,7 +26,7 @@
 --
 -- You can optionally include a list of one or more additional policies
 -- specified as strings to include in the simulation. If you want to
--- simulate only policies specified as strings, use SimulateCustomPolicy
+-- simulate only policies specified as strings, use < SimulateCustomPolicy>
 -- instead.
 --
 -- You can also optionally include one resource-based policy to be
@@ -38,19 +38,17 @@
 --
 -- __Note:__ This API discloses information about the permissions granted
 -- to other users. If you do not want users to see other user\'s
--- permissions, then consider allowing them to use SimulateCustomPolicy
+-- permissions, then consider allowing them to use < SimulateCustomPolicy>
 -- instead.
 --
 -- Context keys are variables maintained by AWS and its services that
 -- provide details about the context of an API query request. You can use
 -- the 'Condition' element of an IAM policy to evaluate context keys. To
 -- get the list of context keys that the policies require for correct
--- simulation, use GetContextKeysForPrincipalPolicy.
+-- simulation, use < GetContextKeysForPrincipalPolicy>.
 --
 -- If the output is long, you can use the 'MaxItems' and 'Marker'
 -- parameters to paginate the results.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulatePrincipalPolicy.html AWS API Reference> for SimulatePrincipalPolicy.
 module Network.AWS.IAM.SimulatePrincipalPolicy
     (
     -- * Creating a Request
@@ -287,10 +285,12 @@
 instance AWSRequest SimulatePrincipalPolicy where
         type Rs SimulatePrincipalPolicy =
              SimulatePolicyResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "SimulatePrincipalPolicyResult"
               (\ s h x -> parseXML x)
+
+instance Hashable SimulatePrincipalPolicy
 
 instance ToHeaders SimulatePrincipalPolicy where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/Types.hs b/gen/Network/AWS/IAM/Types.hs
--- a/gen/Network/AWS/IAM/Types.hs
+++ b/gen/Network/AWS/IAM/Types.hs
@@ -4,7 +4,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.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.IAM.Types
     (
     -- * Service Configuration
-      iAM
+      iam
 
     -- * Errors
     , _CredentialReportNotPresentException
@@ -226,17 +226,20 @@
     -- * PolicyGroup
     , PolicyGroup
     , policyGroup
+    , pgGroupId
     , pgGroupName
 
     -- * PolicyRole
     , PolicyRole
     , policyRole
     , prRoleName
+    , prRoleId
 
     -- * PolicyUser
     , PolicyUser
     , policyUser
     , puUserName
+    , puUserId
 
     -- * PolicyVersion
     , PolicyVersion
@@ -263,7 +266,7 @@
 
     -- * Role
     , Role
-    , role
+    , role'
     , rAssumeRolePolicyDocument
     , rPath
     , rRoleName
@@ -389,14 +392,14 @@
 import           Network.AWS.Sign.V4
 
 -- | API version '2010-05-08' of the Amazon Identity and Access Management SDK configuration.
-iAM :: Service
-iAM =
+iam :: Service
+iam =
     Service
     { _svcAbbrev = "IAM"
     , _svcSigner = v4
     , _svcPrefix = "iam"
     , _svcVersion = "2010-05-08"
-    , _svcEndpoint = defaultEndpoint iAM
+    , _svcEndpoint = defaultEndpoint iam
     , _svcTimeout = Just 70
     , _svcCheck = statusSuccess
     , _svcError = parseXMLError
@@ -411,6 +414,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"
@@ -420,7 +424,7 @@
       | otherwise = Nothing
 
 -- | The request was rejected because the credential report does not exist.
--- To generate a credential report, use GenerateCredentialReport.
+-- To generate a credential report, use < GenerateCredentialReport>.
 _CredentialReportNotPresentException :: AsError a => Getting (First ServiceError) a ServiceError
 _CredentialReportNotPresentException =
     _ServiceError . hasStatus 410 . hasCode "ReportNotPresent"
@@ -451,8 +455,8 @@
 
 -- | The request was rejected because the most recent credential report has
 -- expired. To generate a new credential report, use
--- GenerateCredentialReport. For more information about credential report
--- expiration, see
+-- < GenerateCredentialReport>. For more information about credential
+-- report expiration, see
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/credential-reports.html Getting Credential Reports>
 -- in the /IAM User Guide/.
 _CredentialReportExpiredException :: AsError a => Getting (First ServiceError) a ServiceError
diff --git a/gen/Network/AWS/IAM/Types/Product.hs b/gen/Network/AWS/IAM/Types/Product.hs
--- a/gen/Network/AWS/IAM/Types/Product.hs
+++ b/gen/Network/AWS/IAM/Types/Product.hs
@@ -9,7 +9,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.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
@@ -23,11 +23,11 @@
 
 -- | Contains information about an AWS access key.
 --
--- This data type is used as a response element in the CreateAccessKey and
--- ListAccessKeys actions.
+-- This data type is used as a response element in the < CreateAccessKey>
+-- and < ListAccessKeys> actions.
 --
 -- The 'SecretAccessKey' value is returned only in response to
--- CreateAccessKey. You can get a secret access key only when you first
+-- < CreateAccessKey>. You can get a secret access key only when you first
 -- create an access key; you cannot recover the secret access key later. If
 -- you lose a secret access key, you must create a new access key.
 --
@@ -97,10 +97,12 @@
                 <*> (x .@ "Status")
                 <*> (x .@ "SecretAccessKey")
 
+instance Hashable AccessKey
+
 -- | Contains information about the last time an AWS access key was used.
 --
--- This data type is used as a response element in the GetAccessKeyLastUsed
--- action.
+-- This data type is used as a response element in the
+-- < GetAccessKeyLastUsed> action.
 --
 -- /See:/ 'accessKeyLastUsed' smart constructor.
 data AccessKeyLastUsed = AccessKeyLastUsed'
@@ -179,9 +181,11 @@
               (x .@ "LastUsedDate") <*> (x .@ "ServiceName") <*>
                 (x .@ "Region")
 
+instance Hashable AccessKeyLastUsed
+
 -- | Contains information about an AWS access key, without its secret key.
 --
--- This data type is used as a response element in the ListAccessKeys
+-- This data type is used as a response element in the < ListAccessKeys>
 -- action.
 --
 -- /See:/ 'accessKeyMetadata' smart constructor.
@@ -237,12 +241,15 @@
                 (x .@? "UserName")
                 <*> (x .@? "AccessKeyId")
 
+instance Hashable AccessKeyMetadata
+
 -- | Contains information about an attached policy.
 --
 -- An attached policy is a managed policy that has been attached to a user,
 -- group, or role. This data type is used as a response element in the
--- ListAttachedGroupPolicies, ListAttachedRolePolicies,
--- ListAttachedUserPolicies, and GetAccountAuthorizationDetails actions.
+-- < ListAttachedGroupPolicies>, < ListAttachedRolePolicies>,
+-- < ListAttachedUserPolicies>, and < GetAccountAuthorizationDetails>
+-- actions.
 --
 -- For more information about managed policies, refer to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html Managed Policies and Inline Policies>
@@ -282,6 +289,8 @@
           = AttachedPolicy' <$>
               (x .@? "PolicyName") <*> (x .@? "PolicyArn")
 
+instance Hashable AttachedPolicy
+
 -- | Contains information about a condition context key. It includes the name
 -- of the key and specifies the value (or values, if the context key
 -- supports multiple values) to use in the simulation. This information is
@@ -330,6 +339,8 @@
 ceContextKeyType :: Lens' ContextEntry (Maybe ContextKeyTypeEnum)
 ceContextKeyType = lens _ceContextKeyType (\ s a -> s{_ceContextKeyType = a});
 
+instance Hashable ContextEntry
+
 instance ToQuery ContextEntry where
         toQuery ContextEntry'{..}
           = mconcat
@@ -414,9 +425,13 @@
 erEvalResourceName = lens _erEvalResourceName (\ s a -> s{_erEvalResourceName = a});
 
 -- | A list of context keys that are required by the included input policies
--- but that were not provided by one of the input parameters. To discover
--- the context keys used by a set of policies, you can call
--- GetContextKeysForCustomPolicy or GetContextKeysForPrincipalPolicy.
+-- but that were not provided by one of the input parameters. This list is
+-- used when the resource in a simulation is \"*\", either explicitly, or
+-- when the 'ResourceArns' parameter blank. If you include a list of
+-- resources, then any missing context values are instead included under
+-- the 'ResourceSpecificResults' section. To discover the context keys used
+-- by a set of policies, you can call < GetContextKeysForCustomPolicy> or
+-- < GetContextKeysForPrincipalPolicy>.
 --
 -- If the response includes any keys in this list, then the reported
 -- results might be untrustworthy because the simulation could not
@@ -451,8 +466,11 @@
                 <*> (x .@ "EvalActionName")
                 <*> (x .@ "EvalDecision")
 
--- | Contains the response to a successful GetContextKeysForPrincipalPolicy
--- or GetContextKeysForCustomPolicy request.
+instance Hashable EvaluationResult
+
+-- | Contains the response to a successful
+-- < GetContextKeysForPrincipalPolicy> or < GetContextKeysForCustomPolicy>
+-- request.
 --
 -- /See:/ 'getContextKeysForPolicyResponse' smart constructor.
 newtype GetContextKeysForPolicyResponse = GetContextKeysForPolicyResponse'
@@ -483,13 +501,15 @@
               (x .@? "ContextKeyNames" .!@ mempty >>=
                  may (parseXMLList "member"))
 
+instance Hashable GetContextKeysForPolicyResponse
+
 -- | Contains information about an IAM group entity.
 --
 -- This data type is used as a response element in the following actions:
 --
--- -   CreateGroup
--- -   GetGroup
--- -   ListGroups
+-- -   < CreateGroup>
+-- -   < GetGroup>
+-- -   < ListGroups>
 --
 -- /See:/ 'group'' smart constructor.
 data Group = Group'
@@ -567,11 +587,13 @@
                 <*> (x .@ "Arn")
                 <*> (x .@ "CreateDate")
 
+instance Hashable Group
+
 -- | Contains information about an IAM group, including all of the group\'s
 -- policies.
 --
 -- This data type is used as a response element in the
--- GetAccountAuthorizationDetails action.
+-- < GetAccountAuthorizationDetails> action.
 --
 -- /See:/ 'groupDetail' smart constructor.
 data GroupDetail = GroupDetail'
@@ -663,17 +685,19 @@
                 (x .@? "AttachedManagedPolicies" .!@ mempty >>=
                    may (parseXMLList "member"))
 
+instance Hashable GroupDetail
+
 -- | Contains information about an instance profile.
 --
 -- This data type is used as a response element in the following actions:
 --
--- -   CreateInstanceProfile
+-- -   < CreateInstanceProfile>
 --
--- -   GetInstanceProfile
+-- -   < GetInstanceProfile>
 --
--- -   ListInstanceProfiles
+-- -   < ListInstanceProfiles>
 --
--- -   ListInstanceProfilesForRole
+-- -   < ListInstanceProfilesForRole>
 --
 --
 -- /See:/ 'instanceProfile' smart constructor.
@@ -760,10 +784,12 @@
                 <*>
                 (x .@? "Roles" .!@ mempty >>= parseXMLList "member")
 
+instance Hashable InstanceProfile
+
 -- | Contains the user name and password create date for a user.
 --
--- This data type is used as a response element in the CreateLoginProfile
--- and GetLoginProfile actions.
+-- This data type is used as a response element in the
+-- < CreateLoginProfile> and < GetLoginProfile> actions.
 --
 -- /See:/ 'loginProfile' smart constructor.
 data LoginProfile = LoginProfile'
@@ -812,9 +838,11 @@
               (x .@? "PasswordResetRequired") <*> (x .@ "UserName")
                 <*> (x .@ "CreateDate")
 
+instance Hashable LoginProfile
+
 -- | Contains information about an MFA device.
 --
--- This data type is used as a response element in the ListMFADevices
+-- This data type is used as a response element in the < ListMFADevices>
 -- action.
 --
 -- /See:/ 'mfaDevice' smart constructor.
@@ -864,12 +892,14 @@
               (x .@ "UserName") <*> (x .@ "SerialNumber") <*>
                 (x .@ "EnableDate")
 
+instance Hashable MFADevice
+
 -- | Contains information about a managed policy, including the policy\'s
 -- ARN, versions, and the number of principal entities (users, groups, and
 -- roles) that the policy is attached to.
 --
 -- This data type is used as a response element in the
--- GetAccountAuthorizationDetails action.
+-- < GetAccountAuthorizationDetails> action.
 --
 -- For more information about managed policies, see
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html Managed Policies and Inline Policies>
@@ -1016,6 +1046,8 @@
                 <*> (x .@? "AttachmentCount")
                 <*> (x .@? "Description")
 
+instance Hashable ManagedPolicyDetail
+
 -- | Contains the Amazon Resource Name (ARN) for an IAM OpenID Connect
 -- provider.
 --
@@ -1044,10 +1076,12 @@
         parseXML x
           = OpenIdConnectProviderListEntry' <$> (x .@? "Arn")
 
+instance Hashable OpenIdConnectProviderListEntry
+
 -- | Contains information about the account password policy.
 --
 -- This data type is used as a response element in the
--- GetAccountPasswordPolicy action.
+-- < GetAccountPasswordPolicy> action.
 --
 -- /See:/ 'passwordPolicy' smart constructor.
 data PasswordPolicy = PasswordPolicy'
@@ -1162,10 +1196,12 @@
                 <*> (x .@? "RequireUppercaseCharacters")
                 <*> (x .@? "AllowUsersToChangePassword")
 
+instance Hashable PasswordPolicy
+
 -- | Contains information about a managed policy.
 --
--- This data type is used as a response element in the CreatePolicy,
--- GetPolicy, and ListPolicies actions.
+-- This data type is used as a response element in the < CreatePolicy>,
+-- < GetPolicy>, and < ListPolicies> actions.
 --
 -- For more information about managed policies, refer to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html Managed Policies and Inline Policies>
@@ -1282,8 +1318,8 @@
 
 -- | A friendly description of the policy.
 --
--- This element is included in the response to the GetPolicy operation. It
--- is not included in the response to the ListPolicies operation.
+-- This element is included in the response to the < GetPolicy> operation.
+-- It is not included in the response to the < ListPolicies> operation.
 pDescription :: Lens' Policy (Maybe Text)
 pDescription = lens _pDescription (\ s a -> s{_pDescription = a});
 
@@ -1300,10 +1336,12 @@
                 <*> (x .@? "AttachmentCount")
                 <*> (x .@? "Description")
 
+instance Hashable Policy
+
 -- | Contains information about an IAM policy, including the policy document.
 --
 -- This data type is used as a response element in the
--- GetAccountAuthorizationDetails action.
+-- < GetAccountAuthorizationDetails> action.
 --
 -- /See:/ 'policyDetail' smart constructor.
 data PolicyDetail = PolicyDetail'
@@ -1339,51 +1377,69 @@
           = PolicyDetail' <$>
               (x .@? "PolicyDocument") <*> (x .@? "PolicyName")
 
+instance Hashable PolicyDetail
+
 -- | Contains information about a group that a managed policy is attached to.
 --
 -- This data type is used as a response element in the
--- ListEntitiesForPolicy action.
+-- < ListEntitiesForPolicy> action.
 --
 -- For more information about managed policies, refer to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html Managed Policies and Inline Policies>
 -- in the /Using IAM/ guide.
 --
 -- /See:/ 'policyGroup' smart constructor.
-newtype PolicyGroup = PolicyGroup'
-    { _pgGroupName :: Maybe Text
+data PolicyGroup = PolicyGroup'
+    { _pgGroupId   :: !(Maybe Text)
+    , _pgGroupName :: !(Maybe Text)
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
 -- | Creates a value of 'PolicyGroup' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
+-- * 'pgGroupId'
+--
 -- * 'pgGroupName'
 policyGroup
     :: PolicyGroup
 policyGroup =
     PolicyGroup'
-    { _pgGroupName = Nothing
+    { _pgGroupId = Nothing
+    , _pgGroupName = Nothing
     }
 
+-- | The stable and unique string identifying the group. For more information
+-- about IDs, see
+-- <http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html IAM Identifiers>
+-- in the /IAM User Guide/.
+pgGroupId :: Lens' PolicyGroup (Maybe Text)
+pgGroupId = lens _pgGroupId (\ s a -> s{_pgGroupId = a});
+
 -- | The name (friendly name, not ARN) identifying the group.
 pgGroupName :: Lens' PolicyGroup (Maybe Text)
 pgGroupName = lens _pgGroupName (\ s a -> s{_pgGroupName = a});
 
 instance FromXML PolicyGroup where
-        parseXML x = PolicyGroup' <$> (x .@? "GroupName")
+        parseXML x
+          = PolicyGroup' <$>
+              (x .@? "GroupId") <*> (x .@? "GroupName")
 
+instance Hashable PolicyGroup
+
 -- | Contains information about a role that a managed policy is attached to.
 --
 -- This data type is used as a response element in the
--- ListEntitiesForPolicy action.
+-- < ListEntitiesForPolicy> action.
 --
 -- For more information about managed policies, refer to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html Managed Policies and Inline Policies>
 -- in the /Using IAM/ guide.
 --
 -- /See:/ 'policyRole' smart constructor.
-newtype PolicyRole = PolicyRole'
-    { _prRoleName :: Maybe Text
+data PolicyRole = PolicyRole'
+    { _prRoleName :: !(Maybe Text)
+    , _prRoleId   :: !(Maybe Text)
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
 -- | Creates a value of 'PolicyRole' with the minimum fields required to make a request.
@@ -1391,32 +1447,47 @@
 -- Use one of the following lenses to modify other fields as desired:
 --
 -- * 'prRoleName'
+--
+-- * 'prRoleId'
 policyRole
     :: PolicyRole
 policyRole =
     PolicyRole'
     { _prRoleName = Nothing
+    , _prRoleId = Nothing
     }
 
 -- | The name (friendly name, not ARN) identifying the role.
 prRoleName :: Lens' PolicyRole (Maybe Text)
 prRoleName = lens _prRoleName (\ s a -> s{_prRoleName = a});
 
+-- | The stable and unique string identifying the role. For more information
+-- about IDs, see
+-- <http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html IAM Identifiers>
+-- in the /IAM User Guide/.
+prRoleId :: Lens' PolicyRole (Maybe Text)
+prRoleId = lens _prRoleId (\ s a -> s{_prRoleId = a});
+
 instance FromXML PolicyRole where
-        parseXML x = PolicyRole' <$> (x .@? "RoleName")
+        parseXML x
+          = PolicyRole' <$>
+              (x .@? "RoleName") <*> (x .@? "RoleId")
 
+instance Hashable PolicyRole
+
 -- | Contains information about a user that a managed policy is attached to.
 --
 -- This data type is used as a response element in the
--- ListEntitiesForPolicy action.
+-- < ListEntitiesForPolicy> action.
 --
 -- For more information about managed policies, refer to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html Managed Policies and Inline Policies>
 -- in the /Using IAM/ guide.
 --
 -- /See:/ 'policyUser' smart constructor.
-newtype PolicyUser = PolicyUser'
-    { _puUserName :: Maybe Text
+data PolicyUser = PolicyUser'
+    { _puUserName :: !(Maybe Text)
+    , _puUserId   :: !(Maybe Text)
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
 -- | Creates a value of 'PolicyUser' with the minimum fields required to make a request.
@@ -1424,25 +1495,39 @@
 -- Use one of the following lenses to modify other fields as desired:
 --
 -- * 'puUserName'
+--
+-- * 'puUserId'
 policyUser
     :: PolicyUser
 policyUser =
     PolicyUser'
     { _puUserName = Nothing
+    , _puUserId = Nothing
     }
 
 -- | The name (friendly name, not ARN) identifying the user.
 puUserName :: Lens' PolicyUser (Maybe Text)
 puUserName = lens _puUserName (\ s a -> s{_puUserName = a});
 
+-- | The stable and unique string identifying the user. For more information
+-- about IDs, see
+-- <http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html IAM Identifiers>
+-- in the /IAM User Guide/.
+puUserId :: Lens' PolicyUser (Maybe Text)
+puUserId = lens _puUserId (\ s a -> s{_puUserId = a});
+
 instance FromXML PolicyUser where
-        parseXML x = PolicyUser' <$> (x .@? "UserName")
+        parseXML x
+          = PolicyUser' <$>
+              (x .@? "UserName") <*> (x .@? "UserId")
 
+instance Hashable PolicyUser
+
 -- | Contains information about a version of a managed policy.
 --
--- This data type is used as a response element in the CreatePolicyVersion,
--- GetPolicyVersion, ListPolicyVersions, and GetAccountAuthorizationDetails
--- actions.
+-- This data type is used as a response element in the
+-- < CreatePolicyVersion>, < GetPolicyVersion>, < ListPolicyVersions>, and
+-- < GetAccountAuthorizationDetails> actions.
 --
 -- For more information about managed policies, refer to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html Managed Policies and Inline Policies>
@@ -1492,9 +1577,10 @@
 
 -- | The policy document.
 --
--- The policy document is returned in the response to the GetPolicyVersion
--- and GetAccountAuthorizationDetails operations. It is not returned in the
--- response to the CreatePolicyVersion or ListPolicyVersions operations.
+-- The policy document is returned in the response to the
+-- < GetPolicyVersion> and < GetAccountAuthorizationDetails> operations. It
+-- is not returned in the response to the < CreatePolicyVersion> or
+-- < ListPolicyVersions> operations.
 pvDocument :: Lens' PolicyVersion (Maybe Text)
 pvDocument = lens _pvDocument (\ s a -> s{_pvDocument = a});
 
@@ -1510,6 +1596,8 @@
                 (x .@? "Document")
                 <*> (x .@? "IsDefaultVersion")
 
+instance Hashable PolicyVersion
+
 -- | Contains the row and column of a location of a 'Statement' element in a
 -- policy document.
 --
@@ -1549,10 +1637,12 @@
         parseXML x
           = Position' <$> (x .@? "Line") <*> (x .@? "Column")
 
+instance Hashable Position
+
 -- | Contains the result of the simulation of a single API action call on a
 -- single resource.
 --
--- This data type is used by a member of the EvaluationResult data type.
+-- This data type is used by a member of the < EvaluationResult> data type.
 --
 -- /See:/ 'resourceSpecificResult' smart constructor.
 data ResourceSpecificResult = ResourceSpecificResult'
@@ -1606,9 +1696,14 @@
 rsrEvalDecisionDetails = lens _rsrEvalDecisionDetails (\ s a -> s{_rsrEvalDecisionDetails = a}) . _Default . _Map;
 
 -- | A list of context keys that are required by the included input policies
--- but that were not provided by one of the input parameters. To discover
--- the context keys used by a set of policies, you can call
--- GetContextKeysForCustomPolicy or GetContextKeysForPrincipalPolicy.
+-- but that were not provided by one of the input parameters. This list is
+-- used when a list of ARNs is included in the 'ResourceArns' parameter
+-- instead of \"*\". If you do not specify individual resources, by setting
+-- 'ResourceArns' to \"*\" or by not including the 'ResourceArns'
+-- parameter, then any missing context values are instead included under
+-- the 'EvaluationResults' section. To discover the context keys used by a
+-- set of policies, you can call < GetContextKeysForCustomPolicy> or
+-- < GetContextKeysForPrincipalPolicy>.
 rsrMissingContextValues :: Lens' ResourceSpecificResult [Text]
 rsrMissingContextValues = lens _rsrMissingContextValues (\ s a -> s{_rsrMissingContextValues = a}) . _Default . _Coerce;
 
@@ -1636,18 +1731,20 @@
                 <*> (x .@ "EvalResourceName")
                 <*> (x .@ "EvalResourceDecision")
 
+instance Hashable ResourceSpecificResult
+
 -- | Contains information about an IAM role.
 --
 -- This data type is used as a response element in the following actions:
 --
--- -   CreateRole
+-- -   < CreateRole>
 --
--- -   GetRole
+-- -   < GetRole>
 --
--- -   ListRoles
+-- -   < ListRoles>
 --
 --
--- /See:/ 'role' smart constructor.
+-- /See:/ 'role'' smart constructor.
 data Role = Role'
     { _rAssumeRolePolicyDocument :: !(Maybe Text)
     , _rPath                     :: !Text
@@ -1672,14 +1769,14 @@
 -- * 'rARN'
 --
 -- * 'rCreateDate'
-role
+role'
     :: Text -- ^ 'rPath'
     -> Text -- ^ 'rRoleName'
     -> Text -- ^ 'rRoleId'
     -> Text -- ^ 'rARN'
     -> UTCTime -- ^ 'rCreateDate'
     -> Role
-role pPath_ pRoleName_ pRoleId_ pARN_ pCreateDate_ =
+role' pPath_ pRoleName_ pRoleId_ pARN_ pCreateDate_ =
     Role'
     { _rAssumeRolePolicyDocument = Nothing
     , _rPath = pPath_
@@ -1732,11 +1829,13 @@
                 <*> (x .@ "Arn")
                 <*> (x .@ "CreateDate")
 
+instance Hashable Role
+
 -- | Contains information about an IAM role, including all of the role\'s
 -- policies.
 --
 -- This data type is used as a response element in the
--- GetAccountAuthorizationDetails action.
+-- < GetAccountAuthorizationDetails> action.
 --
 -- /See:/ 'roleDetail' smart constructor.
 data RoleDetail = RoleDetail'
@@ -1850,6 +1949,8 @@
                 (x .@? "AttachedManagedPolicies" .!@ mempty >>=
                    may (parseXMLList "member"))
 
+instance Hashable RoleDetail
+
 -- | Contains the list of SAML providers for this account.
 --
 -- /See:/ 'sAMLProviderListEntry' smart constructor.
@@ -1895,10 +1996,12 @@
               (x .@? "Arn") <*> (x .@? "CreateDate") <*>
                 (x .@? "ValidUntil")
 
+instance Hashable SAMLProviderListEntry
+
 -- | Contains information about an SSH public key.
 --
--- This data type is used as a response element in the GetSSHPublicKey and
--- UploadSSHPublicKey actions.
+-- This data type is used as a response element in the < GetSSHPublicKey>
+-- and < UploadSSHPublicKey> actions.
 --
 -- /See:/ 'sshPublicKey' smart constructor.
 data SSHPublicKey = SSHPublicKey'
@@ -1979,10 +2082,12 @@
                 <*> (x .@ "SSHPublicKeyBody")
                 <*> (x .@ "Status")
 
+instance Hashable SSHPublicKey
+
 -- | Contains information about an SSH public key, without the key\'s body or
 -- fingerprint.
 --
--- This data type is used as a response element in the ListSSHPublicKeys
+-- This data type is used as a response element in the < ListSSHPublicKeys>
 -- action.
 --
 -- /See:/ 'sshPublicKeyMetadata' smart constructor.
@@ -2045,10 +2150,12 @@
                 (x .@ "Status")
                 <*> (x .@ "UploadDate")
 
+instance Hashable SSHPublicKeyMetadata
+
 -- | Contains information about a server certificate.
 --
--- This data type is used as a response element in the GetServerCertificate
--- action.
+-- This data type is used as a response element in the
+-- < GetServerCertificate> action.
 --
 -- /See:/ 'serverCertificate' smart constructor.
 data ServerCertificate = ServerCertificate'
@@ -2097,11 +2204,13 @@
                 (x .@ "ServerCertificateMetadata")
                 <*> (x .@ "CertificateBody")
 
+instance Hashable ServerCertificate
+
 -- | Contains information about a server certificate without its certificate
 -- body, certificate chain, and private key.
 --
 -- This data type is used as a response element in the
--- UploadServerCertificate and ListServerCertificates actions.
+-- < UploadServerCertificate> and < ListServerCertificates> actions.
 --
 -- /See:/ 'serverCertificateMetadata' smart constructor.
 data ServerCertificateMetadata = ServerCertificateMetadata'
@@ -2186,10 +2295,12 @@
                 <*> (x .@ "ServerCertificateId")
                 <*> (x .@ "Arn")
 
+instance Hashable ServerCertificateMetadata
+
 -- | Contains information about an X.509 signing certificate.
 --
 -- This data type is used as a response element in the
--- UploadSigningCertificate and ListSigningCertificates actions.
+-- < UploadSigningCertificate> and < ListSigningCertificates> actions.
 --
 -- /See:/ 'signingCertificate' smart constructor.
 data SigningCertificate = SigningCertificate'
@@ -2257,8 +2368,10 @@
                 <*> (x .@ "CertificateBody")
                 <*> (x .@ "Status")
 
--- | Contains the response to a successful SimulatePrincipalPolicy or
--- SimulateCustomPolicy request.
+instance Hashable SigningCertificate
+
+-- | Contains the response to a successful < SimulatePrincipalPolicy> or
+-- < SimulateCustomPolicy> request.
 --
 -- /See:/ 'simulatePolicyResponse' smart constructor.
 data SimulatePolicyResponse = SimulatePolicyResponse'
@@ -2313,6 +2426,8 @@
                 <*> (x .@? "Marker")
                 <*> (x .@? "IsTruncated")
 
+instance Hashable SimulatePolicyResponse
+
 -- | Contains a reference to a 'Statement' element in a policy document that
 -- determines the result of the simulation.
 --
@@ -2372,15 +2487,17 @@
                 <*> (x .@? "EndPosition")
                 <*> (x .@? "StartPosition")
 
+instance Hashable Statement
+
 -- | Contains information about an IAM user entity.
 --
 -- This data type is used as a response element in the following actions:
 --
--- -   CreateUser
+-- -   < CreateUser>
 --
--- -   GetUser
+-- -   < GetUser>
 --
--- -   ListUsers
+-- -   < ListUsers>
 --
 --
 -- /See:/ 'user' smart constructor.
@@ -2441,7 +2558,7 @@
 --
 -- -   there is no sign-in data associated with the user
 --
--- This value is returned only in the GetUser and ListUsers actions.
+-- This value is returned only in the < GetUser> and < ListUsers> actions.
 uPasswordLastUsed :: Lens' User (Maybe UTCTime)
 uPasswordLastUsed = lens _uPasswordLastUsed (\ s a -> s{_uPasswordLastUsed = a}) . mapping _Time;
 
@@ -2484,11 +2601,13 @@
                 <*> (x .@ "Arn")
                 <*> (x .@ "CreateDate")
 
+instance Hashable User
+
 -- | Contains information about an IAM user, including all the user\'s
 -- policies and all the IAM groups the user is in.
 --
 -- This data type is used as a response element in the
--- GetAccountAuthorizationDetails action.
+-- < GetAccountAuthorizationDetails> action.
 --
 -- /See:/ 'userDetail' smart constructor.
 data UserDetail = UserDetail'
@@ -2591,6 +2710,8 @@
                 (x .@? "AttachedManagedPolicies" .!@ mempty >>=
                    may (parseXMLList "member"))
 
+instance Hashable UserDetail
+
 -- | Contains information about a virtual MFA device.
 --
 -- /See:/ 'virtualMFADevice' smart constructor.
@@ -2673,3 +2794,5 @@
                 <*> (x .@? "User")
                 <*> (x .@? "EnableDate")
                 <*> (x .@ "SerialNumber")
+
+instance Hashable VirtualMFADevice
diff --git a/gen/Network/AWS/IAM/Types/Sum.hs b/gen/Network/AWS/IAM/Types/Sum.hs
--- a/gen/Network/AWS/IAM/Types/Sum.hs
+++ b/gen/Network/AWS/IAM/Types/Sum.hs
@@ -9,7 +9,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.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/IAM/UpdateAccessKey.hs b/gen/Network/AWS/IAM/UpdateAccessKey.hs
--- a/gen/Network/AWS/IAM/UpdateAccessKey.hs
+++ b/gen/Network/AWS/IAM/UpdateAccessKey.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.UpdateAccessKey
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -31,8 +31,6 @@
 -- For information about rotating keys, see
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/ManagingCredentials.html Managing Keys and Certificates>
 -- in the /IAM User Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccessKey.html AWS API Reference> for UpdateAccessKey.
 module Network.AWS.IAM.UpdateAccessKey
     (
     -- * Creating a Request
@@ -98,8 +96,10 @@
 
 instance AWSRequest UpdateAccessKey where
         type Rs UpdateAccessKey = UpdateAccessKeyResponse
-        request = postQuery iAM
+        request = postQuery iam
         response = receiveNull UpdateAccessKeyResponse'
+
+instance Hashable UpdateAccessKey
 
 instance ToHeaders UpdateAccessKey where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/UpdateAccountPasswordPolicy.hs b/gen/Network/AWS/IAM/UpdateAccountPasswordPolicy.hs
--- a/gen/Network/AWS/IAM/UpdateAccountPasswordPolicy.hs
+++ b/gen/Network/AWS/IAM/UpdateAccountPasswordPolicy.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.UpdateAccountPasswordPolicy
--- 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
@@ -28,8 +28,6 @@
 -- For more information about using a password policy, see
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingPasswordPolicies.html Managing an IAM Password Policy>
 -- in the /IAM User Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccountPasswordPolicy.html AWS API Reference> for UpdateAccountPasswordPolicy.
 module Network.AWS.IAM.UpdateAccountPasswordPolicy
     (
     -- * Creating a Request
@@ -177,9 +175,11 @@
 instance AWSRequest UpdateAccountPasswordPolicy where
         type Rs UpdateAccountPasswordPolicy =
              UpdateAccountPasswordPolicyResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveNull UpdateAccountPasswordPolicyResponse'
+
+instance Hashable UpdateAccountPasswordPolicy
 
 instance ToHeaders UpdateAccountPasswordPolicy where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/UpdateAssumeRolePolicy.hs b/gen/Network/AWS/IAM/UpdateAssumeRolePolicy.hs
--- a/gen/Network/AWS/IAM/UpdateAssumeRolePolicy.hs
+++ b/gen/Network/AWS/IAM/UpdateAssumeRolePolicy.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.UpdateAssumeRolePolicy
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -21,8 +21,6 @@
 -- Updates the policy that grants an entity permission to assume a role.
 -- For more information about roles, go to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html Using Roles to Delegate Permissions and Federate Identities>.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAssumeRolePolicy.html AWS API Reference> for UpdateAssumeRolePolicy.
 module Network.AWS.IAM.UpdateAssumeRolePolicy
     (
     -- * Creating a Request
@@ -78,9 +76,11 @@
 instance AWSRequest UpdateAssumeRolePolicy where
         type Rs UpdateAssumeRolePolicy =
              UpdateAssumeRolePolicyResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveNull UpdateAssumeRolePolicyResponse'
+
+instance Hashable UpdateAssumeRolePolicy
 
 instance ToHeaders UpdateAssumeRolePolicy where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/UpdateGroup.hs b/gen/Network/AWS/IAM/UpdateGroup.hs
--- a/gen/Network/AWS/IAM/UpdateGroup.hs
+++ b/gen/Network/AWS/IAM/UpdateGroup.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.UpdateGroup
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -31,8 +31,6 @@
 -- Managers and MGRs, or must have permission on all (*). For more
 -- information about permissions, see
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/PermissionsAndPolicies.html Permissions and Policies>.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateGroup.html AWS API Reference> for UpdateGroup.
 module Network.AWS.IAM.UpdateGroup
     (
     -- * Creating a Request
@@ -96,8 +94,10 @@
 
 instance AWSRequest UpdateGroup where
         type Rs UpdateGroup = UpdateGroupResponse
-        request = postQuery iAM
+        request = postQuery iam
         response = receiveNull UpdateGroupResponse'
+
+instance Hashable UpdateGroup
 
 instance ToHeaders UpdateGroup where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/UpdateLoginProfile.hs b/gen/Network/AWS/IAM/UpdateLoginProfile.hs
--- a/gen/Network/AWS/IAM/UpdateLoginProfile.hs
+++ b/gen/Network/AWS/IAM/UpdateLoginProfile.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.UpdateLoginProfile
--- 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,12 +20,10 @@
 --
 -- Changes the password for the specified user.
 --
--- Users can change their own passwords by calling ChangePassword. For more
--- information about modifying passwords, see
+-- Users can change their own passwords by calling < ChangePassword>. For
+-- more information about modifying passwords, see
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingLogins.html Managing Passwords>
 -- in the /IAM User Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateLoginProfile.html AWS API Reference> for UpdateLoginProfile.
 module Network.AWS.IAM.UpdateLoginProfile
     (
     -- * Creating a Request
@@ -89,8 +87,10 @@
 instance AWSRequest UpdateLoginProfile where
         type Rs UpdateLoginProfile =
              UpdateLoginProfileResponse
-        request = postQuery iAM
+        request = postQuery iam
         response = receiveNull UpdateLoginProfileResponse'
+
+instance Hashable UpdateLoginProfile
 
 instance ToHeaders UpdateLoginProfile where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/UpdateOpenIdConnectProviderThumbprint.hs b/gen/Network/AWS/IAM/UpdateOpenIdConnectProviderThumbprint.hs
--- a/gen/Network/AWS/IAM/UpdateOpenIdConnectProviderThumbprint.hs
+++ b/gen/Network/AWS/IAM/UpdateOpenIdConnectProviderThumbprint.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.UpdateOpenIdConnectProviderThumbprint
--- 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
@@ -35,8 +35,6 @@
 -- best practice to limit access to the
 -- 'UpdateOpenIDConnectProviderThumbprint' action to highly-privileged
 -- users.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateOpenIdConnectProviderThumbprint.html AWS API Reference> for UpdateOpenIdConnectProviderThumbprint.
 module Network.AWS.IAM.UpdateOpenIdConnectProviderThumbprint
     (
     -- * Creating a Request
@@ -82,13 +80,13 @@
 
 -- | The Amazon Resource Name (ARN) of the IAM OpenID Connect (OIDC) provider
 -- to update the thumbprint for. You can get a list of OIDC provider ARNs
--- by using the ListOpenIDConnectProviders action.
+-- by using the < ListOpenIDConnectProviders> action.
 uoicptOpenIdConnectProviderARN :: Lens' UpdateOpenIdConnectProviderThumbprint Text
 uoicptOpenIdConnectProviderARN = lens _uoicptOpenIdConnectProviderARN (\ s a -> s{_uoicptOpenIdConnectProviderARN = a});
 
 -- | A list of certificate thumbprints that are associated with the specified
 -- IAM OpenID Connect provider. For more information, see
--- CreateOpenIDConnectProvider.
+-- < CreateOpenIDConnectProvider>.
 uoicptThumbprintList :: Lens' UpdateOpenIdConnectProviderThumbprint [Text]
 uoicptThumbprintList = lens _uoicptThumbprintList (\ s a -> s{_uoicptThumbprintList = a}) . _Coerce;
 
@@ -96,10 +94,13 @@
          UpdateOpenIdConnectProviderThumbprint where
         type Rs UpdateOpenIdConnectProviderThumbprint =
              UpdateOpenIdConnectProviderThumbprintResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveNull
               UpdateOpenIdConnectProviderThumbprintResponse'
+
+instance Hashable
+         UpdateOpenIdConnectProviderThumbprint
 
 instance ToHeaders
          UpdateOpenIdConnectProviderThumbprint where
diff --git a/gen/Network/AWS/IAM/UpdateSAMLProvider.hs b/gen/Network/AWS/IAM/UpdateSAMLProvider.hs
--- a/gen/Network/AWS/IAM/UpdateSAMLProvider.hs
+++ b/gen/Network/AWS/IAM/UpdateSAMLProvider.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.UpdateSAMLProvider
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -22,8 +22,6 @@
 --
 -- This operation requires
 -- <http://docs.aws.amazon.com/general/latest/gr/signature-version-4.html Signature Version 4>.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateSAMLProvider.html AWS API Reference> for UpdateSAMLProvider.
 module Network.AWS.IAM.UpdateSAMLProvider
     (
     -- * Creating a Request
@@ -87,13 +85,15 @@
 instance AWSRequest UpdateSAMLProvider where
         type Rs UpdateSAMLProvider =
              UpdateSAMLProviderResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "UpdateSAMLProviderResult"
               (\ s h x ->
                  UpdateSAMLProviderResponse' <$>
                    (x .@? "SAMLProviderArn") <*> (pure (fromEnum s)))
 
+instance Hashable UpdateSAMLProvider
+
 instance ToHeaders UpdateSAMLProvider where
         toHeaders = const mempty
 
@@ -109,7 +109,7 @@
                  _usamlpSAMLMetadataDocument,
                "SAMLProviderArn" =: _usamlpSAMLProviderARN]
 
--- | Contains the response to a successful UpdateSAMLProvider request.
+-- | Contains the response to a successful < UpdateSAMLProvider> request.
 --
 -- /See:/ 'updateSAMLProviderResponse' smart constructor.
 data UpdateSAMLProviderResponse = UpdateSAMLProviderResponse'
diff --git a/gen/Network/AWS/IAM/UpdateSSHPublicKey.hs b/gen/Network/AWS/IAM/UpdateSSHPublicKey.hs
--- a/gen/Network/AWS/IAM/UpdateSSHPublicKey.hs
+++ b/gen/Network/AWS/IAM/UpdateSSHPublicKey.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.UpdateSSHPublicKey
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -29,8 +29,6 @@
 -- CodeCommit repository, see
 -- <http://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-credentials-ssh.html Set up AWS CodeCommit for SSH Connections>
 -- in the /AWS CodeCommit User Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateSSHPublicKey.html AWS API Reference> for UpdateSSHPublicKey.
 module Network.AWS.IAM.UpdateSSHPublicKey
     (
     -- * Creating a Request
@@ -98,8 +96,10 @@
 instance AWSRequest UpdateSSHPublicKey where
         type Rs UpdateSSHPublicKey =
              UpdateSSHPublicKeyResponse
-        request = postQuery iAM
+        request = postQuery iam
         response = receiveNull UpdateSSHPublicKeyResponse'
+
+instance Hashable UpdateSSHPublicKey
 
 instance ToHeaders UpdateSSHPublicKey where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/UpdateServerCertificate.hs b/gen/Network/AWS/IAM/UpdateServerCertificate.hs
--- a/gen/Network/AWS/IAM/UpdateServerCertificate.hs
+++ b/gen/Network/AWS/IAM/UpdateServerCertificate.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.UpdateServerCertificate
--- 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
@@ -39,8 +39,6 @@
 -- permissions, see
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html Access Management>
 -- in the /IAM User Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateServerCertificate.html AWS API Reference> for UpdateServerCertificate.
 module Network.AWS.IAM.UpdateServerCertificate
     (
     -- * Creating a Request
@@ -107,9 +105,11 @@
 instance AWSRequest UpdateServerCertificate where
         type Rs UpdateServerCertificate =
              UpdateServerCertificateResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveNull UpdateServerCertificateResponse'
+
+instance Hashable UpdateServerCertificate
 
 instance ToHeaders UpdateServerCertificate where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/UpdateSigningCertificate.hs b/gen/Network/AWS/IAM/UpdateSigningCertificate.hs
--- a/gen/Network/AWS/IAM/UpdateSigningCertificate.hs
+++ b/gen/Network/AWS/IAM/UpdateSigningCertificate.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.UpdateSigningCertificate
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -27,8 +27,6 @@
 -- Because this action works for access keys under the AWS account, you can
 -- use this action to manage root credentials even if the AWS account has
 -- no associated users.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateSigningCertificate.html AWS API Reference> for UpdateSigningCertificate.
 module Network.AWS.IAM.UpdateSigningCertificate
     (
     -- * Creating a Request
@@ -95,9 +93,11 @@
 instance AWSRequest UpdateSigningCertificate where
         type Rs UpdateSigningCertificate =
              UpdateSigningCertificateResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveNull UpdateSigningCertificateResponse'
+
+instance Hashable UpdateSigningCertificate
 
 instance ToHeaders UpdateSigningCertificate where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/UpdateUser.hs b/gen/Network/AWS/IAM/UpdateUser.hs
--- a/gen/Network/AWS/IAM/UpdateUser.hs
+++ b/gen/Network/AWS/IAM/UpdateUser.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.UpdateUser
--- 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,7 +22,9 @@
 --
 -- You should understand the implications of changing a user\'s path or
 -- name. For more information, see
--- <http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_WorkingWithGroupsAndUsers.html Renaming Users and Groups>
+-- <http://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_manage.html#id_users_renaming Renaming an IAM User>
+-- and
+-- <http://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups_manage_rename.html Renaming an IAM Group>
 -- in the /IAM User Guide/.
 --
 -- To change a user name the requester must have appropriate permissions on
@@ -31,8 +33,6 @@
 -- Robert, or must have permission on all (*). For more information about
 -- permissions, see
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/PermissionsAndPolicies.html Permissions and Policies>.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateUser.html AWS API Reference> for UpdateUser.
 module Network.AWS.IAM.UpdateUser
     (
     -- * Creating a Request
@@ -98,8 +98,10 @@
 
 instance AWSRequest UpdateUser where
         type Rs UpdateUser = UpdateUserResponse
-        request = postQuery iAM
+        request = postQuery iam
         response = receiveNull UpdateUserResponse'
+
+instance Hashable UpdateUser
 
 instance ToHeaders UpdateUser where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/IAM/UploadSSHPublicKey.hs b/gen/Network/AWS/IAM/UploadSSHPublicKey.hs
--- a/gen/Network/AWS/IAM/UploadSSHPublicKey.hs
+++ b/gen/Network/AWS/IAM/UploadSSHPublicKey.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.UploadSSHPublicKey
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -26,8 +26,6 @@
 -- CodeCommit repository, see
 -- <http://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-credentials-ssh.html Set up AWS CodeCommit for SSH Connections>
 -- in the /AWS CodeCommit User Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_UploadSSHPublicKey.html AWS API Reference> for UploadSSHPublicKey.
 module Network.AWS.IAM.UploadSSHPublicKey
     (
     -- * Creating a Request
@@ -87,13 +85,15 @@
 instance AWSRequest UploadSSHPublicKey where
         type Rs UploadSSHPublicKey =
              UploadSSHPublicKeyResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "UploadSSHPublicKeyResult"
               (\ s h x ->
                  UploadSSHPublicKeyResponse' <$>
                    (x .@? "SSHPublicKey") <*> (pure (fromEnum s)))
 
+instance Hashable UploadSSHPublicKey
+
 instance ToHeaders UploadSSHPublicKey where
         toHeaders = const mempty
 
@@ -108,7 +108,7 @@
                "UserName" =: _usshpkUserName,
                "SSHPublicKeyBody" =: _usshpkSSHPublicKeyBody]
 
--- | Contains the response to a successful UploadSSHPublicKey request.
+-- | Contains the response to a successful < UploadSSHPublicKey> request.
 --
 -- /See:/ 'uploadSSHPublicKeyResponse' smart constructor.
 data UploadSSHPublicKeyResponse = UploadSSHPublicKeyResponse'
diff --git a/gen/Network/AWS/IAM/UploadServerCertificate.hs b/gen/Network/AWS/IAM/UploadServerCertificate.hs
--- a/gen/Network/AWS/IAM/UploadServerCertificate.hs
+++ b/gen/Network/AWS/IAM/UploadServerCertificate.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.UploadServerCertificate
--- 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
@@ -42,8 +42,6 @@
 -- Query API with IAM, go to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/programming.html Calling the API by Making HTTP Query Requests>
 -- in the /IAM User Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_UploadServerCertificate.html AWS API Reference> for UploadServerCertificate.
 module Network.AWS.IAM.UploadServerCertificate
     (
     -- * Creating a Request
@@ -143,7 +141,7 @@
 instance AWSRequest UploadServerCertificate where
         type Rs UploadServerCertificate =
              UploadServerCertificateResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "UploadServerCertificateResult"
               (\ s h x ->
@@ -151,6 +149,8 @@
                    (x .@? "ServerCertificateMetadata") <*>
                      (pure (fromEnum s)))
 
+instance Hashable UploadServerCertificate
+
 instance ToHeaders UploadServerCertificate where
         toHeaders = const mempty
 
@@ -169,7 +169,8 @@
                "CertificateBody" =: _uscCertificateBody,
                "PrivateKey" =: _uscPrivateKey]
 
--- | Contains the response to a successful UploadServerCertificate request.
+-- | Contains the response to a successful < UploadServerCertificate>
+-- request.
 --
 -- /See:/ 'uploadServerCertificateResponse' smart constructor.
 data UploadServerCertificateResponse = UploadServerCertificateResponse'
diff --git a/gen/Network/AWS/IAM/UploadSigningCertificate.hs b/gen/Network/AWS/IAM/UploadSigningCertificate.hs
--- a/gen/Network/AWS/IAM/UploadSigningCertificate.hs
+++ b/gen/Network/AWS/IAM/UploadSigningCertificate.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.UploadSigningCertificate
--- 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
@@ -38,8 +38,6 @@
 -- Query API with IAM, go to
 -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html Making Query Requests>
 -- in the /Using IAM/guide.
---
--- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_UploadSigningCertificate.html AWS API Reference> for UploadSigningCertificate.
 module Network.AWS.IAM.UploadSigningCertificate
     (
     -- * Creating a Request
@@ -97,13 +95,15 @@
 instance AWSRequest UploadSigningCertificate where
         type Rs UploadSigningCertificate =
              UploadSigningCertificateResponse
-        request = postQuery iAM
+        request = postQuery iam
         response
           = receiveXMLWrapper "UploadSigningCertificateResult"
               (\ s h x ->
                  UploadSigningCertificateResponse' <$>
                    (pure (fromEnum s)) <*> (x .@ "Certificate"))
 
+instance Hashable UploadSigningCertificate
+
 instance ToHeaders UploadSigningCertificate where
         toHeaders = const mempty
 
@@ -119,7 +119,8 @@
                "UserName" =: _uplUserName,
                "CertificateBody" =: _uplCertificateBody]
 
--- | Contains the response to a successful UploadSigningCertificate request.
+-- | Contains the response to a successful < UploadSigningCertificate>
+-- request.
 --
 -- /See:/ 'uploadSigningCertificateResponse' smart constructor.
 data UploadSigningCertificateResponse = UploadSigningCertificateResponse'
diff --git a/gen/Network/AWS/IAM/Waiters.hs b/gen/Network/AWS/IAM/Waiters.hs
--- a/gen/Network/AWS/IAM/Waiters.hs
+++ b/gen/Network/AWS/IAM/Waiters.hs
@@ -7,7 +7,7 @@
 
 -- |
 -- Module      : Network.AWS.IAM.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/IAM.hs b/test/Test/AWS/Gen/IAM.hs
--- a/test/Test/AWS/Gen/IAM.hs
+++ b/test/Test/AWS/Gen/IAM.hs
@@ -5,7 +5,7 @@
 
 -- |
 -- Module      : Test.AWS.Gen.IAM
--- 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
@@ -1285,789 +1285,789 @@
 testGetContextKeysForPrincipalPolicyResponse = res
     "GetContextKeysForPrincipalPolicyResponse"
     "fixture/GetContextKeysForPrincipalPolicyResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy GetContextKeysForPrincipalPolicy)
 
 testListPoliciesResponse :: ListPoliciesResponse -> TestTree
 testListPoliciesResponse = res
     "ListPoliciesResponse"
     "fixture/ListPoliciesResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy ListPolicies)
 
 testCreatePolicyResponse :: CreatePolicyResponse -> TestTree
 testCreatePolicyResponse = res
     "CreatePolicyResponse"
     "fixture/CreatePolicyResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy CreatePolicy)
 
 testListInstanceProfilesForRoleResponse :: ListInstanceProfilesForRoleResponse -> TestTree
 testListInstanceProfilesForRoleResponse = res
     "ListInstanceProfilesForRoleResponse"
     "fixture/ListInstanceProfilesForRoleResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy ListInstanceProfilesForRole)
 
 testAttachGroupPolicyResponse :: AttachGroupPolicyResponse -> TestTree
 testAttachGroupPolicyResponse = res
     "AttachGroupPolicyResponse"
     "fixture/AttachGroupPolicyResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy AttachGroupPolicy)
 
 testCreateAccessKeyResponse :: CreateAccessKeyResponse -> TestTree
 testCreateAccessKeyResponse = res
     "CreateAccessKeyResponse"
     "fixture/CreateAccessKeyResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy CreateAccessKey)
 
 testListSSHPublicKeysResponse :: ListSSHPublicKeysResponse -> TestTree
 testListSSHPublicKeysResponse = res
     "ListSSHPublicKeysResponse"
     "fixture/ListSSHPublicKeysResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy ListSSHPublicKeys)
 
 testListOpenIdConnectProvidersResponse :: ListOpenIdConnectProvidersResponse -> TestTree
 testListOpenIdConnectProvidersResponse = res
     "ListOpenIdConnectProvidersResponse"
     "fixture/ListOpenIdConnectProvidersResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy ListOpenIdConnectProviders)
 
 testCreateVirtualMFADeviceResponse :: CreateVirtualMFADeviceResponse -> TestTree
 testCreateVirtualMFADeviceResponse = res
     "CreateVirtualMFADeviceResponse"
     "fixture/CreateVirtualMFADeviceResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy CreateVirtualMFADevice)
 
 testDeleteAccountPasswordPolicyResponse :: DeleteAccountPasswordPolicyResponse -> TestTree
 testDeleteAccountPasswordPolicyResponse = res
     "DeleteAccountPasswordPolicyResponse"
     "fixture/DeleteAccountPasswordPolicyResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy DeleteAccountPasswordPolicy)
 
 testUpdateAccountPasswordPolicyResponse :: UpdateAccountPasswordPolicyResponse -> TestTree
 testUpdateAccountPasswordPolicyResponse = res
     "UpdateAccountPasswordPolicyResponse"
     "fixture/UpdateAccountPasswordPolicyResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy UpdateAccountPasswordPolicy)
 
 testAttachRolePolicyResponse :: AttachRolePolicyResponse -> TestTree
 testAttachRolePolicyResponse = res
     "AttachRolePolicyResponse"
     "fixture/AttachRolePolicyResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy AttachRolePolicy)
 
 testUpdateSSHPublicKeyResponse :: UpdateSSHPublicKeyResponse -> TestTree
 testUpdateSSHPublicKeyResponse = res
     "UpdateSSHPublicKeyResponse"
     "fixture/UpdateSSHPublicKeyResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy UpdateSSHPublicKey)
 
 testDeleteSSHPublicKeyResponse :: DeleteSSHPublicKeyResponse -> TestTree
 testDeleteSSHPublicKeyResponse = res
     "DeleteSSHPublicKeyResponse"
     "fixture/DeleteSSHPublicKeyResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy DeleteSSHPublicKey)
 
 testGetUserPolicyResponse :: GetUserPolicyResponse -> TestTree
 testGetUserPolicyResponse = res
     "GetUserPolicyResponse"
     "fixture/GetUserPolicyResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy GetUserPolicy)
 
 testListAttachedRolePoliciesResponse :: ListAttachedRolePoliciesResponse -> TestTree
 testListAttachedRolePoliciesResponse = res
     "ListAttachedRolePoliciesResponse"
     "fixture/ListAttachedRolePoliciesResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy ListAttachedRolePolicies)
 
 testGetRoleResponse :: GetRoleResponse -> TestTree
 testGetRoleResponse = res
     "GetRoleResponse"
     "fixture/GetRoleResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy GetRole)
 
 testDeactivateMFADeviceResponse :: DeactivateMFADeviceResponse -> TestTree
 testDeactivateMFADeviceResponse = res
     "DeactivateMFADeviceResponse"
     "fixture/DeactivateMFADeviceResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy DeactivateMFADevice)
 
 testCreateOpenIdConnectProviderResponse :: CreateOpenIdConnectProviderResponse -> TestTree
 testCreateOpenIdConnectProviderResponse = res
     "CreateOpenIdConnectProviderResponse"
     "fixture/CreateOpenIdConnectProviderResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy CreateOpenIdConnectProvider)
 
 testDeleteVirtualMFADeviceResponse :: DeleteVirtualMFADeviceResponse -> TestTree
 testDeleteVirtualMFADeviceResponse = res
     "DeleteVirtualMFADeviceResponse"
     "fixture/DeleteVirtualMFADeviceResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy DeleteVirtualMFADevice)
 
 testListRolesResponse :: ListRolesResponse -> TestTree
 testListRolesResponse = res
     "ListRolesResponse"
     "fixture/ListRolesResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy ListRoles)
 
 testListUserPoliciesResponse :: ListUserPoliciesResponse -> TestTree
 testListUserPoliciesResponse = res
     "ListUserPoliciesResponse"
     "fixture/ListUserPoliciesResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy ListUserPolicies)
 
 testUploadSSHPublicKeyResponse :: UploadSSHPublicKeyResponse -> TestTree
 testUploadSSHPublicKeyResponse = res
     "UploadSSHPublicKeyResponse"
     "fixture/UploadSSHPublicKeyResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy UploadSSHPublicKey)
 
 testSimulateCustomPolicyResponse :: SimulatePolicyResponse -> TestTree
 testSimulateCustomPolicyResponse = res
     "SimulateCustomPolicyResponse"
     "fixture/SimulateCustomPolicyResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy SimulateCustomPolicy)
 
 testDeleteRoleResponse :: DeleteRoleResponse -> TestTree
 testDeleteRoleResponse = res
     "DeleteRoleResponse"
     "fixture/DeleteRoleResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy DeleteRole)
 
 testListUsersResponse :: ListUsersResponse -> TestTree
 testListUsersResponse = res
     "ListUsersResponse"
     "fixture/ListUsersResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy ListUsers)
 
 testUpdateOpenIdConnectProviderThumbprintResponse :: UpdateOpenIdConnectProviderThumbprintResponse -> TestTree
 testUpdateOpenIdConnectProviderThumbprintResponse = res
     "UpdateOpenIdConnectProviderThumbprintResponse"
     "fixture/UpdateOpenIdConnectProviderThumbprintResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy UpdateOpenIdConnectProviderThumbprint)
 
 testPutUserPolicyResponse :: PutUserPolicyResponse -> TestTree
 testPutUserPolicyResponse = res
     "PutUserPolicyResponse"
     "fixture/PutUserPolicyResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy PutUserPolicy)
 
 testGetSSHPublicKeyResponse :: GetSSHPublicKeyResponse -> TestTree
 testGetSSHPublicKeyResponse = res
     "GetSSHPublicKeyResponse"
     "fixture/GetSSHPublicKeyResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy GetSSHPublicKey)
 
 testDetachGroupPolicyResponse :: DetachGroupPolicyResponse -> TestTree
 testDetachGroupPolicyResponse = res
     "DetachGroupPolicyResponse"
     "fixture/DetachGroupPolicyResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy DetachGroupPolicy)
 
 testGetOpenIdConnectProviderResponse :: GetOpenIdConnectProviderResponse -> TestTree
 testGetOpenIdConnectProviderResponse = res
     "GetOpenIdConnectProviderResponse"
     "fixture/GetOpenIdConnectProviderResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy GetOpenIdConnectProvider)
 
 testDeleteUserPolicyResponse :: DeleteUserPolicyResponse -> TestTree
 testDeleteUserPolicyResponse = res
     "DeleteUserPolicyResponse"
     "fixture/DeleteUserPolicyResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy DeleteUserPolicy)
 
 testCreateRoleResponse :: CreateRoleResponse -> TestTree
 testCreateRoleResponse = res
     "CreateRoleResponse"
     "fixture/CreateRoleResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy CreateRole)
 
 testGetCredentialReportResponse :: GetCredentialReportResponse -> TestTree
 testGetCredentialReportResponse = res
     "GetCredentialReportResponse"
     "fixture/GetCredentialReportResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy GetCredentialReport)
 
 testGetAccountSummaryResponse :: GetAccountSummaryResponse -> TestTree
 testGetAccountSummaryResponse = res
     "GetAccountSummaryResponse"
     "fixture/GetAccountSummaryResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy GetAccountSummary)
 
 testListGroupPoliciesResponse :: ListGroupPoliciesResponse -> TestTree
 testListGroupPoliciesResponse = res
     "ListGroupPoliciesResponse"
     "fixture/ListGroupPoliciesResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy ListGroupPolicies)
 
 testDeletePolicyVersionResponse :: DeletePolicyVersionResponse -> TestTree
 testDeletePolicyVersionResponse = res
     "DeletePolicyVersionResponse"
     "fixture/DeletePolicyVersionResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy DeletePolicyVersion)
 
 testDeleteInstanceProfileResponse :: DeleteInstanceProfileResponse -> TestTree
 testDeleteInstanceProfileResponse = res
     "DeleteInstanceProfileResponse"
     "fixture/DeleteInstanceProfileResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy DeleteInstanceProfile)
 
 testDetachRolePolicyResponse :: DetachRolePolicyResponse -> TestTree
 testDetachRolePolicyResponse = res
     "DetachRolePolicyResponse"
     "fixture/DetachRolePolicyResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy DetachRolePolicy)
 
 testRemoveRoleFromInstanceProfileResponse :: RemoveRoleFromInstanceProfileResponse -> TestTree
 testRemoveRoleFromInstanceProfileResponse = res
     "RemoveRoleFromInstanceProfileResponse"
     "fixture/RemoveRoleFromInstanceProfileResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy RemoveRoleFromInstanceProfile)
 
 testCreatePolicyVersionResponse :: CreatePolicyVersionResponse -> TestTree
 testCreatePolicyVersionResponse = res
     "CreatePolicyVersionResponse"
     "fixture/CreatePolicyVersionResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy CreatePolicyVersion)
 
 testCreateInstanceProfileResponse :: CreateInstanceProfileResponse -> TestTree
 testCreateInstanceProfileResponse = res
     "CreateInstanceProfileResponse"
     "fixture/CreateInstanceProfileResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy CreateInstanceProfile)
 
 testCreateSAMLProviderResponse :: CreateSAMLProviderResponse -> TestTree
 testCreateSAMLProviderResponse = res
     "CreateSAMLProviderResponse"
     "fixture/CreateSAMLProviderResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy CreateSAMLProvider)
 
 testGetAccountAuthorizationDetailsResponse :: GetAccountAuthorizationDetailsResponse -> TestTree
 testGetAccountAuthorizationDetailsResponse = res
     "GetAccountAuthorizationDetailsResponse"
     "fixture/GetAccountAuthorizationDetailsResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy GetAccountAuthorizationDetails)
 
 testDeleteAccountAliasResponse :: DeleteAccountAliasResponse -> TestTree
 testDeleteAccountAliasResponse = res
     "DeleteAccountAliasResponse"
     "fixture/DeleteAccountAliasResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy DeleteAccountAlias)
 
 testDetachUserPolicyResponse :: DetachUserPolicyResponse -> TestTree
 testDetachUserPolicyResponse = res
     "DetachUserPolicyResponse"
     "fixture/DetachUserPolicyResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy DetachUserPolicy)
 
 testRemoveUserFromGroupResponse :: RemoveUserFromGroupResponse -> TestTree
 testRemoveUserFromGroupResponse = res
     "RemoveUserFromGroupResponse"
     "fixture/RemoveUserFromGroupResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy RemoveUserFromGroup)
 
 testDeleteGroupPolicyResponse :: DeleteGroupPolicyResponse -> TestTree
 testDeleteGroupPolicyResponse = res
     "DeleteGroupPolicyResponse"
     "fixture/DeleteGroupPolicyResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy DeleteGroupPolicy)
 
 testPutGroupPolicyResponse :: PutGroupPolicyResponse -> TestTree
 testPutGroupPolicyResponse = res
     "PutGroupPolicyResponse"
     "fixture/PutGroupPolicyResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy PutGroupPolicy)
 
 testGetLoginProfileResponse :: GetLoginProfileResponse -> TestTree
 testGetLoginProfileResponse = res
     "GetLoginProfileResponse"
     "fixture/GetLoginProfileResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy GetLoginProfile)
 
 testGetGroupPolicyResponse :: GetGroupPolicyResponse -> TestTree
 testGetGroupPolicyResponse = res
     "GetGroupPolicyResponse"
     "fixture/GetGroupPolicyResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy GetGroupPolicy)
 
 testChangePasswordResponse :: ChangePasswordResponse -> TestTree
 testChangePasswordResponse = res
     "ChangePasswordResponse"
     "fixture/ChangePasswordResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy ChangePassword)
 
 testListServerCertificatesResponse :: ListServerCertificatesResponse -> TestTree
 testListServerCertificatesResponse = res
     "ListServerCertificatesResponse"
     "fixture/ListServerCertificatesResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy ListServerCertificates)
 
 testDeletePolicyResponse :: DeletePolicyResponse -> TestTree
 testDeletePolicyResponse = res
     "DeletePolicyResponse"
     "fixture/DeletePolicyResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy DeletePolicy)
 
 testUpdateAssumeRolePolicyResponse :: UpdateAssumeRolePolicyResponse -> TestTree
 testUpdateAssumeRolePolicyResponse = res
     "UpdateAssumeRolePolicyResponse"
     "fixture/UpdateAssumeRolePolicyResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy UpdateAssumeRolePolicy)
 
 testGetInstanceProfileResponse :: GetInstanceProfileResponse -> TestTree
 testGetInstanceProfileResponse = res
     "GetInstanceProfileResponse"
     "fixture/GetInstanceProfileResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy GetInstanceProfile)
 
 testCreateLoginProfileResponse :: CreateLoginProfileResponse -> TestTree
 testCreateLoginProfileResponse = res
     "CreateLoginProfileResponse"
     "fixture/CreateLoginProfileResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy CreateLoginProfile)
 
 testGetSAMLProviderResponse :: GetSAMLProviderResponse -> TestTree
 testGetSAMLProviderResponse = res
     "GetSAMLProviderResponse"
     "fixture/GetSAMLProviderResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy GetSAMLProvider)
 
 testAddRoleToInstanceProfileResponse :: AddRoleToInstanceProfileResponse -> TestTree
 testAddRoleToInstanceProfileResponse = res
     "AddRoleToInstanceProfileResponse"
     "fixture/AddRoleToInstanceProfileResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy AddRoleToInstanceProfile)
 
 testListGroupsForUserResponse :: ListGroupsForUserResponse -> TestTree
 testListGroupsForUserResponse = res
     "ListGroupsForUserResponse"
     "fixture/ListGroupsForUserResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy ListGroupsForUser)
 
 testListEntitiesForPolicyResponse :: ListEntitiesForPolicyResponse -> TestTree
 testListEntitiesForPolicyResponse = res
     "ListEntitiesForPolicyResponse"
     "fixture/ListEntitiesForPolicyResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy ListEntitiesForPolicy)
 
 testAddUserToGroupResponse :: AddUserToGroupResponse -> TestTree
 testAddUserToGroupResponse = res
     "AddUserToGroupResponse"
     "fixture/AddUserToGroupResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy AddUserToGroup)
 
 testSimulatePrincipalPolicyResponse :: SimulatePolicyResponse -> TestTree
 testSimulatePrincipalPolicyResponse = res
     "SimulatePrincipalPolicyResponse"
     "fixture/SimulatePrincipalPolicyResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy SimulatePrincipalPolicy)
 
 testGetPolicyVersionResponse :: GetPolicyVersionResponse -> TestTree
 testGetPolicyVersionResponse = res
     "GetPolicyVersionResponse"
     "fixture/GetPolicyVersionResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy GetPolicyVersion)
 
 testDeleteOpenIdConnectProviderResponse :: DeleteOpenIdConnectProviderResponse -> TestTree
 testDeleteOpenIdConnectProviderResponse = res
     "DeleteOpenIdConnectProviderResponse"
     "fixture/DeleteOpenIdConnectProviderResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy DeleteOpenIdConnectProvider)
 
 testGetUserResponse :: GetUserResponse -> TestTree
 testGetUserResponse = res
     "GetUserResponse"
     "fixture/GetUserResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy GetUser)
 
 testListSigningCertificatesResponse :: ListSigningCertificatesResponse -> TestTree
 testListSigningCertificatesResponse = res
     "ListSigningCertificatesResponse"
     "fixture/ListSigningCertificatesResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy ListSigningCertificates)
 
 testDeleteSigningCertificateResponse :: DeleteSigningCertificateResponse -> TestTree
 testDeleteSigningCertificateResponse = res
     "DeleteSigningCertificateResponse"
     "fixture/DeleteSigningCertificateResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy DeleteSigningCertificate)
 
 testUpdateSigningCertificateResponse :: UpdateSigningCertificateResponse -> TestTree
 testUpdateSigningCertificateResponse = res
     "UpdateSigningCertificateResponse"
     "fixture/UpdateSigningCertificateResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy UpdateSigningCertificate)
 
 testListAttachedUserPoliciesResponse :: ListAttachedUserPoliciesResponse -> TestTree
 testListAttachedUserPoliciesResponse = res
     "ListAttachedUserPoliciesResponse"
     "fixture/ListAttachedUserPoliciesResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy ListAttachedUserPolicies)
 
 testRemoveClientIdFromOpenIdConnectProviderResponse :: RemoveClientIdFromOpenIdConnectProviderResponse -> TestTree
 testRemoveClientIdFromOpenIdConnectProviderResponse = res
     "RemoveClientIdFromOpenIdConnectProviderResponse"
     "fixture/RemoveClientIdFromOpenIdConnectProviderResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy RemoveClientIdFromOpenIdConnectProvider)
 
 testAttachUserPolicyResponse :: AttachUserPolicyResponse -> TestTree
 testAttachUserPolicyResponse = res
     "AttachUserPolicyResponse"
     "fixture/AttachUserPolicyResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy AttachUserPolicy)
 
 testListVirtualMFADevicesResponse :: ListVirtualMFADevicesResponse -> TestTree
 testListVirtualMFADevicesResponse = res
     "ListVirtualMFADevicesResponse"
     "fixture/ListVirtualMFADevicesResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy ListVirtualMFADevices)
 
 testResyncMFADeviceResponse :: ResyncMFADeviceResponse -> TestTree
 testResyncMFADeviceResponse = res
     "ResyncMFADeviceResponse"
     "fixture/ResyncMFADeviceResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy ResyncMFADevice)
 
 testDeleteAccessKeyResponse :: DeleteAccessKeyResponse -> TestTree
 testDeleteAccessKeyResponse = res
     "DeleteAccessKeyResponse"
     "fixture/DeleteAccessKeyResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy DeleteAccessKey)
 
 testUpdateAccessKeyResponse :: UpdateAccessKeyResponse -> TestTree
 testUpdateAccessKeyResponse = res
     "UpdateAccessKeyResponse"
     "fixture/UpdateAccessKeyResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy UpdateAccessKey)
 
 testListAccessKeysResponse :: ListAccessKeysResponse -> TestTree
 testListAccessKeysResponse = res
     "ListAccessKeysResponse"
     "fixture/ListAccessKeysResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy ListAccessKeys)
 
 testGetRolePolicyResponse :: GetRolePolicyResponse -> TestTree
 testGetRolePolicyResponse = res
     "GetRolePolicyResponse"
     "fixture/GetRolePolicyResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy GetRolePolicy)
 
 testCreateUserResponse :: CreateUserResponse -> TestTree
 testCreateUserResponse = res
     "CreateUserResponse"
     "fixture/CreateUserResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy CreateUser)
 
 testPutRolePolicyResponse :: PutRolePolicyResponse -> TestTree
 testPutRolePolicyResponse = res
     "PutRolePolicyResponse"
     "fixture/PutRolePolicyResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy PutRolePolicy)
 
 testGetContextKeysForCustomPolicyResponse :: GetContextKeysForPolicyResponse -> TestTree
 testGetContextKeysForCustomPolicyResponse = res
     "GetContextKeysForCustomPolicyResponse"
     "fixture/GetContextKeysForCustomPolicyResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy GetContextKeysForCustomPolicy)
 
 testUploadSigningCertificateResponse :: UploadSigningCertificateResponse -> TestTree
 testUploadSigningCertificateResponse = res
     "UploadSigningCertificateResponse"
     "fixture/UploadSigningCertificateResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy UploadSigningCertificate)
 
 testDeleteRolePolicyResponse :: DeleteRolePolicyResponse -> TestTree
 testDeleteRolePolicyResponse = res
     "DeleteRolePolicyResponse"
     "fixture/DeleteRolePolicyResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy DeleteRolePolicy)
 
 testGetAccountPasswordPolicyResponse :: GetAccountPasswordPolicyResponse -> TestTree
 testGetAccountPasswordPolicyResponse = res
     "GetAccountPasswordPolicyResponse"
     "fixture/GetAccountPasswordPolicyResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy GetAccountPasswordPolicy)
 
 testGetAccessKeyLastUsedResponse :: GetAccessKeyLastUsedResponse -> TestTree
 testGetAccessKeyLastUsedResponse = res
     "GetAccessKeyLastUsedResponse"
     "fixture/GetAccessKeyLastUsedResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy GetAccessKeyLastUsed)
 
 testUpdateUserResponse :: UpdateUserResponse -> TestTree
 testUpdateUserResponse = res
     "UpdateUserResponse"
     "fixture/UpdateUserResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy UpdateUser)
 
 testDeleteUserResponse :: DeleteUserResponse -> TestTree
 testDeleteUserResponse = res
     "DeleteUserResponse"
     "fixture/DeleteUserResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy DeleteUser)
 
 testAddClientIdToOpenIdConnectProviderResponse :: AddClientIdToOpenIdConnectProviderResponse -> TestTree
 testAddClientIdToOpenIdConnectProviderResponse = res
     "AddClientIdToOpenIdConnectProviderResponse"
     "fixture/AddClientIdToOpenIdConnectProviderResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy AddClientIdToOpenIdConnectProvider)
 
 testListRolePoliciesResponse :: ListRolePoliciesResponse -> TestTree
 testListRolePoliciesResponse = res
     "ListRolePoliciesResponse"
     "fixture/ListRolePoliciesResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy ListRolePolicies)
 
 testCreateAccountAliasResponse :: CreateAccountAliasResponse -> TestTree
 testCreateAccountAliasResponse = res
     "CreateAccountAliasResponse"
     "fixture/CreateAccountAliasResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy CreateAccountAlias)
 
 testListInstanceProfilesResponse :: ListInstanceProfilesResponse -> TestTree
 testListInstanceProfilesResponse = res
     "ListInstanceProfilesResponse"
     "fixture/ListInstanceProfilesResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy ListInstanceProfiles)
 
 testEnableMFADeviceResponse :: EnableMFADeviceResponse -> TestTree
 testEnableMFADeviceResponse = res
     "EnableMFADeviceResponse"
     "fixture/EnableMFADeviceResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy EnableMFADevice)
 
 testListAccountAliasesResponse :: ListAccountAliasesResponse -> TestTree
 testListAccountAliasesResponse = res
     "ListAccountAliasesResponse"
     "fixture/ListAccountAliasesResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy ListAccountAliases)
 
 testDeleteSAMLProviderResponse :: DeleteSAMLProviderResponse -> TestTree
 testDeleteSAMLProviderResponse = res
     "DeleteSAMLProviderResponse"
     "fixture/DeleteSAMLProviderResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy DeleteSAMLProvider)
 
 testUpdateSAMLProviderResponse :: UpdateSAMLProviderResponse -> TestTree
 testUpdateSAMLProviderResponse = res
     "UpdateSAMLProviderResponse"
     "fixture/UpdateSAMLProviderResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy UpdateSAMLProvider)
 
 testCreateGroupResponse :: CreateGroupResponse -> TestTree
 testCreateGroupResponse = res
     "CreateGroupResponse"
     "fixture/CreateGroupResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy CreateGroup)
 
 testListMFADevicesResponse :: ListMFADevicesResponse -> TestTree
 testListMFADevicesResponse = res
     "ListMFADevicesResponse"
     "fixture/ListMFADevicesResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy ListMFADevices)
 
 testUploadServerCertificateResponse :: UploadServerCertificateResponse -> TestTree
 testUploadServerCertificateResponse = res
     "UploadServerCertificateResponse"
     "fixture/UploadServerCertificateResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy UploadServerCertificate)
 
 testSetDefaultPolicyVersionResponse :: SetDefaultPolicyVersionResponse -> TestTree
 testSetDefaultPolicyVersionResponse = res
     "SetDefaultPolicyVersionResponse"
     "fixture/SetDefaultPolicyVersionResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy SetDefaultPolicyVersion)
 
 testListPolicyVersionsResponse :: ListPolicyVersionsResponse -> TestTree
 testListPolicyVersionsResponse = res
     "ListPolicyVersionsResponse"
     "fixture/ListPolicyVersionsResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy ListPolicyVersions)
 
 testListSAMLProvidersResponse :: ListSAMLProvidersResponse -> TestTree
 testListSAMLProvidersResponse = res
     "ListSAMLProvidersResponse"
     "fixture/ListSAMLProvidersResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy ListSAMLProviders)
 
 testGetServerCertificateResponse :: GetServerCertificateResponse -> TestTree
 testGetServerCertificateResponse = res
     "GetServerCertificateResponse"
     "fixture/GetServerCertificateResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy GetServerCertificate)
 
 testDeleteGroupResponse :: DeleteGroupResponse -> TestTree
 testDeleteGroupResponse = res
     "DeleteGroupResponse"
     "fixture/DeleteGroupResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy DeleteGroup)
 
 testUpdateGroupResponse :: UpdateGroupResponse -> TestTree
 testUpdateGroupResponse = res
     "UpdateGroupResponse"
     "fixture/UpdateGroupResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy UpdateGroup)
 
 testListGroupsResponse :: ListGroupsResponse -> TestTree
 testListGroupsResponse = res
     "ListGroupsResponse"
     "fixture/ListGroupsResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy ListGroups)
 
 testGenerateCredentialReportResponse :: GenerateCredentialReportResponse -> TestTree
 testGenerateCredentialReportResponse = res
     "GenerateCredentialReportResponse"
     "fixture/GenerateCredentialReportResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy GenerateCredentialReport)
 
 testGetPolicyResponse :: GetPolicyResponse -> TestTree
 testGetPolicyResponse = res
     "GetPolicyResponse"
     "fixture/GetPolicyResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy GetPolicy)
 
 testUpdateLoginProfileResponse :: UpdateLoginProfileResponse -> TestTree
 testUpdateLoginProfileResponse = res
     "UpdateLoginProfileResponse"
     "fixture/UpdateLoginProfileResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy UpdateLoginProfile)
 
 testDeleteLoginProfileResponse :: DeleteLoginProfileResponse -> TestTree
 testDeleteLoginProfileResponse = res
     "DeleteLoginProfileResponse"
     "fixture/DeleteLoginProfileResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy DeleteLoginProfile)
 
 testGetGroupResponse :: GetGroupResponse -> TestTree
 testGetGroupResponse = res
     "GetGroupResponse"
     "fixture/GetGroupResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy GetGroup)
 
 testDeleteServerCertificateResponse :: DeleteServerCertificateResponse -> TestTree
 testDeleteServerCertificateResponse = res
     "DeleteServerCertificateResponse"
     "fixture/DeleteServerCertificateResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy DeleteServerCertificate)
 
 testUpdateServerCertificateResponse :: UpdateServerCertificateResponse -> TestTree
 testUpdateServerCertificateResponse = res
     "UpdateServerCertificateResponse"
     "fixture/UpdateServerCertificateResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy UpdateServerCertificate)
 
 testListAttachedGroupPoliciesResponse :: ListAttachedGroupPoliciesResponse -> TestTree
 testListAttachedGroupPoliciesResponse = res
     "ListAttachedGroupPoliciesResponse"
     "fixture/ListAttachedGroupPoliciesResponse.proto"
-    iAM
+    iam
     (Proxy :: Proxy ListAttachedGroupPolicies)
diff --git a/test/Test/AWS/IAM.hs b/test/Test/AWS/IAM.hs
--- a/test/Test/AWS/IAM.hs
+++ b/test/Test/AWS/IAM.hs
@@ -1,7 +1,7 @@
 {-# LANGUAGE OverloadedStrings #-}
 
 -- Module      : Test.AWS.IAM
--- 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/IAM/Internal.hs b/test/Test/AWS/IAM/Internal.hs
--- a/test/Test/AWS/IAM/Internal.hs
+++ b/test/Test/AWS/IAM/Internal.hs
@@ -2,7 +2,7 @@
 {-# OPTIONS_GHC -fno-warn-unused-imports #-}
 
 -- Module      : Test.AWS.IAM.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
