diff --git a/amazonka-ec2.cabal b/amazonka-ec2.cabal
--- a/amazonka-ec2.cabal
+++ b/amazonka-ec2.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-ec2
-version:               0.2.1
+version:               0.2.2
 synopsis:              Amazon Elastic Compute Cloud SDK.
 homepage:              https://github.com/brendanhay/amazonka
 license:               OtherLicense
@@ -211,5 +211,5 @@
           Network.AWS.EC2.Internal
 
     build-depends:
-          amazonka-core == 0.2.1.*
+          amazonka-core == 0.2.2.*
         , base          >= 4.7     && < 5
diff --git a/gen/Network/AWS/EC2/AcceptVpcPeeringConnection.hs b/gen/Network/AWS/EC2/AcceptVpcPeeringConnection.hs
--- a/gen/Network/AWS/EC2/AcceptVpcPeeringConnection.hs
+++ b/gen/Network/AWS/EC2/AcceptVpcPeeringConnection.hs
@@ -54,7 +54,7 @@
 data AcceptVpcPeeringConnection = AcceptVpcPeeringConnection
     { _avpcDryRun                 :: Maybe Bool
     , _avpcVpcPeeringConnectionId :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'AcceptVpcPeeringConnection' constructor.
 --
@@ -81,7 +81,7 @@
 
 newtype AcceptVpcPeeringConnectionResponse = AcceptVpcPeeringConnectionResponse
     { _avpcrVpcPeeringConnection :: Maybe VpcPeeringConnection
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'AcceptVpcPeeringConnectionResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/AllocateAddress.hs b/gen/Network/AWS/EC2/AllocateAddress.hs
--- a/gen/Network/AWS/EC2/AllocateAddress.hs
+++ b/gen/Network/AWS/EC2/AllocateAddress.hs
@@ -56,7 +56,7 @@
 data AllocateAddress = AllocateAddress
     { _aaDomain :: Maybe DomainType
     , _aaDryRun :: Maybe Bool
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'AllocateAddress' constructor.
 --
@@ -85,7 +85,7 @@
     { _aarAllocationId :: Maybe Text
     , _aarDomain       :: Maybe DomainType
     , _aarPublicIp     :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'AllocateAddressResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/AssignPrivateIpAddresses.hs b/gen/Network/AWS/EC2/AssignPrivateIpAddresses.hs
--- a/gen/Network/AWS/EC2/AssignPrivateIpAddresses.hs
+++ b/gen/Network/AWS/EC2/AssignPrivateIpAddresses.hs
@@ -61,7 +61,7 @@
     , _apiaNetworkInterfaceId             :: Text
     , _apiaPrivateIpAddresses             :: List "PrivateIpAddress" Text
     , _apiaSecondaryPrivateIpAddressCount :: Maybe Int
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'AssignPrivateIpAddresses' constructor.
 --
@@ -115,7 +115,7 @@
         (\s a -> s { _apiaSecondaryPrivateIpAddressCount = a })
 
 data AssignPrivateIpAddressesResponse = AssignPrivateIpAddressesResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'AssignPrivateIpAddressesResponse' constructor.
 assignPrivateIpAddressesResponse :: AssignPrivateIpAddressesResponse
diff --git a/gen/Network/AWS/EC2/AssociateAddress.hs b/gen/Network/AWS/EC2/AssociateAddress.hs
--- a/gen/Network/AWS/EC2/AssociateAddress.hs
+++ b/gen/Network/AWS/EC2/AssociateAddress.hs
@@ -76,7 +76,7 @@
     , _aa1NetworkInterfaceId :: Maybe Text
     , _aa1PrivateIpAddress   :: Maybe Text
     , _aa1PublicIp           :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'AssociateAddress' constructor.
 --
@@ -149,7 +149,7 @@
 
 newtype AssociateAddressResponse = AssociateAddressResponse
     { _aarAssociationId :: Maybe Text
-    } deriving (Eq, Ord, Show, Monoid)
+    } deriving (Eq, Ord, Read, Show, Monoid)
 
 -- | 'AssociateAddressResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/AssociateDhcpOptions.hs b/gen/Network/AWS/EC2/AssociateDhcpOptions.hs
--- a/gen/Network/AWS/EC2/AssociateDhcpOptions.hs
+++ b/gen/Network/AWS/EC2/AssociateDhcpOptions.hs
@@ -61,7 +61,7 @@
     { _adoDhcpOptionsId :: Text
     , _adoDryRun        :: Maybe Bool
     , _adoVpcId         :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'AssociateDhcpOptions' constructor.
 --
@@ -95,7 +95,7 @@
 adoVpcId = lens _adoVpcId (\s a -> s { _adoVpcId = a })
 
 data AssociateDhcpOptionsResponse = AssociateDhcpOptionsResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'AssociateDhcpOptionsResponse' constructor.
 associateDhcpOptionsResponse :: AssociateDhcpOptionsResponse
diff --git a/gen/Network/AWS/EC2/AssociateRouteTable.hs b/gen/Network/AWS/EC2/AssociateRouteTable.hs
--- a/gen/Network/AWS/EC2/AssociateRouteTable.hs
+++ b/gen/Network/AWS/EC2/AssociateRouteTable.hs
@@ -59,7 +59,7 @@
     { _artDryRun       :: Maybe Bool
     , _artRouteTableId :: Text
     , _artSubnetId     :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'AssociateRouteTable' constructor.
 --
@@ -93,7 +93,7 @@
 
 newtype AssociateRouteTableResponse = AssociateRouteTableResponse
     { _artrAssociationId :: Maybe Text
-    } deriving (Eq, Ord, Show, Monoid)
+    } deriving (Eq, Ord, Read, Show, Monoid)
 
 -- | 'AssociateRouteTableResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/AttachClassicLinkVpc.hs b/gen/Network/AWS/EC2/AttachClassicLinkVpc.hs
--- a/gen/Network/AWS/EC2/AttachClassicLinkVpc.hs
+++ b/gen/Network/AWS/EC2/AttachClassicLinkVpc.hs
@@ -65,7 +65,7 @@
     , _aclvGroups     :: List "groupId" Text
     , _aclvInstanceId :: Text
     , _aclvVpcId      :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'AttachClassicLinkVpc' constructor.
 --
@@ -107,7 +107,7 @@
 
 newtype AttachClassicLinkVpcResponse = AttachClassicLinkVpcResponse
     { _aclvrReturn :: Maybe Bool
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'AttachClassicLinkVpcResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/AttachInternetGateway.hs b/gen/Network/AWS/EC2/AttachInternetGateway.hs
--- a/gen/Network/AWS/EC2/AttachInternetGateway.hs
+++ b/gen/Network/AWS/EC2/AttachInternetGateway.hs
@@ -53,7 +53,7 @@
     { _aigDryRun            :: Maybe Bool
     , _aigInternetGatewayId :: Text
     , _aigVpcId             :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'AttachInternetGateway' constructor.
 --
@@ -87,7 +87,7 @@
 aigVpcId = lens _aigVpcId (\s a -> s { _aigVpcId = a })
 
 data AttachInternetGatewayResponse = AttachInternetGatewayResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'AttachInternetGatewayResponse' constructor.
 attachInternetGatewayResponse :: AttachInternetGatewayResponse
diff --git a/gen/Network/AWS/EC2/AttachNetworkInterface.hs b/gen/Network/AWS/EC2/AttachNetworkInterface.hs
--- a/gen/Network/AWS/EC2/AttachNetworkInterface.hs
+++ b/gen/Network/AWS/EC2/AttachNetworkInterface.hs
@@ -55,7 +55,7 @@
     , _aniDryRun             :: Maybe Bool
     , _aniInstanceId         :: Text
     , _aniNetworkInterfaceId :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'AttachNetworkInterface' constructor.
 --
@@ -98,7 +98,7 @@
 
 newtype AttachNetworkInterfaceResponse = AttachNetworkInterfaceResponse
     { _anirAttachmentId :: Maybe Text
-    } deriving (Eq, Ord, Show, Monoid)
+    } deriving (Eq, Ord, Read, Show, Monoid)
 
 -- | 'AttachNetworkInterfaceResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/AttachVolume.hs b/gen/Network/AWS/EC2/AttachVolume.hs
--- a/gen/Network/AWS/EC2/AttachVolume.hs
+++ b/gen/Network/AWS/EC2/AttachVolume.hs
@@ -78,7 +78,7 @@
     , _avDryRun     :: Maybe Bool
     , _avInstanceId :: Text
     , _avVolumeId   :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'AttachVolume' constructor.
 --
@@ -126,7 +126,7 @@
     , _avrInstanceId          :: Maybe Text
     , _avrState               :: Maybe VolumeAttachmentState
     , _avrVolumeId            :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'AttachVolumeResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/AttachVpnGateway.hs b/gen/Network/AWS/EC2/AttachVpnGateway.hs
--- a/gen/Network/AWS/EC2/AttachVpnGateway.hs
+++ b/gen/Network/AWS/EC2/AttachVpnGateway.hs
@@ -53,7 +53,7 @@
     { _avgDryRun       :: Maybe Bool
     , _avgVpcId        :: Text
     , _avgVpnGatewayId :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'AttachVpnGateway' constructor.
 --
@@ -87,7 +87,7 @@
 
 newtype AttachVpnGatewayResponse = AttachVpnGatewayResponse
     { _avgrVpcAttachment :: Maybe VpcAttachment
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'AttachVpnGatewayResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/AuthorizeSecurityGroupEgress.hs b/gen/Network/AWS/EC2/AuthorizeSecurityGroupEgress.hs
--- a/gen/Network/AWS/EC2/AuthorizeSecurityGroupEgress.hs
+++ b/gen/Network/AWS/EC2/AuthorizeSecurityGroupEgress.hs
@@ -83,7 +83,7 @@
     , _asgeSourceSecurityGroupName    :: Maybe Text
     , _asgeSourceSecurityGroupOwnerId :: Maybe Text
     , _asgeToPort                     :: Maybe Int
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'AuthorizeSecurityGroupEgress' constructor.
 --
@@ -170,7 +170,7 @@
 asgeToPort = lens _asgeToPort (\s a -> s { _asgeToPort = a })
 
 data AuthorizeSecurityGroupEgressResponse = AuthorizeSecurityGroupEgressResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'AuthorizeSecurityGroupEgressResponse' constructor.
 authorizeSecurityGroupEgressResponse :: AuthorizeSecurityGroupEgressResponse
diff --git a/gen/Network/AWS/EC2/AuthorizeSecurityGroupIngress.hs b/gen/Network/AWS/EC2/AuthorizeSecurityGroupIngress.hs
--- a/gen/Network/AWS/EC2/AuthorizeSecurityGroupIngress.hs
+++ b/gen/Network/AWS/EC2/AuthorizeSecurityGroupIngress.hs
@@ -84,7 +84,7 @@
     , _asgiSourceSecurityGroupName    :: Maybe Text
     , _asgiSourceSecurityGroupOwnerId :: Maybe Text
     , _asgiToPort                     :: Maybe Int
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'AuthorizeSecurityGroupIngress' constructor.
 --
@@ -177,7 +177,7 @@
 asgiToPort = lens _asgiToPort (\s a -> s { _asgiToPort = a })
 
 data AuthorizeSecurityGroupIngressResponse = AuthorizeSecurityGroupIngressResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'AuthorizeSecurityGroupIngressResponse' constructor.
 authorizeSecurityGroupIngressResponse :: AuthorizeSecurityGroupIngressResponse
diff --git a/gen/Network/AWS/EC2/BundleInstance.hs b/gen/Network/AWS/EC2/BundleInstance.hs
--- a/gen/Network/AWS/EC2/BundleInstance.hs
+++ b/gen/Network/AWS/EC2/BundleInstance.hs
@@ -61,7 +61,7 @@
     { _biDryRun     :: Maybe Bool
     , _biInstanceId :: Text
     , _biStorage    :: Storage
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'BundleInstance' constructor.
 --
@@ -103,7 +103,7 @@
 
 newtype BundleInstanceResponse = BundleInstanceResponse
     { _birBundleTask :: Maybe BundleTask
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'BundleInstanceResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/CancelBundleTask.hs b/gen/Network/AWS/EC2/CancelBundleTask.hs
--- a/gen/Network/AWS/EC2/CancelBundleTask.hs
+++ b/gen/Network/AWS/EC2/CancelBundleTask.hs
@@ -51,7 +51,7 @@
 data CancelBundleTask = CancelBundleTask
     { _cbtBundleId :: Text
     , _cbtDryRun   :: Maybe Bool
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'CancelBundleTask' constructor.
 --
@@ -77,7 +77,7 @@
 
 newtype CancelBundleTaskResponse = CancelBundleTaskResponse
     { _cbtrBundleTask :: Maybe BundleTask
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CancelBundleTaskResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/CancelConversionTask.hs b/gen/Network/AWS/EC2/CancelConversionTask.hs
--- a/gen/Network/AWS/EC2/CancelConversionTask.hs
+++ b/gen/Network/AWS/EC2/CancelConversionTask.hs
@@ -57,7 +57,7 @@
     { _cctConversionTaskId :: Text
     , _cctDryRun           :: Maybe Bool
     , _cctReasonMessage    :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'CancelConversionTask' constructor.
 --
@@ -89,7 +89,7 @@
 cctReasonMessage = lens _cctReasonMessage (\s a -> s { _cctReasonMessage = a })
 
 data CancelConversionTaskResponse = CancelConversionTaskResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'CancelConversionTaskResponse' constructor.
 cancelConversionTaskResponse :: CancelConversionTaskResponse
diff --git a/gen/Network/AWS/EC2/CancelExportTask.hs b/gen/Network/AWS/EC2/CancelExportTask.hs
--- a/gen/Network/AWS/EC2/CancelExportTask.hs
+++ b/gen/Network/AWS/EC2/CancelExportTask.hs
@@ -50,7 +50,7 @@
 
 newtype CancelExportTask = CancelExportTask
     { _cetExportTaskId :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'CancelExportTask' constructor.
 --
@@ -70,7 +70,7 @@
 cetExportTaskId = lens _cetExportTaskId (\s a -> s { _cetExportTaskId = a })
 
 data CancelExportTaskResponse = CancelExportTaskResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'CancelExportTaskResponse' constructor.
 cancelExportTaskResponse :: CancelExportTaskResponse
diff --git a/gen/Network/AWS/EC2/CancelReservedInstancesListing.hs b/gen/Network/AWS/EC2/CancelReservedInstancesListing.hs
--- a/gen/Network/AWS/EC2/CancelReservedInstancesListing.hs
+++ b/gen/Network/AWS/EC2/CancelReservedInstancesListing.hs
@@ -52,7 +52,7 @@
 
 newtype CancelReservedInstancesListing = CancelReservedInstancesListing
     { _crilReservedInstancesListingId :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'CancelReservedInstancesListing' constructor.
 --
@@ -74,7 +74,7 @@
 
 newtype CancelReservedInstancesListingResponse = CancelReservedInstancesListingResponse
     { _crilrReservedInstancesListings :: List "item" ReservedInstancesListing
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 -- | 'CancelReservedInstancesListingResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/CancelSpotInstanceRequests.hs b/gen/Network/AWS/EC2/CancelSpotInstanceRequests.hs
--- a/gen/Network/AWS/EC2/CancelSpotInstanceRequests.hs
+++ b/gen/Network/AWS/EC2/CancelSpotInstanceRequests.hs
@@ -60,7 +60,7 @@
 data CancelSpotInstanceRequests = CancelSpotInstanceRequests
     { _csirDryRun                 :: Maybe Bool
     , _csirSpotInstanceRequestIds :: List "SpotInstanceRequestId" Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'CancelSpotInstanceRequests' constructor.
 --
@@ -88,7 +88,7 @@
 
 newtype CancelSpotInstanceRequestsResponse = CancelSpotInstanceRequestsResponse
     { _csirrCancelledSpotInstanceRequests :: List "item" CancelledSpotInstanceRequest
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 -- | 'CancelSpotInstanceRequestsResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/ConfirmProductInstance.hs b/gen/Network/AWS/EC2/ConfirmProductInstance.hs
--- a/gen/Network/AWS/EC2/ConfirmProductInstance.hs
+++ b/gen/Network/AWS/EC2/ConfirmProductInstance.hs
@@ -56,7 +56,7 @@
     { _cpiDryRun      :: Maybe Bool
     , _cpiInstanceId  :: Text
     , _cpiProductCode :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'ConfirmProductInstance' constructor.
 --
@@ -90,7 +90,7 @@
 
 newtype ConfirmProductInstanceResponse = ConfirmProductInstanceResponse
     { _cpirOwnerId :: Maybe Text
-    } deriving (Eq, Ord, Show, Monoid)
+    } deriving (Eq, Ord, Read, Show, Monoid)
 
 -- | 'ConfirmProductInstanceResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/CopyImage.hs b/gen/Network/AWS/EC2/CopyImage.hs
--- a/gen/Network/AWS/EC2/CopyImage.hs
+++ b/gen/Network/AWS/EC2/CopyImage.hs
@@ -64,7 +64,7 @@
     , _ciName          :: Text
     , _ciSourceImageId :: Text
     , _ciSourceRegion  :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'CopyImage' constructor.
 --
@@ -121,7 +121,7 @@
 
 newtype CopyImageResponse = CopyImageResponse
     { _cir1ImageId :: Maybe Text
-    } deriving (Eq, Ord, Show, Monoid)
+    } deriving (Eq, Ord, Read, Show, Monoid)
 
 -- | 'CopyImageResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/CopySnapshot.hs b/gen/Network/AWS/EC2/CopySnapshot.hs
--- a/gen/Network/AWS/EC2/CopySnapshot.hs
+++ b/gen/Network/AWS/EC2/CopySnapshot.hs
@@ -71,7 +71,7 @@
     , _csPresignedUrl      :: Maybe Text
     , _csSourceRegion      :: Text
     , _csSourceSnapshotId  :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'CopySnapshot' constructor.
 --
@@ -137,7 +137,7 @@
 
 newtype CopySnapshotResponse = CopySnapshotResponse
     { _csrSnapshotId :: Maybe Text
-    } deriving (Eq, Ord, Show, Monoid)
+    } deriving (Eq, Ord, Read, Show, Monoid)
 
 -- | 'CopySnapshotResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/CreateCustomerGateway.hs b/gen/Network/AWS/EC2/CreateCustomerGateway.hs
--- a/gen/Network/AWS/EC2/CreateCustomerGateway.hs
+++ b/gen/Network/AWS/EC2/CreateCustomerGateway.hs
@@ -71,7 +71,7 @@
     , _ccgDryRun   :: Maybe Bool
     , _ccgPublicIp :: Text
     , _ccgType     :: GatewayType
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateCustomerGateway' constructor.
 --
@@ -116,7 +116,7 @@
 
 newtype CreateCustomerGatewayResponse = CreateCustomerGatewayResponse
     { _ccgrCustomerGateway :: Maybe CustomerGateway
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateCustomerGatewayResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/CreateDhcpOptions.hs b/gen/Network/AWS/EC2/CreateDhcpOptions.hs
--- a/gen/Network/AWS/EC2/CreateDhcpOptions.hs
+++ b/gen/Network/AWS/EC2/CreateDhcpOptions.hs
@@ -72,7 +72,7 @@
 data CreateDhcpOptions = CreateDhcpOptions
     { _cdoDhcpConfigurations :: List "item" NewDhcpConfiguration
     , _cdoDryRun             :: Maybe Bool
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateDhcpOptions' constructor.
 --
@@ -99,7 +99,7 @@
 
 newtype CreateDhcpOptionsResponse = CreateDhcpOptionsResponse
     { _cdorDhcpOptions :: Maybe DhcpOptions
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateDhcpOptionsResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/CreateImage.hs b/gen/Network/AWS/EC2/CreateImage.hs
--- a/gen/Network/AWS/EC2/CreateImage.hs
+++ b/gen/Network/AWS/EC2/CreateImage.hs
@@ -67,7 +67,7 @@
     , _ci1InstanceId          :: Text
     , _ci1Name                :: Text
     , _ci1NoReboot            :: Maybe Bool
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateImage' constructor.
 --
@@ -132,7 +132,7 @@
 
 newtype CreateImageResponse = CreateImageResponse
     { _cirImageId :: Maybe Text
-    } deriving (Eq, Ord, Show, Monoid)
+    } deriving (Eq, Ord, Read, Show, Monoid)
 
 -- | 'CreateImageResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/CreateInstanceExportTask.hs b/gen/Network/AWS/EC2/CreateInstanceExportTask.hs
--- a/gen/Network/AWS/EC2/CreateInstanceExportTask.hs
+++ b/gen/Network/AWS/EC2/CreateInstanceExportTask.hs
@@ -58,7 +58,7 @@
     , _cietExportToS3Task    :: Maybe ExportToS3TaskSpecification
     , _cietInstanceId        :: Text
     , _cietTargetEnvironment :: Maybe ExportEnvironment
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateInstanceExportTask' constructor.
 --
@@ -101,7 +101,7 @@
 
 newtype CreateInstanceExportTaskResponse = CreateInstanceExportTaskResponse
     { _cietrExportTask :: Maybe ExportTask
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateInstanceExportTaskResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/CreateInternetGateway.hs b/gen/Network/AWS/EC2/CreateInternetGateway.hs
--- a/gen/Network/AWS/EC2/CreateInternetGateway.hs
+++ b/gen/Network/AWS/EC2/CreateInternetGateway.hs
@@ -52,7 +52,7 @@
 
 newtype CreateInternetGateway = CreateInternetGateway
     { _cigDryRun :: Maybe Bool
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'CreateInternetGateway' constructor.
 --
@@ -70,7 +70,7 @@
 
 newtype CreateInternetGatewayResponse = CreateInternetGatewayResponse
     { _cigrInternetGateway :: Maybe InternetGateway
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateInternetGatewayResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/CreateKeyPair.hs b/gen/Network/AWS/EC2/CreateKeyPair.hs
--- a/gen/Network/AWS/EC2/CreateKeyPair.hs
+++ b/gen/Network/AWS/EC2/CreateKeyPair.hs
@@ -63,7 +63,7 @@
 data CreateKeyPair = CreateKeyPair
     { _ckpDryRun  :: Maybe Bool
     , _ckpKeyName :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'CreateKeyPair' constructor.
 --
@@ -93,7 +93,7 @@
     { _ckprKeyFingerprint :: Text
     , _ckprKeyMaterial    :: Text
     , _ckprKeyName        :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'CreateKeyPairResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/CreateNetworkAcl.hs b/gen/Network/AWS/EC2/CreateNetworkAcl.hs
--- a/gen/Network/AWS/EC2/CreateNetworkAcl.hs
+++ b/gen/Network/AWS/EC2/CreateNetworkAcl.hs
@@ -54,7 +54,7 @@
 data CreateNetworkAcl = CreateNetworkAcl
     { _cnaDryRun :: Maybe Bool
     , _cnaVpcId  :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'CreateNetworkAcl' constructor.
 --
@@ -80,7 +80,7 @@
 
 newtype CreateNetworkAclResponse = CreateNetworkAclResponse
     { _cnarNetworkAcl :: Maybe NetworkAcl
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateNetworkAclResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/CreateNetworkAclEntry.hs b/gen/Network/AWS/EC2/CreateNetworkAclEntry.hs
--- a/gen/Network/AWS/EC2/CreateNetworkAclEntry.hs
+++ b/gen/Network/AWS/EC2/CreateNetworkAclEntry.hs
@@ -78,7 +78,7 @@
     , _cnaeProtocol     :: Text
     , _cnaeRuleAction   :: RuleAction
     , _cnaeRuleNumber   :: Int
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateNetworkAclEntry' constructor.
 --
@@ -162,7 +162,7 @@
 cnaeRuleNumber = lens _cnaeRuleNumber (\s a -> s { _cnaeRuleNumber = a })
 
 data CreateNetworkAclEntryResponse = CreateNetworkAclEntryResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'CreateNetworkAclEntryResponse' constructor.
 createNetworkAclEntryResponse :: CreateNetworkAclEntryResponse
diff --git a/gen/Network/AWS/EC2/CreateNetworkInterface.hs b/gen/Network/AWS/EC2/CreateNetworkInterface.hs
--- a/gen/Network/AWS/EC2/CreateNetworkInterface.hs
+++ b/gen/Network/AWS/EC2/CreateNetworkInterface.hs
@@ -64,7 +64,7 @@
     , _cniPrivateIpAddresses             :: List "item" PrivateIpAddressSpecification
     , _cniSecondaryPrivateIpAddressCount :: Maybe Int
     , _cniSubnetId                       :: Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateNetworkInterface' constructor.
 --
@@ -138,7 +138,7 @@
 
 newtype CreateNetworkInterfaceResponse = CreateNetworkInterfaceResponse
     { _cnirNetworkInterface :: Maybe NetworkInterface
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateNetworkInterfaceResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/CreatePlacementGroup.hs b/gen/Network/AWS/EC2/CreatePlacementGroup.hs
--- a/gen/Network/AWS/EC2/CreatePlacementGroup.hs
+++ b/gen/Network/AWS/EC2/CreatePlacementGroup.hs
@@ -54,7 +54,7 @@
     { _cpgDryRun    :: Maybe Bool
     , _cpgGroupName :: Text
     , _cpgStrategy  :: PlacementStrategy
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreatePlacementGroup' constructor.
 --
@@ -89,7 +89,7 @@
 cpgStrategy = lens _cpgStrategy (\s a -> s { _cpgStrategy = a })
 
 data CreatePlacementGroupResponse = CreatePlacementGroupResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'CreatePlacementGroupResponse' constructor.
 createPlacementGroupResponse :: CreatePlacementGroupResponse
diff --git a/gen/Network/AWS/EC2/CreateReservedInstancesListing.hs b/gen/Network/AWS/EC2/CreateReservedInstancesListing.hs
--- a/gen/Network/AWS/EC2/CreateReservedInstancesListing.hs
+++ b/gen/Network/AWS/EC2/CreateReservedInstancesListing.hs
@@ -71,7 +71,7 @@
     , _crilInstanceCount       :: Int
     , _crilPriceSchedules      :: List "item" PriceScheduleSpecification
     , _crilReservedInstancesId :: Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateReservedInstancesListing' constructor.
 --
@@ -123,7 +123,7 @@
 
 newtype CreateReservedInstancesListingResponse = CreateReservedInstancesListingResponse
     { _crilr1ReservedInstancesListings :: List "item" ReservedInstancesListing
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 -- | 'CreateReservedInstancesListingResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/CreateRoute.hs b/gen/Network/AWS/EC2/CreateRoute.hs
--- a/gen/Network/AWS/EC2/CreateRoute.hs
+++ b/gen/Network/AWS/EC2/CreateRoute.hs
@@ -77,7 +77,7 @@
     , _crNetworkInterfaceId     :: Maybe Text
     , _crRouteTableId           :: Text
     , _crVpcPeeringConnectionId :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'CreateRoute' constructor.
 --
@@ -144,7 +144,7 @@
         (\s a -> s { _crVpcPeeringConnectionId = a })
 
 data CreateRouteResponse = CreateRouteResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'CreateRouteResponse' constructor.
 createRouteResponse :: CreateRouteResponse
diff --git a/gen/Network/AWS/EC2/CreateRouteTable.hs b/gen/Network/AWS/EC2/CreateRouteTable.hs
--- a/gen/Network/AWS/EC2/CreateRouteTable.hs
+++ b/gen/Network/AWS/EC2/CreateRouteTable.hs
@@ -54,7 +54,7 @@
 data CreateRouteTable = CreateRouteTable
     { _crtDryRun :: Maybe Bool
     , _crtVpcId  :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'CreateRouteTable' constructor.
 --
@@ -80,7 +80,7 @@
 
 newtype CreateRouteTableResponse = CreateRouteTableResponse
     { _crtrRouteTable :: Maybe RouteTable
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateRouteTableResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/CreateSecurityGroup.hs b/gen/Network/AWS/EC2/CreateSecurityGroup.hs
--- a/gen/Network/AWS/EC2/CreateSecurityGroup.hs
+++ b/gen/Network/AWS/EC2/CreateSecurityGroup.hs
@@ -76,7 +76,7 @@
     , _csgDryRun      :: Maybe Bool
     , _csgGroupName   :: Text
     , _csgVpcId       :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'CreateSecurityGroup' constructor.
 --
@@ -129,7 +129,7 @@
 
 newtype CreateSecurityGroupResponse = CreateSecurityGroupResponse
     { _csgrGroupId :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'CreateSecurityGroupResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/CreateSnapshot.hs b/gen/Network/AWS/EC2/CreateSnapshot.hs
--- a/gen/Network/AWS/EC2/CreateSnapshot.hs
+++ b/gen/Network/AWS/EC2/CreateSnapshot.hs
@@ -90,7 +90,7 @@
     { _cs2Description :: Maybe Text
     , _cs2DryRun      :: Maybe Bool
     , _cs2VolumeId    :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'CreateSnapshot' constructor.
 --
@@ -134,7 +134,7 @@
     , _csr1Tags        :: List "item" Tag
     , _csr1VolumeId    :: Text
     , _csr1VolumeSize  :: Int
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateSnapshotResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/CreateSpotDatafeedSubscription.hs b/gen/Network/AWS/EC2/CreateSpotDatafeedSubscription.hs
--- a/gen/Network/AWS/EC2/CreateSpotDatafeedSubscription.hs
+++ b/gen/Network/AWS/EC2/CreateSpotDatafeedSubscription.hs
@@ -55,7 +55,7 @@
     { _csdsBucket :: Text
     , _csdsDryRun :: Maybe Bool
     , _csdsPrefix :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'CreateSpotDatafeedSubscription' constructor.
 --
@@ -88,7 +88,7 @@
 
 newtype CreateSpotDatafeedSubscriptionResponse = CreateSpotDatafeedSubscriptionResponse
     { _csdsrSpotDatafeedSubscription :: Maybe SpotDatafeedSubscription
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateSpotDatafeedSubscriptionResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/CreateSubnet.hs b/gen/Network/AWS/EC2/CreateSubnet.hs
--- a/gen/Network/AWS/EC2/CreateSubnet.hs
+++ b/gen/Network/AWS/EC2/CreateSubnet.hs
@@ -78,7 +78,7 @@
     , _cs1CidrBlock        :: Text
     , _cs1DryRun           :: Maybe Bool
     , _cs1VpcId            :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'CreateSubnet' constructor.
 --
@@ -122,7 +122,7 @@
 
 newtype CreateSubnetResponse = CreateSubnetResponse
     { _csrSubnet :: Maybe Subnet
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateSubnetResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/CreateTags.hs b/gen/Network/AWS/EC2/CreateTags.hs
--- a/gen/Network/AWS/EC2/CreateTags.hs
+++ b/gen/Network/AWS/EC2/CreateTags.hs
@@ -55,7 +55,7 @@
     { _ct1DryRun    :: Maybe Bool
     , _ct1Resources :: List "ResourceId" Text
     , _ct1Tags      :: List "item" Tag
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateTags' constructor.
 --
@@ -88,7 +88,7 @@
 ct1Tags = lens _ct1Tags (\s a -> s { _ct1Tags = a }) . _List
 
 data CreateTagsResponse = CreateTagsResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'CreateTagsResponse' constructor.
 createTagsResponse :: CreateTagsResponse
diff --git a/gen/Network/AWS/EC2/CreateVolume.hs b/gen/Network/AWS/EC2/CreateVolume.hs
--- a/gen/Network/AWS/EC2/CreateVolume.hs
+++ b/gen/Network/AWS/EC2/CreateVolume.hs
@@ -87,7 +87,7 @@
     , _cv1Size             :: Maybe Int
     , _cv1SnapshotId       :: Maybe Text
     , _cv1VolumeType       :: Maybe VolumeType
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateVolume' constructor.
 --
@@ -186,7 +186,7 @@
     , _cvrTags             :: List "item" Tag
     , _cvrVolumeId         :: Text
     , _cvrVolumeType       :: VolumeType
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateVolumeResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/CreateVpc.hs b/gen/Network/AWS/EC2/CreateVpc.hs
--- a/gen/Network/AWS/EC2/CreateVpc.hs
+++ b/gen/Network/AWS/EC2/CreateVpc.hs
@@ -61,7 +61,7 @@
     { _cvCidrBlock       :: Text
     , _cvDryRun          :: Maybe Bool
     , _cvInstanceTenancy :: Maybe Tenancy
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateVpc' constructor.
 --
@@ -99,7 +99,7 @@
 
 newtype CreateVpcResponse = CreateVpcResponse
     { _cvrVpc :: Maybe Vpc
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateVpcResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/CreateVpcPeeringConnection.hs b/gen/Network/AWS/EC2/CreateVpcPeeringConnection.hs
--- a/gen/Network/AWS/EC2/CreateVpcPeeringConnection.hs
+++ b/gen/Network/AWS/EC2/CreateVpcPeeringConnection.hs
@@ -65,7 +65,7 @@
     , _cvpcPeerOwnerId :: Maybe Text
     , _cvpcPeerVpcId   :: Maybe Text
     , _cvpcVpcId       :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'CreateVpcPeeringConnection' constructor.
 --
@@ -106,7 +106,7 @@
 
 newtype CreateVpcPeeringConnectionResponse = CreateVpcPeeringConnectionResponse
     { _cvpcrVpcPeeringConnection :: Maybe VpcPeeringConnection
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateVpcPeeringConnectionResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/CreateVpnConnection.hs b/gen/Network/AWS/EC2/CreateVpnConnection.hs
--- a/gen/Network/AWS/EC2/CreateVpnConnection.hs
+++ b/gen/Network/AWS/EC2/CreateVpnConnection.hs
@@ -71,7 +71,7 @@
     , _cvcOptions           :: Maybe VpnConnectionOptionsSpecification
     , _cvcType              :: Text
     , _cvcVpnGatewayId      :: Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateVpnConnection' constructor.
 --
@@ -125,7 +125,7 @@
 
 newtype CreateVpnConnectionResponse = CreateVpnConnectionResponse
     { _cvcrVpnConnection :: Maybe VpnConnection
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateVpnConnectionResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/CreateVpnConnectionRoute.hs b/gen/Network/AWS/EC2/CreateVpnConnectionRoute.hs
--- a/gen/Network/AWS/EC2/CreateVpnConnectionRoute.hs
+++ b/gen/Network/AWS/EC2/CreateVpnConnectionRoute.hs
@@ -54,7 +54,7 @@
 data CreateVpnConnectionRoute = CreateVpnConnectionRoute
     { _cvcrDestinationCidrBlock :: Text
     , _cvcrVpnConnectionId      :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'CreateVpnConnectionRoute' constructor.
 --
@@ -84,7 +84,7 @@
     lens _cvcrVpnConnectionId (\s a -> s { _cvcrVpnConnectionId = a })
 
 data CreateVpnConnectionRouteResponse = CreateVpnConnectionRouteResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'CreateVpnConnectionRouteResponse' constructor.
 createVpnConnectionRouteResponse :: CreateVpnConnectionRouteResponse
diff --git a/gen/Network/AWS/EC2/CreateVpnGateway.hs b/gen/Network/AWS/EC2/CreateVpnGateway.hs
--- a/gen/Network/AWS/EC2/CreateVpnGateway.hs
+++ b/gen/Network/AWS/EC2/CreateVpnGateway.hs
@@ -57,7 +57,7 @@
     { _cvgAvailabilityZone :: Maybe Text
     , _cvgDryRun           :: Maybe Bool
     , _cvgType             :: GatewayType
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateVpnGateway' constructor.
 --
@@ -91,7 +91,7 @@
 
 newtype CreateVpnGatewayResponse = CreateVpnGatewayResponse
     { _cvgrVpnGateway :: Maybe VpnGateway
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateVpnGatewayResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DeleteCustomerGateway.hs b/gen/Network/AWS/EC2/DeleteCustomerGateway.hs
--- a/gen/Network/AWS/EC2/DeleteCustomerGateway.hs
+++ b/gen/Network/AWS/EC2/DeleteCustomerGateway.hs
@@ -50,7 +50,7 @@
 data DeleteCustomerGateway = DeleteCustomerGateway
     { _dcg1CustomerGatewayId :: Text
     , _dcg1DryRun            :: Maybe Bool
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DeleteCustomerGateway' constructor.
 --
@@ -76,7 +76,7 @@
 dcg1DryRun = lens _dcg1DryRun (\s a -> s { _dcg1DryRun = a })
 
 data DeleteCustomerGatewayResponse = DeleteCustomerGatewayResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteCustomerGatewayResponse' constructor.
 deleteCustomerGatewayResponse :: DeleteCustomerGatewayResponse
diff --git a/gen/Network/AWS/EC2/DeleteDhcpOptions.hs b/gen/Network/AWS/EC2/DeleteDhcpOptions.hs
--- a/gen/Network/AWS/EC2/DeleteDhcpOptions.hs
+++ b/gen/Network/AWS/EC2/DeleteDhcpOptions.hs
@@ -52,7 +52,7 @@
 data DeleteDhcpOptions = DeleteDhcpOptions
     { _ddo1DhcpOptionsId :: Text
     , _ddo1DryRun        :: Maybe Bool
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DeleteDhcpOptions' constructor.
 --
@@ -78,7 +78,7 @@
 ddo1DryRun = lens _ddo1DryRun (\s a -> s { _ddo1DryRun = a })
 
 data DeleteDhcpOptionsResponse = DeleteDhcpOptionsResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteDhcpOptionsResponse' constructor.
 deleteDhcpOptionsResponse :: DeleteDhcpOptionsResponse
diff --git a/gen/Network/AWS/EC2/DeleteInternetGateway.hs b/gen/Network/AWS/EC2/DeleteInternetGateway.hs
--- a/gen/Network/AWS/EC2/DeleteInternetGateway.hs
+++ b/gen/Network/AWS/EC2/DeleteInternetGateway.hs
@@ -50,7 +50,7 @@
 data DeleteInternetGateway = DeleteInternetGateway
     { _dig2DryRun            :: Maybe Bool
     , _dig2InternetGatewayId :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DeleteInternetGateway' constructor.
 --
@@ -76,7 +76,7 @@
     lens _dig2InternetGatewayId (\s a -> s { _dig2InternetGatewayId = a })
 
 data DeleteInternetGatewayResponse = DeleteInternetGatewayResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteInternetGatewayResponse' constructor.
 deleteInternetGatewayResponse :: DeleteInternetGatewayResponse
diff --git a/gen/Network/AWS/EC2/DeleteKeyPair.hs b/gen/Network/AWS/EC2/DeleteKeyPair.hs
--- a/gen/Network/AWS/EC2/DeleteKeyPair.hs
+++ b/gen/Network/AWS/EC2/DeleteKeyPair.hs
@@ -49,7 +49,7 @@
 data DeleteKeyPair = DeleteKeyPair
     { _dkpDryRun  :: Maybe Bool
     , _dkpKeyName :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DeleteKeyPair' constructor.
 --
@@ -74,7 +74,7 @@
 dkpKeyName = lens _dkpKeyName (\s a -> s { _dkpKeyName = a })
 
 data DeleteKeyPairResponse = DeleteKeyPairResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteKeyPairResponse' constructor.
 deleteKeyPairResponse :: DeleteKeyPairResponse
diff --git a/gen/Network/AWS/EC2/DeleteNetworkAcl.hs b/gen/Network/AWS/EC2/DeleteNetworkAcl.hs
--- a/gen/Network/AWS/EC2/DeleteNetworkAcl.hs
+++ b/gen/Network/AWS/EC2/DeleteNetworkAcl.hs
@@ -50,7 +50,7 @@
 data DeleteNetworkAcl = DeleteNetworkAcl
     { _dnaDryRun       :: Maybe Bool
     , _dnaNetworkAclId :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DeleteNetworkAcl' constructor.
 --
@@ -75,7 +75,7 @@
 dnaNetworkAclId = lens _dnaNetworkAclId (\s a -> s { _dnaNetworkAclId = a })
 
 data DeleteNetworkAclResponse = DeleteNetworkAclResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteNetworkAclResponse' constructor.
 deleteNetworkAclResponse :: DeleteNetworkAclResponse
diff --git a/gen/Network/AWS/EC2/DeleteNetworkAclEntry.hs b/gen/Network/AWS/EC2/DeleteNetworkAclEntry.hs
--- a/gen/Network/AWS/EC2/DeleteNetworkAclEntry.hs
+++ b/gen/Network/AWS/EC2/DeleteNetworkAclEntry.hs
@@ -54,7 +54,7 @@
     , _dnaeEgress       :: Bool
     , _dnaeNetworkAclId :: Text
     , _dnaeRuleNumber   :: Int
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DeleteNetworkAclEntry' constructor.
 --
@@ -95,7 +95,7 @@
 dnaeRuleNumber = lens _dnaeRuleNumber (\s a -> s { _dnaeRuleNumber = a })
 
 data DeleteNetworkAclEntryResponse = DeleteNetworkAclEntryResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteNetworkAclEntryResponse' constructor.
 deleteNetworkAclEntryResponse :: DeleteNetworkAclEntryResponse
diff --git a/gen/Network/AWS/EC2/DeleteNetworkInterface.hs b/gen/Network/AWS/EC2/DeleteNetworkInterface.hs
--- a/gen/Network/AWS/EC2/DeleteNetworkInterface.hs
+++ b/gen/Network/AWS/EC2/DeleteNetworkInterface.hs
@@ -50,7 +50,7 @@
 data DeleteNetworkInterface = DeleteNetworkInterface
     { _dni2DryRun             :: Maybe Bool
     , _dni2NetworkInterfaceId :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DeleteNetworkInterface' constructor.
 --
@@ -76,7 +76,7 @@
     lens _dni2NetworkInterfaceId (\s a -> s { _dni2NetworkInterfaceId = a })
 
 data DeleteNetworkInterfaceResponse = DeleteNetworkInterfaceResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteNetworkInterfaceResponse' constructor.
 deleteNetworkInterfaceResponse :: DeleteNetworkInterfaceResponse
diff --git a/gen/Network/AWS/EC2/DeletePlacementGroup.hs b/gen/Network/AWS/EC2/DeletePlacementGroup.hs
--- a/gen/Network/AWS/EC2/DeletePlacementGroup.hs
+++ b/gen/Network/AWS/EC2/DeletePlacementGroup.hs
@@ -51,7 +51,7 @@
 data DeletePlacementGroup = DeletePlacementGroup
     { _dpgDryRun    :: Maybe Bool
     , _dpgGroupName :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DeletePlacementGroup' constructor.
 --
@@ -76,7 +76,7 @@
 dpgGroupName = lens _dpgGroupName (\s a -> s { _dpgGroupName = a })
 
 data DeletePlacementGroupResponse = DeletePlacementGroupResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeletePlacementGroupResponse' constructor.
 deletePlacementGroupResponse :: DeletePlacementGroupResponse
diff --git a/gen/Network/AWS/EC2/DeleteRoute.hs b/gen/Network/AWS/EC2/DeleteRoute.hs
--- a/gen/Network/AWS/EC2/DeleteRoute.hs
+++ b/gen/Network/AWS/EC2/DeleteRoute.hs
@@ -51,7 +51,7 @@
     { _drDestinationCidrBlock :: Text
     , _drDryRun               :: Maybe Bool
     , _drRouteTableId         :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DeleteRoute' constructor.
 --
@@ -86,7 +86,7 @@
 drRouteTableId = lens _drRouteTableId (\s a -> s { _drRouteTableId = a })
 
 data DeleteRouteResponse = DeleteRouteResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteRouteResponse' constructor.
 deleteRouteResponse :: DeleteRouteResponse
diff --git a/gen/Network/AWS/EC2/DeleteRouteTable.hs b/gen/Network/AWS/EC2/DeleteRouteTable.hs
--- a/gen/Network/AWS/EC2/DeleteRouteTable.hs
+++ b/gen/Network/AWS/EC2/DeleteRouteTable.hs
@@ -50,7 +50,7 @@
 data DeleteRouteTable = DeleteRouteTable
     { _drt1DryRun       :: Maybe Bool
     , _drt1RouteTableId :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DeleteRouteTable' constructor.
 --
@@ -75,7 +75,7 @@
 drt1RouteTableId = lens _drt1RouteTableId (\s a -> s { _drt1RouteTableId = a })
 
 data DeleteRouteTableResponse = DeleteRouteTableResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteRouteTableResponse' constructor.
 deleteRouteTableResponse :: DeleteRouteTableResponse
diff --git a/gen/Network/AWS/EC2/DeleteSecurityGroup.hs b/gen/Network/AWS/EC2/DeleteSecurityGroup.hs
--- a/gen/Network/AWS/EC2/DeleteSecurityGroup.hs
+++ b/gen/Network/AWS/EC2/DeleteSecurityGroup.hs
@@ -55,7 +55,7 @@
     { _dsgDryRun    :: Maybe Bool
     , _dsgGroupId   :: Maybe Text
     , _dsgGroupName :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DeleteSecurityGroup' constructor.
 --
@@ -87,7 +87,7 @@
 dsgGroupName = lens _dsgGroupName (\s a -> s { _dsgGroupName = a })
 
 data DeleteSecurityGroupResponse = DeleteSecurityGroupResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteSecurityGroupResponse' constructor.
 deleteSecurityGroupResponse :: DeleteSecurityGroupResponse
diff --git a/gen/Network/AWS/EC2/DeleteSnapshot.hs b/gen/Network/AWS/EC2/DeleteSnapshot.hs
--- a/gen/Network/AWS/EC2/DeleteSnapshot.hs
+++ b/gen/Network/AWS/EC2/DeleteSnapshot.hs
@@ -62,7 +62,7 @@
 data DeleteSnapshot = DeleteSnapshot
     { _ds3DryRun     :: Maybe Bool
     , _ds3SnapshotId :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DeleteSnapshot' constructor.
 --
@@ -87,7 +87,7 @@
 ds3SnapshotId = lens _ds3SnapshotId (\s a -> s { _ds3SnapshotId = a })
 
 data DeleteSnapshotResponse = DeleteSnapshotResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteSnapshotResponse' constructor.
 deleteSnapshotResponse :: DeleteSnapshotResponse
diff --git a/gen/Network/AWS/EC2/DeleteSpotDatafeedSubscription.hs b/gen/Network/AWS/EC2/DeleteSpotDatafeedSubscription.hs
--- a/gen/Network/AWS/EC2/DeleteSpotDatafeedSubscription.hs
+++ b/gen/Network/AWS/EC2/DeleteSpotDatafeedSubscription.hs
@@ -47,7 +47,7 @@
 
 newtype DeleteSpotDatafeedSubscription = DeleteSpotDatafeedSubscription
     { _dsds1DryRun :: Maybe Bool
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DeleteSpotDatafeedSubscription' constructor.
 --
@@ -64,7 +64,7 @@
 dsds1DryRun = lens _dsds1DryRun (\s a -> s { _dsds1DryRun = a })
 
 data DeleteSpotDatafeedSubscriptionResponse = DeleteSpotDatafeedSubscriptionResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteSpotDatafeedSubscriptionResponse' constructor.
 deleteSpotDatafeedSubscriptionResponse :: DeleteSpotDatafeedSubscriptionResponse
diff --git a/gen/Network/AWS/EC2/DeleteSubnet.hs b/gen/Network/AWS/EC2/DeleteSubnet.hs
--- a/gen/Network/AWS/EC2/DeleteSubnet.hs
+++ b/gen/Network/AWS/EC2/DeleteSubnet.hs
@@ -50,7 +50,7 @@
 data DeleteSubnet = DeleteSubnet
     { _ds2DryRun   :: Maybe Bool
     , _ds2SubnetId :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DeleteSubnet' constructor.
 --
@@ -75,7 +75,7 @@
 ds2SubnetId = lens _ds2SubnetId (\s a -> s { _ds2SubnetId = a })
 
 data DeleteSubnetResponse = DeleteSubnetResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteSubnetResponse' constructor.
 deleteSubnetResponse :: DeleteSubnetResponse
diff --git a/gen/Network/AWS/EC2/DeleteTags.hs b/gen/Network/AWS/EC2/DeleteTags.hs
--- a/gen/Network/AWS/EC2/DeleteTags.hs
+++ b/gen/Network/AWS/EC2/DeleteTags.hs
@@ -54,7 +54,7 @@
     { _dt1DryRun    :: Maybe Bool
     , _dt1Resources :: List "resourceId" Text
     , _dt1Tags      :: List "item" Tag
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DeleteTags' constructor.
 --
@@ -88,7 +88,7 @@
 dt1Tags = lens _dt1Tags (\s a -> s { _dt1Tags = a }) . _List
 
 data DeleteTagsResponse = DeleteTagsResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteTagsResponse' constructor.
 deleteTagsResponse :: DeleteTagsResponse
diff --git a/gen/Network/AWS/EC2/DeleteVolume.hs b/gen/Network/AWS/EC2/DeleteVolume.hs
--- a/gen/Network/AWS/EC2/DeleteVolume.hs
+++ b/gen/Network/AWS/EC2/DeleteVolume.hs
@@ -54,7 +54,7 @@
 data DeleteVolume = DeleteVolume
     { _dv4DryRun   :: Maybe Bool
     , _dv4VolumeId :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DeleteVolume' constructor.
 --
@@ -79,7 +79,7 @@
 dv4VolumeId = lens _dv4VolumeId (\s a -> s { _dv4VolumeId = a })
 
 data DeleteVolumeResponse = DeleteVolumeResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteVolumeResponse' constructor.
 deleteVolumeResponse :: DeleteVolumeResponse
diff --git a/gen/Network/AWS/EC2/DeleteVpc.hs b/gen/Network/AWS/EC2/DeleteVpc.hs
--- a/gen/Network/AWS/EC2/DeleteVpc.hs
+++ b/gen/Network/AWS/EC2/DeleteVpc.hs
@@ -53,7 +53,7 @@
 data DeleteVpc = DeleteVpc
     { _dv3DryRun :: Maybe Bool
     , _dv3VpcId  :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DeleteVpc' constructor.
 --
@@ -78,7 +78,7 @@
 dv3VpcId = lens _dv3VpcId (\s a -> s { _dv3VpcId = a })
 
 data DeleteVpcResponse = DeleteVpcResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteVpcResponse' constructor.
 deleteVpcResponse :: DeleteVpcResponse
diff --git a/gen/Network/AWS/EC2/DeleteVpcPeeringConnection.hs b/gen/Network/AWS/EC2/DeleteVpcPeeringConnection.hs
--- a/gen/Network/AWS/EC2/DeleteVpcPeeringConnection.hs
+++ b/gen/Network/AWS/EC2/DeleteVpcPeeringConnection.hs
@@ -54,7 +54,7 @@
 data DeleteVpcPeeringConnection = DeleteVpcPeeringConnection
     { _dvpcDryRun                 :: Maybe Bool
     , _dvpcVpcPeeringConnectionId :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DeleteVpcPeeringConnection' constructor.
 --
@@ -82,7 +82,7 @@
 
 newtype DeleteVpcPeeringConnectionResponse = DeleteVpcPeeringConnectionResponse
     { _dvpcrReturn :: Maybe Bool
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DeleteVpcPeeringConnectionResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DeleteVpnConnection.hs b/gen/Network/AWS/EC2/DeleteVpnConnection.hs
--- a/gen/Network/AWS/EC2/DeleteVpnConnection.hs
+++ b/gen/Network/AWS/EC2/DeleteVpnConnection.hs
@@ -58,7 +58,7 @@
 data DeleteVpnConnection = DeleteVpnConnection
     { _dvcDryRun          :: Maybe Bool
     , _dvcVpnConnectionId :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DeleteVpnConnection' constructor.
 --
@@ -84,7 +84,7 @@
     lens _dvcVpnConnectionId (\s a -> s { _dvcVpnConnectionId = a })
 
 data DeleteVpnConnectionResponse = DeleteVpnConnectionResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteVpnConnectionResponse' constructor.
 deleteVpnConnectionResponse :: DeleteVpnConnectionResponse
diff --git a/gen/Network/AWS/EC2/DeleteVpnConnectionRoute.hs b/gen/Network/AWS/EC2/DeleteVpnConnectionRoute.hs
--- a/gen/Network/AWS/EC2/DeleteVpnConnectionRoute.hs
+++ b/gen/Network/AWS/EC2/DeleteVpnConnectionRoute.hs
@@ -52,7 +52,7 @@
 data DeleteVpnConnectionRoute = DeleteVpnConnectionRoute
     { _dvcrDestinationCidrBlock :: Text
     , _dvcrVpnConnectionId      :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DeleteVpnConnectionRoute' constructor.
 --
@@ -82,7 +82,7 @@
     lens _dvcrVpnConnectionId (\s a -> s { _dvcrVpnConnectionId = a })
 
 data DeleteVpnConnectionRouteResponse = DeleteVpnConnectionRouteResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteVpnConnectionRouteResponse' constructor.
 deleteVpnConnectionRouteResponse :: DeleteVpnConnectionRouteResponse
diff --git a/gen/Network/AWS/EC2/DeleteVpnGateway.hs b/gen/Network/AWS/EC2/DeleteVpnGateway.hs
--- a/gen/Network/AWS/EC2/DeleteVpnGateway.hs
+++ b/gen/Network/AWS/EC2/DeleteVpnGateway.hs
@@ -53,7 +53,7 @@
 data DeleteVpnGateway = DeleteVpnGateway
     { _dvgDryRun       :: Maybe Bool
     , _dvgVpnGatewayId :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DeleteVpnGateway' constructor.
 --
@@ -78,7 +78,7 @@
 dvgVpnGatewayId = lens _dvgVpnGatewayId (\s a -> s { _dvgVpnGatewayId = a })
 
 data DeleteVpnGatewayResponse = DeleteVpnGatewayResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteVpnGatewayResponse' constructor.
 deleteVpnGatewayResponse :: DeleteVpnGatewayResponse
diff --git a/gen/Network/AWS/EC2/DeregisterImage.hs b/gen/Network/AWS/EC2/DeregisterImage.hs
--- a/gen/Network/AWS/EC2/DeregisterImage.hs
+++ b/gen/Network/AWS/EC2/DeregisterImage.hs
@@ -52,7 +52,7 @@
 data DeregisterImage = DeregisterImage
     { _diDryRun  :: Maybe Bool
     , _diImageId :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DeregisterImage' constructor.
 --
@@ -77,7 +77,7 @@
 diImageId = lens _diImageId (\s a -> s { _diImageId = a })
 
 data DeregisterImageResponse = DeregisterImageResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeregisterImageResponse' constructor.
 deregisterImageResponse :: DeregisterImageResponse
diff --git a/gen/Network/AWS/EC2/DescribeAccountAttributes.hs b/gen/Network/AWS/EC2/DescribeAccountAttributes.hs
--- a/gen/Network/AWS/EC2/DescribeAccountAttributes.hs
+++ b/gen/Network/AWS/EC2/DescribeAccountAttributes.hs
@@ -70,7 +70,7 @@
 data DescribeAccountAttributes = DescribeAccountAttributes
     { _daaAttributeNames :: List "attributeName" AccountAttributeName
     , _daaDryRun         :: Maybe Bool
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeAccountAttributes' constructor.
 --
@@ -97,7 +97,7 @@
 
 newtype DescribeAccountAttributesResponse = DescribeAccountAttributesResponse
     { _daarAccountAttributes :: List "item" AccountAttribute
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 -- | 'DescribeAccountAttributesResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DescribeAddresses.hs b/gen/Network/AWS/EC2/DescribeAddresses.hs
--- a/gen/Network/AWS/EC2/DescribeAddresses.hs
+++ b/gen/Network/AWS/EC2/DescribeAddresses.hs
@@ -58,7 +58,7 @@
     , _daDryRun        :: Maybe Bool
     , _daFilters       :: List "Filter" Filter
     , _daPublicIps     :: List "PublicIp" Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeAddresses' constructor.
 --
@@ -123,7 +123,7 @@
 
 newtype DescribeAddressesResponse = DescribeAddressesResponse
     { _darAddresses :: List "item" Address
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 -- | 'DescribeAddressesResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DescribeAvailabilityZones.hs b/gen/Network/AWS/EC2/DescribeAvailabilityZones.hs
--- a/gen/Network/AWS/EC2/DescribeAvailabilityZones.hs
+++ b/gen/Network/AWS/EC2/DescribeAvailabilityZones.hs
@@ -58,7 +58,7 @@
     { _dazDryRun    :: Maybe Bool
     , _dazFilters   :: List "Filter" Filter
     , _dazZoneNames :: List "ZoneName" Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeAvailabilityZones' constructor.
 --
@@ -101,7 +101,7 @@
 
 newtype DescribeAvailabilityZonesResponse = DescribeAvailabilityZonesResponse
     { _dazrAvailabilityZones :: List "item" AvailabilityZone
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 -- | 'DescribeAvailabilityZonesResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DescribeBundleTasks.hs b/gen/Network/AWS/EC2/DescribeBundleTasks.hs
--- a/gen/Network/AWS/EC2/DescribeBundleTasks.hs
+++ b/gen/Network/AWS/EC2/DescribeBundleTasks.hs
@@ -59,7 +59,7 @@
     { _dbtBundleIds :: List "BundleId" Text
     , _dbtDryRun    :: Maybe Bool
     , _dbtFilters   :: List "Filter" Filter
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeBundleTasks' constructor.
 --
@@ -117,7 +117,7 @@
 
 newtype DescribeBundleTasksResponse = DescribeBundleTasksResponse
     { _dbtrBundleTasks :: List "item" BundleTask
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 -- | 'DescribeBundleTasksResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DescribeClassicLinkInstances.hs b/gen/Network/AWS/EC2/DescribeClassicLinkInstances.hs
--- a/gen/Network/AWS/EC2/DescribeClassicLinkInstances.hs
+++ b/gen/Network/AWS/EC2/DescribeClassicLinkInstances.hs
@@ -61,7 +61,7 @@
     , _dcliInstanceIds :: List "InstanceId" Text
     , _dcliMaxResults  :: Maybe Int
     , _dcliNextToken   :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeClassicLinkInstances' constructor.
 --
@@ -136,7 +136,7 @@
 data DescribeClassicLinkInstancesResponse = DescribeClassicLinkInstancesResponse
     { _dclirInstances :: List "item" ClassicLinkInstance
     , _dclirNextToken :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeClassicLinkInstancesResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DescribeConversionTasks.hs b/gen/Network/AWS/EC2/DescribeConversionTasks.hs
--- a/gen/Network/AWS/EC2/DescribeConversionTasks.hs
+++ b/gen/Network/AWS/EC2/DescribeConversionTasks.hs
@@ -53,7 +53,7 @@
     { _dctConversionTaskIds :: List "item" Text
     , _dctDryRun            :: Maybe Bool
     , _dctFilters           :: List "Filter" Filter
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeConversionTasks' constructor.
 --
@@ -86,7 +86,7 @@
 
 newtype DescribeConversionTasksResponse = DescribeConversionTasksResponse
     { _dctrConversionTasks :: List "item" ConversionTask
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 -- | 'DescribeConversionTasksResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DescribeCustomerGateways.hs b/gen/Network/AWS/EC2/DescribeCustomerGateways.hs
--- a/gen/Network/AWS/EC2/DescribeCustomerGateways.hs
+++ b/gen/Network/AWS/EC2/DescribeCustomerGateways.hs
@@ -55,7 +55,7 @@
     { _dcgCustomerGatewayIds :: List "CustomerGatewayId" Text
     , _dcgDryRun             :: Maybe Bool
     , _dcgFilters            :: List "Filter" Filter
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeCustomerGateways' constructor.
 --
@@ -119,7 +119,7 @@
 
 newtype DescribeCustomerGatewaysResponse = DescribeCustomerGatewaysResponse
     { _dcgrCustomerGateways :: List "item" CustomerGateway
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 -- | 'DescribeCustomerGatewaysResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DescribeDhcpOptions.hs b/gen/Network/AWS/EC2/DescribeDhcpOptions.hs
--- a/gen/Network/AWS/EC2/DescribeDhcpOptions.hs
+++ b/gen/Network/AWS/EC2/DescribeDhcpOptions.hs
@@ -55,7 +55,7 @@
     { _ddoDhcpOptionsIds :: List "DhcpOptionsId" Text
     , _ddoDryRun         :: Maybe Bool
     , _ddoFilters        :: List "Filter" Filter
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeDhcpOptions' constructor.
 --
@@ -112,7 +112,7 @@
 
 newtype DescribeDhcpOptionsResponse = DescribeDhcpOptionsResponse
     { _ddorDhcpOptions :: List "item" DhcpOptions
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 -- | 'DescribeDhcpOptionsResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DescribeExportTasks.hs b/gen/Network/AWS/EC2/DescribeExportTasks.hs
--- a/gen/Network/AWS/EC2/DescribeExportTasks.hs
+++ b/gen/Network/AWS/EC2/DescribeExportTasks.hs
@@ -49,7 +49,7 @@
 
 newtype DescribeExportTasks = DescribeExportTasks
     { _detExportTaskIds :: List "ExportTaskId" Text
-    } deriving (Eq, Ord, Show, Monoid, Semigroup)
+    } deriving (Eq, Ord, Read, Show, Monoid, Semigroup)
 
 -- | 'DescribeExportTasks' constructor.
 --
@@ -68,7 +68,7 @@
 
 newtype DescribeExportTasksResponse = DescribeExportTasksResponse
     { _detrExportTasks :: List "item" ExportTask
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 -- | 'DescribeExportTasksResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DescribeImageAttribute.hs b/gen/Network/AWS/EC2/DescribeImageAttribute.hs
--- a/gen/Network/AWS/EC2/DescribeImageAttribute.hs
+++ b/gen/Network/AWS/EC2/DescribeImageAttribute.hs
@@ -61,7 +61,7 @@
     { _dia1Attribute :: ImageAttributeName
     , _dia1DryRun    :: Maybe Bool
     , _dia1ImageId   :: Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeImageAttribute' constructor.
 --
@@ -102,7 +102,7 @@
     , _diarProductCodes        :: List "item" ProductCode
     , _diarRamdiskId           :: Maybe AttributeValue
     , _diarSriovNetSupport     :: Maybe AttributeValue
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeImageAttributeResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DescribeImages.hs b/gen/Network/AWS/EC2/DescribeImages.hs
--- a/gen/Network/AWS/EC2/DescribeImages.hs
+++ b/gen/Network/AWS/EC2/DescribeImages.hs
@@ -64,7 +64,7 @@
     , _di2Filters         :: List "Filter" Filter
     , _di2ImageIds        :: List "ImageId" Text
     , _di2Owners          :: List "Owner" Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeImages' constructor.
 --
@@ -192,7 +192,7 @@
 
 newtype DescribeImagesResponse = DescribeImagesResponse
     { _dirImages :: List "item" Image
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 -- | 'DescribeImagesResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DescribeInstanceAttribute.hs b/gen/Network/AWS/EC2/DescribeInstanceAttribute.hs
--- a/gen/Network/AWS/EC2/DescribeInstanceAttribute.hs
+++ b/gen/Network/AWS/EC2/DescribeInstanceAttribute.hs
@@ -67,7 +67,7 @@
     { _diaAttribute  :: InstanceAttributeName
     , _diaDryRun     :: Maybe Bool
     , _diaInstanceId :: Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeInstanceAttribute' constructor.
 --
@@ -114,7 +114,7 @@
     , _diar1SourceDestCheck                   :: Maybe AttributeBooleanValue
     , _diar1SriovNetSupport                   :: Maybe AttributeValue
     , _diar1UserData                          :: Maybe AttributeValue
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeInstanceAttributeResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DescribeInstanceStatus.hs b/gen/Network/AWS/EC2/DescribeInstanceStatus.hs
--- a/gen/Network/AWS/EC2/DescribeInstanceStatus.hs
+++ b/gen/Network/AWS/EC2/DescribeInstanceStatus.hs
@@ -115,7 +115,7 @@
     , _disInstanceIds         :: List "InstanceId" Text
     , _disMaxResults          :: Maybe Int
     , _disNextToken           :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeInstanceStatus' constructor.
 --
@@ -213,7 +213,7 @@
 data DescribeInstanceStatusResponse = DescribeInstanceStatusResponse
     { _disrInstanceStatuses :: List "item" InstanceStatus
     , _disrNextToken        :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeInstanceStatusResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DescribeInstances.hs b/gen/Network/AWS/EC2/DescribeInstances.hs
--- a/gen/Network/AWS/EC2/DescribeInstances.hs
+++ b/gen/Network/AWS/EC2/DescribeInstances.hs
@@ -67,7 +67,7 @@
     , _di1InstanceIds :: List "InstanceId" Text
     , _di1MaxResults  :: Maybe Int
     , _di1NextToken   :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeInstances' constructor.
 --
@@ -342,7 +342,7 @@
 data DescribeInstancesResponse = DescribeInstancesResponse
     { _dirNextToken    :: Maybe Text
     , _dirReservations :: List "item" Reservation
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeInstancesResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DescribeInternetGateways.hs b/gen/Network/AWS/EC2/DescribeInternetGateways.hs
--- a/gen/Network/AWS/EC2/DescribeInternetGateways.hs
+++ b/gen/Network/AWS/EC2/DescribeInternetGateways.hs
@@ -53,7 +53,7 @@
     { _dig1DryRun             :: Maybe Bool
     , _dig1Filters            :: List "Filter" Filter
     , _dig1InternetGatewayIds :: List "item" Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeInternetGateways' constructor.
 --
@@ -111,7 +111,7 @@
 
 newtype DescribeInternetGatewaysResponse = DescribeInternetGatewaysResponse
     { _digrInternetGateways :: List "item" InternetGateway
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 -- | 'DescribeInternetGatewaysResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DescribeKeyPairs.hs b/gen/Network/AWS/EC2/DescribeKeyPairs.hs
--- a/gen/Network/AWS/EC2/DescribeKeyPairs.hs
+++ b/gen/Network/AWS/EC2/DescribeKeyPairs.hs
@@ -55,7 +55,7 @@
     { _dkp1DryRun   :: Maybe Bool
     , _dkp1Filters  :: List "Filter" Filter
     , _dkp1KeyNames :: List "KeyName" Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeKeyPairs' constructor.
 --
@@ -95,7 +95,7 @@
 
 newtype DescribeKeyPairsResponse = DescribeKeyPairsResponse
     { _dkprKeyPairs :: List "item" KeyPairInfo
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 -- | 'DescribeKeyPairsResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DescribeNetworkAcls.hs b/gen/Network/AWS/EC2/DescribeNetworkAcls.hs
--- a/gen/Network/AWS/EC2/DescribeNetworkAcls.hs
+++ b/gen/Network/AWS/EC2/DescribeNetworkAcls.hs
@@ -55,7 +55,7 @@
     { _dna1DryRun        :: Maybe Bool
     , _dna1Filters       :: List "Filter" Filter
     , _dna1NetworkAclIds :: List "item" Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeNetworkAcls' constructor.
 --
@@ -140,7 +140,7 @@
 
 newtype DescribeNetworkAclsResponse = DescribeNetworkAclsResponse
     { _dnarNetworkAcls :: List "item" NetworkAcl
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 -- | 'DescribeNetworkAclsResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DescribeNetworkInterfaceAttribute.hs b/gen/Network/AWS/EC2/DescribeNetworkInterfaceAttribute.hs
--- a/gen/Network/AWS/EC2/DescribeNetworkInterfaceAttribute.hs
+++ b/gen/Network/AWS/EC2/DescribeNetworkInterfaceAttribute.hs
@@ -58,7 +58,7 @@
     { _dniaAttribute          :: Maybe NetworkInterfaceAttribute
     , _dniaDryRun             :: Maybe Bool
     , _dniaNetworkInterfaceId :: Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeNetworkInterfaceAttribute' constructor.
 --
@@ -96,7 +96,7 @@
     , _dniarGroups             :: List "item" GroupIdentifier
     , _dniarNetworkInterfaceId :: Maybe Text
     , _dniarSourceDestCheck    :: Maybe AttributeBooleanValue
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeNetworkInterfaceAttributeResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DescribeNetworkInterfaces.hs b/gen/Network/AWS/EC2/DescribeNetworkInterfaces.hs
--- a/gen/Network/AWS/EC2/DescribeNetworkInterfaces.hs
+++ b/gen/Network/AWS/EC2/DescribeNetworkInterfaces.hs
@@ -53,7 +53,7 @@
     { _dni1DryRun              :: Maybe Bool
     , _dni1Filters             :: List "Filter" Filter
     , _dni1NetworkInterfaceIds :: List "item" Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeNetworkInterfaces' constructor.
 --
@@ -190,7 +190,7 @@
 
 newtype DescribeNetworkInterfacesResponse = DescribeNetworkInterfacesResponse
     { _dnirNetworkInterfaces :: List "item" NetworkInterface
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 -- | 'DescribeNetworkInterfacesResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DescribePlacementGroups.hs b/gen/Network/AWS/EC2/DescribePlacementGroups.hs
--- a/gen/Network/AWS/EC2/DescribePlacementGroups.hs
+++ b/gen/Network/AWS/EC2/DescribePlacementGroups.hs
@@ -54,7 +54,7 @@
     { _dpg1DryRun     :: Maybe Bool
     , _dpg1Filters    :: List "Filter" Filter
     , _dpg1GroupNames :: List "groupName" Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribePlacementGroups' constructor.
 --
@@ -97,7 +97,7 @@
 
 newtype DescribePlacementGroupsResponse = DescribePlacementGroupsResponse
     { _dpgrPlacementGroups :: List "item" PlacementGroup
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 -- | 'DescribePlacementGroupsResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DescribeRegions.hs b/gen/Network/AWS/EC2/DescribeRegions.hs
--- a/gen/Network/AWS/EC2/DescribeRegions.hs
+++ b/gen/Network/AWS/EC2/DescribeRegions.hs
@@ -55,7 +55,7 @@
     { _dr1DryRun      :: Maybe Bool
     , _dr1Filters     :: List "Filter" Filter
     , _dr1RegionNames :: List "RegionName" Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeRegions' constructor.
 --
@@ -93,7 +93,7 @@
 
 newtype DescribeRegionsResponse = DescribeRegionsResponse
     { _drrRegions :: List "item" Region
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 -- | 'DescribeRegionsResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DescribeReservedInstances.hs b/gen/Network/AWS/EC2/DescribeReservedInstances.hs
--- a/gen/Network/AWS/EC2/DescribeReservedInstances.hs
+++ b/gen/Network/AWS/EC2/DescribeReservedInstances.hs
@@ -57,7 +57,7 @@
     , _driFilters              :: List "Filter" Filter
     , _driOfferingType         :: Maybe OfferingTypeValues
     , _driReservedInstancesIds :: List "ReservedInstancesId" Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeReservedInstances' constructor.
 --
@@ -145,7 +145,7 @@
 
 newtype DescribeReservedInstancesResponse = DescribeReservedInstancesResponse
     { _drirReservedInstances :: List "item" ReservedInstances
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 -- | 'DescribeReservedInstancesResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DescribeReservedInstancesListings.hs b/gen/Network/AWS/EC2/DescribeReservedInstancesListings.hs
--- a/gen/Network/AWS/EC2/DescribeReservedInstancesListings.hs
+++ b/gen/Network/AWS/EC2/DescribeReservedInstancesListings.hs
@@ -73,7 +73,7 @@
     { _drilFilters                    :: List "Filter" Filter
     , _drilReservedInstancesId        :: Maybe Text
     , _drilReservedInstancesListingId :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeReservedInstancesListings' constructor.
 --
@@ -119,7 +119,7 @@
 
 newtype DescribeReservedInstancesListingsResponse = DescribeReservedInstancesListingsResponse
     { _drilrReservedInstancesListings :: List "item" ReservedInstancesListing
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 -- | 'DescribeReservedInstancesListingsResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DescribeReservedInstancesModifications.hs b/gen/Network/AWS/EC2/DescribeReservedInstancesModifications.hs
--- a/gen/Network/AWS/EC2/DescribeReservedInstancesModifications.hs
+++ b/gen/Network/AWS/EC2/DescribeReservedInstancesModifications.hs
@@ -60,7 +60,7 @@
     { _drimFilters                          :: List "Filter" Filter
     , _drimNextToken                        :: Maybe Text
     , _drimReservedInstancesModificationIds :: List "ReservedInstancesModificationId" Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeReservedInstancesModifications' constructor.
 --
@@ -131,7 +131,7 @@
 data DescribeReservedInstancesModificationsResponse = DescribeReservedInstancesModificationsResponse
     { _drimrNextToken                      :: Maybe Text
     , _drimrReservedInstancesModifications :: List "item" ReservedInstancesModification
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeReservedInstancesModificationsResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DescribeReservedInstancesOfferings.hs b/gen/Network/AWS/EC2/DescribeReservedInstancesOfferings.hs
--- a/gen/Network/AWS/EC2/DescribeReservedInstancesOfferings.hs
+++ b/gen/Network/AWS/EC2/DescribeReservedInstancesOfferings.hs
@@ -82,7 +82,7 @@
     , _drioOfferingType                 :: Maybe OfferingTypeValues
     , _drioProductDescription           :: Maybe RIProductDescription
     , _drioReservedInstancesOfferingIds :: List "ReservedInstancesOfferingId" Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeReservedInstancesOfferings' constructor.
 --
@@ -240,7 +240,7 @@
 data DescribeReservedInstancesOfferingsResponse = DescribeReservedInstancesOfferingsResponse
     { _driorNextToken                  :: Maybe Text
     , _driorReservedInstancesOfferings :: List "item" ReservedInstancesOffering
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeReservedInstancesOfferingsResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DescribeRouteTables.hs b/gen/Network/AWS/EC2/DescribeRouteTables.hs
--- a/gen/Network/AWS/EC2/DescribeRouteTables.hs
+++ b/gen/Network/AWS/EC2/DescribeRouteTables.hs
@@ -55,7 +55,7 @@
     { _drt2DryRun        :: Maybe Bool
     , _drt2Filters       :: List "Filter" Filter
     , _drt2RouteTableIds :: List "item" Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeRouteTables' constructor.
 --
@@ -141,7 +141,7 @@
 
 newtype DescribeRouteTablesResponse = DescribeRouteTablesResponse
     { _drtrRouteTables :: List "item" RouteTable
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 -- | 'DescribeRouteTablesResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DescribeSecurityGroups.hs b/gen/Network/AWS/EC2/DescribeSecurityGroups.hs
--- a/gen/Network/AWS/EC2/DescribeSecurityGroups.hs
+++ b/gen/Network/AWS/EC2/DescribeSecurityGroups.hs
@@ -58,7 +58,7 @@
     , _dsg1Filters    :: List "Filter" Filter
     , _dsg1GroupIds   :: List "groupId" Text
     , _dsg1GroupNames :: List "GroupName" Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeSecurityGroups' constructor.
 --
@@ -137,7 +137,7 @@
 
 newtype DescribeSecurityGroupsResponse = DescribeSecurityGroupsResponse
     { _dsgrSecurityGroups :: List "item" SecurityGroup
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 -- | 'DescribeSecurityGroupsResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DescribeSnapshotAttribute.hs b/gen/Network/AWS/EC2/DescribeSnapshotAttribute.hs
--- a/gen/Network/AWS/EC2/DescribeSnapshotAttribute.hs
+++ b/gen/Network/AWS/EC2/DescribeSnapshotAttribute.hs
@@ -59,7 +59,7 @@
     { _dsaAttribute  :: SnapshotAttributeName
     , _dsaDryRun     :: Maybe Bool
     , _dsaSnapshotId :: Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeSnapshotAttribute' constructor.
 --
@@ -95,7 +95,7 @@
     { _dsarCreateVolumePermissions :: List "item" CreateVolumePermission
     , _dsarProductCodes            :: List "item" ProductCode
     , _dsarSnapshotId              :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeSnapshotAttributeResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DescribeSnapshots.hs b/gen/Network/AWS/EC2/DescribeSnapshots.hs
--- a/gen/Network/AWS/EC2/DescribeSnapshots.hs
+++ b/gen/Network/AWS/EC2/DescribeSnapshots.hs
@@ -87,7 +87,7 @@
     , _ds1OwnerIds            :: List "Owner" Text
     , _ds1RestorableByUserIds :: List "RestorableBy" Text
     , _ds1SnapshotIds         :: List "SnapshotId" Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeSnapshots' constructor.
 --
@@ -173,7 +173,7 @@
 
 newtype DescribeSnapshotsResponse = DescribeSnapshotsResponse
     { _dsrSnapshots :: List "item" Snapshot
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 -- | 'DescribeSnapshotsResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DescribeSpotDatafeedSubscription.hs b/gen/Network/AWS/EC2/DescribeSpotDatafeedSubscription.hs
--- a/gen/Network/AWS/EC2/DescribeSpotDatafeedSubscription.hs
+++ b/gen/Network/AWS/EC2/DescribeSpotDatafeedSubscription.hs
@@ -49,7 +49,7 @@
 
 newtype DescribeSpotDatafeedSubscription = DescribeSpotDatafeedSubscription
     { _dsdsDryRun :: Maybe Bool
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DescribeSpotDatafeedSubscription' constructor.
 --
@@ -67,7 +67,7 @@
 
 newtype DescribeSpotDatafeedSubscriptionResponse = DescribeSpotDatafeedSubscriptionResponse
     { _dsdsrSpotDatafeedSubscription :: Maybe SpotDatafeedSubscription
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeSpotDatafeedSubscriptionResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DescribeSpotInstanceRequests.hs b/gen/Network/AWS/EC2/DescribeSpotInstanceRequests.hs
--- a/gen/Network/AWS/EC2/DescribeSpotInstanceRequests.hs
+++ b/gen/Network/AWS/EC2/DescribeSpotInstanceRequests.hs
@@ -63,7 +63,7 @@
     { _dsirDryRun                 :: Maybe Bool
     , _dsirFilters                :: List "Filter" Filter
     , _dsirSpotInstanceRequestIds :: List "SpotInstanceRequestId" Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeSpotInstanceRequests' constructor.
 --
@@ -206,7 +206,7 @@
 
 newtype DescribeSpotInstanceRequestsResponse = DescribeSpotInstanceRequestsResponse
     { _dsirrSpotInstanceRequests :: List "item" SpotInstanceRequest
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 -- | 'DescribeSpotInstanceRequestsResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DescribeSpotPriceHistory.hs b/gen/Network/AWS/EC2/DescribeSpotPriceHistory.hs
--- a/gen/Network/AWS/EC2/DescribeSpotPriceHistory.hs
+++ b/gen/Network/AWS/EC2/DescribeSpotPriceHistory.hs
@@ -85,7 +85,7 @@
     , _dsphNextToken           :: Maybe Text
     , _dsphProductDescriptions :: List "ProductDescription" Text
     , _dsphStartTime           :: Maybe ISO8601
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeSpotPriceHistory' constructor.
 --
@@ -181,7 +181,7 @@
 data DescribeSpotPriceHistoryResponse = DescribeSpotPriceHistoryResponse
     { _dsphrNextToken        :: Maybe Text
     , _dsphrSpotPriceHistory :: List "item" SpotPrice
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeSpotPriceHistoryResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DescribeSubnets.hs b/gen/Network/AWS/EC2/DescribeSubnets.hs
--- a/gen/Network/AWS/EC2/DescribeSubnets.hs
+++ b/gen/Network/AWS/EC2/DescribeSubnets.hs
@@ -55,7 +55,7 @@
     { _dsDryRun    :: Maybe Bool
     , _dsFilters   :: List "Filter" Filter
     , _dsSubnetIds :: List "SubnetId" Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeSubnets' constructor.
 --
@@ -122,7 +122,7 @@
 
 newtype DescribeSubnetsResponse = DescribeSubnetsResponse
     { _dsrSubnets :: List "item" Subnet
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 -- | 'DescribeSubnetsResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DescribeTags.hs b/gen/Network/AWS/EC2/DescribeTags.hs
--- a/gen/Network/AWS/EC2/DescribeTags.hs
+++ b/gen/Network/AWS/EC2/DescribeTags.hs
@@ -58,7 +58,7 @@
     , _dtFilters    :: List "Filter" Filter
     , _dtMaxResults :: Maybe Int
     , _dtNextToken  :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeTags' constructor.
 --
@@ -113,7 +113,7 @@
 data DescribeTagsResponse = DescribeTagsResponse
     { _dtrNextToken :: Maybe Text
     , _dtrTags      :: List "item" TagDescription
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeTagsResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DescribeVolumeAttribute.hs b/gen/Network/AWS/EC2/DescribeVolumeAttribute.hs
--- a/gen/Network/AWS/EC2/DescribeVolumeAttribute.hs
+++ b/gen/Network/AWS/EC2/DescribeVolumeAttribute.hs
@@ -58,7 +58,7 @@
     { _dvaAttribute :: Maybe VolumeAttributeName
     , _dvaDryRun    :: Maybe Bool
     , _dvaVolumeId  :: Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeVolumeAttribute' constructor.
 --
@@ -93,7 +93,7 @@
     { _dvarAutoEnableIO :: Maybe AttributeBooleanValue
     , _dvarProductCodes :: List "item" ProductCode
     , _dvarVolumeId     :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeVolumeAttributeResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DescribeVolumeStatus.hs b/gen/Network/AWS/EC2/DescribeVolumeStatus.hs
--- a/gen/Network/AWS/EC2/DescribeVolumeStatus.hs
+++ b/gen/Network/AWS/EC2/DescribeVolumeStatus.hs
@@ -93,7 +93,7 @@
     , _dvsMaxResults :: Maybe Int
     , _dvsNextToken  :: Maybe Text
     , _dvsVolumeIds  :: List "VolumeId" Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeVolumeStatus' constructor.
 --
@@ -172,7 +172,7 @@
 data DescribeVolumeStatusResponse = DescribeVolumeStatusResponse
     { _dvsrNextToken      :: Maybe Text
     , _dvsrVolumeStatuses :: List "item" VolumeStatusItem
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeVolumeStatusResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DescribeVolumes.hs b/gen/Network/AWS/EC2/DescribeVolumes.hs
--- a/gen/Network/AWS/EC2/DescribeVolumes.hs
+++ b/gen/Network/AWS/EC2/DescribeVolumes.hs
@@ -66,7 +66,7 @@
     , _dv2MaxResults :: Maybe Int
     , _dv2NextToken  :: Maybe Text
     , _dv2VolumeIds  :: List "VolumeId" Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeVolumes' constructor.
 --
@@ -170,7 +170,7 @@
 data DescribeVolumesResponse = DescribeVolumesResponse
     { _dvrNextToken :: Maybe Text
     , _dvrVolumes   :: List "item" Volume
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeVolumesResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DescribeVpcAttribute.hs b/gen/Network/AWS/EC2/DescribeVpcAttribute.hs
--- a/gen/Network/AWS/EC2/DescribeVpcAttribute.hs
+++ b/gen/Network/AWS/EC2/DescribeVpcAttribute.hs
@@ -56,7 +56,7 @@
     { _dva1Attribute :: Maybe VpcAttributeName
     , _dva1DryRun    :: Maybe Bool
     , _dva1VpcId     :: Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeVpcAttribute' constructor.
 --
@@ -91,7 +91,7 @@
     { _dvarEnableDnsHostnames :: Maybe AttributeBooleanValue
     , _dvarEnableDnsSupport   :: Maybe AttributeBooleanValue
     , _dvarVpcId              :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeVpcAttributeResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DescribeVpcClassicLink.hs b/gen/Network/AWS/EC2/DescribeVpcClassicLink.hs
--- a/gen/Network/AWS/EC2/DescribeVpcClassicLink.hs
+++ b/gen/Network/AWS/EC2/DescribeVpcClassicLink.hs
@@ -53,7 +53,7 @@
     { _dvclDryRun  :: Maybe Bool
     , _dvclFilters :: List "Filter" Filter
     , _dvclVpcIds  :: List "VpcId" Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeVpcClassicLink' constructor.
 --
@@ -103,7 +103,7 @@
 
 newtype DescribeVpcClassicLinkResponse = DescribeVpcClassicLinkResponse
     { _dvclrVpcs :: List "item" VpcClassicLink
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 -- | 'DescribeVpcClassicLinkResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DescribeVpcPeeringConnections.hs b/gen/Network/AWS/EC2/DescribeVpcPeeringConnections.hs
--- a/gen/Network/AWS/EC2/DescribeVpcPeeringConnections.hs
+++ b/gen/Network/AWS/EC2/DescribeVpcPeeringConnections.hs
@@ -53,7 +53,7 @@
     { _dvpc1DryRun                  :: Maybe Bool
     , _dvpc1Filters                 :: List "Filter" Filter
     , _dvpc1VpcPeeringConnectionIds :: List "item" Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeVpcPeeringConnections' constructor.
 --
@@ -130,7 +130,7 @@
 
 newtype DescribeVpcPeeringConnectionsResponse = DescribeVpcPeeringConnectionsResponse
     { _dvpcrVpcPeeringConnections :: List "item" VpcPeeringConnection
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 -- | 'DescribeVpcPeeringConnectionsResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DescribeVpcs.hs b/gen/Network/AWS/EC2/DescribeVpcs.hs
--- a/gen/Network/AWS/EC2/DescribeVpcs.hs
+++ b/gen/Network/AWS/EC2/DescribeVpcs.hs
@@ -53,7 +53,7 @@
     { _dv1DryRun  :: Maybe Bool
     , _dv1Filters :: List "Filter" Filter
     , _dv1VpcIds  :: List "VpcId" Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeVpcs' constructor.
 --
@@ -114,7 +114,7 @@
 
 newtype DescribeVpcsResponse = DescribeVpcsResponse
     { _dvrVpcs :: List "item" Vpc
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 -- | 'DescribeVpcsResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DescribeVpnConnections.hs b/gen/Network/AWS/EC2/DescribeVpnConnections.hs
--- a/gen/Network/AWS/EC2/DescribeVpnConnections.hs
+++ b/gen/Network/AWS/EC2/DescribeVpnConnections.hs
@@ -55,7 +55,7 @@
     { _dvc1DryRun           :: Maybe Bool
     , _dvc1Filters          :: List "Filter" Filter
     , _dvc1VpnConnectionIds :: List "VpnConnectionId" Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeVpnConnections' constructor.
 --
@@ -131,7 +131,7 @@
 
 newtype DescribeVpnConnectionsResponse = DescribeVpnConnectionsResponse
     { _dvcrVpnConnections :: List "item" VpnConnection
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 -- | 'DescribeVpnConnectionsResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DescribeVpnGateways.hs b/gen/Network/AWS/EC2/DescribeVpnGateways.hs
--- a/gen/Network/AWS/EC2/DescribeVpnGateways.hs
+++ b/gen/Network/AWS/EC2/DescribeVpnGateways.hs
@@ -55,7 +55,7 @@
     { _dvg2DryRun        :: Maybe Bool
     , _dvg2Filters       :: List "Filter" Filter
     , _dvg2VpnGatewayIds :: List "VpnGatewayId" Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DescribeVpnGateways' constructor.
 --
@@ -120,7 +120,7 @@
 
 newtype DescribeVpnGatewaysResponse = DescribeVpnGatewaysResponse
     { _dvgrVpnGateways :: List "item" VpnGateway
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 -- | 'DescribeVpnGatewaysResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DetachClassicLinkVpc.hs b/gen/Network/AWS/EC2/DetachClassicLinkVpc.hs
--- a/gen/Network/AWS/EC2/DetachClassicLinkVpc.hs
+++ b/gen/Network/AWS/EC2/DetachClassicLinkVpc.hs
@@ -55,7 +55,7 @@
     { _dclvDryRun     :: Maybe Bool
     , _dclvInstanceId :: Text
     , _dclvVpcId      :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DetachClassicLinkVpc' constructor.
 --
@@ -89,7 +89,7 @@
 
 newtype DetachClassicLinkVpcResponse = DetachClassicLinkVpcResponse
     { _dclvrReturn :: Maybe Bool
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DetachClassicLinkVpcResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DetachInternetGateway.hs b/gen/Network/AWS/EC2/DetachInternetGateway.hs
--- a/gen/Network/AWS/EC2/DetachInternetGateway.hs
+++ b/gen/Network/AWS/EC2/DetachInternetGateway.hs
@@ -53,7 +53,7 @@
     { _digDryRun            :: Maybe Bool
     , _digInternetGatewayId :: Text
     , _digVpcId             :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DetachInternetGateway' constructor.
 --
@@ -87,7 +87,7 @@
 digVpcId = lens _digVpcId (\s a -> s { _digVpcId = a })
 
 data DetachInternetGatewayResponse = DetachInternetGatewayResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DetachInternetGatewayResponse' constructor.
 detachInternetGatewayResponse :: DetachInternetGatewayResponse
diff --git a/gen/Network/AWS/EC2/DetachNetworkInterface.hs b/gen/Network/AWS/EC2/DetachNetworkInterface.hs
--- a/gen/Network/AWS/EC2/DetachNetworkInterface.hs
+++ b/gen/Network/AWS/EC2/DetachNetworkInterface.hs
@@ -51,7 +51,7 @@
     { _dniAttachmentId :: Text
     , _dniDryRun       :: Maybe Bool
     , _dniForce        :: Maybe Bool
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DetachNetworkInterface' constructor.
 --
@@ -83,7 +83,7 @@
 dniForce = lens _dniForce (\s a -> s { _dniForce = a })
 
 data DetachNetworkInterfaceResponse = DetachNetworkInterfaceResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DetachNetworkInterfaceResponse' constructor.
 detachNetworkInterfaceResponse :: DetachNetworkInterfaceResponse
diff --git a/gen/Network/AWS/EC2/DetachVolume.hs b/gen/Network/AWS/EC2/DetachVolume.hs
--- a/gen/Network/AWS/EC2/DetachVolume.hs
+++ b/gen/Network/AWS/EC2/DetachVolume.hs
@@ -74,7 +74,7 @@
     , _dvForce      :: Maybe Bool
     , _dvInstanceId :: Maybe Text
     , _dvVolumeId   :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DetachVolume' constructor.
 --
@@ -132,7 +132,7 @@
     , _dvrInstanceId          :: Maybe Text
     , _dvrState               :: Maybe VolumeAttachmentState
     , _dvrVolumeId            :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DetachVolumeResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DetachVpnGateway.hs b/gen/Network/AWS/EC2/DetachVpnGateway.hs
--- a/gen/Network/AWS/EC2/DetachVpnGateway.hs
+++ b/gen/Network/AWS/EC2/DetachVpnGateway.hs
@@ -58,7 +58,7 @@
     { _dvg1DryRun       :: Maybe Bool
     , _dvg1VpcId        :: Text
     , _dvg1VpnGatewayId :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DetachVpnGateway' constructor.
 --
@@ -91,7 +91,7 @@
 dvg1VpnGatewayId = lens _dvg1VpnGatewayId (\s a -> s { _dvg1VpnGatewayId = a })
 
 data DetachVpnGatewayResponse = DetachVpnGatewayResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DetachVpnGatewayResponse' constructor.
 detachVpnGatewayResponse :: DetachVpnGatewayResponse
diff --git a/gen/Network/AWS/EC2/DisableVgwRoutePropagation.hs b/gen/Network/AWS/EC2/DisableVgwRoutePropagation.hs
--- a/gen/Network/AWS/EC2/DisableVgwRoutePropagation.hs
+++ b/gen/Network/AWS/EC2/DisableVgwRoutePropagation.hs
@@ -50,7 +50,7 @@
 data DisableVgwRoutePropagation = DisableVgwRoutePropagation
     { _dvrpGatewayId    :: Text
     , _dvrpRouteTableId :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DisableVgwRoutePropagation' constructor.
 --
@@ -77,7 +77,7 @@
 dvrpRouteTableId = lens _dvrpRouteTableId (\s a -> s { _dvrpRouteTableId = a })
 
 data DisableVgwRoutePropagationResponse = DisableVgwRoutePropagationResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DisableVgwRoutePropagationResponse' constructor.
 disableVgwRoutePropagationResponse :: DisableVgwRoutePropagationResponse
diff --git a/gen/Network/AWS/EC2/DisableVpcClassicLink.hs b/gen/Network/AWS/EC2/DisableVpcClassicLink.hs
--- a/gen/Network/AWS/EC2/DisableVpcClassicLink.hs
+++ b/gen/Network/AWS/EC2/DisableVpcClassicLink.hs
@@ -52,7 +52,7 @@
 data DisableVpcClassicLink = DisableVpcClassicLink
     { _dvcl1DryRun :: Maybe Bool
     , _dvcl1VpcId  :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DisableVpcClassicLink' constructor.
 --
@@ -78,7 +78,7 @@
 
 newtype DisableVpcClassicLinkResponse = DisableVpcClassicLinkResponse
     { _dvclrReturn :: Maybe Bool
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DisableVpcClassicLinkResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/DisassociateAddress.hs b/gen/Network/AWS/EC2/DisassociateAddress.hs
--- a/gen/Network/AWS/EC2/DisassociateAddress.hs
+++ b/gen/Network/AWS/EC2/DisassociateAddress.hs
@@ -58,7 +58,7 @@
     { _da1AssociationId :: Maybe Text
     , _da1DryRun        :: Maybe Bool
     , _da1PublicIp      :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DisassociateAddress' constructor.
 --
@@ -89,7 +89,7 @@
 da1PublicIp = lens _da1PublicIp (\s a -> s { _da1PublicIp = a })
 
 data DisassociateAddressResponse = DisassociateAddressResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DisassociateAddressResponse' constructor.
 disassociateAddressResponse :: DisassociateAddressResponse
diff --git a/gen/Network/AWS/EC2/DisassociateRouteTable.hs b/gen/Network/AWS/EC2/DisassociateRouteTable.hs
--- a/gen/Network/AWS/EC2/DisassociateRouteTable.hs
+++ b/gen/Network/AWS/EC2/DisassociateRouteTable.hs
@@ -53,7 +53,7 @@
 data DisassociateRouteTable = DisassociateRouteTable
     { _drtAssociationId :: Text
     , _drtDryRun        :: Maybe Bool
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DisassociateRouteTable' constructor.
 --
@@ -79,7 +79,7 @@
 drtDryRun = lens _drtDryRun (\s a -> s { _drtDryRun = a })
 
 data DisassociateRouteTableResponse = DisassociateRouteTableResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DisassociateRouteTableResponse' constructor.
 disassociateRouteTableResponse :: DisassociateRouteTableResponse
diff --git a/gen/Network/AWS/EC2/EnableVgwRoutePropagation.hs b/gen/Network/AWS/EC2/EnableVgwRoutePropagation.hs
--- a/gen/Network/AWS/EC2/EnableVgwRoutePropagation.hs
+++ b/gen/Network/AWS/EC2/EnableVgwRoutePropagation.hs
@@ -50,7 +50,7 @@
 data EnableVgwRoutePropagation = EnableVgwRoutePropagation
     { _evrpGatewayId    :: Text
     , _evrpRouteTableId :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'EnableVgwRoutePropagation' constructor.
 --
@@ -77,7 +77,7 @@
 evrpRouteTableId = lens _evrpRouteTableId (\s a -> s { _evrpRouteTableId = a })
 
 data EnableVgwRoutePropagationResponse = EnableVgwRoutePropagationResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'EnableVgwRoutePropagationResponse' constructor.
 enableVgwRoutePropagationResponse :: EnableVgwRoutePropagationResponse
diff --git a/gen/Network/AWS/EC2/EnableVolumeIO.hs b/gen/Network/AWS/EC2/EnableVolumeIO.hs
--- a/gen/Network/AWS/EC2/EnableVolumeIO.hs
+++ b/gen/Network/AWS/EC2/EnableVolumeIO.hs
@@ -50,7 +50,7 @@
 data EnableVolumeIO = EnableVolumeIO
     { _evioDryRun   :: Maybe Bool
     , _evioVolumeId :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'EnableVolumeIO' constructor.
 --
@@ -75,7 +75,7 @@
 evioVolumeId = lens _evioVolumeId (\s a -> s { _evioVolumeId = a })
 
 data EnableVolumeIOResponse = EnableVolumeIOResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'EnableVolumeIOResponse' constructor.
 enableVolumeIOResponse :: EnableVolumeIOResponse
diff --git a/gen/Network/AWS/EC2/EnableVpcClassicLink.hs b/gen/Network/AWS/EC2/EnableVpcClassicLink.hs
--- a/gen/Network/AWS/EC2/EnableVpcClassicLink.hs
+++ b/gen/Network/AWS/EC2/EnableVpcClassicLink.hs
@@ -56,7 +56,7 @@
 data EnableVpcClassicLink = EnableVpcClassicLink
     { _evclDryRun :: Maybe Bool
     , _evclVpcId  :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'EnableVpcClassicLink' constructor.
 --
@@ -82,7 +82,7 @@
 
 newtype EnableVpcClassicLinkResponse = EnableVpcClassicLinkResponse
     { _evclrReturn :: Maybe Bool
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'EnableVpcClassicLinkResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/GetConsoleOutput.hs b/gen/Network/AWS/EC2/GetConsoleOutput.hs
--- a/gen/Network/AWS/EC2/GetConsoleOutput.hs
+++ b/gen/Network/AWS/EC2/GetConsoleOutput.hs
@@ -70,7 +70,7 @@
 data GetConsoleOutput = GetConsoleOutput
     { _gcoDryRun     :: Maybe Bool
     , _gcoInstanceId :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'GetConsoleOutput' constructor.
 --
@@ -98,7 +98,7 @@
     { _gcorInstanceId :: Maybe Text
     , _gcorOutput     :: Maybe Text
     , _gcorTimestamp  :: Maybe ISO8601
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'GetConsoleOutputResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/GetPasswordData.hs b/gen/Network/AWS/EC2/GetPasswordData.hs
--- a/gen/Network/AWS/EC2/GetPasswordData.hs
+++ b/gen/Network/AWS/EC2/GetPasswordData.hs
@@ -65,7 +65,7 @@
 data GetPasswordData = GetPasswordData
     { _gpdDryRun     :: Maybe Bool
     , _gpdInstanceId :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'GetPasswordData' constructor.
 --
@@ -93,7 +93,7 @@
     { _gpdrInstanceId   :: Maybe Text
     , _gpdrPasswordData :: Maybe Text
     , _gpdrTimestamp    :: Maybe ISO8601
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'GetPasswordDataResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/ImportInstance.hs b/gen/Network/AWS/EC2/ImportInstance.hs
--- a/gen/Network/AWS/EC2/ImportInstance.hs
+++ b/gen/Network/AWS/EC2/ImportInstance.hs
@@ -61,7 +61,7 @@
     , _iiDryRun              :: Maybe Bool
     , _iiLaunchSpecification :: Maybe ImportInstanceLaunchSpecification
     , _iiPlatform            :: PlatformValues
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ImportInstance' constructor.
 --
@@ -108,7 +108,7 @@
 
 newtype ImportInstanceResponse = ImportInstanceResponse
     { _iirConversionTask :: Maybe ConversionTask
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ImportInstanceResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/ImportKeyPair.hs b/gen/Network/AWS/EC2/ImportKeyPair.hs
--- a/gen/Network/AWS/EC2/ImportKeyPair.hs
+++ b/gen/Network/AWS/EC2/ImportKeyPair.hs
@@ -60,7 +60,7 @@
     { _ikpDryRun            :: Maybe Bool
     , _ikpKeyName           :: Text
     , _ikpPublicKeyMaterial :: Base64
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ImportKeyPair' constructor.
 --
@@ -97,7 +97,7 @@
 data ImportKeyPairResponse = ImportKeyPairResponse
     { _ikprKeyFingerprint :: Maybe Text
     , _ikprKeyName        :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'ImportKeyPairResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/ImportVolume.hs b/gen/Network/AWS/EC2/ImportVolume.hs
--- a/gen/Network/AWS/EC2/ImportVolume.hs
+++ b/gen/Network/AWS/EC2/ImportVolume.hs
@@ -60,7 +60,7 @@
     , _ivDryRun           :: Maybe Bool
     , _ivImage            :: DiskImageDetail
     , _ivVolume           :: VolumeDetail
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ImportVolume' constructor.
 --
@@ -108,7 +108,7 @@
 
 newtype ImportVolumeResponse = ImportVolumeResponse
     { _ivrConversionTask :: Maybe ConversionTask
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ImportVolumeResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/ModifyImageAttribute.hs b/gen/Network/AWS/EC2/ModifyImageAttribute.hs
--- a/gen/Network/AWS/EC2/ModifyImageAttribute.hs
+++ b/gen/Network/AWS/EC2/ModifyImageAttribute.hs
@@ -70,7 +70,7 @@
     , _miaUserGroups       :: List "UserGroup" Text
     , _miaUserIds          :: List "UserId" Text
     , _miaValue            :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ModifyImageAttribute' constructor.
 --
@@ -154,7 +154,7 @@
 miaValue = lens _miaValue (\s a -> s { _miaValue = a })
 
 data ModifyImageAttributeResponse = ModifyImageAttributeResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'ModifyImageAttributeResponse' constructor.
 modifyImageAttributeResponse :: ModifyImageAttributeResponse
diff --git a/gen/Network/AWS/EC2/ModifyInstanceAttribute.hs b/gen/Network/AWS/EC2/ModifyInstanceAttribute.hs
--- a/gen/Network/AWS/EC2/ModifyInstanceAttribute.hs
+++ b/gen/Network/AWS/EC2/ModifyInstanceAttribute.hs
@@ -79,7 +79,7 @@
     , _mia1SriovNetSupport                   :: Maybe AttributeValue
     , _mia1UserData                          :: Maybe BlobAttributeValue
     , _mia1Value                             :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ModifyInstanceAttribute' constructor.
 --
@@ -229,7 +229,7 @@
 mia1Value = lens _mia1Value (\s a -> s { _mia1Value = a })
 
 data ModifyInstanceAttributeResponse = ModifyInstanceAttributeResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'ModifyInstanceAttributeResponse' constructor.
 modifyInstanceAttributeResponse :: ModifyInstanceAttributeResponse
diff --git a/gen/Network/AWS/EC2/ModifyNetworkInterfaceAttribute.hs b/gen/Network/AWS/EC2/ModifyNetworkInterfaceAttribute.hs
--- a/gen/Network/AWS/EC2/ModifyNetworkInterfaceAttribute.hs
+++ b/gen/Network/AWS/EC2/ModifyNetworkInterfaceAttribute.hs
@@ -58,7 +58,7 @@
     , _mniaGroups             :: List "SecurityGroupId" Text
     , _mniaNetworkInterfaceId :: Text
     , _mniaSourceDestCheck    :: Maybe AttributeBooleanValue
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ModifyNetworkInterfaceAttribute' constructor.
 --
@@ -119,7 +119,7 @@
     lens _mniaSourceDestCheck (\s a -> s { _mniaSourceDestCheck = a })
 
 data ModifyNetworkInterfaceAttributeResponse = ModifyNetworkInterfaceAttributeResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'ModifyNetworkInterfaceAttributeResponse' constructor.
 modifyNetworkInterfaceAttributeResponse :: ModifyNetworkInterfaceAttributeResponse
diff --git a/gen/Network/AWS/EC2/ModifyReservedInstances.hs b/gen/Network/AWS/EC2/ModifyReservedInstances.hs
--- a/gen/Network/AWS/EC2/ModifyReservedInstances.hs
+++ b/gen/Network/AWS/EC2/ModifyReservedInstances.hs
@@ -59,7 +59,7 @@
     { _mriClientToken          :: Maybe Text
     , _mriReservedInstancesIds :: List "ReservedInstancesId" Text
     , _mriTargetConfigurations :: List "item" ReservedInstancesConfiguration
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ModifyReservedInstances' constructor.
 --
@@ -97,7 +97,7 @@
 
 newtype ModifyReservedInstancesResponse = ModifyReservedInstancesResponse
     { _mrirReservedInstancesModificationId :: Maybe Text
-    } deriving (Eq, Ord, Show, Monoid)
+    } deriving (Eq, Ord, Read, Show, Monoid)
 
 -- | 'ModifyReservedInstancesResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/ModifySnapshotAttribute.hs b/gen/Network/AWS/EC2/ModifySnapshotAttribute.hs
--- a/gen/Network/AWS/EC2/ModifySnapshotAttribute.hs
+++ b/gen/Network/AWS/EC2/ModifySnapshotAttribute.hs
@@ -69,7 +69,7 @@
     , _msaOperationType          :: Maybe Text
     , _msaSnapshotId             :: Text
     , _msaUserIds                :: List "UserId" Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ModifySnapshotAttribute' constructor.
 --
@@ -131,7 +131,7 @@
 msaUserIds = lens _msaUserIds (\s a -> s { _msaUserIds = a }) . _List
 
 data ModifySnapshotAttributeResponse = ModifySnapshotAttributeResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'ModifySnapshotAttributeResponse' constructor.
 modifySnapshotAttributeResponse :: ModifySnapshotAttributeResponse
diff --git a/gen/Network/AWS/EC2/ModifySubnetAttribute.hs b/gen/Network/AWS/EC2/ModifySubnetAttribute.hs
--- a/gen/Network/AWS/EC2/ModifySubnetAttribute.hs
+++ b/gen/Network/AWS/EC2/ModifySubnetAttribute.hs
@@ -49,7 +49,7 @@
 data ModifySubnetAttribute = ModifySubnetAttribute
     { _msaMapPublicIpOnLaunch :: Maybe AttributeBooleanValue
     , _msaSubnetId            :: Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ModifySubnetAttribute' constructor.
 --
@@ -75,7 +75,7 @@
 msaSubnetId = lens _msaSubnetId (\s a -> s { _msaSubnetId = a })
 
 data ModifySubnetAttributeResponse = ModifySubnetAttributeResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'ModifySubnetAttributeResponse' constructor.
 modifySubnetAttributeResponse :: ModifySubnetAttributeResponse
diff --git a/gen/Network/AWS/EC2/ModifyVolumeAttribute.hs b/gen/Network/AWS/EC2/ModifyVolumeAttribute.hs
--- a/gen/Network/AWS/EC2/ModifyVolumeAttribute.hs
+++ b/gen/Network/AWS/EC2/ModifyVolumeAttribute.hs
@@ -61,7 +61,7 @@
     { _mvaAutoEnableIO :: Maybe AttributeBooleanValue
     , _mvaDryRun       :: Maybe Bool
     , _mvaVolumeId     :: Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ModifyVolumeAttribute' constructor.
 --
@@ -93,7 +93,7 @@
 mvaVolumeId = lens _mvaVolumeId (\s a -> s { _mvaVolumeId = a })
 
 data ModifyVolumeAttributeResponse = ModifyVolumeAttributeResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'ModifyVolumeAttributeResponse' constructor.
 modifyVolumeAttributeResponse :: ModifyVolumeAttributeResponse
diff --git a/gen/Network/AWS/EC2/ModifyVpcAttribute.hs b/gen/Network/AWS/EC2/ModifyVpcAttribute.hs
--- a/gen/Network/AWS/EC2/ModifyVpcAttribute.hs
+++ b/gen/Network/AWS/EC2/ModifyVpcAttribute.hs
@@ -51,7 +51,7 @@
     { _mvaEnableDnsHostnames :: Maybe AttributeBooleanValue
     , _mvaEnableDnsSupport   :: Maybe AttributeBooleanValue
     , _mvaVpcId              :: Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ModifyVpcAttribute' constructor.
 --
@@ -93,7 +93,7 @@
 mvaVpcId = lens _mvaVpcId (\s a -> s { _mvaVpcId = a })
 
 data ModifyVpcAttributeResponse = ModifyVpcAttributeResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'ModifyVpcAttributeResponse' constructor.
 modifyVpcAttributeResponse :: ModifyVpcAttributeResponse
diff --git a/gen/Network/AWS/EC2/MonitorInstances.hs b/gen/Network/AWS/EC2/MonitorInstances.hs
--- a/gen/Network/AWS/EC2/MonitorInstances.hs
+++ b/gen/Network/AWS/EC2/MonitorInstances.hs
@@ -52,7 +52,7 @@
 data MonitorInstances = MonitorInstances
     { _miDryRun      :: Maybe Bool
     , _miInstanceIds :: List "InstanceId" Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'MonitorInstances' constructor.
 --
@@ -77,7 +77,7 @@
 
 newtype MonitorInstancesResponse = MonitorInstancesResponse
     { _mirInstanceMonitorings :: List "item" InstanceMonitoring
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 -- | 'MonitorInstancesResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/PurchaseReservedInstancesOffering.hs b/gen/Network/AWS/EC2/PurchaseReservedInstancesOffering.hs
--- a/gen/Network/AWS/EC2/PurchaseReservedInstancesOffering.hs
+++ b/gen/Network/AWS/EC2/PurchaseReservedInstancesOffering.hs
@@ -65,7 +65,7 @@
     , _prioInstanceCount               :: Int
     , _prioLimitPrice                  :: Maybe ReservedInstanceLimitPrice
     , _prioReservedInstancesOfferingId :: Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'PurchaseReservedInstancesOffering' constructor.
 --
@@ -111,7 +111,7 @@
 
 newtype PurchaseReservedInstancesOfferingResponse = PurchaseReservedInstancesOfferingResponse
     { _priorReservedInstancesId :: Maybe Text
-    } deriving (Eq, Ord, Show, Monoid)
+    } deriving (Eq, Ord, Read, Show, Monoid)
 
 -- | 'PurchaseReservedInstancesOfferingResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/RebootInstances.hs b/gen/Network/AWS/EC2/RebootInstances.hs
--- a/gen/Network/AWS/EC2/RebootInstances.hs
+++ b/gen/Network/AWS/EC2/RebootInstances.hs
@@ -57,7 +57,7 @@
 data RebootInstances = RebootInstances
     { _ri2DryRun      :: Maybe Bool
     , _ri2InstanceIds :: List "InstanceId" Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'RebootInstances' constructor.
 --
@@ -81,7 +81,7 @@
 ri2InstanceIds = lens _ri2InstanceIds (\s a -> s { _ri2InstanceIds = a }) . _List
 
 data RebootInstancesResponse = RebootInstancesResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'RebootInstancesResponse' constructor.
 rebootInstancesResponse :: RebootInstancesResponse
diff --git a/gen/Network/AWS/EC2/RegisterImage.hs b/gen/Network/AWS/EC2/RegisterImage.hs
--- a/gen/Network/AWS/EC2/RegisterImage.hs
+++ b/gen/Network/AWS/EC2/RegisterImage.hs
@@ -86,7 +86,7 @@
     , _ri1RootDeviceName      :: Maybe Text
     , _ri1SriovNetSupport     :: Maybe Text
     , _ri1VirtualizationType  :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'RegisterImage' constructor.
 --
@@ -195,7 +195,7 @@
 
 newtype RegisterImageResponse = RegisterImageResponse
     { _rirImageId :: Maybe Text
-    } deriving (Eq, Ord, Show, Monoid)
+    } deriving (Eq, Ord, Read, Show, Monoid)
 
 -- | 'RegisterImageResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/RejectVpcPeeringConnection.hs b/gen/Network/AWS/EC2/RejectVpcPeeringConnection.hs
--- a/gen/Network/AWS/EC2/RejectVpcPeeringConnection.hs
+++ b/gen/Network/AWS/EC2/RejectVpcPeeringConnection.hs
@@ -55,7 +55,7 @@
 data RejectVpcPeeringConnection = RejectVpcPeeringConnection
     { _rvpcDryRun                 :: Maybe Bool
     , _rvpcVpcPeeringConnectionId :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'RejectVpcPeeringConnection' constructor.
 --
@@ -83,7 +83,7 @@
 
 newtype RejectVpcPeeringConnectionResponse = RejectVpcPeeringConnectionResponse
     { _rvpcrReturn :: Maybe Bool
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'RejectVpcPeeringConnectionResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/ReleaseAddress.hs b/gen/Network/AWS/EC2/ReleaseAddress.hs
--- a/gen/Network/AWS/EC2/ReleaseAddress.hs
+++ b/gen/Network/AWS/EC2/ReleaseAddress.hs
@@ -64,7 +64,7 @@
     { _raAllocationId :: Maybe Text
     , _raDryRun       :: Maybe Bool
     , _raPublicIp     :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'ReleaseAddress' constructor.
 --
@@ -95,7 +95,7 @@
 raPublicIp = lens _raPublicIp (\s a -> s { _raPublicIp = a })
 
 data ReleaseAddressResponse = ReleaseAddressResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'ReleaseAddressResponse' constructor.
 releaseAddressResponse :: ReleaseAddressResponse
diff --git a/gen/Network/AWS/EC2/ReplaceNetworkAclAssociation.hs b/gen/Network/AWS/EC2/ReplaceNetworkAclAssociation.hs
--- a/gen/Network/AWS/EC2/ReplaceNetworkAclAssociation.hs
+++ b/gen/Network/AWS/EC2/ReplaceNetworkAclAssociation.hs
@@ -55,7 +55,7 @@
     { _rnaaAssociationId :: Text
     , _rnaaDryRun        :: Maybe Bool
     , _rnaaNetworkAclId  :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'ReplaceNetworkAclAssociation' constructor.
 --
@@ -91,7 +91,7 @@
 
 newtype ReplaceNetworkAclAssociationResponse = ReplaceNetworkAclAssociationResponse
     { _rnaarNewAssociationId :: Maybe Text
-    } deriving (Eq, Ord, Show, Monoid)
+    } deriving (Eq, Ord, Read, Show, Monoid)
 
 -- | 'ReplaceNetworkAclAssociationResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/ReplaceNetworkAclEntry.hs b/gen/Network/AWS/EC2/ReplaceNetworkAclEntry.hs
--- a/gen/Network/AWS/EC2/ReplaceNetworkAclEntry.hs
+++ b/gen/Network/AWS/EC2/ReplaceNetworkAclEntry.hs
@@ -64,7 +64,7 @@
     , _rnaeProtocol     :: Text
     , _rnaeRuleAction   :: RuleAction
     , _rnaeRuleNumber   :: Int
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ReplaceNetworkAclEntry' constructor.
 --
@@ -147,7 +147,7 @@
 rnaeRuleNumber = lens _rnaeRuleNumber (\s a -> s { _rnaeRuleNumber = a })
 
 data ReplaceNetworkAclEntryResponse = ReplaceNetworkAclEntryResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'ReplaceNetworkAclEntryResponse' constructor.
 replaceNetworkAclEntryResponse :: ReplaceNetworkAclEntryResponse
diff --git a/gen/Network/AWS/EC2/ReplaceRoute.hs b/gen/Network/AWS/EC2/ReplaceRoute.hs
--- a/gen/Network/AWS/EC2/ReplaceRoute.hs
+++ b/gen/Network/AWS/EC2/ReplaceRoute.hs
@@ -63,7 +63,7 @@
     , _rrNetworkInterfaceId     :: Maybe Text
     , _rrRouteTableId           :: Text
     , _rrVpcPeeringConnectionId :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'ReplaceRoute' constructor.
 --
@@ -129,7 +129,7 @@
         (\s a -> s { _rrVpcPeeringConnectionId = a })
 
 data ReplaceRouteResponse = ReplaceRouteResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'ReplaceRouteResponse' constructor.
 replaceRouteResponse :: ReplaceRouteResponse
diff --git a/gen/Network/AWS/EC2/ReplaceRouteTableAssociation.hs b/gen/Network/AWS/EC2/ReplaceRouteTableAssociation.hs
--- a/gen/Network/AWS/EC2/ReplaceRouteTableAssociation.hs
+++ b/gen/Network/AWS/EC2/ReplaceRouteTableAssociation.hs
@@ -60,7 +60,7 @@
     { _rrtaAssociationId :: Text
     , _rrtaDryRun        :: Maybe Bool
     , _rrtaRouteTableId  :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'ReplaceRouteTableAssociation' constructor.
 --
@@ -95,7 +95,7 @@
 
 newtype ReplaceRouteTableAssociationResponse = ReplaceRouteTableAssociationResponse
     { _rrtarNewAssociationId :: Maybe Text
-    } deriving (Eq, Ord, Show, Monoid)
+    } deriving (Eq, Ord, Read, Show, Monoid)
 
 -- | 'ReplaceRouteTableAssociationResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/ReportInstanceStatus.hs b/gen/Network/AWS/EC2/ReportInstanceStatus.hs
--- a/gen/Network/AWS/EC2/ReportInstanceStatus.hs
+++ b/gen/Network/AWS/EC2/ReportInstanceStatus.hs
@@ -64,7 +64,7 @@
     , _risReasonCodes :: List "item" ReportInstanceReasonCodes
     , _risStartTime   :: Maybe ISO8601
     , _risStatus      :: ReportStatusType
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ReportInstanceStatus' constructor.
 --
@@ -147,7 +147,7 @@
 risStatus = lens _risStatus (\s a -> s { _risStatus = a })
 
 data ReportInstanceStatusResponse = ReportInstanceStatusResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'ReportInstanceStatusResponse' constructor.
 reportInstanceStatusResponse :: ReportInstanceStatusResponse
diff --git a/gen/Network/AWS/EC2/RequestSpotInstances.hs b/gen/Network/AWS/EC2/RequestSpotInstances.hs
--- a/gen/Network/AWS/EC2/RequestSpotInstances.hs
+++ b/gen/Network/AWS/EC2/RequestSpotInstances.hs
@@ -72,7 +72,7 @@
     , _rsiType                  :: Maybe SpotInstanceType
     , _rsiValidFrom             :: Maybe ISO8601
     , _rsiValidUntil            :: Maybe ISO8601
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'RequestSpotInstances' constructor.
 --
@@ -187,7 +187,7 @@
 
 newtype RequestSpotInstancesResponse = RequestSpotInstancesResponse
     { _rsirSpotInstanceRequests :: List "item" SpotInstanceRequest
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 -- | 'RequestSpotInstancesResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/ResetImageAttribute.hs b/gen/Network/AWS/EC2/ResetImageAttribute.hs
--- a/gen/Network/AWS/EC2/ResetImageAttribute.hs
+++ b/gen/Network/AWS/EC2/ResetImageAttribute.hs
@@ -54,7 +54,7 @@
     { _ria1Attribute :: ResetImageAttributeName
     , _ria1DryRun    :: Maybe Bool
     , _ria1ImageId   :: Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ResetImageAttribute' constructor.
 --
@@ -88,7 +88,7 @@
 ria1ImageId = lens _ria1ImageId (\s a -> s { _ria1ImageId = a })
 
 data ResetImageAttributeResponse = ResetImageAttributeResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'ResetImageAttributeResponse' constructor.
 resetImageAttributeResponse :: ResetImageAttributeResponse
diff --git a/gen/Network/AWS/EC2/ResetInstanceAttribute.hs b/gen/Network/AWS/EC2/ResetInstanceAttribute.hs
--- a/gen/Network/AWS/EC2/ResetInstanceAttribute.hs
+++ b/gen/Network/AWS/EC2/ResetInstanceAttribute.hs
@@ -57,7 +57,7 @@
     { _riaAttribute  :: InstanceAttributeName
     , _riaDryRun     :: Maybe Bool
     , _riaInstanceId :: Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ResetInstanceAttribute' constructor.
 --
@@ -90,7 +90,7 @@
 riaInstanceId = lens _riaInstanceId (\s a -> s { _riaInstanceId = a })
 
 data ResetInstanceAttributeResponse = ResetInstanceAttributeResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'ResetInstanceAttributeResponse' constructor.
 resetInstanceAttributeResponse :: ResetInstanceAttributeResponse
diff --git a/gen/Network/AWS/EC2/ResetNetworkInterfaceAttribute.hs b/gen/Network/AWS/EC2/ResetNetworkInterfaceAttribute.hs
--- a/gen/Network/AWS/EC2/ResetNetworkInterfaceAttribute.hs
+++ b/gen/Network/AWS/EC2/ResetNetworkInterfaceAttribute.hs
@@ -52,7 +52,7 @@
     { _rniaDryRun             :: Maybe Bool
     , _rniaNetworkInterfaceId :: Text
     , _rniaSourceDestCheck    :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'ResetNetworkInterfaceAttribute' constructor.
 --
@@ -86,7 +86,7 @@
     lens _rniaSourceDestCheck (\s a -> s { _rniaSourceDestCheck = a })
 
 data ResetNetworkInterfaceAttributeResponse = ResetNetworkInterfaceAttributeResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'ResetNetworkInterfaceAttributeResponse' constructor.
 resetNetworkInterfaceAttributeResponse :: ResetNetworkInterfaceAttributeResponse
diff --git a/gen/Network/AWS/EC2/ResetSnapshotAttribute.hs b/gen/Network/AWS/EC2/ResetSnapshotAttribute.hs
--- a/gen/Network/AWS/EC2/ResetSnapshotAttribute.hs
+++ b/gen/Network/AWS/EC2/ResetSnapshotAttribute.hs
@@ -54,7 +54,7 @@
     { _rsaAttribute  :: SnapshotAttributeName
     , _rsaDryRun     :: Maybe Bool
     , _rsaSnapshotId :: Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ResetSnapshotAttribute' constructor.
 --
@@ -88,7 +88,7 @@
 rsaSnapshotId = lens _rsaSnapshotId (\s a -> s { _rsaSnapshotId = a })
 
 data ResetSnapshotAttributeResponse = ResetSnapshotAttributeResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'ResetSnapshotAttributeResponse' constructor.
 resetSnapshotAttributeResponse :: ResetSnapshotAttributeResponse
diff --git a/gen/Network/AWS/EC2/RevokeSecurityGroupEgress.hs b/gen/Network/AWS/EC2/RevokeSecurityGroupEgress.hs
--- a/gen/Network/AWS/EC2/RevokeSecurityGroupEgress.hs
+++ b/gen/Network/AWS/EC2/RevokeSecurityGroupEgress.hs
@@ -73,7 +73,7 @@
     , _rsgeSourceSecurityGroupName    :: Maybe Text
     , _rsgeSourceSecurityGroupOwnerId :: Maybe Text
     , _rsgeToPort                     :: Maybe Int
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'RevokeSecurityGroupEgress' constructor.
 --
@@ -160,7 +160,7 @@
 rsgeToPort = lens _rsgeToPort (\s a -> s { _rsgeToPort = a })
 
 data RevokeSecurityGroupEgressResponse = RevokeSecurityGroupEgressResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'RevokeSecurityGroupEgressResponse' constructor.
 revokeSecurityGroupEgressResponse :: RevokeSecurityGroupEgressResponse
diff --git a/gen/Network/AWS/EC2/RevokeSecurityGroupIngress.hs b/gen/Network/AWS/EC2/RevokeSecurityGroupIngress.hs
--- a/gen/Network/AWS/EC2/RevokeSecurityGroupIngress.hs
+++ b/gen/Network/AWS/EC2/RevokeSecurityGroupIngress.hs
@@ -75,7 +75,7 @@
     , _rsgiSourceSecurityGroupName    :: Maybe Text
     , _rsgiSourceSecurityGroupOwnerId :: Maybe Text
     , _rsgiToPort                     :: Maybe Int
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'RevokeSecurityGroupIngress' constructor.
 --
@@ -168,7 +168,7 @@
 rsgiToPort = lens _rsgiToPort (\s a -> s { _rsgiToPort = a })
 
 data RevokeSecurityGroupIngressResponse = RevokeSecurityGroupIngressResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'RevokeSecurityGroupIngressResponse' constructor.
 revokeSecurityGroupIngressResponse :: RevokeSecurityGroupIngressResponse
diff --git a/gen/Network/AWS/EC2/RunInstances.hs b/gen/Network/AWS/EC2/RunInstances.hs
--- a/gen/Network/AWS/EC2/RunInstances.hs
+++ b/gen/Network/AWS/EC2/RunInstances.hs
@@ -124,7 +124,7 @@
     , _riSecurityGroups                    :: List "SecurityGroup" Text
     , _riSubnetId                          :: Maybe Text
     , _riUserData                          :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'RunInstances' constructor.
 --
@@ -375,7 +375,7 @@
     , _rirOwnerId       :: Text
     , _rirRequesterId   :: Maybe Text
     , _rirReservationId :: Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'RunInstancesResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/StartInstances.hs b/gen/Network/AWS/EC2/StartInstances.hs
--- a/gen/Network/AWS/EC2/StartInstances.hs
+++ b/gen/Network/AWS/EC2/StartInstances.hs
@@ -70,7 +70,7 @@
     { _si1AdditionalInfo :: Maybe Text
     , _si1DryRun         :: Maybe Bool
     , _si1InstanceIds    :: List "InstanceId" Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'StartInstances' constructor.
 --
@@ -103,7 +103,7 @@
 
 newtype StartInstancesResponse = StartInstancesResponse
     { _sirStartingInstances :: List "item" InstanceStateChange
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 -- | 'StartInstancesResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/StopInstances.hs b/gen/Network/AWS/EC2/StopInstances.hs
--- a/gen/Network/AWS/EC2/StopInstances.hs
+++ b/gen/Network/AWS/EC2/StopInstances.hs
@@ -81,7 +81,7 @@
     { _siDryRun      :: Maybe Bool
     , _siForce       :: Maybe Bool
     , _siInstanceIds :: List "InstanceId" Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'StopInstances' constructor.
 --
@@ -118,7 +118,7 @@
 
 newtype StopInstancesResponse = StopInstancesResponse
     { _sirStoppingInstances :: List "item" InstanceStateChange
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 -- | 'StopInstancesResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/TerminateInstances.hs b/gen/Network/AWS/EC2/TerminateInstances.hs
--- a/gen/Network/AWS/EC2/TerminateInstances.hs
+++ b/gen/Network/AWS/EC2/TerminateInstances.hs
@@ -70,7 +70,7 @@
 data TerminateInstances = TerminateInstances
     { _tiDryRun      :: Maybe Bool
     , _tiInstanceIds :: List "InstanceId" Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'TerminateInstances' constructor.
 --
@@ -95,7 +95,7 @@
 
 newtype TerminateInstancesResponse = TerminateInstancesResponse
     { _tirTerminatingInstances :: List "item" InstanceStateChange
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 -- | 'TerminateInstancesResponse' constructor.
 --
diff --git a/gen/Network/AWS/EC2/Types.hs b/gen/Network/AWS/EC2/Types.hs
--- a/gen/Network/AWS/EC2/Types.hs
+++ b/gen/Network/AWS/EC2/Types.hs
@@ -1478,7 +1478,7 @@
     | ImageLaunchPermission   -- ^ launchPermission
     | ImageProductCodes       -- ^ productCodes
     | ImageRamdisk            -- ^ ramdisk
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable ImageAttributeName
 
@@ -1511,7 +1511,7 @@
 
 data PermissionGroup
     = All -- ^ all
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable PermissionGroup
 
@@ -1539,7 +1539,7 @@
     , _naeProtocol     :: Maybe Text
     , _naeRuleAction   :: Maybe RuleAction
     , _naeRuleNumber   :: Maybe Int
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'NetworkAclEntry' constructor.
 --
@@ -1623,7 +1623,7 @@
 
 newtype BlobAttributeValue = BlobAttributeValue
     { _bavValue :: Maybe Base64
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'BlobAttributeValue' constructor.
 --
@@ -1660,7 +1660,7 @@
     , _iilsPrivateIpAddress                  :: Maybe Text
     , _iilsSubnetId                          :: Maybe Text
     , _iilsUserData                          :: Maybe UserData
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ImportInstanceLaunchSpecification' constructor.
 --
@@ -1797,7 +1797,7 @@
     , _sTags        :: List "item" Tag
     , _sVolumeId    :: Text
     , _sVolumeSize  :: Int
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'Snapshot' constructor.
 --
@@ -1936,7 +1936,7 @@
 data SpotInstanceStateFault = SpotInstanceStateFault
     { _sisfCode    :: Maybe Text
     , _sisfMessage :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'SpotInstanceStateFault' constructor.
 --
@@ -1976,7 +1976,7 @@
     , _tdResourceId   :: Text
     , _tdResourceType :: ResourceType
     , _tdValue        :: Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'TagDescription' constructor.
 --
@@ -2036,7 +2036,7 @@
 data GroupIdentifier = GroupIdentifier
     { _giGroupId   :: Maybe Text
     , _giGroupName :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'GroupIdentifier' constructor.
 --
@@ -2073,7 +2073,7 @@
 
 data VpnStaticRouteSource
     = Static -- ^ Static
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable VpnStaticRouteSource
 
@@ -2104,7 +2104,7 @@
     , _rilStatusMessage              :: Maybe Text
     , _rilTags                       :: List "item" Tag
     , _rilUpdateDate                 :: Maybe ISO8601
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ReservedInstancesListing' constructor.
 --
@@ -2221,7 +2221,7 @@
 
 data InstanceLifecycleType
     = Spot -- ^ spot
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable InstanceLifecycleType
 
@@ -2244,7 +2244,7 @@
 data VirtualizationType
     = Hvm         -- ^ hvm
     | Paravirtual -- ^ paravirtual
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable VirtualizationType
 
@@ -2272,7 +2272,7 @@
     | Available -- ^ available
     | Detaching -- ^ detaching
     | InUse     -- ^ in-use
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable NetworkInterfaceStatus
 
@@ -2301,7 +2301,7 @@
 
 data PlatformValues
     = Windows -- ^ Windows
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable PlatformValues
 
@@ -2324,7 +2324,7 @@
 data CreateVolumePermission = CreateVolumePermission
     { _cvpGroup  :: Maybe PermissionGroup
     , _cvpUserId :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateVolumePermission' constructor.
 --
@@ -2364,7 +2364,7 @@
 data NetworkInterfaceAttachmentChanges = NetworkInterfaceAttachmentChanges
     { _niacAttachmentId        :: Maybe Text
     , _niacDeleteOnTermination :: Maybe Bool
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'NetworkInterfaceAttachmentChanges' constructor.
 --
@@ -2403,7 +2403,7 @@
 
 data RecurringChargeFrequency
     = Hourly -- ^ Hourly
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable RecurringChargeFrequency
 
@@ -2427,7 +2427,7 @@
     { _doDhcpConfigurations :: List "item" DhcpConfiguration
     , _doDhcpOptionsId      :: Maybe Text
     , _doTags               :: List "item" Tag
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DhcpOptions' constructor.
 --
@@ -2484,7 +2484,7 @@
     , _inisPrivateIpAddresses             :: List "item" PrivateIpAddressSpecification
     , _inisSecondaryPrivateIpAddressCount :: Maybe Int
     , _inisSubnetId                       :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'InstanceNetworkInterfaceSpecification' constructor.
 --
@@ -2622,7 +2622,7 @@
     | VSDeleting  -- ^ deleting
     | VSError     -- ^ error
     | VSInUse     -- ^ in-use
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable VolumeState
 
@@ -2655,7 +2655,7 @@
 
 newtype AttributeValue = AttributeValue
     { _avValue :: Maybe Text
-    } deriving (Eq, Ord, Show, Monoid)
+    } deriving (Eq, Ord, Read, Show, Monoid)
 
 -- | 'AttributeValue' constructor.
 --
@@ -2684,7 +2684,7 @@
 data PrivateIpAddressSpecification = PrivateIpAddressSpecification
     { _piasPrimary          :: Maybe Bool
     , _piasPrivateIpAddress :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'PrivateIpAddressSpecification' constructor.
 --
@@ -2746,7 +2746,7 @@
     , _iStateReason         :: Maybe StateReason
     , _iTags                :: List "item" Tag
     , _iVirtualizationType  :: VirtualizationType
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'Image' constructor.
 --
@@ -2993,7 +2993,7 @@
 data DhcpConfiguration = DhcpConfiguration
     { _dcKey    :: Maybe Text
     , _dcValues :: List "item" AttributeValue
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DhcpConfiguration' constructor.
 --
@@ -3031,7 +3031,7 @@
 data Tag = Tag
     { _tagKey   :: Text
     , _tagValue :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'Tag' constructor.
 --
@@ -3077,7 +3077,7 @@
 data AccountAttributeName
     = DefaultVpc         -- ^ default-vpc
     | SupportedPlatforms -- ^ supported-platforms
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable AccountAttributeName
 
@@ -3108,7 +3108,7 @@
     , _niaInstanceId          :: Maybe Text
     , _niaInstanceOwnerId     :: Maybe Text
     , _niaStatus              :: Maybe AttachmentStatus
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'NetworkInterfaceAttachment' constructor.
 --
@@ -3193,7 +3193,7 @@
 
 newtype RunInstancesMonitoringEnabled = RunInstancesMonitoringEnabled
     { _rimeEnabled :: Bool
-    } deriving (Eq, Ord, Show, Enum)
+    } deriving (Eq, Ord, Read, Show, Enum)
 
 -- | 'RunInstancesMonitoringEnabled' constructor.
 --
@@ -3223,7 +3223,7 @@
 data VolumeStatusInfo = VolumeStatusInfo
     { _vsiDetails :: List "item" VolumeStatusDetails
     , _vsiStatus  :: Maybe VolumeStatusInfoStatus
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'VolumeStatusInfo' constructor.
 --
@@ -3264,7 +3264,7 @@
     , _niaIpOwnerId     :: Maybe Text
     , _niaPublicDnsName :: Maybe Text
     , _niaPublicIp      :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'NetworkInterfaceAssociation' constructor.
 --
@@ -3329,7 +3329,7 @@
 data CreateVolumePermissionModifications = CreateVolumePermissionModifications
     { _cvpmAdd    :: List "item" CreateVolumePermission
     , _cvpmRemove :: List "item" CreateVolumePermission
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateVolumePermissionModifications' constructor.
 --
@@ -3369,7 +3369,7 @@
 data VpcState
     = VpcStateAvailable -- ^ available
     | VpcStatePending   -- ^ pending
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable VpcState
 
@@ -3410,7 +3410,7 @@
     | RTVpc                  -- ^ vpc
     | RTVpnConnection        -- ^ vpn-connection
     | RTVpnGateway           -- ^ vpn-gateway
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable ResourceType
 
@@ -3466,7 +3466,7 @@
 data ReportStatusType
     = Impaired -- ^ impaired
     | Ok       -- ^ ok
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable ReportStatusType
 
@@ -3491,7 +3491,7 @@
 
 data CurrencyCodeValues
     = Usd -- ^ USD
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable CurrencyCodeValues
 
@@ -3514,7 +3514,7 @@
 data IcmpTypeCode = IcmpTypeCode
     { _itcCode :: Maybe Int
     , _itcType :: Maybe Int
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'IcmpTypeCode' constructor.
 --
@@ -3552,7 +3552,7 @@
 data InstanceCount = InstanceCount
     { _icInstanceCount :: Maybe Int
     , _icState         :: Maybe ListingState
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'InstanceCount' constructor.
 --
@@ -3592,7 +3592,7 @@
     , _etstDiskImageFormat :: Maybe DiskImageFormat
     , _etstS3Bucket        :: Maybe Text
     , _etstS3Key           :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ExportToS3Task' constructor.
 --
@@ -3653,7 +3653,7 @@
     , _bdmEbs         :: Maybe EbsBlockDevice
     , _bdmNoDevice    :: Maybe Text
     , _bdmVirtualName :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'BlockDeviceMapping' constructor.
 --
@@ -3726,7 +3726,7 @@
     , _ctState            :: ConversionTaskState
     , _ctStatusMessage    :: Maybe Text
     , _ctTags             :: List "item" Tag
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ConversionTask' constructor.
 --
@@ -3816,7 +3816,7 @@
     | ASAttaching -- ^ attaching
     | ASDetached  -- ^ detached
     | ASDetaching -- ^ detaching
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable AttachmentStatus
 
@@ -3848,7 +3848,7 @@
     , _cliInstanceId :: Maybe Text
     , _cliTags       :: List "item" Tag
     , _cliVpcId      :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ClassicLinkInstance' constructor.
 --
@@ -3905,7 +3905,7 @@
     = OriginCreateRoute               -- ^ CreateRoute
     | OriginCreateRouteTable          -- ^ CreateRouteTable
     | OriginEnableVgwRoutePropagation -- ^ EnableVgwRoutePropagation
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable RouteOrigin
 
@@ -3935,7 +3935,7 @@
     | LSCancelled -- ^ cancelled
     | LSPending   -- ^ pending
     | LSSold      -- ^ sold
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable ListingState
 
@@ -3968,7 +3968,7 @@
     , _spProductDescription :: Maybe RIProductDescription
     , _spSpotPrice          :: Maybe Text
     , _spTimestamp          :: Maybe ISO8601
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'SpotPrice' constructor.
 --
@@ -4035,7 +4035,7 @@
 data InstanceMonitoring = InstanceMonitoring
     { _imInstanceId :: Maybe Text
     , _imMonitoring :: Maybe Monitoring
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'InstanceMonitoring' constructor.
 --
@@ -4074,7 +4074,7 @@
     { _pssCurrencyCode :: Maybe CurrencyCodeValues
     , _pssPrice        :: Maybe Double
     , _pssTerm         :: Maybe Integer
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'PriceScheduleSpecification' constructor.
 --
@@ -4124,7 +4124,7 @@
     { _sisCode       :: Maybe Text
     , _sisMessage    :: Maybe Text
     , _sisUpdateTime :: Maybe ISO8601
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'SpotInstanceStatus' constructor.
 --
@@ -4170,7 +4170,7 @@
 
 data AvailabilityZoneState
     = AZSAvailable -- ^ available
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable AvailabilityZoneState
 
@@ -4207,7 +4207,7 @@
     , _siType                     :: Maybe SpotInstanceType
     , _siValidFrom                :: Maybe ISO8601
     , _siValidUntil               :: Maybe ISO8601
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'SpotInstanceRequest' constructor.
 --
@@ -4403,7 +4403,7 @@
     , _lsSecurityGroups      :: List "item" GroupIdentifier
     , _lsSubnetId            :: Maybe Text
     , _lsUserData            :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'LaunchSpecification' constructor.
 --
@@ -4576,7 +4576,7 @@
     , _vseEventType   :: Maybe Text
     , _vseNotAfter    :: Maybe ISO8601
     , _vseNotBefore   :: Maybe ISO8601
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'VolumeStatusEvent' constructor.
 --
@@ -4651,7 +4651,7 @@
     , _vTags             :: List "item" Tag
     , _vVolumeId         :: Text
     , _vVolumeType       :: VolumeType
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'Volume' constructor.
 --
@@ -4803,7 +4803,7 @@
     , _rOwnerId       :: Text
     , _rRequesterId   :: Maybe Text
     , _rReservationId :: Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'Reservation' constructor.
 --
@@ -4876,7 +4876,7 @@
     , _iivdiStatus           :: Text
     , _iivdiStatusMessage    :: Maybe Text
     , _iivdiVolume           :: DiskImageVolumeDescription
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ImportInstanceVolumeDetailItem' constructor.
 --
@@ -4968,7 +4968,7 @@
     | SSInsufficientData -- ^ insufficient-data
     | SSNotApplicable    -- ^ not-applicable
     | SSOk               -- ^ ok
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable SummaryStatus
 
@@ -5005,7 +5005,7 @@
     , _rimStatus                          :: Maybe Text
     , _rimStatusMessage                   :: Maybe Text
     , _rimUpdateDate                      :: Maybe ISO8601
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ReservedInstancesModification' constructor.
 --
@@ -5114,7 +5114,7 @@
 data RuleAction
     = Allow -- ^ allow
     | Deny  -- ^ deny
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable RuleAction
 
@@ -5156,7 +5156,7 @@
     , _niSubnetId           :: Maybe Text
     , _niTagSet             :: List "item" Tag
     , _niVpcId              :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'NetworkInterface' constructor.
 --
@@ -5347,7 +5347,7 @@
 data TelemetryStatus
     = Down -- ^ DOWN
     | Up   -- ^ UP
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable TelemetryStatus
 
@@ -5380,7 +5380,7 @@
     , _s1SubnetId                :: Text
     , _s1Tags                    :: List "item" Tag
     , _s1VpcId                   :: Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'Subnet' constructor.
 --
@@ -5495,7 +5495,7 @@
 data KeyPairInfo = KeyPairInfo
     { _kpiKeyFingerprint :: Maybe Text
     , _kpiKeyName        :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'KeyPairInfo' constructor.
 --
@@ -5537,7 +5537,7 @@
 data LaunchPermissionModifications = LaunchPermissionModifications
     { _lpmAdd    :: List "item" LaunchPermission
     , _lpmRemove :: List "item" LaunchPermission
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'LaunchPermissionModifications' constructor.
 --
@@ -5576,7 +5576,7 @@
     = Completed -- ^ completed
     | Error     -- ^ error
     | Pending   -- ^ pending
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable SnapshotState
 
@@ -5605,7 +5605,7 @@
     { _iniaIpOwnerId     :: Maybe Text
     , _iniaPublicDnsName :: Maybe Text
     , _iniaPublicIp      :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'InstanceNetworkInterfaceAssociation' constructor.
 --
@@ -5654,7 +5654,7 @@
     { _didBytes             :: Integer
     , _didFormat            :: DiskImageFormat
     , _didImportManifestUrl :: Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DiskImageDetail' constructor.
 --
@@ -5710,7 +5710,7 @@
     , _ipiaPrimary          :: Maybe Bool
     , _ipiaPrivateDnsName   :: Maybe Text
     , _ipiaPrivateIpAddress :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'InstancePrivateIpAddress' constructor.
 --
@@ -5770,7 +5770,7 @@
 data CancelledSpotInstanceRequest = CancelledSpotInstanceRequest
     { _csiSpotInstanceRequestId :: Maybe Text
     , _csiState                 :: Maybe CancelSpotInstanceRequestState
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CancelledSpotInstanceRequest' constructor.
 --
@@ -5809,7 +5809,7 @@
 
 newtype VpnConnectionOptionsSpecification = VpnConnectionOptionsSpecification
     { _vcosStaticRoutesOnly :: Maybe Bool
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'VpnConnectionOptionsSpecification' constructor.
 --
@@ -5846,7 +5846,7 @@
     , _aNetworkInterfaceOwnerId :: Maybe Text
     , _aPrivateIpAddress        :: Maybe Text
     , _aPublicIp                :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'Address' constructor.
 --
@@ -5945,7 +5945,7 @@
     | VASAttaching -- ^ attaching
     | VASDetached  -- ^ detached
     | VASDetaching -- ^ detaching
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable VolumeAttachmentState
 
@@ -5975,7 +5975,7 @@
 data LaunchPermission = LaunchPermission
     { _lpGroup  :: Maybe PermissionGroup
     , _lpUserId :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'LaunchPermission' constructor.
 --
@@ -6013,7 +6013,7 @@
 data RouteState
     = Active    -- ^ active
     | Blackhole -- ^ blackhole
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable RouteState
 
@@ -6041,7 +6041,7 @@
     , _rtaRouteTableAssociationId :: Maybe Text
     , _rtaRouteTableId            :: Maybe Text
     , _rtaSubnetId                :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'RouteTableAssociation' constructor.
 --
@@ -6104,7 +6104,7 @@
     | BTSPending            -- ^ pending
     | BTSStoring            -- ^ storing
     | BTSWaitingForShutdown -- ^ waiting-for-shutdown
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable BundleTaskState
 
@@ -6140,7 +6140,7 @@
 data PortRange = PortRange
     { _prFrom :: Maybe Int
     , _prTo   :: Maybe Int
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'PortRange' constructor.
 --
@@ -6178,7 +6178,7 @@
 data VpcAttributeName
     = EnableDnsHostnames -- ^ enableDnsHostnames
     | EnableDnsSupport   -- ^ enableDnsSupport
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable VpcAttributeName
 
@@ -6206,7 +6206,7 @@
     , _ricInstanceCount    :: Maybe Int
     , _ricInstanceType     :: Maybe InstanceType
     , _ricPlatform         :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ReservedInstancesConfiguration' constructor.
 --
@@ -6264,7 +6264,7 @@
 data VolumeStatusDetails = VolumeStatusDetails
     { _vsdName   :: Maybe VolumeStatusName
     , _vsdStatus :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'VolumeStatusDetails' constructor.
 --
@@ -6305,7 +6305,7 @@
     | SISClosed    -- ^ closed
     | SISFailed    -- ^ failed
     | SISOpen      -- ^ open
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable SpotInstanceState
 
@@ -6336,7 +6336,7 @@
 
 newtype VpnConnectionOptions = VpnConnectionOptions
     { _vcoStaticRoutesOnly :: Maybe Bool
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'VpnConnectionOptions' constructor.
 --
@@ -6368,7 +6368,7 @@
     { _uigpGroupId   :: Maybe Text
     , _uigpGroupName :: Maybe Text
     , _uigpUserId    :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'UserIdGroupPair' constructor.
 --
@@ -6415,7 +6415,7 @@
 data InstanceStatusSummary = InstanceStatusSummary
     { _issDetails :: List "item" InstanceStatusDetails
     , _issStatus  :: Maybe SummaryStatus
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'InstanceStatusSummary' constructor.
 --
@@ -6453,7 +6453,7 @@
 data SpotPlacement = SpotPlacement
     { _sp1AvailabilityZone :: Maybe Text
     , _sp1GroupName        :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'SpotPlacement' constructor.
 --
@@ -6492,7 +6492,7 @@
 data EbsInstanceBlockDeviceSpecification = EbsInstanceBlockDeviceSpecification
     { _eibdsDeleteOnTermination :: Maybe Bool
     , _eibdsVolumeId            :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'EbsInstanceBlockDeviceSpecification' constructor.
 --
@@ -6533,7 +6533,7 @@
     { _naaNetworkAclAssociationId :: Maybe Text
     , _naaNetworkAclId            :: Maybe Text
     , _naaSubnetId                :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'NetworkAclAssociation' constructor.
 --
@@ -6588,7 +6588,7 @@
     , _btState           :: BundleTaskState
     , _btStorage         :: Storage
     , _btUpdateTime      :: ISO8601
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'BundleTask' constructor.
 --
@@ -6690,7 +6690,7 @@
     , _iseDescription :: Maybe Text
     , _iseNotAfter    :: Maybe ISO8601
     , _iseNotBefore   :: Maybe ISO8601
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'InstanceStatusEvent' constructor.
 --
@@ -6787,7 +6787,7 @@
     | T2_Medium   -- ^ t2.medium
     | T2_Micro    -- ^ t2.micro
     | T2_Small    -- ^ t2.small
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable InstanceType
 
@@ -6901,7 +6901,7 @@
     , _rOrigin                 :: Maybe RouteOrigin
     , _rState                  :: Maybe RouteState
     , _rVpcPeeringConnectionId :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'Route' constructor.
 --
@@ -7006,7 +7006,7 @@
     , _sdsOwnerId :: Maybe Text
     , _sdsPrefix  :: Maybe Text
     , _sdsState   :: Maybe DatafeedSubscriptionState
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'SpotDatafeedSubscription' constructor.
 --
@@ -7070,7 +7070,7 @@
 
 newtype Storage = Storage
     { _sS3 :: Maybe S3Storage
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'Storage' constructor.
 --
@@ -7105,7 +7105,7 @@
     , _sgOwnerId             :: Text
     , _sgTags                :: List "item" Tag
     , _sgVpcId               :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'SecurityGroup' constructor.
 --
@@ -7206,7 +7206,7 @@
     | CSIRSClosed    -- ^ closed
     | CSIRSCompleted -- ^ completed
     | CSIRSOpen      -- ^ open
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable CancelSpotInstanceRequestState
 
@@ -7240,7 +7240,7 @@
     | PGSDeleted   -- ^ deleted
     | PGSDeleting  -- ^ deleting
     | PGSPending   -- ^ pending
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable PlacementGroupState
 
@@ -7270,7 +7270,7 @@
 data ReservedInstancesModificationResult = ReservedInstancesModificationResult
     { _rimrReservedInstancesId :: Maybe Text
     , _rimrTargetConfiguration :: Maybe ReservedInstancesConfiguration
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ReservedInstancesModificationResult' constructor.
 --
@@ -7315,7 +7315,7 @@
     , _ibdmsEbs         :: Maybe EbsInstanceBlockDeviceSpecification
     , _ibdmsNoDevice    :: Maybe Text
     , _ibdmsVirtualName :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'InstanceBlockDeviceMappingSpecification' constructor.
 --
@@ -7373,7 +7373,7 @@
     = Citrix    -- ^ citrix
     | Microsoft -- ^ microsoft
     | Vmware    -- ^ vmware
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable ExportEnvironment
 
@@ -7400,7 +7400,7 @@
 
 newtype UserData = UserData
     { _udData :: Maybe Text
-    } deriving (Eq, Ord, Show, Monoid)
+    } deriving (Eq, Ord, Read, Show, Monoid)
 
 -- | 'UserData' constructor.
 --
@@ -7432,7 +7432,7 @@
     , _vaInstanceId          :: Maybe Text
     , _vaState               :: Maybe VolumeAttachmentState
     , _vaVolumeId            :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'VolumeAttachment' constructor.
 --
@@ -7511,7 +7511,7 @@
     , _cgState             :: Text
     , _cgTags              :: List "item" Tag
     , _cgType              :: Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CustomerGateway' constructor.
 --
@@ -7594,7 +7594,7 @@
     , _eibdDeleteOnTermination :: Maybe Bool
     , _eibdStatus              :: Maybe AttachmentStatus
     , _eibdVolumeId            :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'EbsInstanceBlockDevice' constructor.
 --
@@ -7651,7 +7651,7 @@
 data ShutdownBehavior
     = Stop      -- ^ stop
     | Terminate -- ^ terminate
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable ShutdownBehavior
 
@@ -7679,7 +7679,7 @@
     , _did1Format            :: DiskImageFormat
     , _did1ImportManifestUrl :: Text
     , _did1Size              :: Integer
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DiskImageDescription' constructor.
 --
@@ -7741,7 +7741,7 @@
 data DiskImageVolumeDescription = DiskImageVolumeDescription
     { _divdId   :: Text
     , _divdSize :: Maybe Integer
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DiskImageVolumeDescription' constructor.
 --
@@ -7779,7 +7779,7 @@
 
 newtype Monitoring = Monitoring
     { _mState :: Maybe MonitoringState
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'Monitoring' constructor.
 --
@@ -7808,7 +7808,7 @@
 data SubnetState
     = SSAvailable -- ^ available
     | SSPending   -- ^ pending
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable SubnetState
 
@@ -7833,7 +7833,7 @@
 
 data ContainerFormat
     = Ova -- ^ ova
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable ContainerFormat
 
@@ -7855,7 +7855,7 @@
 
 newtype AvailabilityZoneMessage = AvailabilityZoneMessage
     { _azmMessage :: Maybe Text
-    } deriving (Eq, Ord, Show, Monoid)
+    } deriving (Eq, Ord, Read, Show, Monoid)
 
 -- | 'AvailabilityZoneMessage' constructor.
 --
@@ -7884,7 +7884,7 @@
 data VpcAttachment = VpcAttachment
     { _va1State :: Maybe AttachmentStatus
     , _va1VpcId :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'VpcAttachment' constructor.
 --
@@ -7922,7 +7922,7 @@
 data InstanceBlockDeviceMapping = InstanceBlockDeviceMapping
     { _ibdmDeviceName :: Maybe Text
     , _ibdmEbs        :: Maybe EbsInstanceBlockDevice
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'InstanceBlockDeviceMapping' constructor.
 --
@@ -7962,7 +7962,7 @@
     = Failed           -- ^ failed
     | InsufficientData -- ^ insufficient-data
     | Passed           -- ^ passed
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable StatusType
 
@@ -7992,7 +7992,7 @@
     , _etstsDiskImageFormat :: Maybe DiskImageFormat
     , _etstsS3Bucket        :: Maybe Text
     , _etstsS3Prefix        :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ExportToS3TaskSpecification' constructor.
 --
@@ -8050,7 +8050,7 @@
     | Description     -- ^ description
     | GroupSet        -- ^ groupSet
     | SourceDestCheck -- ^ sourceDestCheck
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable NetworkInterfaceAttribute
 
@@ -8081,7 +8081,7 @@
     = Kernel  -- ^ kernel
     | Machine -- ^ machine
     | Ramdisk -- ^ ramdisk
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable ImageTypeValues
 
@@ -8109,7 +8109,7 @@
 data InstanceExportDetails = InstanceExportDetails
     { _iedInstanceId        :: Maybe Text
     , _iedTargetEnvironment :: Maybe ExportEnvironment
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'InstanceExportDetails' constructor.
 --
@@ -8148,7 +8148,7 @@
 data SnapshotAttributeName
     = SANCreateVolumePermission -- ^ createVolumePermission
     | SANProductCodes           -- ^ productCodes
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable SnapshotAttributeName
 
@@ -8176,7 +8176,7 @@
     , _azRegionName :: Maybe Text
     , _azState      :: Maybe AvailabilityZoneState
     , _azZoneName   :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'AvailabilityZone' constructor.
 --
@@ -8234,7 +8234,7 @@
     | VpnStateDeleted   -- ^ deleted
     | VpnStateDeleting  -- ^ deleting
     | VpnStatePending   -- ^ pending
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable VpnState
 
@@ -8268,7 +8268,7 @@
     , _rtRoutes          :: List "item" Route
     , _rtTags            :: List "item" Tag
     , _rtVpcId           :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'RouteTable' constructor.
 --
@@ -8344,7 +8344,7 @@
 data HypervisorType
     = Ovm -- ^ ovm
     | Xen -- ^ xen
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable HypervisorType
 
@@ -8371,7 +8371,7 @@
     { _isdImpairedSince :: Maybe ISO8601
     , _isdName          :: Maybe StatusName
     , _isdStatus        :: Maybe StatusType
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'InstanceStatusDetails' constructor.
 --
@@ -8419,7 +8419,7 @@
 data IamInstanceProfile = IamInstanceProfile
     { _iipArn :: Maybe Text
     , _iipId  :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'IamInstanceProfile' constructor.
 --
@@ -8457,7 +8457,7 @@
 data InternetGatewayAttachment = InternetGatewayAttachment
     { _igaState :: AttachmentStatus
     , _igaVpcId :: Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'InternetGatewayAttachment' constructor.
 --
@@ -8499,7 +8499,7 @@
     | RISPaymentFailed  -- ^ payment-failed
     | RISPaymentPending -- ^ payment-pending
     | RISRetired        -- ^ retired
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable ReservedInstanceState
 
@@ -8540,7 +8540,7 @@
     | IANInstanceSourceDestCheck                   -- ^ sourceDestCheck
     | IANInstanceSriovNetSupport                   -- ^ sriovNetSupport
     | IANInstanceUserData                          -- ^ userData
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable InstanceAttributeName
 
@@ -8591,7 +8591,7 @@
     , _ipIpRanges         :: List "item" IpRange
     , _ipToPort           :: Int
     , _ipUserIdGroupPairs :: List "item" UserIdGroupPair
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'IpPermission' constructor.
 --
@@ -8669,7 +8669,7 @@
     | CTSCancelled  -- ^ cancelled
     | CTSCancelling -- ^ cancelling
     | CTSCompleted  -- ^ completed
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable ConversionTaskState
 
@@ -8700,7 +8700,7 @@
     { _diDescription :: Maybe Text
     , _diImage       :: Maybe DiskImageDetail
     , _diVolume      :: Maybe VolumeDetail
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DiskImage' constructor.
 --
@@ -8744,7 +8744,7 @@
 data Tenancy
     = Dedicated -- ^ dedicated
     | Default'  -- ^ default
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable Tenancy
 
@@ -8770,7 +8770,7 @@
 data VpcPeeringConnectionStateReason = VpcPeeringConnectionStateReason
     { _vpcsrCode    :: Maybe Text
     , _vpcsrMessage :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'VpcPeeringConnectionStateReason' constructor.
 --
@@ -8808,7 +8808,7 @@
 data IamInstanceProfileSpecification = IamInstanceProfileSpecification
     { _iipsArn  :: Maybe Text
     , _iipsName :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'IamInstanceProfileSpecification' constructor.
 --
@@ -8849,7 +8849,7 @@
     , _ivtdDescription      :: Maybe Text
     , _ivtdImage            :: DiskImageDescription
     , _ivtdVolume           :: DiskImageVolumeDescription
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ImportVolumeTaskDetails' constructor.
 --
@@ -8919,7 +8919,7 @@
 
 data PlacementStrategy
     = Cluster -- ^ cluster
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable PlacementStrategy
 
@@ -8954,7 +8954,7 @@
     , _iniStatus             :: Maybe NetworkInterfaceStatus
     , _iniSubnetId           :: Maybe Text
     , _iniVpcId              :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'InstanceNetworkInterface' constructor.
 --
@@ -9110,7 +9110,7 @@
     , _vsaDescription :: Maybe Text
     , _vsaEventId     :: Maybe Text
     , _vsaEventType   :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'VolumeStatusAction' constructor.
 --
@@ -9167,7 +9167,7 @@
     { _vpcviCidrBlock :: Maybe Text
     , _vpcviOwnerId   :: Maybe Text
     , _vpcviVpcId     :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'VpcPeeringConnectionVpcInfo' constructor.
 --
@@ -9214,7 +9214,7 @@
 data ReservedInstanceLimitPrice = ReservedInstanceLimitPrice
     { _rilpAmount       :: Maybe Double
     , _rilpCurrencyCode :: Maybe CurrencyCodeValues
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ReservedInstanceLimitPrice' constructor.
 --
@@ -9259,7 +9259,7 @@
     , _vpcState           :: VpcState
     , _vpcTags            :: List "item" Tag
     , _vpcVpcId           :: Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'Vpc' constructor.
 --
@@ -9354,7 +9354,7 @@
     , _isInstanceState    :: Maybe InstanceState
     , _isInstanceStatus   :: Maybe InstanceStatusSummary
     , _isSystemStatus     :: Maybe InstanceStatusSummary
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'InstanceStatus' constructor.
 --
@@ -9433,7 +9433,7 @@
 data ArchitectureValues
     = I386  -- ^ i386
     | X8664 -- ^ x86_64
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable ArchitectureValues
 
@@ -9466,7 +9466,7 @@
     | PerformanceNetwork       -- ^ performance-network
     | PerformanceOther         -- ^ performance-other
     | Unresponsive             -- ^ unresponsive
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable ReportInstanceReasonCodes
 
@@ -9510,7 +9510,7 @@
     , _ebdSnapshotId          :: Maybe Text
     , _ebdVolumeSize          :: Maybe Int
     , _ebdVolumeType          :: Maybe VolumeType
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'EbsBlockDevice' constructor.
 --
@@ -9608,7 +9608,7 @@
 data AccountAttribute = AccountAttribute
     { _aaAttributeName   :: Maybe Text
     , _aaAttributeValues :: List "item" AccountAttributeValue
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'AccountAttribute' constructor.
 --
@@ -9650,7 +9650,7 @@
     , _psCurrencyCode :: Maybe CurrencyCodeValues
     , _psPrice        :: Maybe Double
     , _psTerm         :: Maybe Integer
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'PriceSchedule' constructor.
 --
@@ -9717,7 +9717,7 @@
 data DeviceType
     = Ebs           -- ^ ebs
     | InstanceStore -- ^ instance-store
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable DeviceType
 
@@ -9743,7 +9743,7 @@
 data DomainType
     = DTStandard -- ^ standard
     | DTVpc      -- ^ vpc
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable DomainType
 
@@ -9769,7 +9769,7 @@
 data Region = Region
     { _rEndpoint   :: Maybe Text
     , _rRegionName :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'Region' constructor.
 --
@@ -9806,7 +9806,7 @@
 
 newtype PropagatingVgw = PropagatingVgw
     { _pvGatewayId :: Maybe Text
-    } deriving (Eq, Ord, Show, Monoid)
+    } deriving (Eq, Ord, Read, Show, Monoid)
 
 -- | 'PropagatingVgw' constructor.
 --
@@ -9839,7 +9839,7 @@
     | MediumUtilization -- ^ Medium Utilization
     | NoUpfront         -- ^ No Upfront
     | PartialUpfront    -- ^ Partial Upfront
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable OfferingTypeValues
 
@@ -9877,7 +9877,7 @@
     , _vgType             :: Maybe GatewayType
     , _vgVpcAttachments   :: List "item" VpcAttachment
     , _vgVpnGatewayId     :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'VpnGateway' constructor.
 --
@@ -9952,7 +9952,7 @@
 data Filter = Filter
     { _fName   :: Text
     , _fValues :: List "item" Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'Filter' constructor.
 --
@@ -9992,7 +9992,7 @@
     = Gp2      -- ^ gp2
     | Io1      -- ^ io1
     | Standard -- ^ standard
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable VolumeType
 
@@ -10021,7 +10021,7 @@
     { _iscCurrentState  :: Maybe InstanceState
     , _iscInstanceId    :: Maybe Text
     , _iscPreviousState :: Maybe InstanceState
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'InstanceStateChange' constructor.
 --
@@ -10072,7 +10072,7 @@
     , _naNetworkAclId :: Maybe Text
     , _naTags         :: List "item" Tag
     , _naVpcId        :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'NetworkAcl' constructor.
 --
@@ -10146,7 +10146,7 @@
 data ImageState
     = ISAvailable    -- ^ available
     | ISDeregistered -- ^ deregistered
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable ImageState
 
@@ -10171,7 +10171,7 @@
 
 data GatewayType
     = Ipsec1 -- ^ ipsec.1
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable GatewayType
 
@@ -10197,7 +10197,7 @@
     , _iniaDeleteOnTermination :: Maybe Bool
     , _iniaDeviceIndex         :: Maybe Int
     , _iniaStatus              :: Maybe AttachmentStatus
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'InstanceNetworkInterfaceAttachment' constructor.
 --
@@ -10263,7 +10263,7 @@
 
 newtype AttributeBooleanValue = AttributeBooleanValue
     { _abvValue :: Maybe Bool
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'AttributeBooleanValue' constructor.
 --
@@ -10292,7 +10292,7 @@
 data RecurringCharge = RecurringCharge
     { _rcAmount    :: Maybe Double
     , _rcFrequency :: Maybe RecurringChargeFrequency
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'RecurringCharge' constructor.
 --
@@ -10330,7 +10330,7 @@
 data NewDhcpConfiguration = NewDhcpConfiguration
     { _ndcKey    :: Maybe Text
     , _ndcValues :: List "item" Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'NewDhcpConfiguration' constructor.
 --
@@ -10366,7 +10366,7 @@
 data StateReason = StateReason
     { _srCode    :: Maybe Text
     , _srMessage :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'StateReason' constructor.
 --
@@ -10428,7 +10428,7 @@
     = MSDisabled -- ^ disabled
     | MSEnabled  -- ^ enabled
     | MSPending  -- ^ pending
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable MonitoringState
 
@@ -10455,7 +10455,7 @@
 
 newtype ReservedInstancesId = ReservedInstancesId
     { _riiReservedInstancesId :: Maybe Text
-    } deriving (Eq, Ord, Show, Monoid)
+    } deriving (Eq, Ord, Read, Show, Monoid)
 
 -- | 'ReservedInstancesId' constructor.
 --
@@ -10484,7 +10484,7 @@
 
 data StatusName
     = Reachability -- ^ reachability
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable StatusName
 
@@ -10508,7 +10508,7 @@
     { _igAttachments       :: List "item" InternetGatewayAttachment
     , _igInternetGatewayId :: Text
     , _igTags              :: List "item" Tag
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'InternetGateway' constructor.
 --
@@ -10557,7 +10557,7 @@
 data VolumeStatusName
     = IoEnabled     -- ^ io-enabled
     | IoPerformance -- ^ io-performance
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable VolumeStatusName
 
@@ -10583,7 +10583,7 @@
 data VolumeAttributeName
     = AutoEnableIO -- ^ autoEnableIO
     | ProductCodes -- ^ productCodes
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable VolumeAttributeName
 
@@ -10611,7 +10611,7 @@
     , _iitdInstanceId  :: Maybe Text
     , _iitdPlatform    :: Maybe PlatformValues
     , _iitdVolumes     :: List "item" ImportInstanceVolumeDetailItem
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ImportInstanceTaskDetails' constructor.
 --
@@ -10665,7 +10665,7 @@
     { _pgGroupName :: Maybe Text
     , _pgState     :: Maybe PlacementGroupState
     , _pgStrategy  :: Maybe PlacementStrategy
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'PlacementGroup' constructor.
 --
@@ -10712,7 +10712,7 @@
 data ProductCode = ProductCode
     { _pcProductCodeId   :: Maybe Text
     , _pcProductCodeType :: Maybe ProductCodeValues
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ProductCode' constructor.
 --
@@ -10753,7 +10753,7 @@
     | ListingStatusCancelled -- ^ cancelled
     | ListingStatusClosed    -- ^ closed
     | ListingStatusPending   -- ^ pending
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable ListingStatus
 
@@ -10782,7 +10782,7 @@
 
 newtype IpRange = IpRange
     { _irCidrIp :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'IpRange' constructor.
 --
@@ -10814,7 +10814,7 @@
     = VSISImpaired         -- ^ impaired
     | VSISInsufficientData -- ^ insufficient-data
     | VSISOk               -- ^ ok
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable VolumeStatusInfoStatus
 
@@ -10841,7 +10841,7 @@
 
 newtype AccountAttributeValue = AccountAttributeValue
     { _aavAttributeValue :: Maybe Text
-    } deriving (Eq, Ord, Show, Monoid)
+    } deriving (Eq, Ord, Read, Show, Monoid)
 
 -- | 'AccountAttributeValue' constructor.
 --
@@ -10873,7 +10873,7 @@
     | RIPDLinuxUNIXAmazonVPC -- ^ Linux/UNIX (Amazon VPC)
     | RIPDWindows            -- ^ Windows
     | RIPDWindowsAmazonVPC   -- ^ Windows (Amazon VPC)
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable RIProductDescription
 
@@ -10914,7 +10914,7 @@
     , _rioRecurringCharges            :: List "item" RecurringCharge
     , _rioReservedInstancesOfferingId :: Maybe Text
     , _rioUsagePrice                  :: Maybe Double
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ReservedInstancesOffering' constructor.
 --
@@ -11078,7 +11078,7 @@
     , _ri1State               :: Maybe ReservedInstanceState
     , _ri1Tags                :: List "item" Tag
     , _ri1UsagePrice          :: Maybe Double
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ReservedInstances' constructor.
 --
@@ -11249,7 +11249,7 @@
 data DatafeedSubscriptionState
     = DSSActive   -- ^ Active
     | DSSInactive -- ^ Inactive
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable DatafeedSubscriptionState
 
@@ -11277,7 +11277,7 @@
     | ETSCancelled  -- ^ cancelled
     | ETSCancelling -- ^ cancelling
     | ETSCompleted  -- ^ completed
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable ExportTaskState
 
@@ -11307,7 +11307,7 @@
 data ProductCodeValues
     = Devpay      -- ^ devpay
     | Marketplace -- ^ marketplace
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable ProductCodeValues
 
@@ -11341,7 +11341,7 @@
     , _vcVgwTelemetry                 :: List "item" VgwTelemetry
     , _vcVpnConnectionId              :: Text
     , _vcVpnGatewayId                 :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'VpnConnection' constructor.
 --
@@ -11462,7 +11462,7 @@
 data InstanceState = InstanceState
     { _isCode :: Int
     , _isName :: InstanceStateName
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'InstanceState' constructor.
 --
@@ -11518,7 +11518,7 @@
     { _pAvailabilityZone :: Maybe Text
     , _pGroupName        :: Maybe Text
     , _pTenancy          :: Maybe Tenancy
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'Placement' constructor.
 --
@@ -11571,7 +11571,7 @@
     | InstanceStop       -- ^ instance-stop
     | SystemMaintenance  -- ^ system-maintenance
     | SystemReboot       -- ^ system-reboot
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable EventCode
 
@@ -11603,7 +11603,7 @@
 data SpotInstanceType
     = OneTime    -- ^ one-time
     | Persistent -- ^ persistent
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable SpotInstanceType
 
@@ -11633,7 +11633,7 @@
     , _vpc1Status                 :: Maybe VpcPeeringConnectionStateReason
     , _vpc1Tags                   :: List "item" Tag
     , _vpc1VpcPeeringConnectionId :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'VpcPeeringConnection' constructor.
 --
@@ -11716,7 +11716,7 @@
     , _ssPrefix                :: Maybe Text
     , _ssUploadPolicy          :: Maybe Base64
     , _ssUploadPolicySignature :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'S3Storage' constructor.
 --
@@ -11789,7 +11789,7 @@
     , _vtOutsideIpAddress   :: Maybe Text
     , _vtStatus             :: Maybe TelemetryStatus
     , _vtStatusMessage      :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'VgwTelemetry' constructor.
 --
@@ -11860,7 +11860,7 @@
     { _vsrDestinationCidrBlock :: Maybe Text
     , _vsrSource               :: Maybe VpnStaticRouteSource
     , _vsrState                :: Maybe VpnState
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'VpnStaticRoute' constructor.
 --
@@ -11912,7 +11912,7 @@
     | ISNStopped      -- ^ stopped
     | ISNStopping     -- ^ stopping
     | ISNTerminated   -- ^ terminated
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable InstanceStateName
 
@@ -11981,7 +11981,7 @@
     , _i1Tags                  :: List "item" Tag
     , _i1VirtualizationType    :: VirtualizationType
     , _i1VpcId                 :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'Instance' constructor.
 --
@@ -12379,7 +12379,7 @@
     , _etInstanceExportDetails :: InstanceExportDetails
     , _etState                 :: ExportTaskState
     , _etStatusMessage         :: Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ExportTask' constructor.
 --
@@ -12458,7 +12458,7 @@
 
 data ResetImageAttributeName
     = RIANLaunchPermission -- ^ launchPermission
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable ResetImageAttributeName
 
@@ -12495,7 +12495,7 @@
     , _rslsSecurityGroups      :: List "item" Text
     , _rslsSubnetId            :: Maybe Text
     , _rslsUserData            :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'RequestSpotLaunchSpecification' constructor.
 --
@@ -12673,7 +12673,7 @@
 
 newtype VolumeDetail = VolumeDetail
     { _vdSize :: Integer
-    } deriving (Eq, Ord, Show, Enum, Num, Integral, Real)
+    } deriving (Eq, Ord, Read, Show, Enum, Num, Integral, Real)
 
 -- | 'VolumeDetail' constructor.
 --
@@ -12703,7 +12703,7 @@
 data PricingDetail = PricingDetail
     { _pdCount :: Maybe Int
     , _pdPrice :: Maybe Double
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'PricingDetail' constructor.
 --
@@ -12743,7 +12743,7 @@
     , _nipiaPrimary          :: Maybe Bool
     , _nipiaPrivateDnsName   :: Maybe Text
     , _nipiaPrivateIpAddress :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'NetworkInterfacePrivateIpAddress' constructor.
 --
@@ -12804,7 +12804,7 @@
     = Raw  -- ^ RAW
     | Vhd  -- ^ VHD
     | Vmdk -- ^ VMDK
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable DiskImageFormat
 
@@ -12832,7 +12832,7 @@
 data BundleTaskError = BundleTaskError
     { _bteCode    :: Maybe Text
     , _bteMessage :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'BundleTaskError' constructor.
 --
@@ -12871,7 +12871,7 @@
     { _vclClassicLinkEnabled :: Maybe Bool
     , _vclTags               :: List "item" Tag
     , _vclVpcId              :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'VpcClassicLink' constructor.
 --
@@ -12922,7 +12922,7 @@
     , _vsiEvents           :: List "item" VolumeStatusEvent
     , _vsiVolumeId         :: Maybe Text
     , _vsiVolumeStatus     :: Maybe VolumeStatusInfo
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'VolumeStatusItem' constructor.
 --
diff --git a/gen/Network/AWS/EC2/UnassignPrivateIpAddresses.hs b/gen/Network/AWS/EC2/UnassignPrivateIpAddresses.hs
--- a/gen/Network/AWS/EC2/UnassignPrivateIpAddresses.hs
+++ b/gen/Network/AWS/EC2/UnassignPrivateIpAddresses.hs
@@ -49,7 +49,7 @@
 data UnassignPrivateIpAddresses = UnassignPrivateIpAddresses
     { _upiaNetworkInterfaceId :: Text
     , _upiaPrivateIpAddresses :: List "PrivateIpAddress" Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'UnassignPrivateIpAddresses' constructor.
 --
@@ -80,7 +80,7 @@
         . _List
 
 data UnassignPrivateIpAddressesResponse = UnassignPrivateIpAddressesResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'UnassignPrivateIpAddressesResponse' constructor.
 unassignPrivateIpAddressesResponse :: UnassignPrivateIpAddressesResponse
diff --git a/gen/Network/AWS/EC2/UnmonitorInstances.hs b/gen/Network/AWS/EC2/UnmonitorInstances.hs
--- a/gen/Network/AWS/EC2/UnmonitorInstances.hs
+++ b/gen/Network/AWS/EC2/UnmonitorInstances.hs
@@ -52,7 +52,7 @@
 data UnmonitorInstances = UnmonitorInstances
     { _uiDryRun      :: Maybe Bool
     , _uiInstanceIds :: List "InstanceId" Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'UnmonitorInstances' constructor.
 --
@@ -77,7 +77,7 @@
 
 newtype UnmonitorInstancesResponse = UnmonitorInstancesResponse
     { _uirInstanceMonitorings :: List "item" InstanceMonitoring
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 -- | 'UnmonitorInstancesResponse' constructor.
 --
