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:               0.2.1
+version:               0.2.2
 synopsis:              Amazon Identity and Access Management SDK.
 homepage:              https://github.com/brendanhay/amazonka
 license:               OtherLicense
@@ -125,5 +125,5 @@
     other-modules:
 
     build-depends:
-          amazonka-core == 0.2.1.*
+          amazonka-core == 0.2.2.*
         , base          >= 4.7     && < 5
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
@@ -53,7 +53,7 @@
 data AddClientIDToOpenIDConnectProvider = AddClientIDToOpenIDConnectProvider
     { _acidtoidcpClientID                 :: Text
     , _acidtoidcpOpenIDConnectProviderArn :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'AddClientIDToOpenIDConnectProvider' constructor.
 --
@@ -85,7 +85,7 @@
         (\s a -> s { _acidtoidcpOpenIDConnectProviderArn = a })
 
 data AddClientIDToOpenIDConnectProviderResponse = AddClientIDToOpenIDConnectProviderResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'AddClientIDToOpenIDConnectProviderResponse' constructor.
 addClientIDToOpenIDConnectProviderResponse :: AddClientIDToOpenIDConnectProviderResponse
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
@@ -51,7 +51,7 @@
 data AddRoleToInstanceProfile = AddRoleToInstanceProfile
     { _artipInstanceProfileName :: Text
     , _artipRoleName            :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'AddRoleToInstanceProfile' constructor.
 --
@@ -80,7 +80,7 @@
 artipRoleName = lens _artipRoleName (\s a -> s { _artipRoleName = a })
 
 data AddRoleToInstanceProfileResponse = AddRoleToInstanceProfileResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'AddRoleToInstanceProfileResponse' constructor.
 addRoleToInstanceProfileResponse :: AddRoleToInstanceProfileResponse
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
@@ -49,7 +49,7 @@
 data AddUserToGroup = AddUserToGroup
     { _autgGroupName :: Text
     , _autgUserName  :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'AddUserToGroup' constructor.
 --
@@ -76,7 +76,7 @@
 autgUserName = lens _autgUserName (\s a -> s { _autgUserName = a })
 
 data AddUserToGroupResponse = AddUserToGroupResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'AddUserToGroupResponse' constructor.
 addUserToGroupResponse :: AddUserToGroupResponse
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
@@ -53,7 +53,7 @@
 data ChangePassword = ChangePassword
     { _cpNewPassword :: Sensitive Text
     , _cpOldPassword :: Sensitive Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'ChangePassword' constructor.
 --
@@ -81,7 +81,7 @@
 cpOldPassword = lens _cpOldPassword (\s a -> s { _cpOldPassword = a }) . _Sensitive
 
 data ChangePasswordResponse = ChangePasswordResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'ChangePasswordResponse' constructor.
 changePasswordResponse :: ChangePasswordResponse
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
@@ -63,7 +63,7 @@
 
 newtype CreateAccessKey = CreateAccessKey
     { _cakUserName :: Maybe Text
-    } deriving (Eq, Ord, Show, Monoid)
+    } deriving (Eq, Ord, Read, Show, Monoid)
 
 -- | 'CreateAccessKey' constructor.
 --
@@ -82,7 +82,7 @@
 
 newtype CreateAccessKeyResponse = CreateAccessKeyResponse
     { _cakrAccessKey :: AccessKey
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateAccessKeyResponse' constructor.
 --
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
@@ -49,7 +49,7 @@
 
 newtype CreateAccountAlias = CreateAccountAlias
     { _caaAccountAlias :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'CreateAccountAlias' constructor.
 --
@@ -68,7 +68,7 @@
 caaAccountAlias = lens _caaAccountAlias (\s a -> s { _caaAccountAlias = a })
 
 data CreateAccountAliasResponse = CreateAccountAliasResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'CreateAccountAliasResponse' constructor.
 createAccountAliasResponse :: CreateAccountAliasResponse
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
@@ -53,7 +53,7 @@
 data CreateGroup = CreateGroup
     { _cgGroupName :: Text
     , _cgPath      :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'CreateGroup' constructor.
 --
@@ -84,7 +84,7 @@
 
 newtype CreateGroupResponse = CreateGroupResponse
     { _cgrGroup :: Group
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateGroupResponse' constructor.
 --
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
@@ -54,7 +54,7 @@
 data CreateInstanceProfile = CreateInstanceProfile
     { _cipInstanceProfileName :: Text
     , _cipPath                :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'CreateInstanceProfile' constructor.
 --
@@ -85,7 +85,7 @@
 
 newtype CreateInstanceProfileResponse = CreateInstanceProfileResponse
     { _ciprInstanceProfile :: InstanceProfile
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateInstanceProfileResponse' constructor.
 --
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
@@ -55,7 +55,7 @@
     { _clpPassword              :: Sensitive Text
     , _clpPasswordResetRequired :: Maybe Bool
     , _clpUserName              :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'CreateLoginProfile' constructor.
 --
@@ -93,7 +93,7 @@
 
 newtype CreateLoginProfileResponse = CreateLoginProfileResponse
     { _clprLoginProfile :: LoginProfile
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateLoginProfileResponse' constructor.
 --
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
@@ -68,7 +68,7 @@
     { _coidcpClientIDList   :: List "member" Text
     , _coidcpThumbprintList :: List "member" Text
     , _coidcpUrl            :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'CreateOpenIDConnectProvider' constructor.
 --
@@ -137,7 +137,7 @@
 
 newtype CreateOpenIDConnectProviderResponse = CreateOpenIDConnectProviderResponse
     { _coidcprOpenIDConnectProviderArn :: Maybe Text
-    } deriving (Eq, Ord, Show, Monoid)
+    } deriving (Eq, Ord, Read, Show, Monoid)
 
 -- | 'CreateOpenIDConnectProviderResponse' constructor.
 --
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
@@ -59,7 +59,7 @@
     { _crAssumeRolePolicyDocument :: Text
     , _crPath                     :: Maybe Text
     , _crRoleName                 :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'CreateRole' constructor.
 --
@@ -100,7 +100,7 @@
 
 newtype CreateRoleResponse = CreateRoleResponse
     { _crrRole :: Role
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateRoleResponse' constructor.
 --
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
@@ -67,7 +67,7 @@
 data CreateSAMLProvider = CreateSAMLProvider
     { _csamlpName                 :: Text
     , _csamlpSAMLMetadataDocument :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'CreateSAMLProvider' constructor.
 --
@@ -104,7 +104,7 @@
 
 newtype CreateSAMLProviderResponse = CreateSAMLProviderResponse
     { _csamlprSAMLProviderArn :: Maybe Text
-    } deriving (Eq, Ord, Show, Monoid)
+    } deriving (Eq, Ord, Read, Show, Monoid)
 
 -- | 'CreateSAMLProviderResponse' constructor.
 --
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
@@ -54,7 +54,7 @@
 data CreateUser = CreateUser
     { _cuPath     :: Maybe Text
     , _cuUserName :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'CreateUser' constructor.
 --
@@ -84,7 +84,7 @@
 
 newtype CreateUserResponse = CreateUserResponse
     { _curUser :: Maybe User
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateUserResponse' constructor.
 --
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
@@ -61,7 +61,7 @@
 data CreateVirtualMFADevice = CreateVirtualMFADevice
     { _cvmfadPath                 :: Maybe Text
     , _cvmfadVirtualMFADeviceName :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'CreateVirtualMFADevice' constructor.
 --
@@ -94,7 +94,7 @@
 
 newtype CreateVirtualMFADeviceResponse = CreateVirtualMFADeviceResponse
     { _cvmfadrVirtualMFADevice :: VirtualMFADevice
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateVirtualMFADeviceResponse' constructor.
 --
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
@@ -53,7 +53,7 @@
 data DeactivateMFADevice = DeactivateMFADevice
     { _dmfadSerialNumber :: Text
     , _dmfadUserName     :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DeactivateMFADevice' constructor.
 --
@@ -82,7 +82,7 @@
 dmfadUserName = lens _dmfadUserName (\s a -> s { _dmfadUserName = a })
 
 data DeactivateMFADeviceResponse = DeactivateMFADeviceResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeactivateMFADeviceResponse' constructor.
 deactivateMFADeviceResponse :: DeactivateMFADeviceResponse
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
@@ -54,7 +54,7 @@
 data DeleteAccessKey = DeleteAccessKey
     { _dakAccessKeyId :: Text
     , _dakUserName    :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DeleteAccessKey' constructor.
 --
@@ -81,7 +81,7 @@
 dakUserName = lens _dakUserName (\s a -> s { _dakUserName = a })
 
 data DeleteAccessKeyResponse = DeleteAccessKeyResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteAccessKeyResponse' constructor.
 deleteAccessKeyResponse :: DeleteAccessKeyResponse
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
@@ -49,7 +49,7 @@
 
 newtype DeleteAccountAlias = DeleteAccountAlias
     { _daaAccountAlias :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'DeleteAccountAlias' constructor.
 --
@@ -68,7 +68,7 @@
 daaAccountAlias = lens _daaAccountAlias (\s a -> s { _daaAccountAlias = a })
 
 data DeleteAccountAliasResponse = DeleteAccountAliasResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteAccountAliasResponse' constructor.
 deleteAccountAliasResponse :: DeleteAccountAliasResponse
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
@@ -44,14 +44,14 @@
 import qualified GHC.Exts
 
 data DeleteAccountPasswordPolicy = DeleteAccountPasswordPolicy
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteAccountPasswordPolicy' constructor.
 deleteAccountPasswordPolicy :: DeleteAccountPasswordPolicy
 deleteAccountPasswordPolicy = DeleteAccountPasswordPolicy
 
 data DeleteAccountPasswordPolicyResponse = DeleteAccountPasswordPolicyResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteAccountPasswordPolicyResponse' constructor.
 deleteAccountPasswordPolicyResponse :: DeleteAccountPasswordPolicyResponse
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
@@ -48,7 +48,7 @@
 
 newtype DeleteGroup = DeleteGroup
     { _dgGroupName :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'DeleteGroup' constructor.
 --
@@ -67,7 +67,7 @@
 dgGroupName = lens _dgGroupName (\s a -> s { _dgGroupName = a })
 
 data DeleteGroupResponse = DeleteGroupResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteGroupResponse' constructor.
 deleteGroupResponse :: DeleteGroupResponse
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
@@ -49,7 +49,7 @@
 data DeleteGroupPolicy = DeleteGroupPolicy
     { _dgpGroupName  :: Text
     , _dgpPolicyName :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DeleteGroupPolicy' constructor.
 --
@@ -76,7 +76,7 @@
 dgpPolicyName = lens _dgpPolicyName (\s a -> s { _dgpPolicyName = a })
 
 data DeleteGroupPolicyResponse = DeleteGroupPolicyResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteGroupPolicyResponse' constructor.
 deleteGroupPolicyResponse :: DeleteGroupPolicyResponse
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
@@ -54,7 +54,7 @@
 
 newtype DeleteInstanceProfile = DeleteInstanceProfile
     { _dipInstanceProfileName :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'DeleteInstanceProfile' constructor.
 --
@@ -74,7 +74,7 @@
     lens _dipInstanceProfileName (\s a -> s { _dipInstanceProfileName = a })
 
 data DeleteInstanceProfileResponse = DeleteInstanceProfileResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteInstanceProfileResponse' constructor.
 deleteInstanceProfileResponse :: DeleteInstanceProfileResponse
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
@@ -54,7 +54,7 @@
 
 newtype DeleteLoginProfile = DeleteLoginProfile
     { _dlpUserName :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'DeleteLoginProfile' constructor.
 --
@@ -73,7 +73,7 @@
 dlpUserName = lens _dlpUserName (\s a -> s { _dlpUserName = a })
 
 data DeleteLoginProfileResponse = DeleteLoginProfileResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteLoginProfileResponse' constructor.
 deleteLoginProfileResponse :: DeleteLoginProfileResponse
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
@@ -54,7 +54,7 @@
 
 newtype DeleteOpenIDConnectProvider = DeleteOpenIDConnectProvider
     { _doidcpOpenIDConnectProviderArn :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'DeleteOpenIDConnectProvider' constructor.
 --
@@ -76,7 +76,7 @@
         (\s a -> s { _doidcpOpenIDConnectProviderArn = a })
 
 data DeleteOpenIDConnectProviderResponse = DeleteOpenIDConnectProviderResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteOpenIDConnectProviderResponse' constructor.
 deleteOpenIDConnectProviderResponse :: DeleteOpenIDConnectProviderResponse
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
@@ -53,7 +53,7 @@
 
 newtype DeleteRole = DeleteRole
     { _drRoleName :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'DeleteRole' constructor.
 --
@@ -72,7 +72,7 @@
 drRoleName = lens _drRoleName (\s a -> s { _drRoleName = a })
 
 data DeleteRoleResponse = DeleteRoleResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteRoleResponse' constructor.
 deleteRoleResponse :: DeleteRoleResponse
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
@@ -49,7 +49,7 @@
 data DeleteRolePolicy = DeleteRolePolicy
     { _drpPolicyName :: Text
     , _drpRoleName   :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DeleteRolePolicy' constructor.
 --
@@ -76,7 +76,7 @@
 drpRoleName = lens _drpRoleName (\s a -> s { _drpRoleName = a })
 
 data DeleteRolePolicyResponse = DeleteRolePolicyResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteRolePolicyResponse' constructor.
 deleteRolePolicyResponse :: DeleteRolePolicyResponse
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
@@ -53,7 +53,7 @@
 
 newtype DeleteSAMLProvider = DeleteSAMLProvider
     { _dsamlpSAMLProviderArn :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'DeleteSAMLProvider' constructor.
 --
@@ -73,7 +73,7 @@
     lens _dsamlpSAMLProviderArn (\s a -> s { _dsamlpSAMLProviderArn = a })
 
 data DeleteSAMLProviderResponse = DeleteSAMLProviderResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteSAMLProviderResponse' constructor.
 deleteSAMLProviderResponse :: DeleteSAMLProviderResponse
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
@@ -56,7 +56,7 @@
 
 newtype DeleteServerCertificate = DeleteServerCertificate
     { _dscServerCertificateName :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'DeleteServerCertificate' constructor.
 --
@@ -77,7 +77,7 @@
         (\s a -> s { _dscServerCertificateName = a })
 
 data DeleteServerCertificateResponse = DeleteServerCertificateResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteServerCertificateResponse' constructor.
 deleteServerCertificateResponse :: DeleteServerCertificateResponse
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
@@ -54,7 +54,7 @@
 data DeleteSigningCertificate = DeleteSigningCertificate
     { _dscCertificateId :: Text
     , _dscUserName      :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DeleteSigningCertificate' constructor.
 --
@@ -80,7 +80,7 @@
 dscUserName = lens _dscUserName (\s a -> s { _dscUserName = a })
 
 data DeleteSigningCertificateResponse = DeleteSigningCertificateResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteSigningCertificateResponse' constructor.
 deleteSigningCertificateResponse :: DeleteSigningCertificateResponse
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
@@ -48,7 +48,7 @@
 
 newtype DeleteUser = DeleteUser
     { _duUserName :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'DeleteUser' constructor.
 --
@@ -67,7 +67,7 @@
 duUserName = lens _duUserName (\s a -> s { _duUserName = a })
 
 data DeleteUserResponse = DeleteUserResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteUserResponse' constructor.
 deleteUserResponse :: DeleteUserResponse
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
@@ -49,7 +49,7 @@
 data DeleteUserPolicy = DeleteUserPolicy
     { _dupPolicyName :: Text
     , _dupUserName   :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DeleteUserPolicy' constructor.
 --
@@ -76,7 +76,7 @@
 dupUserName = lens _dupUserName (\s a -> s { _dupUserName = a })
 
 data DeleteUserPolicyResponse = DeleteUserPolicyResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteUserPolicyResponse' constructor.
 deleteUserPolicyResponse :: DeleteUserPolicyResponse
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
@@ -50,7 +50,7 @@
 
 newtype DeleteVirtualMFADevice = DeleteVirtualMFADevice
     { _dvmfadSerialNumber :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'DeleteVirtualMFADevice' constructor.
 --
@@ -71,7 +71,7 @@
     lens _dvmfadSerialNumber (\s a -> s { _dvmfadSerialNumber = a })
 
 data DeleteVirtualMFADeviceResponse = DeleteVirtualMFADeviceResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteVirtualMFADeviceResponse' constructor.
 deleteVirtualMFADeviceResponse :: DeleteVirtualMFADeviceResponse
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
@@ -55,7 +55,7 @@
     , _emfadAuthenticationCode2 :: Text
     , _emfadSerialNumber        :: Text
     , _emfadUserName            :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'EnableMFADevice' constructor.
 --
@@ -104,7 +104,7 @@
 emfadUserName = lens _emfadUserName (\s a -> s { _emfadUserName = a })
 
 data EnableMFADeviceResponse = EnableMFADeviceResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'EnableMFADeviceResponse' constructor.
 enableMFADeviceResponse :: EnableMFADeviceResponse
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
@@ -49,7 +49,7 @@
 import qualified GHC.Exts
 
 data GenerateCredentialReport = GenerateCredentialReport
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'GenerateCredentialReport' constructor.
 generateCredentialReport :: GenerateCredentialReport
@@ -58,7 +58,7 @@
 data GenerateCredentialReportResponse = GenerateCredentialReportResponse
     { _gcrrDescription :: Maybe Text
     , _gcrrState       :: Maybe ReportStateType
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'GenerateCredentialReportResponse' constructor.
 --
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
@@ -63,7 +63,7 @@
     { _gaadFilter   :: List "member" EntityType
     , _gaadMarker   :: Maybe Text
     , _gaadMaxItems :: Maybe Nat
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'GetAccountAuthorizationDetails' constructor.
 --
@@ -105,7 +105,7 @@
     , _gaadrMarker          :: Maybe Text
     , _gaadrRoleDetailList  :: List "member" RoleDetail
     , _gaadrUserDetailList  :: List "member" UserDetail
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'GetAccountAuthorizationDetailsResponse' 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
@@ -47,7 +47,7 @@
 import qualified GHC.Exts
 
 data GetAccountPasswordPolicy = GetAccountPasswordPolicy
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'GetAccountPasswordPolicy' constructor.
 getAccountPasswordPolicy :: GetAccountPasswordPolicy
@@ -55,7 +55,7 @@
 
 newtype GetAccountPasswordPolicyResponse = GetAccountPasswordPolicyResponse
     { _gapprPasswordPolicy :: PasswordPolicy
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'GetAccountPasswordPolicyResponse' constructor.
 --
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
@@ -48,7 +48,7 @@
 import qualified GHC.Exts
 
 data GetAccountSummary = GetAccountSummary
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'GetAccountSummary' constructor.
 getAccountSummary :: GetAccountSummary
@@ -56,7 +56,7 @@
 
 newtype GetAccountSummaryResponse = GetAccountSummaryResponse
     { _gasrSummaryMap :: EMap "entry" "key" "value" SummaryKeyType Int
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 -- | 'GetAccountSummaryResponse' constructor.
 --
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
@@ -50,7 +50,7 @@
 import qualified GHC.Exts
 
 data GetCredentialReport = GetCredentialReport
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'GetCredentialReport' constructor.
 getCredentialReport :: GetCredentialReport
@@ -60,7 +60,7 @@
     { _gcrrContent       :: Maybe Base64
     , _gcrrGeneratedTime :: Maybe ISO8601
     , _gcrrReportFormat  :: Maybe ReportFormatType
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'GetCredentialReportResponse' constructor.
 --
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
@@ -57,7 +57,7 @@
     { _ggGroupName :: Text
     , _ggMarker    :: Maybe Text
     , _ggMaxItems  :: Maybe Nat
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'GetGroup' constructor.
 --
@@ -99,7 +99,7 @@
     , _ggrIsTruncated :: Maybe Bool
     , _ggrMarker      :: Maybe Text
     , _ggrUsers       :: List "member" User
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'GetGroupResponse' constructor.
 --
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
@@ -55,7 +55,7 @@
 data GetGroupPolicy = GetGroupPolicy
     { _ggpGroupName  :: Text
     , _ggpPolicyName :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'GetGroupPolicy' constructor.
 --
@@ -85,7 +85,7 @@
     { _ggprGroupName      :: Text
     , _ggprPolicyDocument :: Text
     , _ggprPolicyName     :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'GetGroupPolicyResponse' constructor.
 --
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
@@ -52,7 +52,7 @@
 
 newtype GetInstanceProfile = GetInstanceProfile
     { _gipInstanceProfileName :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'GetInstanceProfile' constructor.
 --
@@ -73,7 +73,7 @@
 
 newtype GetInstanceProfileResponse = GetInstanceProfileResponse
     { _giprInstanceProfile :: InstanceProfile
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'GetInstanceProfileResponse' constructor.
 --
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
@@ -50,7 +50,7 @@
 
 newtype GetLoginProfile = GetLoginProfile
     { _glpUserName :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'GetLoginProfile' constructor.
 --
@@ -70,7 +70,7 @@
 
 newtype GetLoginProfileResponse = GetLoginProfileResponse
     { _glprLoginProfile :: LoginProfile
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'GetLoginProfileResponse' constructor.
 --
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
@@ -52,7 +52,7 @@
 
 newtype GetOpenIDConnectProvider = GetOpenIDConnectProvider
     { _goidcpOpenIDConnectProviderArn :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'GetOpenIDConnectProvider' constructor.
 --
@@ -78,7 +78,7 @@
     , _goidcprCreateDate     :: Maybe ISO8601
     , _goidcprThumbprintList :: List "member" Text
     , _goidcprUrl            :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'GetOpenIDConnectProviderResponse' constructor.
 --
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
@@ -54,7 +54,7 @@
 
 newtype GetRole = GetRole
     { _grRoleName :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'GetRole' constructor.
 --
@@ -74,7 +74,7 @@
 
 newtype GetRoleResponse = GetRoleResponse
     { _grrRole :: Role
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'GetRoleResponse' constructor.
 --
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
@@ -57,7 +57,7 @@
 data GetRolePolicy = GetRolePolicy
     { _grpPolicyName :: Text
     , _grpRoleName   :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'GetRolePolicy' constructor.
 --
@@ -87,7 +87,7 @@
     { _grprPolicyDocument :: Text
     , _grprPolicyName     :: Text
     , _grprRoleName       :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'GetRolePolicyResponse' constructor.
 --
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
@@ -54,7 +54,7 @@
 
 newtype GetSAMLProvider = GetSAMLProvider
     { _gsamlpSAMLProviderArn :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'GetSAMLProvider' constructor.
 --
@@ -77,7 +77,7 @@
     { _gsamlprCreateDate           :: Maybe ISO8601
     , _gsamlprSAMLMetadataDocument :: Maybe Text
     , _gsamlprValidUntil           :: Maybe ISO8601
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'GetSAMLProviderResponse' constructor.
 --
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
@@ -49,7 +49,7 @@
 
 newtype GetServerCertificate = GetServerCertificate
     { _gscServerCertificateName :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'GetServerCertificate' constructor.
 --
@@ -71,7 +71,7 @@
 
 newtype GetServerCertificateResponse = GetServerCertificateResponse
     { _gscrServerCertificate :: ServerCertificate
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'GetServerCertificateResponse' constructor.
 --
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
@@ -53,7 +53,7 @@
 
 newtype GetUser = GetUser
     { _guUserName :: Maybe Text
-    } deriving (Eq, Ord, Show, Monoid)
+    } deriving (Eq, Ord, Read, Show, Monoid)
 
 -- | 'GetUser' constructor.
 --
@@ -75,7 +75,7 @@
 
 newtype GetUserResponse = GetUserResponse
     { _gurUser :: User
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'GetUserResponse' constructor.
 --
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
@@ -55,7 +55,7 @@
 data GetUserPolicy = GetUserPolicy
     { _gupPolicyName :: Text
     , _gupUserName   :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'GetUserPolicy' constructor.
 --
@@ -85,7 +85,7 @@
     { _guprPolicyDocument :: Text
     , _guprPolicyName     :: Text
     , _guprUserName       :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'GetUserPolicyResponse' constructor.
 --
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
@@ -68,7 +68,7 @@
     { _lakMarker   :: Maybe Text
     , _lakMaxItems :: Maybe Nat
     , _lakUserName :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'ListAccessKeys' constructor.
 --
@@ -108,7 +108,7 @@
     { _lakrAccessKeyMetadata :: List "member" AccessKeyMetadata
     , _lakrIsTruncated       :: Maybe Bool
     , _lakrMarker            :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ListAccessKeysResponse' constructor.
 --
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
@@ -56,7 +56,7 @@
 data ListAccountAliases = ListAccountAliases
     { _laaMarker   :: Maybe Text
     , _laaMaxItems :: Maybe Nat
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'ListAccountAliases' constructor.
 --
@@ -88,7 +88,7 @@
     { _laarAccountAliases :: List "member" Text
     , _laarIsTruncated    :: Maybe Bool
     , _laarMarker         :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'ListAccountAliasesResponse' constructor.
 --
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
@@ -58,7 +58,7 @@
     { _lgpGroupName :: Text
     , _lgpMarker    :: Maybe Text
     , _lgpMaxItems  :: Maybe Nat
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'ListGroupPolicies' constructor.
 --
@@ -99,7 +99,7 @@
     { _lgprIsTruncated :: Maybe Bool
     , _lgprMarker      :: Maybe Text
     , _lgprPolicyNames :: List "member" Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'ListGroupPoliciesResponse' constructor.
 --
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
@@ -57,7 +57,7 @@
     { _lgMarker     :: Maybe Text
     , _lgMaxItems   :: Maybe Nat
     , _lgPathPrefix :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'ListGroups' constructor.
 --
@@ -100,7 +100,7 @@
     { _lgrGroups      :: List "member" Group
     , _lgrIsTruncated :: Maybe Bool
     , _lgrMarker      :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ListGroupsResponse' constructor.
 --
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
@@ -57,7 +57,7 @@
     { _lgfuMarker   :: Maybe Text
     , _lgfuMaxItems :: Maybe Nat
     , _lgfuUserName :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'ListGroupsForUser' constructor.
 --
@@ -98,7 +98,7 @@
     { _lgfurGroups      :: List "member" Group
     , _lgfurIsTruncated :: Maybe Bool
     , _lgfurMarker      :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ListGroupsForUserResponse' constructor.
 --
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
@@ -59,7 +59,7 @@
     { _lipMarker     :: Maybe Text
     , _lipMaxItems   :: Maybe Nat
     , _lipPathPrefix :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'ListInstanceProfiles' constructor.
 --
@@ -103,7 +103,7 @@
     { _liprInstanceProfiles :: List "member" InstanceProfile
     , _liprIsTruncated      :: Maybe Bool
     , _liprMarker           :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ListInstanceProfilesResponse' constructor.
 --
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
@@ -59,7 +59,7 @@
     { _lipfrMarker   :: Maybe Text
     , _lipfrMaxItems :: Maybe Nat
     , _lipfrRoleName :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'ListInstanceProfilesForRole' constructor.
 --
@@ -101,7 +101,7 @@
     { _lipfrrInstanceProfiles :: List "member" InstanceProfile
     , _lipfrrIsTruncated      :: Maybe Bool
     , _lipfrrMarker           :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ListInstanceProfilesForRoleResponse' 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
@@ -60,7 +60,7 @@
     { _lmfadMarker   :: Maybe Text
     , _lmfadMaxItems :: Maybe Nat
     , _lmfadUserName :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'ListMFADevices' constructor.
 --
@@ -100,7 +100,7 @@
     { _lmfadrIsTruncated :: Maybe Bool
     , _lmfadrMFADevices  :: List "member" MFADevice
     , _lmfadrMarker      :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ListMFADevicesResponse' constructor.
 --
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
@@ -46,7 +46,7 @@
 import qualified GHC.Exts
 
 data ListOpenIDConnectProviders = ListOpenIDConnectProviders
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'ListOpenIDConnectProviders' constructor.
 listOpenIDConnectProviders :: ListOpenIDConnectProviders
@@ -54,7 +54,7 @@
 
 newtype ListOpenIDConnectProvidersResponse = ListOpenIDConnectProvidersResponse
     { _loidcprOpenIDConnectProviderList :: List "member" OpenIDConnectProviderListEntry
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 instance GHC.Exts.IsList ListOpenIDConnectProvidersResponse where
     type Item ListOpenIDConnectProvidersResponse = OpenIDConnectProviderListEntry
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
@@ -58,7 +58,7 @@
     { _lrpMarker   :: Maybe Text
     , _lrpMaxItems :: Maybe Nat
     , _lrpRoleName :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'ListRolePolicies' constructor.
 --
@@ -100,7 +100,7 @@
     { _lrprIsTruncated :: Maybe Bool
     , _lrprMarker      :: Maybe Text
     , _lrprPolicyNames :: List "member" Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'ListRolePoliciesResponse' constructor.
 --
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
@@ -61,7 +61,7 @@
     { _lrMarker     :: Maybe Text
     , _lrMaxItems   :: Maybe Nat
     , _lrPathPrefix :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'ListRoles' constructor.
 --
@@ -104,7 +104,7 @@
     { _lrrIsTruncated :: Maybe Bool
     , _lrrMarker      :: Maybe Text
     , _lrrRoles       :: List "member" Role
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ListRolesResponse' constructor.
 --
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
@@ -48,7 +48,7 @@
 import qualified GHC.Exts
 
 data ListSAMLProviders = ListSAMLProviders
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'ListSAMLProviders' constructor.
 listSAMLProviders :: ListSAMLProviders
@@ -56,7 +56,7 @@
 
 newtype ListSAMLProvidersResponse = ListSAMLProvidersResponse
     { _lsamlprSAMLProviderList :: List "member" SAMLProviderListEntry
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 instance GHC.Exts.IsList ListSAMLProvidersResponse where
     type Item ListSAMLProvidersResponse = SAMLProviderListEntry
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
@@ -58,7 +58,7 @@
     { _lscMarker     :: Maybe Text
     , _lscMaxItems   :: Maybe Nat
     , _lscPathPrefix :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'ListServerCertificates' constructor.
 --
@@ -103,7 +103,7 @@
     { _lscrIsTruncated                   :: Maybe Bool
     , _lscrMarker                        :: Maybe Text
     , _lscrServerCertificateMetadataList :: List "member" ServerCertificateMetadata
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ListServerCertificatesResponse' constructor.
 --
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
@@ -65,7 +65,7 @@
     { _lsc1Marker   :: Maybe Text
     , _lsc1MaxItems :: Maybe Nat
     , _lsc1UserName :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'ListSigningCertificates' constructor.
 --
@@ -105,7 +105,7 @@
     { _lscr1Certificates :: List "member" SigningCertificate
     , _lscr1IsTruncated  :: Maybe Bool
     , _lscr1Marker       :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ListSigningCertificatesResponse' constructor.
 --
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
@@ -58,7 +58,7 @@
     { _lupMarker   :: Maybe Text
     , _lupMaxItems :: Maybe Nat
     , _lupUserName :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'ListUserPolicies' constructor.
 --
@@ -99,7 +99,7 @@
     { _luprIsTruncated :: Maybe Bool
     , _luprMarker      :: Maybe Text
     , _luprPolicyNames :: List "member" Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'ListUserPoliciesResponse' constructor.
 --
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
@@ -59,7 +59,7 @@
     { _luMarker     :: Maybe Text
     , _luMaxItems   :: Maybe Nat
     , _luPathPrefix :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'ListUsers' constructor.
 --
@@ -102,7 +102,7 @@
     { _lurIsTruncated :: Maybe Bool
     , _lurMarker      :: Maybe Text
     , _lurUsers       :: List "member" User
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ListUsersResponse' constructor.
 --
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
@@ -59,7 +59,7 @@
     { _lvmfadAssignmentStatus :: Maybe AssignmentStatusType
     , _lvmfadMarker           :: Maybe Text
     , _lvmfadMaxItems         :: Maybe Nat
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ListVirtualMFADevices' constructor.
 --
@@ -101,7 +101,7 @@
     { _lvmfadrIsTruncated       :: Maybe Bool
     , _lvmfadrMarker            :: Maybe Text
     , _lvmfadrVirtualMFADevices :: List "member" VirtualMFADevice
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ListVirtualMFADevicesResponse' constructor.
 --
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
@@ -61,7 +61,7 @@
     { _pgpGroupName      :: Text
     , _pgpPolicyDocument :: Text
     , _pgpPolicyName     :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'PutGroupPolicy' constructor.
 --
@@ -97,7 +97,7 @@
 pgpPolicyName = lens _pgpPolicyName (\s a -> s { _pgpPolicyName = a })
 
 data PutGroupPolicyResponse = PutGroupPolicyResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'PutGroupPolicyResponse' constructor.
 putGroupPolicyResponse :: PutGroupPolicyResponse
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
@@ -61,7 +61,7 @@
     { _prpPolicyDocument :: Text
     , _prpPolicyName     :: Text
     , _prpRoleName       :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'PutRolePolicy' constructor.
 --
@@ -97,7 +97,7 @@
 prpRoleName = lens _prpRoleName (\s a -> s { _prpRoleName = a })
 
 data PutRolePolicyResponse = PutRolePolicyResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'PutRolePolicyResponse' constructor.
 putRolePolicyResponse :: PutRolePolicyResponse
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
@@ -61,7 +61,7 @@
     { _pupPolicyDocument :: Text
     , _pupPolicyName     :: Text
     , _pupUserName       :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'PutUserPolicy' constructor.
 --
@@ -97,7 +97,7 @@
 pupUserName = lens _pupUserName (\s a -> s { _pupUserName = a })
 
 data PutUserPolicyResponse = PutUserPolicyResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'PutUserPolicyResponse' constructor.
 putUserPolicyResponse :: PutUserPolicyResponse
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
@@ -53,7 +53,7 @@
 data RemoveClientIDFromOpenIDConnectProvider = RemoveClientIDFromOpenIDConnectProvider
     { _rcidfoidcpClientID                 :: Text
     , _rcidfoidcpOpenIDConnectProviderArn :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'RemoveClientIDFromOpenIDConnectProvider' constructor.
 --
@@ -86,7 +86,7 @@
         (\s a -> s { _rcidfoidcpOpenIDConnectProviderArn = a })
 
 data RemoveClientIDFromOpenIDConnectProviderResponse = RemoveClientIDFromOpenIDConnectProviderResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'RemoveClientIDFromOpenIDConnectProviderResponse' constructor.
 removeClientIDFromOpenIDConnectProviderResponse :: RemoveClientIDFromOpenIDConnectProviderResponse
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
@@ -55,7 +55,7 @@
 data RemoveRoleFromInstanceProfile = RemoveRoleFromInstanceProfile
     { _rrfipInstanceProfileName :: Text
     , _rrfipRoleName            :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'RemoveRoleFromInstanceProfile' constructor.
 --
@@ -84,7 +84,7 @@
 rrfipRoleName = lens _rrfipRoleName (\s a -> s { _rrfipRoleName = a })
 
 data RemoveRoleFromInstanceProfileResponse = RemoveRoleFromInstanceProfileResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'RemoveRoleFromInstanceProfileResponse' constructor.
 removeRoleFromInstanceProfileResponse :: RemoveRoleFromInstanceProfileResponse
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
@@ -49,7 +49,7 @@
 data RemoveUserFromGroup = RemoveUserFromGroup
     { _rufgGroupName :: Text
     , _rufgUserName  :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'RemoveUserFromGroup' constructor.
 --
@@ -76,7 +76,7 @@
 rufgUserName = lens _rufgUserName (\s a -> s { _rufgUserName = a })
 
 data RemoveUserFromGroupResponse = RemoveUserFromGroupResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'RemoveUserFromGroupResponse' constructor.
 removeUserFromGroupResponse :: RemoveUserFromGroupResponse
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
@@ -56,7 +56,7 @@
     , _rmfadAuthenticationCode2 :: Text
     , _rmfadSerialNumber        :: Text
     , _rmfadUserName            :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'ResyncMFADevice' constructor.
 --
@@ -104,7 +104,7 @@
 rmfadUserName = lens _rmfadUserName (\s a -> s { _rmfadUserName = a })
 
 data ResyncMFADeviceResponse = ResyncMFADeviceResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'ResyncMFADeviceResponse' constructor.
 resyncMFADeviceResponse :: ResyncMFADeviceResponse
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
@@ -275,7 +275,7 @@
     = Any        -- ^ Any
     | Assigned   -- ^ Assigned
     | Unassigned -- ^ Unassigned
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable AssignmentStatusType
 
@@ -311,7 +311,7 @@
     , _ppRequireNumbers             :: Maybe Bool
     , _ppRequireSymbols             :: Maybe Bool
     , _ppRequireUppercaseCharacters :: Maybe Bool
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'PasswordPolicy' constructor.
 --
@@ -439,7 +439,7 @@
     , _gGroupId    :: Text
     , _gGroupName  :: Text
     , _gPath       :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'Group' constructor.
 --
@@ -513,7 +513,7 @@
     { _mfadEnableDate   :: ISO8601
     , _mfadSerialNumber :: Text
     , _mfadUserName     :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'MFADevice' constructor.
 --
@@ -568,7 +568,7 @@
     , _ipInstanceProfileName :: Text
     , _ipPath                :: Text
     , _ipRoles               :: List "member" Role
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'InstanceProfile' constructor.
 --
@@ -658,7 +658,7 @@
     , _rdRoleId                   :: Maybe Text
     , _rdRoleName                 :: Maybe Text
     , _rdRolePolicyList           :: List "member" PolicyDetail
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'RoleDetail' constructor.
 --
@@ -755,7 +755,7 @@
 
 data ReportFormatType
     = TextCsv -- ^ text/csv
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable ReportFormatType
 
@@ -782,7 +782,7 @@
     , _scmServerCertificateId   :: Text
     , _scmServerCertificateName :: Text
     , _scmUploadDate            :: Maybe ISO8601
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'ServerCertificateMetadata' constructor.
 --
@@ -865,7 +865,7 @@
 
 newtype OpenIDConnectProviderListEntry = OpenIDConnectProviderListEntry
     { _oidcpleArn :: Maybe Text
-    } deriving (Eq, Ord, Show, Monoid)
+    } deriving (Eq, Ord, Read, Show, Monoid)
 
 -- | 'OpenIDConnectProviderListEntry' constructor.
 --
@@ -894,7 +894,7 @@
     { _lpCreateDate            :: ISO8601
     , _lpPasswordResetRequired :: Maybe Bool
     , _lpUserName              :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'LoginProfile' constructor.
 --
@@ -946,7 +946,7 @@
     = ETGroup -- ^ Group
     | ETRole  -- ^ Role
     | ETUser  -- ^ User
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable EntityType
 
@@ -986,7 +986,7 @@
     | UserPolicySizeQuota             -- ^ UserPolicySizeQuota
     | Users                           -- ^ Users
     | UsersQuota                      -- ^ UsersQuota
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable SummaryKeyType
 
@@ -1040,7 +1040,7 @@
     , _gdGroupName       :: Maybe Text
     , _gdGroupPolicyList :: List "member" PolicyDetail
     , _gdPath            :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'GroupDetail' constructor.
 --
@@ -1118,7 +1118,7 @@
     = Complete   -- ^ COMPLETE
     | Inprogress -- ^ INPROGRESS
     | Started    -- ^ STARTED
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable ReportStateType
 
@@ -1150,7 +1150,7 @@
     , _uPath             :: Text
     , _uUserId           :: Text
     , _uUserName         :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'User' constructor.
 --
@@ -1242,7 +1242,7 @@
 data PolicyDetail = PolicyDetail
     { _pdPolicyDocument :: Maybe Text
     , _pdPolicyName     :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'PolicyDetail' constructor.
 --
@@ -1282,7 +1282,7 @@
 data StatusType
     = Active   -- ^ Active
     | Inactive -- ^ Inactive
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable StatusType
 
@@ -1309,7 +1309,7 @@
     { _samlpleArn        :: Maybe Text
     , _samlpleCreateDate :: Maybe ISO8601
     , _samlpleValidUntil :: Maybe ISO8601
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'SAMLProviderListEntry' constructor.
 --
@@ -1364,7 +1364,7 @@
     , _rPath                     :: Text
     , _rRoleId                   :: Text
     , _rRoleName                 :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'Role' constructor.
 --
@@ -1455,7 +1455,7 @@
     , _udUserId         :: Maybe Text
     , _udUserName       :: Maybe Text
     , _udUserPolicyList :: List "member" PolicyDetail
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'UserDetail' constructor.
 --
@@ -1540,7 +1540,7 @@
     { _scCertificateBody           :: Text
     , _scCertificateChain          :: Maybe Text
     , _scServerCertificateMetadata :: ServerCertificateMetadata
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ServerCertificate' constructor.
 --
@@ -1597,7 +1597,7 @@
     , _akSecretAccessKey :: Sensitive Text
     , _akStatus          :: StatusType
     , _akUserName        :: Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'AccessKey' constructor.
 --
@@ -1672,7 +1672,7 @@
     , _vmfadQRCodePNG        :: Maybe Base64
     , _vmfadSerialNumber     :: Text
     , _vmfadUser             :: Maybe User
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'VirtualMFADevice' constructor.
 --
@@ -1744,7 +1744,7 @@
     , _sc1Status          :: StatusType
     , _sc1UploadDate      :: Maybe ISO8601
     , _sc1UserName        :: Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'SigningCertificate' constructor.
 --
@@ -1817,7 +1817,7 @@
     , _akmCreateDate  :: Maybe ISO8601
     , _akmStatus      :: Maybe StatusType
     , _akmUserName    :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'AccessKeyMetadata' constructor.
 --
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
@@ -62,7 +62,7 @@
     { _uakAccessKeyId :: Text
     , _uakStatus      :: StatusType
     , _uakUserName    :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'UpdateAccessKey' constructor.
 --
@@ -98,7 +98,7 @@
 uakUserName = lens _uakUserName (\s a -> s { _uakUserName = a })
 
 data UpdateAccessKeyResponse = UpdateAccessKeyResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'UpdateAccessKeyResponse' constructor.
 updateAccessKeyResponse :: UpdateAccessKeyResponse
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
@@ -70,7 +70,7 @@
     , _uappRequireNumbers             :: Maybe Bool
     , _uappRequireSymbols             :: Maybe Bool
     , _uappRequireUppercaseCharacters :: Maybe Bool
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'UpdateAccountPasswordPolicy' constructor.
 --
@@ -189,7 +189,7 @@
         (\s a -> s { _uappRequireUppercaseCharacters = a })
 
 data UpdateAccountPasswordPolicyResponse = UpdateAccountPasswordPolicyResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'UpdateAccountPasswordPolicyResponse' constructor.
 updateAccountPasswordPolicyResponse :: UpdateAccountPasswordPolicyResponse
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
@@ -50,7 +50,7 @@
 data UpdateAssumeRolePolicy = UpdateAssumeRolePolicy
     { _uarpPolicyDocument :: Text
     , _uarpRoleName       :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'UpdateAssumeRolePolicy' constructor.
 --
@@ -78,7 +78,7 @@
 uarpRoleName = lens _uarpRoleName (\s a -> s { _uarpRoleName = a })
 
 data UpdateAssumeRolePolicyResponse = UpdateAssumeRolePolicyResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'UpdateAssumeRolePolicyResponse' constructor.
 updateAssumeRolePolicyResponse :: UpdateAssumeRolePolicyResponse
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
@@ -59,7 +59,7 @@
     { _ugGroupName    :: Text
     , _ugNewGroupName :: Maybe Text
     , _ugNewPath      :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'UpdateGroup' constructor.
 --
@@ -93,7 +93,7 @@
 ugNewPath = lens _ugNewPath (\s a -> s { _ugNewPath = a })
 
 data UpdateGroupResponse = UpdateGroupResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'UpdateGroupResponse' constructor.
 updateGroupResponse :: UpdateGroupResponse
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
@@ -55,7 +55,7 @@
     { _ulpPassword              :: Maybe (Sensitive Text)
     , _ulpPasswordResetRequired :: Maybe Bool
     , _ulpUserName              :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'UpdateLoginProfile' constructor.
 --
@@ -90,7 +90,7 @@
 ulpUserName = lens _ulpUserName (\s a -> s { _ulpUserName = a })
 
 data UpdateLoginProfileResponse = UpdateLoginProfileResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'UpdateLoginProfileResponse' constructor.
 updateLoginProfileResponse :: UpdateLoginProfileResponse
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
@@ -63,7 +63,7 @@
 data UpdateOpenIDConnectProviderThumbprint = UpdateOpenIDConnectProviderThumbprint
     { _uoidcptOpenIDConnectProviderArn :: Text
     , _uoidcptThumbprintList           :: List "member" Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'UpdateOpenIDConnectProviderThumbprint' constructor.
 --
@@ -97,7 +97,7 @@
         . _List
 
 data UpdateOpenIDConnectProviderThumbprintResponse = UpdateOpenIDConnectProviderThumbprintResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'UpdateOpenIDConnectProviderThumbprintResponse' constructor.
 updateOpenIDConnectProviderThumbprintResponse :: UpdateOpenIDConnectProviderThumbprintResponse
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
@@ -53,7 +53,7 @@
 data UpdateSAMLProvider = UpdateSAMLProvider
     { _usamlpSAMLMetadataDocument :: Text
     , _usamlpSAMLProviderArn      :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'UpdateSAMLProvider' constructor.
 --
@@ -89,7 +89,7 @@
 
 newtype UpdateSAMLProviderResponse = UpdateSAMLProviderResponse
     { _usamlprSAMLProviderArn :: Maybe Text
-    } deriving (Eq, Ord, Show, Monoid)
+    } deriving (Eq, Ord, Read, Show, Monoid)
 
 -- | 'UpdateSAMLProviderResponse' constructor.
 --
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
@@ -59,7 +59,7 @@
     { _usc1NewPath                  :: Maybe Text
     , _usc1NewServerCertificateName :: Maybe Text
     , _usc1ServerCertificateName    :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'UpdateServerCertificate' constructor.
 --
@@ -98,7 +98,7 @@
         (\s a -> s { _usc1ServerCertificateName = a })
 
 data UpdateServerCertificateResponse = UpdateServerCertificateResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'UpdateServerCertificateResponse' constructor.
 updateServerCertificateResponse :: UpdateServerCertificateResponse
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
@@ -61,7 +61,7 @@
     { _uscCertificateId :: Text
     , _uscStatus        :: StatusType
     , _uscUserName      :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'UpdateSigningCertificate' constructor.
 --
@@ -97,7 +97,7 @@
 uscUserName = lens _uscUserName (\s a -> s { _uscUserName = a })
 
 data UpdateSigningCertificateResponse = UpdateSigningCertificateResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'UpdateSigningCertificateResponse' constructor.
 updateSigningCertificateResponse :: UpdateSigningCertificateResponse
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
@@ -59,7 +59,7 @@
     { _uuNewPath     :: Maybe Text
     , _uuNewUserName :: Maybe Text
     , _uuUserName    :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'UpdateUser' constructor.
 --
@@ -95,7 +95,7 @@
 uuUserName = lens _uuUserName (\s a -> s { _uuUserName = a })
 
 data UpdateUserResponse = UpdateUserResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'UpdateUserResponse' constructor.
 updateUserResponse :: UpdateUserResponse
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
@@ -67,7 +67,7 @@
     , _uscPath                  :: Maybe Text
     , _uscPrivateKey            :: Sensitive Text
     , _uscServerCertificateName :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'UploadServerCertificate' constructor.
 --
@@ -130,7 +130,7 @@
 
 newtype UploadServerCertificateResponse = UploadServerCertificateResponse
     { _uscrServerCertificateMetadata :: Maybe ServerCertificateMetadata
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'UploadServerCertificateResponse' constructor.
 --
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
@@ -65,7 +65,7 @@
 data UploadSigningCertificate = UploadSigningCertificate
     { _usc1CertificateBody :: Text
     , _usc1UserName        :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'UploadSigningCertificate' constructor.
 --
@@ -93,7 +93,7 @@
 
 newtype UploadSigningCertificateResponse = UploadSigningCertificateResponse
     { _uscrCertificate :: SigningCertificate
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'UploadSigningCertificateResponse' constructor.
 --
