diff --git a/amazonka-elasticache.cabal b/amazonka-elasticache.cabal
--- a/amazonka-elasticache.cabal
+++ b/amazonka-elasticache.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-elasticache
-version:               0.2.1
+version:               0.2.2
 synopsis:              Amazon ElastiCache SDK.
 homepage:              https://github.com/brendanhay/amazonka
 license:               OtherLicense
@@ -81,5 +81,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/ElastiCache/AuthorizeCacheSecurityGroupIngress.hs b/gen/Network/AWS/ElastiCache/AuthorizeCacheSecurityGroupIngress.hs
--- a/gen/Network/AWS/ElastiCache/AuthorizeCacheSecurityGroupIngress.hs
+++ b/gen/Network/AWS/ElastiCache/AuthorizeCacheSecurityGroupIngress.hs
@@ -56,7 +56,7 @@
     { _acsgiCacheSecurityGroupName  :: Text
     , _acsgiEC2SecurityGroupName    :: Text
     , _acsgiEC2SecurityGroupOwnerId :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'AuthorizeCacheSecurityGroupIngress' constructor.
 --
@@ -101,7 +101,7 @@
 
 newtype AuthorizeCacheSecurityGroupIngressResponse = AuthorizeCacheSecurityGroupIngressResponse
     { _acsgirCacheSecurityGroup :: Maybe CacheSecurityGroup
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'AuthorizeCacheSecurityGroupIngressResponse' constructor.
 --
diff --git a/gen/Network/AWS/ElastiCache/CopySnapshot.hs b/gen/Network/AWS/ElastiCache/CopySnapshot.hs
--- a/gen/Network/AWS/ElastiCache/CopySnapshot.hs
+++ b/gen/Network/AWS/ElastiCache/CopySnapshot.hs
@@ -51,7 +51,7 @@
 data CopySnapshot = CopySnapshot
     { _csSourceSnapshotName :: Text
     , _csTargetSnapshotName :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'CopySnapshot' constructor.
 --
@@ -81,7 +81,7 @@
 
 newtype CopySnapshotResponse = CopySnapshotResponse
     { _csrSnapshot :: Maybe Snapshot
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CopySnapshotResponse' constructor.
 --
diff --git a/gen/Network/AWS/ElastiCache/CreateCacheCluster.hs b/gen/Network/AWS/ElastiCache/CreateCacheCluster.hs
--- a/gen/Network/AWS/ElastiCache/CreateCacheCluster.hs
+++ b/gen/Network/AWS/ElastiCache/CreateCacheCluster.hs
@@ -91,7 +91,7 @@
     , _cccSnapshotName               :: Maybe Text
     , _cccSnapshotRetentionLimit     :: Maybe Int
     , _cccSnapshotWindow             :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateCacheCluster' constructor.
 --
@@ -381,7 +381,7 @@
 
 newtype CreateCacheClusterResponse = CreateCacheClusterResponse
     { _cccrCacheCluster :: Maybe CacheCluster
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateCacheClusterResponse' constructor.
 --
diff --git a/gen/Network/AWS/ElastiCache/CreateCacheParameterGroup.hs b/gen/Network/AWS/ElastiCache/CreateCacheParameterGroup.hs
--- a/gen/Network/AWS/ElastiCache/CreateCacheParameterGroup.hs
+++ b/gen/Network/AWS/ElastiCache/CreateCacheParameterGroup.hs
@@ -55,7 +55,7 @@
     { _ccpgCacheParameterGroupFamily :: Text
     , _ccpgCacheParameterGroupName   :: Text
     , _ccpgDescription               :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'CreateCacheParameterGroup' constructor.
 --
@@ -98,7 +98,7 @@
 
 newtype CreateCacheParameterGroupResponse = CreateCacheParameterGroupResponse
     { _ccpgrCacheParameterGroup :: Maybe CacheParameterGroup
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateCacheParameterGroupResponse' constructor.
 --
diff --git a/gen/Network/AWS/ElastiCache/CreateCacheSecurityGroup.hs b/gen/Network/AWS/ElastiCache/CreateCacheSecurityGroup.hs
--- a/gen/Network/AWS/ElastiCache/CreateCacheSecurityGroup.hs
+++ b/gen/Network/AWS/ElastiCache/CreateCacheSecurityGroup.hs
@@ -57,7 +57,7 @@
 data CreateCacheSecurityGroup = CreateCacheSecurityGroup
     { _ccsgCacheSecurityGroupName :: Text
     , _ccsgDescription            :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'CreateCacheSecurityGroup' constructor.
 --
@@ -93,7 +93,7 @@
 
 newtype CreateCacheSecurityGroupResponse = CreateCacheSecurityGroupResponse
     { _ccsgrCacheSecurityGroup :: Maybe CacheSecurityGroup
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateCacheSecurityGroupResponse' constructor.
 --
diff --git a/gen/Network/AWS/ElastiCache/CreateCacheSubnetGroup.hs b/gen/Network/AWS/ElastiCache/CreateCacheSubnetGroup.hs
--- a/gen/Network/AWS/ElastiCache/CreateCacheSubnetGroup.hs
+++ b/gen/Network/AWS/ElastiCache/CreateCacheSubnetGroup.hs
@@ -56,7 +56,7 @@
     { _ccsgCacheSubnetGroupDescription :: Text
     , _ccsgCacheSubnetGroupName        :: Text
     , _ccsgSubnetIds                   :: List "member" Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'CreateCacheSubnetGroup' constructor.
 --
@@ -100,7 +100,7 @@
 
 newtype CreateCacheSubnetGroupResponse = CreateCacheSubnetGroupResponse
     { _ccsgrCacheSubnetGroup :: Maybe CacheSubnetGroup
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateCacheSubnetGroupResponse' constructor.
 --
diff --git a/gen/Network/AWS/ElastiCache/CreateReplicationGroup.hs b/gen/Network/AWS/ElastiCache/CreateReplicationGroup.hs
--- a/gen/Network/AWS/ElastiCache/CreateReplicationGroup.hs
+++ b/gen/Network/AWS/ElastiCache/CreateReplicationGroup.hs
@@ -99,7 +99,7 @@
     , _crgSnapshotName                :: Maybe Text
     , _crgSnapshotRetentionLimit      :: Maybe Int
     , _crgSnapshotWindow              :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'CreateReplicationGroup' constructor.
 --
@@ -372,7 +372,7 @@
 
 newtype CreateReplicationGroupResponse = CreateReplicationGroupResponse
     { _crgrReplicationGroup :: Maybe ReplicationGroup
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateReplicationGroupResponse' constructor.
 --
diff --git a/gen/Network/AWS/ElastiCache/CreateSnapshot.hs b/gen/Network/AWS/ElastiCache/CreateSnapshot.hs
--- a/gen/Network/AWS/ElastiCache/CreateSnapshot.hs
+++ b/gen/Network/AWS/ElastiCache/CreateSnapshot.hs
@@ -52,7 +52,7 @@
 data CreateSnapshot = CreateSnapshot
     { _csCacheClusterId :: Text
     , _csSnapshotName   :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'CreateSnapshot' constructor.
 --
@@ -81,7 +81,7 @@
 
 newtype CreateSnapshotResponse = CreateSnapshotResponse
     { _csr1Snapshot :: Maybe Snapshot
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateSnapshotResponse' constructor.
 --
diff --git a/gen/Network/AWS/ElastiCache/DeleteCacheCluster.hs b/gen/Network/AWS/ElastiCache/DeleteCacheCluster.hs
--- a/gen/Network/AWS/ElastiCache/DeleteCacheCluster.hs
+++ b/gen/Network/AWS/ElastiCache/DeleteCacheCluster.hs
@@ -58,7 +58,7 @@
 data DeleteCacheCluster = DeleteCacheCluster
     { _dccCacheClusterId          :: Text
     , _dccFinalSnapshotIdentifier :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DeleteCacheCluster' constructor.
 --
@@ -91,7 +91,7 @@
 
 newtype DeleteCacheClusterResponse = DeleteCacheClusterResponse
     { _dccrCacheCluster :: Maybe CacheCluster
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DeleteCacheClusterResponse' constructor.
 --
diff --git a/gen/Network/AWS/ElastiCache/DeleteCacheParameterGroup.hs b/gen/Network/AWS/ElastiCache/DeleteCacheParameterGroup.hs
--- a/gen/Network/AWS/ElastiCache/DeleteCacheParameterGroup.hs
+++ b/gen/Network/AWS/ElastiCache/DeleteCacheParameterGroup.hs
@@ -49,7 +49,7 @@
 
 newtype DeleteCacheParameterGroup = DeleteCacheParameterGroup
     { _dcpg1CacheParameterGroupName :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'DeleteCacheParameterGroup' constructor.
 --
@@ -70,7 +70,7 @@
         (\s a -> s { _dcpg1CacheParameterGroupName = a })
 
 data DeleteCacheParameterGroupResponse = DeleteCacheParameterGroupResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteCacheParameterGroupResponse' constructor.
 deleteCacheParameterGroupResponse :: DeleteCacheParameterGroupResponse
diff --git a/gen/Network/AWS/ElastiCache/DeleteCacheSecurityGroup.hs b/gen/Network/AWS/ElastiCache/DeleteCacheSecurityGroup.hs
--- a/gen/Network/AWS/ElastiCache/DeleteCacheSecurityGroup.hs
+++ b/gen/Network/AWS/ElastiCache/DeleteCacheSecurityGroup.hs
@@ -47,7 +47,7 @@
 
 newtype DeleteCacheSecurityGroup = DeleteCacheSecurityGroup
     { _dcsgCacheSecurityGroupName :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'DeleteCacheSecurityGroup' constructor.
 --
@@ -68,7 +68,7 @@
         (\s a -> s { _dcsgCacheSecurityGroupName = a })
 
 data DeleteCacheSecurityGroupResponse = DeleteCacheSecurityGroupResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteCacheSecurityGroupResponse' constructor.
 deleteCacheSecurityGroupResponse :: DeleteCacheSecurityGroupResponse
diff --git a/gen/Network/AWS/ElastiCache/DeleteCacheSubnetGroup.hs b/gen/Network/AWS/ElastiCache/DeleteCacheSubnetGroup.hs
--- a/gen/Network/AWS/ElastiCache/DeleteCacheSubnetGroup.hs
+++ b/gen/Network/AWS/ElastiCache/DeleteCacheSubnetGroup.hs
@@ -47,7 +47,7 @@
 
 newtype DeleteCacheSubnetGroup = DeleteCacheSubnetGroup
     { _dcsg1CacheSubnetGroupName :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'DeleteCacheSubnetGroup' constructor.
 --
@@ -71,7 +71,7 @@
         (\s a -> s { _dcsg1CacheSubnetGroupName = a })
 
 data DeleteCacheSubnetGroupResponse = DeleteCacheSubnetGroupResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteCacheSubnetGroupResponse' constructor.
 deleteCacheSubnetGroupResponse :: DeleteCacheSubnetGroupResponse
diff --git a/gen/Network/AWS/ElastiCache/DeleteReplicationGroup.hs b/gen/Network/AWS/ElastiCache/DeleteReplicationGroup.hs
--- a/gen/Network/AWS/ElastiCache/DeleteReplicationGroup.hs
+++ b/gen/Network/AWS/ElastiCache/DeleteReplicationGroup.hs
@@ -60,7 +60,7 @@
     { _drgFinalSnapshotIdentifier :: Maybe Text
     , _drgReplicationGroupId      :: Text
     , _drgRetainPrimaryCluster    :: Maybe Bool
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DeleteReplicationGroup' constructor.
 --
@@ -103,7 +103,7 @@
 
 newtype DeleteReplicationGroupResponse = DeleteReplicationGroupResponse
     { _drgrReplicationGroup :: Maybe ReplicationGroup
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DeleteReplicationGroupResponse' constructor.
 --
diff --git a/gen/Network/AWS/ElastiCache/DeleteSnapshot.hs b/gen/Network/AWS/ElastiCache/DeleteSnapshot.hs
--- a/gen/Network/AWS/ElastiCache/DeleteSnapshot.hs
+++ b/gen/Network/AWS/ElastiCache/DeleteSnapshot.hs
@@ -51,7 +51,7 @@
 
 newtype DeleteSnapshot = DeleteSnapshot
     { _ds1SnapshotName :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'DeleteSnapshot' constructor.
 --
@@ -71,7 +71,7 @@
 
 newtype DeleteSnapshotResponse = DeleteSnapshotResponse
     { _dsrSnapshot :: Maybe Snapshot
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DeleteSnapshotResponse' constructor.
 --
diff --git a/gen/Network/AWS/ElastiCache/DescribeCacheClusters.hs b/gen/Network/AWS/ElastiCache/DescribeCacheClusters.hs
--- a/gen/Network/AWS/ElastiCache/DescribeCacheClusters.hs
+++ b/gen/Network/AWS/ElastiCache/DescribeCacheClusters.hs
@@ -76,7 +76,7 @@
     , _dcc1Marker            :: Maybe Text
     , _dcc1MaxRecords        :: Maybe Int
     , _dcc1ShowCacheNodeInfo :: Maybe Bool
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DescribeCacheClusters' constructor.
 --
@@ -131,7 +131,7 @@
 data DescribeCacheClustersResponse = DescribeCacheClustersResponse
     { _dccrCacheClusters :: List "member" CacheCluster
     , _dccrMarker        :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeCacheClustersResponse' constructor.
 --
diff --git a/gen/Network/AWS/ElastiCache/DescribeCacheEngineVersions.hs b/gen/Network/AWS/ElastiCache/DescribeCacheEngineVersions.hs
--- a/gen/Network/AWS/ElastiCache/DescribeCacheEngineVersions.hs
+++ b/gen/Network/AWS/ElastiCache/DescribeCacheEngineVersions.hs
@@ -61,7 +61,7 @@
     , _dcevEngineVersion             :: Maybe Text
     , _dcevMarker                    :: Maybe Text
     , _dcevMaxRecords                :: Maybe Int
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DescribeCacheEngineVersions' constructor.
 --
@@ -136,7 +136,7 @@
 data DescribeCacheEngineVersionsResponse = DescribeCacheEngineVersionsResponse
     { _dcevrCacheEngineVersions :: List "member" CacheEngineVersion
     , _dcevrMarker              :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeCacheEngineVersionsResponse' constructor.
 --
diff --git a/gen/Network/AWS/ElastiCache/DescribeCacheParameterGroups.hs b/gen/Network/AWS/ElastiCache/DescribeCacheParameterGroups.hs
--- a/gen/Network/AWS/ElastiCache/DescribeCacheParameterGroups.hs
+++ b/gen/Network/AWS/ElastiCache/DescribeCacheParameterGroups.hs
@@ -56,7 +56,7 @@
     { _dcpgCacheParameterGroupName :: Maybe Text
     , _dcpgMarker                  :: Maybe Text
     , _dcpgMaxRecords              :: Maybe Int
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DescribeCacheParameterGroups' constructor.
 --
@@ -101,7 +101,7 @@
 data DescribeCacheParameterGroupsResponse = DescribeCacheParameterGroupsResponse
     { _dcpgrCacheParameterGroups :: List "member" CacheParameterGroup
     , _dcpgrMarker               :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeCacheParameterGroupsResponse' constructor.
 --
diff --git a/gen/Network/AWS/ElastiCache/DescribeCacheParameters.hs b/gen/Network/AWS/ElastiCache/DescribeCacheParameters.hs
--- a/gen/Network/AWS/ElastiCache/DescribeCacheParameters.hs
+++ b/gen/Network/AWS/ElastiCache/DescribeCacheParameters.hs
@@ -58,7 +58,7 @@
     , _dcpMarker                  :: Maybe Text
     , _dcpMaxRecords              :: Maybe Int
     , _dcpSource                  :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DescribeCacheParameters' constructor.
 --
@@ -114,7 +114,7 @@
     { _dcprCacheNodeTypeSpecificParameters :: List "member" CacheNodeTypeSpecificParameter
     , _dcprMarker                          :: Maybe Text
     , _dcprParameters                      :: List "member" Parameter
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeCacheParametersResponse' constructor.
 --
diff --git a/gen/Network/AWS/ElastiCache/DescribeCacheSecurityGroups.hs b/gen/Network/AWS/ElastiCache/DescribeCacheSecurityGroups.hs
--- a/gen/Network/AWS/ElastiCache/DescribeCacheSecurityGroups.hs
+++ b/gen/Network/AWS/ElastiCache/DescribeCacheSecurityGroups.hs
@@ -56,7 +56,7 @@
     { _dcsg1CacheSecurityGroupName :: Maybe Text
     , _dcsg1Marker                 :: Maybe Text
     , _dcsg1MaxRecords             :: Maybe Int
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DescribeCacheSecurityGroups' constructor.
 --
@@ -101,7 +101,7 @@
 data DescribeCacheSecurityGroupsResponse = DescribeCacheSecurityGroupsResponse
     { _dcsgr1CacheSecurityGroups :: List "member" CacheSecurityGroup
     , _dcsgr1Marker              :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeCacheSecurityGroupsResponse' constructor.
 --
diff --git a/gen/Network/AWS/ElastiCache/DescribeCacheSubnetGroups.hs b/gen/Network/AWS/ElastiCache/DescribeCacheSubnetGroups.hs
--- a/gen/Network/AWS/ElastiCache/DescribeCacheSubnetGroups.hs
+++ b/gen/Network/AWS/ElastiCache/DescribeCacheSubnetGroups.hs
@@ -56,7 +56,7 @@
     { _dcsgCacheSubnetGroupName :: Maybe Text
     , _dcsgMarker               :: Maybe Text
     , _dcsgMaxRecords           :: Maybe Int
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DescribeCacheSubnetGroups' constructor.
 --
@@ -101,7 +101,7 @@
 data DescribeCacheSubnetGroupsResponse = DescribeCacheSubnetGroupsResponse
     { _dcsgrCacheSubnetGroups :: List "member" CacheSubnetGroup
     , _dcsgrMarker            :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeCacheSubnetGroupsResponse' constructor.
 --
diff --git a/gen/Network/AWS/ElastiCache/DescribeEngineDefaultParameters.hs b/gen/Network/AWS/ElastiCache/DescribeEngineDefaultParameters.hs
--- a/gen/Network/AWS/ElastiCache/DescribeEngineDefaultParameters.hs
+++ b/gen/Network/AWS/ElastiCache/DescribeEngineDefaultParameters.hs
@@ -54,7 +54,7 @@
     { _dedpCacheParameterGroupFamily :: Text
     , _dedpMarker                    :: Maybe Text
     , _dedpMaxRecords                :: Maybe Int
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DescribeEngineDefaultParameters' constructor.
 --
@@ -100,7 +100,7 @@
 
 newtype DescribeEngineDefaultParametersResponse = DescribeEngineDefaultParametersResponse
     { _dedprEngineDefaults :: EngineDefaults
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeEngineDefaultParametersResponse' constructor.
 --
diff --git a/gen/Network/AWS/ElastiCache/DescribeEvents.hs b/gen/Network/AWS/ElastiCache/DescribeEvents.hs
--- a/gen/Network/AWS/ElastiCache/DescribeEvents.hs
+++ b/gen/Network/AWS/ElastiCache/DescribeEvents.hs
@@ -68,7 +68,7 @@
     , _deSourceIdentifier :: Maybe Text
     , _deSourceType       :: Maybe SourceType
     , _deStartTime        :: Maybe ISO8601
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeEvents' constructor.
 --
@@ -146,7 +146,7 @@
 data DescribeEventsResponse = DescribeEventsResponse
     { _derEvents :: List "member" Event
     , _derMarker :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeEventsResponse' constructor.
 --
diff --git a/gen/Network/AWS/ElastiCache/DescribeReplicationGroups.hs b/gen/Network/AWS/ElastiCache/DescribeReplicationGroups.hs
--- a/gen/Network/AWS/ElastiCache/DescribeReplicationGroups.hs
+++ b/gen/Network/AWS/ElastiCache/DescribeReplicationGroups.hs
@@ -55,7 +55,7 @@
     { _drg1Marker             :: Maybe Text
     , _drg1MaxRecords         :: Maybe Int
     , _drg1ReplicationGroupId :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DescribeReplicationGroups' constructor.
 --
@@ -103,7 +103,7 @@
 data DescribeReplicationGroupsResponse = DescribeReplicationGroupsResponse
     { _drgrMarker            :: Maybe Text
     , _drgrReplicationGroups :: List "member" ReplicationGroup
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeReplicationGroupsResponse' constructor.
 --
diff --git a/gen/Network/AWS/ElastiCache/DescribeReservedCacheNodes.hs b/gen/Network/AWS/ElastiCache/DescribeReservedCacheNodes.hs
--- a/gen/Network/AWS/ElastiCache/DescribeReservedCacheNodes.hs
+++ b/gen/Network/AWS/ElastiCache/DescribeReservedCacheNodes.hs
@@ -65,7 +65,7 @@
     , _drcnProductDescription           :: Maybe Text
     , _drcnReservedCacheNodeId          :: Maybe Text
     , _drcnReservedCacheNodesOfferingId :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DescribeReservedCacheNodes' constructor.
 --
@@ -158,7 +158,7 @@
 data DescribeReservedCacheNodesResponse = DescribeReservedCacheNodesResponse
     { _drcnrMarker             :: Maybe Text
     , _drcnrReservedCacheNodes :: List "member" ReservedCacheNode
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeReservedCacheNodesResponse' constructor.
 --
diff --git a/gen/Network/AWS/ElastiCache/DescribeReservedCacheNodesOfferings.hs b/gen/Network/AWS/ElastiCache/DescribeReservedCacheNodesOfferings.hs
--- a/gen/Network/AWS/ElastiCache/DescribeReservedCacheNodesOfferings.hs
+++ b/gen/Network/AWS/ElastiCache/DescribeReservedCacheNodesOfferings.hs
@@ -63,7 +63,7 @@
     , _drcnoOfferingType                 :: Maybe Text
     , _drcnoProductDescription           :: Maybe Text
     , _drcnoReservedCacheNodesOfferingId :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DescribeReservedCacheNodesOfferings' constructor.
 --
@@ -150,7 +150,7 @@
 data DescribeReservedCacheNodesOfferingsResponse = DescribeReservedCacheNodesOfferingsResponse
     { _drcnorMarker                      :: Maybe Text
     , _drcnorReservedCacheNodesOfferings :: List "member" ReservedCacheNodesOffering
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeReservedCacheNodesOfferingsResponse' constructor.
 --
diff --git a/gen/Network/AWS/ElastiCache/DescribeSnapshots.hs b/gen/Network/AWS/ElastiCache/DescribeSnapshots.hs
--- a/gen/Network/AWS/ElastiCache/DescribeSnapshots.hs
+++ b/gen/Network/AWS/ElastiCache/DescribeSnapshots.hs
@@ -61,7 +61,7 @@
     , _dsMaxRecords     :: Maybe Int
     , _dsSnapshotName   :: Maybe Text
     , _dsSnapshotSource :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DescribeSnapshots' constructor.
 --
@@ -123,7 +123,7 @@
 data DescribeSnapshotsResponse = DescribeSnapshotsResponse
     { _dsrMarker    :: Maybe Text
     , _dsrSnapshots :: List "member" Snapshot
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeSnapshotsResponse' constructor.
 --
diff --git a/gen/Network/AWS/ElastiCache/ModifyCacheCluster.hs b/gen/Network/AWS/ElastiCache/ModifyCacheCluster.hs
--- a/gen/Network/AWS/ElastiCache/ModifyCacheCluster.hs
+++ b/gen/Network/AWS/ElastiCache/ModifyCacheCluster.hs
@@ -81,7 +81,7 @@
     , _mccSecurityGroupIds           :: List "member" Text
     , _mccSnapshotRetentionLimit     :: Maybe Int
     , _mccSnapshotWindow             :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ModifyCacheCluster' constructor.
 --
@@ -359,7 +359,7 @@
 
 newtype ModifyCacheClusterResponse = ModifyCacheClusterResponse
     { _mccrCacheCluster :: Maybe CacheCluster
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ModifyCacheClusterResponse' constructor.
 --
diff --git a/gen/Network/AWS/ElastiCache/ModifyCacheParameterGroup.hs b/gen/Network/AWS/ElastiCache/ModifyCacheParameterGroup.hs
--- a/gen/Network/AWS/ElastiCache/ModifyCacheParameterGroup.hs
+++ b/gen/Network/AWS/ElastiCache/ModifyCacheParameterGroup.hs
@@ -53,7 +53,7 @@
 data ModifyCacheParameterGroup = ModifyCacheParameterGroup
     { _mcpgCacheParameterGroupName :: Text
     , _mcpgParameterNameValues     :: List "member" ParameterNameValue
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ModifyCacheParameterGroup' constructor.
 --
@@ -86,7 +86,7 @@
 
 newtype ModifyCacheParameterGroupResponse = ModifyCacheParameterGroupResponse
     { _mcpgrCacheParameterGroupName :: Maybe Text
-    } deriving (Eq, Ord, Show, Monoid)
+    } deriving (Eq, Ord, Read, Show, Monoid)
 
 -- | 'ModifyCacheParameterGroupResponse' constructor.
 --
diff --git a/gen/Network/AWS/ElastiCache/ModifyCacheSubnetGroup.hs b/gen/Network/AWS/ElastiCache/ModifyCacheSubnetGroup.hs
--- a/gen/Network/AWS/ElastiCache/ModifyCacheSubnetGroup.hs
+++ b/gen/Network/AWS/ElastiCache/ModifyCacheSubnetGroup.hs
@@ -53,7 +53,7 @@
     { _mcsgCacheSubnetGroupDescription :: Maybe Text
     , _mcsgCacheSubnetGroupName        :: Text
     , _mcsgSubnetIds                   :: List "member" Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'ModifyCacheSubnetGroup' constructor.
 --
@@ -97,7 +97,7 @@
 
 newtype ModifyCacheSubnetGroupResponse = ModifyCacheSubnetGroupResponse
     { _mcsgrCacheSubnetGroup :: Maybe CacheSubnetGroup
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ModifyCacheSubnetGroupResponse' constructor.
 --
diff --git a/gen/Network/AWS/ElastiCache/ModifyReplicationGroup.hs b/gen/Network/AWS/ElastiCache/ModifyReplicationGroup.hs
--- a/gen/Network/AWS/ElastiCache/ModifyReplicationGroup.hs
+++ b/gen/Network/AWS/ElastiCache/ModifyReplicationGroup.hs
@@ -80,7 +80,7 @@
     , _mrgSnapshotRetentionLimit      :: Maybe Int
     , _mrgSnapshotWindow              :: Maybe Text
     , _mrgSnapshottingClusterId       :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'ModifyReplicationGroup' constructor.
 --
@@ -287,7 +287,7 @@
 
 newtype ModifyReplicationGroupResponse = ModifyReplicationGroupResponse
     { _mrgrReplicationGroup :: Maybe ReplicationGroup
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ModifyReplicationGroupResponse' constructor.
 --
diff --git a/gen/Network/AWS/ElastiCache/PurchaseReservedCacheNodesOffering.hs b/gen/Network/AWS/ElastiCache/PurchaseReservedCacheNodesOffering.hs
--- a/gen/Network/AWS/ElastiCache/PurchaseReservedCacheNodesOffering.hs
+++ b/gen/Network/AWS/ElastiCache/PurchaseReservedCacheNodesOffering.hs
@@ -54,7 +54,7 @@
     { _prcnoCacheNodeCount               :: Maybe Int
     , _prcnoReservedCacheNodeId          :: Maybe Text
     , _prcnoReservedCacheNodesOfferingId :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'PurchaseReservedCacheNodesOffering' constructor.
 --
@@ -99,7 +99,7 @@
 
 newtype PurchaseReservedCacheNodesOfferingResponse = PurchaseReservedCacheNodesOfferingResponse
     { _prcnorReservedCacheNode :: Maybe ReservedCacheNode
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'PurchaseReservedCacheNodesOfferingResponse' constructor.
 --
diff --git a/gen/Network/AWS/ElastiCache/RebootCacheCluster.hs b/gen/Network/AWS/ElastiCache/RebootCacheCluster.hs
--- a/gen/Network/AWS/ElastiCache/RebootCacheCluster.hs
+++ b/gen/Network/AWS/ElastiCache/RebootCacheCluster.hs
@@ -60,7 +60,7 @@
 data RebootCacheCluster = RebootCacheCluster
     { _rccCacheClusterId       :: Text
     , _rccCacheNodeIdsToReboot :: List "member" Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'RebootCacheCluster' constructor.
 --
@@ -92,7 +92,7 @@
 
 newtype RebootCacheClusterResponse = RebootCacheClusterResponse
     { _rccrCacheCluster :: Maybe CacheCluster
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'RebootCacheClusterResponse' constructor.
 --
diff --git a/gen/Network/AWS/ElastiCache/ResetCacheParameterGroup.hs b/gen/Network/AWS/ElastiCache/ResetCacheParameterGroup.hs
--- a/gen/Network/AWS/ElastiCache/ResetCacheParameterGroup.hs
+++ b/gen/Network/AWS/ElastiCache/ResetCacheParameterGroup.hs
@@ -57,7 +57,7 @@
     { _rcpgCacheParameterGroupName :: Text
     , _rcpgParameterNameValues     :: List "member" ParameterNameValue
     , _rcpgResetAllParameters      :: Maybe Bool
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ResetCacheParameterGroup' constructor.
 --
@@ -100,7 +100,7 @@
 
 newtype ResetCacheParameterGroupResponse = ResetCacheParameterGroupResponse
     { _rcpgrCacheParameterGroupName :: Maybe Text
-    } deriving (Eq, Ord, Show, Monoid)
+    } deriving (Eq, Ord, Read, Show, Monoid)
 
 -- | 'ResetCacheParameterGroupResponse' constructor.
 --
diff --git a/gen/Network/AWS/ElastiCache/RevokeCacheSecurityGroupIngress.hs b/gen/Network/AWS/ElastiCache/RevokeCacheSecurityGroupIngress.hs
--- a/gen/Network/AWS/ElastiCache/RevokeCacheSecurityGroupIngress.hs
+++ b/gen/Network/AWS/ElastiCache/RevokeCacheSecurityGroupIngress.hs
@@ -55,7 +55,7 @@
     { _rcsgiCacheSecurityGroupName  :: Text
     , _rcsgiEC2SecurityGroupName    :: Text
     , _rcsgiEC2SecurityGroupOwnerId :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'RevokeCacheSecurityGroupIngress' constructor.
 --
@@ -99,7 +99,7 @@
 
 newtype RevokeCacheSecurityGroupIngressResponse = RevokeCacheSecurityGroupIngressResponse
     { _rcsgirCacheSecurityGroup :: Maybe CacheSecurityGroup
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'RevokeCacheSecurityGroupIngressResponse' constructor.
 --
diff --git a/gen/Network/AWS/ElastiCache/Types.hs b/gen/Network/AWS/ElastiCache/Types.hs
--- a/gen/Network/AWS/ElastiCache/Types.hs
+++ b/gen/Network/AWS/ElastiCache/Types.hs
@@ -383,7 +383,7 @@
     , _nsCacheNodeId         :: Maybe Text
     , _nsCacheSize           :: Maybe Text
     , _nsSnapshotCreateTime  :: Maybe ISO8601
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'NodeSnapshot' constructor.
 --
@@ -462,7 +462,7 @@
     , _sSnapshotWindow             :: Maybe Text
     , _sTopicArn                   :: Maybe Text
     , _sVpcId                      :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'Snapshot' constructor.
 --
@@ -696,7 +696,7 @@
     , _eMessage          :: Maybe Text
     , _eSourceIdentifier :: Maybe Text
     , _eSourceType       :: Maybe SourceType
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'Event' constructor.
 --
@@ -758,7 +758,7 @@
     , _ngNodeGroupMembers :: List "member" NodeGroupMember
     , _ngPrimaryEndpoint  :: Maybe Endpoint
     , _ngStatus           :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'NodeGroup' constructor.
 --
@@ -817,7 +817,7 @@
 data CacheNodeTypeSpecificValue = CacheNodeTypeSpecificValue
     { _cntsvCacheNodeType :: Maybe Text
     , _cntsvValue         :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'CacheNodeTypeSpecificValue' constructor.
 --
@@ -856,7 +856,7 @@
 data PendingAutomaticFailoverStatus
     = Disabled -- ^ disabled
     | Enabled  -- ^ enabled
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable PendingAutomaticFailoverStatus
 
@@ -882,7 +882,7 @@
 data NotificationConfiguration = NotificationConfiguration
     { _ncTopicArn    :: Maybe Text
     , _ncTopicStatus :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'NotificationConfiguration' constructor.
 --
@@ -920,7 +920,7 @@
 data ReplicationGroupPendingModifiedValues = ReplicationGroupPendingModifiedValues
     { _rgpmvAutomaticFailoverStatus :: Maybe PendingAutomaticFailoverStatus
     , _rgpmvPrimaryClusterId        :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ReplicationGroupPendingModifiedValues' constructor.
 --
@@ -962,7 +962,7 @@
     { _ecsgEC2SecurityGroupName    :: Maybe Text
     , _ecsgEC2SecurityGroupOwnerId :: Maybe Text
     , _ecsgStatus                  :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'EC2SecurityGroup' constructor.
 --
@@ -1013,7 +1013,7 @@
 data ParameterNameValue = ParameterNameValue
     { _pnvParameterName  :: Maybe Text
     , _pnvParameterValue :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'ParameterNameValue' constructor.
 --
@@ -1054,7 +1054,7 @@
     | STCacheParameterGroup -- ^ cache-parameter-group
     | STCacheSecurityGroup  -- ^ cache-security-group
     | STCacheSubnetGroup    -- ^ cache-subnet-group
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable SourceType
 
@@ -1086,7 +1086,7 @@
     , _csgCacheSubnetGroupName        :: Maybe Text
     , _csgSubnets                     :: List "member" Subnet
     , _csgVpcId                       :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CacheSubnetGroup' constructor.
 --
@@ -1156,7 +1156,7 @@
     , _rcnStartTime                    :: Maybe ISO8601
     , _rcnState                        :: Maybe Text
     , _rcnUsagePrice                   :: Maybe Double
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ReservedCacheNode' constructor.
 --
@@ -1291,7 +1291,7 @@
 data Subnet = Subnet
     { _sSubnetAvailabilityZone :: Maybe AvailabilityZone
     , _sSubnetIdentifier       :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'Subnet' constructor.
 --
@@ -1331,7 +1331,7 @@
 data SecurityGroupMembership = SecurityGroupMembership
     { _sgmSecurityGroupId :: Maybe Text
     , _sgmStatus          :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'SecurityGroupMembership' constructor.
 --
@@ -1392,7 +1392,7 @@
     , _ccSecurityGroups             :: List "member" SecurityGroupMembership
     , _ccSnapshotRetentionLimit     :: Maybe Int
     , _ccSnapshotWindow             :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CacheCluster' constructor.
 --
@@ -1648,7 +1648,7 @@
     , _edCacheParameterGroupFamily       :: Maybe Text
     , _edMarker                          :: Maybe Text
     , _edParameters                      :: List "member" Parameter
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'EngineDefaults' constructor.
 --
@@ -1712,7 +1712,7 @@
     { _cpgsCacheNodeIdsToReboot    :: List "member" Text
     , _cpgsCacheParameterGroupName :: Maybe Text
     , _cpgsParameterApplyStatus    :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'CacheParameterGroupStatus' constructor.
 --
@@ -1772,7 +1772,7 @@
     , _cnEndpoint                 :: Maybe Endpoint
     , _cnParameterGroupStatus     :: Maybe Text
     , _cnSourceCacheNodeId        :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CacheNode' constructor.
 --
@@ -1866,7 +1866,7 @@
 data CacheSecurityGroupMembership = CacheSecurityGroupMembership
     { _csgmCacheSecurityGroupName :: Maybe Text
     , _csgmStatus                 :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'CacheSecurityGroupMembership' constructor.
 --
@@ -1907,7 +1907,7 @@
 
 newtype AvailabilityZone = AvailabilityZone
     { _azName :: Maybe Text
-    } deriving (Eq, Ord, Show, Monoid)
+    } deriving (Eq, Ord, Read, Show, Monoid)
 
 -- | 'AvailabilityZone' constructor.
 --
@@ -1939,7 +1939,7 @@
     , _ngmCurrentRole               :: Maybe Text
     , _ngmPreferredAvailabilityZone :: Maybe Text
     , _ngmReadEndpoint              :: Maybe Endpoint
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'NodeGroupMember' constructor.
 --
@@ -2008,7 +2008,7 @@
     { _cpgCacheParameterGroupFamily :: Maybe Text
     , _cpgCacheParameterGroupName   :: Maybe Text
     , _cpgDescription               :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'CacheParameterGroup' constructor.
 --
@@ -2062,7 +2062,7 @@
     | AFSDisabling -- ^ disabling
     | AFSEnabled   -- ^ enabled
     | AFSEnabling  -- ^ enabling
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable AutomaticFailoverStatus
 
@@ -2094,7 +2094,7 @@
     , _csgDescription            :: Maybe Text
     , _csgEC2SecurityGroups      :: List "member" EC2SecurityGroup
     , _csgOwnerId                :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CacheSecurityGroup' constructor.
 --
@@ -2161,7 +2161,7 @@
     , _cntspMinimumEngineVersion        :: Maybe Text
     , _cntspParameterName               :: Maybe Text
     , _cntspSource                      :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CacheNodeTypeSpecificParameter' constructor.
 --
@@ -2263,7 +2263,7 @@
 data AZMode
     = CrossAz  -- ^ cross-az
     | SingleAz -- ^ single-az
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable AZMode
 
@@ -2292,7 +2292,7 @@
     , _cevCacheParameterGroupFamily     :: Maybe Text
     , _cevEngine                        :: Maybe Text
     , _cevEngineVersion                 :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'CacheEngineVersion' constructor.
 --
@@ -2370,7 +2370,7 @@
     , _rgReplicationGroupId    :: Maybe Text
     , _rgSnapshottingClusterId :: Maybe Text
     , _rgStatus                :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ReplicationGroup' constructor.
 --
@@ -2469,7 +2469,7 @@
 data RecurringCharge = RecurringCharge
     { _rcRecurringChargeAmount    :: Maybe Double
     , _rcRecurringChargeFrequency :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'RecurringCharge' constructor.
 --
@@ -2516,7 +2516,7 @@
     , _rcnoRecurringCharges             :: List "member" RecurringCharge
     , _rcnoReservedCacheNodesOfferingId :: Maybe Text
     , _rcnoUsagePrice                   :: Maybe Double
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ReservedCacheNodesOffering' constructor.
 --
@@ -2614,7 +2614,7 @@
 data Endpoint = Endpoint
     { _eAddress :: Maybe Text
     , _ePort    :: Maybe Int
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'Endpoint' constructor.
 --
@@ -2653,7 +2653,7 @@
     { _pmvCacheNodeIdsToRemove :: List "member" Text
     , _pmvEngineVersion        :: Maybe Text
     , _pmvNumCacheNodes        :: Maybe Int
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'PendingModifiedValues' constructor.
 --
@@ -2702,7 +2702,7 @@
 
 newtype CacheParameterGroupNameMessage = CacheParameterGroupNameMessage
     { _cpgnmCacheParameterGroupName :: Maybe Text
-    } deriving (Eq, Ord, Show, Monoid)
+    } deriving (Eq, Ord, Read, Show, Monoid)
 
 -- | 'CacheParameterGroupNameMessage' constructor.
 --
@@ -2739,7 +2739,7 @@
     , _pParameterName        :: Maybe Text
     , _pParameterValue       :: Maybe Text
     , _pSource               :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'Parameter' constructor.
 --
