diff --git a/amazonka-s3.cabal b/amazonka-s3.cabal
--- a/amazonka-s3.cabal
+++ b/amazonka-s3.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-s3
-version:               0.2.1
+version:               0.2.2
 synopsis:              Amazon Simple Storage Service SDK.
 homepage:              https://github.com/brendanhay/amazonka
 license:               OtherLicense
@@ -95,5 +95,5 @@
           Network.AWS.S3.Internal
 
     build-depends:
-          amazonka-core == 0.2.1.*
+          amazonka-core == 0.2.2.*
         , base          >= 4.7     && < 5
diff --git a/gen/Network/AWS/S3/AbortMultipartUpload.hs b/gen/Network/AWS/S3/AbortMultipartUpload.hs
--- a/gen/Network/AWS/S3/AbortMultipartUpload.hs
+++ b/gen/Network/AWS/S3/AbortMultipartUpload.hs
@@ -55,7 +55,7 @@
     { _amuBucket   :: Text
     , _amuKey      :: Text
     , _amuUploadId :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'AbortMultipartUpload' constructor.
 --
@@ -87,7 +87,7 @@
 amuUploadId = lens _amuUploadId (\s a -> s { _amuUploadId = a })
 
 data AbortMultipartUploadResponse = AbortMultipartUploadResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'AbortMultipartUploadResponse' constructor.
 abortMultipartUploadResponse :: AbortMultipartUploadResponse
diff --git a/gen/Network/AWS/S3/CompleteMultipartUpload.hs b/gen/Network/AWS/S3/CompleteMultipartUpload.hs
--- a/gen/Network/AWS/S3/CompleteMultipartUpload.hs
+++ b/gen/Network/AWS/S3/CompleteMultipartUpload.hs
@@ -62,7 +62,7 @@
     , _cmu1Key             :: Text
     , _cmu1MultipartUpload :: Maybe CompletedMultipartUpload
     , _cmu1UploadId        :: Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CompleteMultipartUpload' constructor.
 --
@@ -109,7 +109,7 @@
     , _cmur1SSEKMSKeyId          :: Maybe (Sensitive Text)
     , _cmur1ServerSideEncryption :: Maybe ServerSideEncryption
     , _cmur1VersionId            :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CompleteMultipartUploadResponse' constructor.
 --
diff --git a/gen/Network/AWS/S3/CopyObject.hs b/gen/Network/AWS/S3/CopyObject.hs
--- a/gen/Network/AWS/S3/CopyObject.hs
+++ b/gen/Network/AWS/S3/CopyObject.hs
@@ -113,7 +113,7 @@
     , _coServerSideEncryption           :: Maybe ServerSideEncryption
     , _coStorageClass                   :: Maybe StorageClass
     , _coWebsiteRedirectLocation        :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CopyObject' constructor.
 --
@@ -391,7 +391,7 @@
     , _corSSECustomerKeyMD5    :: Maybe Text
     , _corSSEKMSKeyId          :: Maybe (Sensitive Text)
     , _corServerSideEncryption :: Maybe ServerSideEncryption
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CopyObjectResponse' constructor.
 --
diff --git a/gen/Network/AWS/S3/CreateBucket.hs b/gen/Network/AWS/S3/CreateBucket.hs
--- a/gen/Network/AWS/S3/CreateBucket.hs
+++ b/gen/Network/AWS/S3/CreateBucket.hs
@@ -63,7 +63,7 @@
     , _cbGrantReadACP              :: Maybe Text
     , _cbGrantWrite                :: Maybe Text
     , _cbGrantWriteACP             :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateBucket' constructor.
 --
@@ -134,7 +134,7 @@
 
 newtype CreateBucketResponse = CreateBucketResponse
     { _cbrLocation :: Maybe Text
-    } deriving (Eq, Ord, Show, Monoid)
+    } deriving (Eq, Ord, Read, Show, Monoid)
 
 -- | 'CreateBucketResponse' constructor.
 --
diff --git a/gen/Network/AWS/S3/CreateMultipartUpload.hs b/gen/Network/AWS/S3/CreateMultipartUpload.hs
--- a/gen/Network/AWS/S3/CreateMultipartUpload.hs
+++ b/gen/Network/AWS/S3/CreateMultipartUpload.hs
@@ -101,7 +101,7 @@
     , _cmuServerSideEncryption    :: Maybe ServerSideEncryption
     , _cmuStorageClass            :: Maybe StorageClass
     , _cmuWebsiteRedirectLocation :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateMultipartUpload' constructor.
 --
@@ -293,7 +293,7 @@
     , _cmurSSEKMSKeyId          :: Maybe (Sensitive Text)
     , _cmurServerSideEncryption :: Maybe ServerSideEncryption
     , _cmurUploadId             :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateMultipartUploadResponse' constructor.
 --
diff --git a/gen/Network/AWS/S3/DeleteBucket.hs b/gen/Network/AWS/S3/DeleteBucket.hs
--- a/gen/Network/AWS/S3/DeleteBucket.hs
+++ b/gen/Network/AWS/S3/DeleteBucket.hs
@@ -49,7 +49,7 @@
 
 newtype DeleteBucket = DeleteBucket
     { _dbBucket :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'DeleteBucket' constructor.
 --
@@ -67,7 +67,7 @@
 dbBucket = lens _dbBucket (\s a -> s { _dbBucket = a })
 
 data DeleteBucketResponse = DeleteBucketResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteBucketResponse' constructor.
 deleteBucketResponse :: DeleteBucketResponse
diff --git a/gen/Network/AWS/S3/DeleteBucketCors.hs b/gen/Network/AWS/S3/DeleteBucketCors.hs
--- a/gen/Network/AWS/S3/DeleteBucketCors.hs
+++ b/gen/Network/AWS/S3/DeleteBucketCors.hs
@@ -47,7 +47,7 @@
 
 newtype DeleteBucketCors = DeleteBucketCors
     { _dbcBucket :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'DeleteBucketCors' constructor.
 --
@@ -65,7 +65,7 @@
 dbcBucket = lens _dbcBucket (\s a -> s { _dbcBucket = a })
 
 data DeleteBucketCorsResponse = DeleteBucketCorsResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteBucketCorsResponse' constructor.
 deleteBucketCorsResponse :: DeleteBucketCorsResponse
diff --git a/gen/Network/AWS/S3/DeleteBucketLifecycle.hs b/gen/Network/AWS/S3/DeleteBucketLifecycle.hs
--- a/gen/Network/AWS/S3/DeleteBucketLifecycle.hs
+++ b/gen/Network/AWS/S3/DeleteBucketLifecycle.hs
@@ -47,7 +47,7 @@
 
 newtype DeleteBucketLifecycle = DeleteBucketLifecycle
     { _dblBucket :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'DeleteBucketLifecycle' constructor.
 --
@@ -65,7 +65,7 @@
 dblBucket = lens _dblBucket (\s a -> s { _dblBucket = a })
 
 data DeleteBucketLifecycleResponse = DeleteBucketLifecycleResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteBucketLifecycleResponse' constructor.
 deleteBucketLifecycleResponse :: DeleteBucketLifecycleResponse
diff --git a/gen/Network/AWS/S3/DeleteBucketPolicy.hs b/gen/Network/AWS/S3/DeleteBucketPolicy.hs
--- a/gen/Network/AWS/S3/DeleteBucketPolicy.hs
+++ b/gen/Network/AWS/S3/DeleteBucketPolicy.hs
@@ -47,7 +47,7 @@
 
 newtype DeleteBucketPolicy = DeleteBucketPolicy
     { _dbpBucket :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'DeleteBucketPolicy' constructor.
 --
@@ -65,7 +65,7 @@
 dbpBucket = lens _dbpBucket (\s a -> s { _dbpBucket = a })
 
 data DeleteBucketPolicyResponse = DeleteBucketPolicyResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteBucketPolicyResponse' constructor.
 deleteBucketPolicyResponse :: DeleteBucketPolicyResponse
diff --git a/gen/Network/AWS/S3/DeleteBucketTagging.hs b/gen/Network/AWS/S3/DeleteBucketTagging.hs
--- a/gen/Network/AWS/S3/DeleteBucketTagging.hs
+++ b/gen/Network/AWS/S3/DeleteBucketTagging.hs
@@ -47,7 +47,7 @@
 
 newtype DeleteBucketTagging = DeleteBucketTagging
     { _dbtBucket :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'DeleteBucketTagging' constructor.
 --
@@ -65,7 +65,7 @@
 dbtBucket = lens _dbtBucket (\s a -> s { _dbtBucket = a })
 
 data DeleteBucketTaggingResponse = DeleteBucketTaggingResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteBucketTaggingResponse' constructor.
 deleteBucketTaggingResponse :: DeleteBucketTaggingResponse
diff --git a/gen/Network/AWS/S3/DeleteBucketWebsite.hs b/gen/Network/AWS/S3/DeleteBucketWebsite.hs
--- a/gen/Network/AWS/S3/DeleteBucketWebsite.hs
+++ b/gen/Network/AWS/S3/DeleteBucketWebsite.hs
@@ -47,7 +47,7 @@
 
 newtype DeleteBucketWebsite = DeleteBucketWebsite
     { _dbwBucket :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'DeleteBucketWebsite' constructor.
 --
@@ -65,7 +65,7 @@
 dbwBucket = lens _dbwBucket (\s a -> s { _dbwBucket = a })
 
 data DeleteBucketWebsiteResponse = DeleteBucketWebsiteResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'DeleteBucketWebsiteResponse' constructor.
 deleteBucketWebsiteResponse :: DeleteBucketWebsiteResponse
diff --git a/gen/Network/AWS/S3/DeleteObject.hs b/gen/Network/AWS/S3/DeleteObject.hs
--- a/gen/Network/AWS/S3/DeleteObject.hs
+++ b/gen/Network/AWS/S3/DeleteObject.hs
@@ -58,7 +58,7 @@
     , _doKey       :: Text
     , _doMFA       :: Maybe Text
     , _doVersionId :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DeleteObject' constructor.
 --
@@ -100,7 +100,7 @@
 data DeleteObjectResponse = DeleteObjectResponse
     { _dorDeleteMarker :: Maybe Bool
     , _dorVersionId    :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DeleteObjectResponse' constructor.
 --
diff --git a/gen/Network/AWS/S3/DeleteObjects.hs b/gen/Network/AWS/S3/DeleteObjects.hs
--- a/gen/Network/AWS/S3/DeleteObjects.hs
+++ b/gen/Network/AWS/S3/DeleteObjects.hs
@@ -55,7 +55,7 @@
     { _do1Bucket :: Text
     , _do1Delete :: Delete
     , _do1MFA    :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DeleteObjects' constructor.
 --
@@ -90,7 +90,7 @@
 data DeleteObjectsResponse = DeleteObjectsResponse
     { _dorDeleted :: List "Deleted" DeletedObject
     , _dorErrors  :: List "Error" S3ServiceError
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DeleteObjectsResponse' constructor.
 --
diff --git a/gen/Network/AWS/S3/GetBucketAcl.hs b/gen/Network/AWS/S3/GetBucketAcl.hs
--- a/gen/Network/AWS/S3/GetBucketAcl.hs
+++ b/gen/Network/AWS/S3/GetBucketAcl.hs
@@ -50,7 +50,7 @@
 
 newtype GetBucketAcl = GetBucketAcl
     { _gbaBucket :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'GetBucketAcl' constructor.
 --
@@ -70,7 +70,7 @@
 data GetBucketAclResponse = GetBucketAclResponse
     { _gbarGrants :: List "Grant" Grant
     , _gbarOwner  :: Maybe Owner
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'GetBucketAclResponse' constructor.
 --
diff --git a/gen/Network/AWS/S3/GetBucketCors.hs b/gen/Network/AWS/S3/GetBucketCors.hs
--- a/gen/Network/AWS/S3/GetBucketCors.hs
+++ b/gen/Network/AWS/S3/GetBucketCors.hs
@@ -49,7 +49,7 @@
 
 newtype GetBucketCors = GetBucketCors
     { _gbcBucket :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'GetBucketCors' constructor.
 --
@@ -68,7 +68,7 @@
 
 newtype GetBucketCorsResponse = GetBucketCorsResponse
     { _gbcrCORSRules :: List "CORSRule" CORSRule
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 -- | 'GetBucketCorsResponse' constructor.
 --
diff --git a/gen/Network/AWS/S3/GetBucketLifecycle.hs b/gen/Network/AWS/S3/GetBucketLifecycle.hs
--- a/gen/Network/AWS/S3/GetBucketLifecycle.hs
+++ b/gen/Network/AWS/S3/GetBucketLifecycle.hs
@@ -49,7 +49,7 @@
 
 newtype GetBucketLifecycle = GetBucketLifecycle
     { _gbl1Bucket :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'GetBucketLifecycle' constructor.
 --
@@ -68,7 +68,7 @@
 
 newtype GetBucketLifecycleResponse = GetBucketLifecycleResponse
     { _gblrRules :: List "Rule" Rule
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 -- | 'GetBucketLifecycleResponse' constructor.
 --
diff --git a/gen/Network/AWS/S3/GetBucketLocation.hs b/gen/Network/AWS/S3/GetBucketLocation.hs
--- a/gen/Network/AWS/S3/GetBucketLocation.hs
+++ b/gen/Network/AWS/S3/GetBucketLocation.hs
@@ -49,7 +49,7 @@
 
 newtype GetBucketLocation = GetBucketLocation
     { _gblBucket :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'GetBucketLocation' constructor.
 --
@@ -68,7 +68,7 @@
 
 newtype GetBucketLocationResponse = GetBucketLocationResponse
     { _gblrLocationConstraint :: Maybe Region
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'GetBucketLocationResponse' constructor.
 --
diff --git a/gen/Network/AWS/S3/GetBucketLogging.hs b/gen/Network/AWS/S3/GetBucketLogging.hs
--- a/gen/Network/AWS/S3/GetBucketLogging.hs
+++ b/gen/Network/AWS/S3/GetBucketLogging.hs
@@ -50,7 +50,7 @@
 
 newtype GetBucketLogging = GetBucketLogging
     { _gbl2Bucket :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'GetBucketLogging' constructor.
 --
@@ -69,7 +69,7 @@
 
 newtype GetBucketLoggingResponse = GetBucketLoggingResponse
     { _gblrLoggingEnabled :: Maybe LoggingEnabled
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'GetBucketLoggingResponse' constructor.
 --
diff --git a/gen/Network/AWS/S3/GetBucketNotification.hs b/gen/Network/AWS/S3/GetBucketNotification.hs
--- a/gen/Network/AWS/S3/GetBucketNotification.hs
+++ b/gen/Network/AWS/S3/GetBucketNotification.hs
@@ -51,7 +51,7 @@
 
 newtype GetBucketNotification = GetBucketNotification
     { _gbnBucket :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'GetBucketNotification' constructor.
 --
@@ -72,7 +72,7 @@
     { _gbnrCloudFunctionConfiguration :: Maybe CloudFunctionConfiguration
     , _gbnrQueueConfiguration         :: Maybe QueueConfiguration
     , _gbnrTopicConfiguration         :: Maybe TopicConfiguration
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'GetBucketNotificationResponse' constructor.
 --
diff --git a/gen/Network/AWS/S3/GetBucketPolicy.hs b/gen/Network/AWS/S3/GetBucketPolicy.hs
--- a/gen/Network/AWS/S3/GetBucketPolicy.hs
+++ b/gen/Network/AWS/S3/GetBucketPolicy.hs
@@ -49,7 +49,7 @@
 
 newtype GetBucketPolicy = GetBucketPolicy
     { _gbpBucket :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'GetBucketPolicy' constructor.
 --
@@ -68,7 +68,7 @@
 
 newtype GetBucketPolicyResponse = GetBucketPolicyResponse
     { _gbprPolicy :: Maybe Text
-    } deriving (Eq, Ord, Show, Monoid)
+    } deriving (Eq, Ord, Read, Show, Monoid)
 
 -- | 'GetBucketPolicyResponse' constructor.
 --
diff --git a/gen/Network/AWS/S3/GetBucketRequestPayment.hs b/gen/Network/AWS/S3/GetBucketRequestPayment.hs
--- a/gen/Network/AWS/S3/GetBucketRequestPayment.hs
+++ b/gen/Network/AWS/S3/GetBucketRequestPayment.hs
@@ -49,7 +49,7 @@
 
 newtype GetBucketRequestPayment = GetBucketRequestPayment
     { _gbrpBucket :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'GetBucketRequestPayment' constructor.
 --
@@ -68,7 +68,7 @@
 
 newtype GetBucketRequestPaymentResponse = GetBucketRequestPaymentResponse
     { _gbrprPayer :: Maybe Payer
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'GetBucketRequestPaymentResponse' constructor.
 --
diff --git a/gen/Network/AWS/S3/GetBucketTagging.hs b/gen/Network/AWS/S3/GetBucketTagging.hs
--- a/gen/Network/AWS/S3/GetBucketTagging.hs
+++ b/gen/Network/AWS/S3/GetBucketTagging.hs
@@ -49,7 +49,7 @@
 
 newtype GetBucketTagging = GetBucketTagging
     { _gbtBucket :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'GetBucketTagging' constructor.
 --
@@ -68,7 +68,7 @@
 
 newtype GetBucketTaggingResponse = GetBucketTaggingResponse
     { _gbtrTagSet :: List "Tag" Tag
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 instance GHC.Exts.IsList GetBucketTaggingResponse where
     type Item GetBucketTaggingResponse = Tag
diff --git a/gen/Network/AWS/S3/GetBucketVersioning.hs b/gen/Network/AWS/S3/GetBucketVersioning.hs
--- a/gen/Network/AWS/S3/GetBucketVersioning.hs
+++ b/gen/Network/AWS/S3/GetBucketVersioning.hs
@@ -50,7 +50,7 @@
 
 newtype GetBucketVersioning = GetBucketVersioning
     { _gbvBucket :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'GetBucketVersioning' constructor.
 --
@@ -70,7 +70,7 @@
 data GetBucketVersioningResponse = GetBucketVersioningResponse
     { _gbvrMFADelete :: Maybe MFADeleteStatus
     , _gbvrStatus    :: Maybe BucketVersioningStatus
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'GetBucketVersioningResponse' constructor.
 --
diff --git a/gen/Network/AWS/S3/GetBucketWebsite.hs b/gen/Network/AWS/S3/GetBucketWebsite.hs
--- a/gen/Network/AWS/S3/GetBucketWebsite.hs
+++ b/gen/Network/AWS/S3/GetBucketWebsite.hs
@@ -52,7 +52,7 @@
 
 newtype GetBucketWebsite = GetBucketWebsite
     { _gbwBucket :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'GetBucketWebsite' constructor.
 --
@@ -74,7 +74,7 @@
     , _gbwrIndexDocument         :: Maybe IndexDocument
     , _gbwrRedirectAllRequestsTo :: Maybe RedirectAllRequestsTo
     , _gbwrRoutingRules          :: List "RoutingRule" RoutingRule
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'GetBucketWebsiteResponse' constructor.
 --
diff --git a/gen/Network/AWS/S3/GetObject.hs b/gen/Network/AWS/S3/GetObject.hs
--- a/gen/Network/AWS/S3/GetObject.hs
+++ b/gen/Network/AWS/S3/GetObject.hs
@@ -102,7 +102,7 @@
     , _goSSECustomerKey             :: Maybe (Sensitive Text)
     , _goSSECustomerKeyMD5          :: Maybe Text
     , _goVersionId                  :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'GetObject' constructor.
 --
diff --git a/gen/Network/AWS/S3/GetObjectAcl.hs b/gen/Network/AWS/S3/GetObjectAcl.hs
--- a/gen/Network/AWS/S3/GetObjectAcl.hs
+++ b/gen/Network/AWS/S3/GetObjectAcl.hs
@@ -54,7 +54,7 @@
     { _goaBucket    :: Text
     , _goaKey       :: Text
     , _goaVersionId :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'GetObjectAcl' constructor.
 --
@@ -88,7 +88,7 @@
 data GetObjectAclResponse = GetObjectAclResponse
     { _goarGrants :: List "Grant" Grant
     , _goarOwner  :: Maybe Owner
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'GetObjectAclResponse' constructor.
 --
diff --git a/gen/Network/AWS/S3/GetObjectTorrent.hs b/gen/Network/AWS/S3/GetObjectTorrent.hs
--- a/gen/Network/AWS/S3/GetObjectTorrent.hs
+++ b/gen/Network/AWS/S3/GetObjectTorrent.hs
@@ -51,7 +51,7 @@
 data GetObjectTorrent = GetObjectTorrent
     { _gotBucket :: Text
     , _gotKey    :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'GetObjectTorrent' constructor.
 --
diff --git a/gen/Network/AWS/S3/HeadBucket.hs b/gen/Network/AWS/S3/HeadBucket.hs
--- a/gen/Network/AWS/S3/HeadBucket.hs
+++ b/gen/Network/AWS/S3/HeadBucket.hs
@@ -48,7 +48,7 @@
 
 newtype HeadBucket = HeadBucket
     { _hbBucket :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'HeadBucket' constructor.
 --
@@ -66,7 +66,7 @@
 hbBucket = lens _hbBucket (\s a -> s { _hbBucket = a })
 
 data HeadBucketResponse = HeadBucketResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'HeadBucketResponse' constructor.
 headBucketResponse :: HeadBucketResponse
diff --git a/gen/Network/AWS/S3/HeadObject.hs b/gen/Network/AWS/S3/HeadObject.hs
--- a/gen/Network/AWS/S3/HeadObject.hs
+++ b/gen/Network/AWS/S3/HeadObject.hs
@@ -91,7 +91,7 @@
     , _hoSSECustomerKey       :: Maybe (Sensitive Text)
     , _hoSSECustomerKeyMD5    :: Maybe Text
     , _hoVersionId            :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'HeadObject' constructor.
 --
@@ -219,7 +219,7 @@
     , _horServerSideEncryption    :: Maybe ServerSideEncryption
     , _horVersionId               :: Maybe Text
     , _horWebsiteRedirectLocation :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'HeadObjectResponse' constructor.
 --
diff --git a/gen/Network/AWS/S3/ListBuckets.hs b/gen/Network/AWS/S3/ListBuckets.hs
--- a/gen/Network/AWS/S3/ListBuckets.hs
+++ b/gen/Network/AWS/S3/ListBuckets.hs
@@ -48,7 +48,7 @@
 import qualified GHC.Exts
 
 data ListBuckets = ListBuckets
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'ListBuckets' constructor.
 listBuckets :: ListBuckets
@@ -57,7 +57,7 @@
 data ListBucketsResponse = ListBucketsResponse
     { _lbrBuckets :: List "Bucket" Bucket
     , _lbrOwner   :: Maybe Owner
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ListBucketsResponse' constructor.
 --
diff --git a/gen/Network/AWS/S3/ListMultipartUploads.hs b/gen/Network/AWS/S3/ListMultipartUploads.hs
--- a/gen/Network/AWS/S3/ListMultipartUploads.hs
+++ b/gen/Network/AWS/S3/ListMultipartUploads.hs
@@ -72,7 +72,7 @@
     , _lmuMaxUploads     :: Maybe Int
     , _lmuPrefix         :: Maybe Text
     , _lmuUploadIdMarker :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ListMultipartUploads' constructor.
 --
@@ -150,7 +150,7 @@
     , _lmurPrefix             :: Maybe Text
     , _lmurUploadIdMarker     :: Maybe Text
     , _lmurUploads            :: List "Upload" MultipartUpload
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ListMultipartUploadsResponse' constructor.
 --
diff --git a/gen/Network/AWS/S3/ListObjectVersions.hs b/gen/Network/AWS/S3/ListObjectVersions.hs
--- a/gen/Network/AWS/S3/ListObjectVersions.hs
+++ b/gen/Network/AWS/S3/ListObjectVersions.hs
@@ -73,7 +73,7 @@
     , _lovMaxKeys         :: Maybe Int
     , _lovPrefix          :: Maybe Text
     , _lovVersionIdMarker :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ListObjectVersions' constructor.
 --
@@ -147,7 +147,7 @@
     , _lovrPrefix              :: Maybe Text
     , _lovrVersionIdMarker     :: Maybe Text
     , _lovrVersions            :: List "Version" ObjectVersion
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ListObjectVersionsResponse' constructor.
 --
diff --git a/gen/Network/AWS/S3/ListObjects.hs b/gen/Network/AWS/S3/ListObjects.hs
--- a/gen/Network/AWS/S3/ListObjects.hs
+++ b/gen/Network/AWS/S3/ListObjects.hs
@@ -70,7 +70,7 @@
     , _loMarker       :: Maybe Text
     , _loMaxKeys      :: Maybe Int
     , _loPrefix       :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ListObjects' constructor.
 --
@@ -133,7 +133,7 @@
     , _lorName           :: Maybe Text
     , _lorNextMarker     :: Maybe Text
     , _lorPrefix         :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ListObjectsResponse' constructor.
 --
diff --git a/gen/Network/AWS/S3/ListParts.hs b/gen/Network/AWS/S3/ListParts.hs
--- a/gen/Network/AWS/S3/ListParts.hs
+++ b/gen/Network/AWS/S3/ListParts.hs
@@ -67,7 +67,7 @@
     , _lpMaxParts         :: Maybe Int
     , _lpPartNumberMarker :: Maybe Int
     , _lpUploadId         :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'ListParts' constructor.
 --
@@ -127,7 +127,7 @@
     , _lprParts                :: List "Part" Part
     , _lprStorageClass         :: Maybe StorageClass
     , _lprUploadId             :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ListPartsResponse' constructor.
 --
diff --git a/gen/Network/AWS/S3/PutBucketAcl.hs b/gen/Network/AWS/S3/PutBucketAcl.hs
--- a/gen/Network/AWS/S3/PutBucketAcl.hs
+++ b/gen/Network/AWS/S3/PutBucketAcl.hs
@@ -63,7 +63,7 @@
     , _pbaGrantReadACP        :: Maybe Text
     , _pbaGrantWrite          :: Maybe Text
     , _pbaGrantWriteACP       :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'PutBucketAcl' constructor.
 --
@@ -138,7 +138,7 @@
 pbaGrantWriteACP = lens _pbaGrantWriteACP (\s a -> s { _pbaGrantWriteACP = a })
 
 data PutBucketAclResponse = PutBucketAclResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'PutBucketAclResponse' constructor.
 putBucketAclResponse :: PutBucketAclResponse
diff --git a/gen/Network/AWS/S3/PutBucketCors.hs b/gen/Network/AWS/S3/PutBucketCors.hs
--- a/gen/Network/AWS/S3/PutBucketCors.hs
+++ b/gen/Network/AWS/S3/PutBucketCors.hs
@@ -51,7 +51,7 @@
     { _pbcBucket            :: Text
     , _pbcCORSConfiguration :: Maybe CORSConfiguration
     , _pbcContentMD5        :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'PutBucketCors' constructor.
 --
@@ -82,7 +82,7 @@
 pbcContentMD5 = lens _pbcContentMD5 (\s a -> s { _pbcContentMD5 = a })
 
 data PutBucketCorsResponse = PutBucketCorsResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'PutBucketCorsResponse' constructor.
 putBucketCorsResponse :: PutBucketCorsResponse
diff --git a/gen/Network/AWS/S3/PutBucketLifecycle.hs b/gen/Network/AWS/S3/PutBucketLifecycle.hs
--- a/gen/Network/AWS/S3/PutBucketLifecycle.hs
+++ b/gen/Network/AWS/S3/PutBucketLifecycle.hs
@@ -52,7 +52,7 @@
     { _pbl1Bucket                 :: Text
     , _pbl1ContentMD5             :: Maybe Text
     , _pbl1LifecycleConfiguration :: Maybe LifecycleConfiguration
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'PutBucketLifecycle' constructor.
 --
@@ -84,7 +84,7 @@
         (\s a -> s { _pbl1LifecycleConfiguration = a })
 
 data PutBucketLifecycleResponse = PutBucketLifecycleResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'PutBucketLifecycleResponse' constructor.
 putBucketLifecycleResponse :: PutBucketLifecycleResponse
diff --git a/gen/Network/AWS/S3/PutBucketLogging.hs b/gen/Network/AWS/S3/PutBucketLogging.hs
--- a/gen/Network/AWS/S3/PutBucketLogging.hs
+++ b/gen/Network/AWS/S3/PutBucketLogging.hs
@@ -53,7 +53,7 @@
     { _pblBucket              :: Text
     , _pblBucketLoggingStatus :: BucketLoggingStatus
     , _pblContentMD5          :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'PutBucketLogging' constructor.
 --
@@ -85,7 +85,7 @@
 pblContentMD5 = lens _pblContentMD5 (\s a -> s { _pblContentMD5 = a })
 
 data PutBucketLoggingResponse = PutBucketLoggingResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'PutBucketLoggingResponse' constructor.
 putBucketLoggingResponse :: PutBucketLoggingResponse
diff --git a/gen/Network/AWS/S3/PutBucketNotification.hs b/gen/Network/AWS/S3/PutBucketNotification.hs
--- a/gen/Network/AWS/S3/PutBucketNotification.hs
+++ b/gen/Network/AWS/S3/PutBucketNotification.hs
@@ -51,7 +51,7 @@
     { _pbnBucket                    :: Text
     , _pbnContentMD5                :: Maybe Text
     , _pbnNotificationConfiguration :: NotificationConfiguration
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'PutBucketNotification' constructor.
 --
@@ -84,7 +84,7 @@
         (\s a -> s { _pbnNotificationConfiguration = a })
 
 data PutBucketNotificationResponse = PutBucketNotificationResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'PutBucketNotificationResponse' constructor.
 putBucketNotificationResponse :: PutBucketNotificationResponse
diff --git a/gen/Network/AWS/S3/PutBucketPolicy.hs b/gen/Network/AWS/S3/PutBucketPolicy.hs
--- a/gen/Network/AWS/S3/PutBucketPolicy.hs
+++ b/gen/Network/AWS/S3/PutBucketPolicy.hs
@@ -52,7 +52,7 @@
     { _pbpBucket     :: Text
     , _pbpContentMD5 :: Maybe Text
     , _pbpPolicy     :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'PutBucketPolicy' constructor.
 --
@@ -84,7 +84,7 @@
 pbpPolicy = lens _pbpPolicy (\s a -> s { _pbpPolicy = a })
 
 data PutBucketPolicyResponse = PutBucketPolicyResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'PutBucketPolicyResponse' constructor.
 putBucketPolicyResponse :: PutBucketPolicyResponse
diff --git a/gen/Network/AWS/S3/PutBucketRequestPayment.hs b/gen/Network/AWS/S3/PutBucketRequestPayment.hs
--- a/gen/Network/AWS/S3/PutBucketRequestPayment.hs
+++ b/gen/Network/AWS/S3/PutBucketRequestPayment.hs
@@ -54,7 +54,7 @@
     { _pbrpBucket                      :: Text
     , _pbrpContentMD5                  :: Maybe Text
     , _pbrpRequestPaymentConfiguration :: RequestPaymentConfiguration
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'PutBucketRequestPayment' constructor.
 --
@@ -87,7 +87,7 @@
         (\s a -> s { _pbrpRequestPaymentConfiguration = a })
 
 data PutBucketRequestPaymentResponse = PutBucketRequestPaymentResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'PutBucketRequestPaymentResponse' constructor.
 putBucketRequestPaymentResponse :: PutBucketRequestPaymentResponse
diff --git a/gen/Network/AWS/S3/PutBucketTagging.hs b/gen/Network/AWS/S3/PutBucketTagging.hs
--- a/gen/Network/AWS/S3/PutBucketTagging.hs
+++ b/gen/Network/AWS/S3/PutBucketTagging.hs
@@ -51,7 +51,7 @@
     { _pbtBucket     :: Text
     , _pbtContentMD5 :: Maybe Text
     , _pbtTagging    :: Tagging
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'PutBucketTagging' constructor.
 --
@@ -82,7 +82,7 @@
 pbtTagging = lens _pbtTagging (\s a -> s { _pbtTagging = a })
 
 data PutBucketTaggingResponse = PutBucketTaggingResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'PutBucketTaggingResponse' constructor.
 putBucketTaggingResponse :: PutBucketTaggingResponse
diff --git a/gen/Network/AWS/S3/PutBucketVersioning.hs b/gen/Network/AWS/S3/PutBucketVersioning.hs
--- a/gen/Network/AWS/S3/PutBucketVersioning.hs
+++ b/gen/Network/AWS/S3/PutBucketVersioning.hs
@@ -54,7 +54,7 @@
     , _pbvContentMD5              :: Maybe Text
     , _pbvMFA                     :: Maybe Text
     , _pbvVersioningConfiguration :: VersioningConfiguration
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'PutBucketVersioning' constructor.
 --
@@ -95,7 +95,7 @@
         (\s a -> s { _pbvVersioningConfiguration = a })
 
 data PutBucketVersioningResponse = PutBucketVersioningResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'PutBucketVersioningResponse' constructor.
 putBucketVersioningResponse :: PutBucketVersioningResponse
diff --git a/gen/Network/AWS/S3/PutBucketWebsite.hs b/gen/Network/AWS/S3/PutBucketWebsite.hs
--- a/gen/Network/AWS/S3/PutBucketWebsite.hs
+++ b/gen/Network/AWS/S3/PutBucketWebsite.hs
@@ -51,7 +51,7 @@
     { _pbwBucket               :: Text
     , _pbwContentMD5           :: Maybe Text
     , _pbwWebsiteConfiguration :: WebsiteConfiguration
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'PutBucketWebsite' constructor.
 --
@@ -83,7 +83,7 @@
     lens _pbwWebsiteConfiguration (\s a -> s { _pbwWebsiteConfiguration = a })
 
 data PutBucketWebsiteResponse = PutBucketWebsiteResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'PutBucketWebsiteResponse' constructor.
 putBucketWebsiteResponse :: PutBucketWebsiteResponse
diff --git a/gen/Network/AWS/S3/PutObject.hs b/gen/Network/AWS/S3/PutObject.hs
--- a/gen/Network/AWS/S3/PutObject.hs
+++ b/gen/Network/AWS/S3/PutObject.hs
@@ -313,7 +313,7 @@
     , _porSSEKMSKeyId          :: Maybe (Sensitive Text)
     , _porServerSideEncryption :: Maybe ServerSideEncryption
     , _porVersionId            :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'PutObjectResponse' constructor.
 --
diff --git a/gen/Network/AWS/S3/PutObjectAcl.hs b/gen/Network/AWS/S3/PutObjectAcl.hs
--- a/gen/Network/AWS/S3/PutObjectAcl.hs
+++ b/gen/Network/AWS/S3/PutObjectAcl.hs
@@ -66,7 +66,7 @@
     , _poaGrantWrite          :: Maybe Text
     , _poaGrantWriteACP       :: Maybe Text
     , _poaKey                 :: Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'PutObjectAcl' constructor.
 --
@@ -148,7 +148,7 @@
 poaKey = lens _poaKey (\s a -> s { _poaKey = a })
 
 data PutObjectAclResponse = PutObjectAclResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'PutObjectAclResponse' constructor.
 putObjectAclResponse :: PutObjectAclResponse
diff --git a/gen/Network/AWS/S3/RestoreObject.hs b/gen/Network/AWS/S3/RestoreObject.hs
--- a/gen/Network/AWS/S3/RestoreObject.hs
+++ b/gen/Network/AWS/S3/RestoreObject.hs
@@ -53,7 +53,7 @@
     , _roKey            :: Text
     , _roRestoreRequest :: Maybe RestoreRequest
     , _roVersionId      :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'RestoreObject' constructor.
 --
@@ -90,7 +90,7 @@
 roVersionId = lens _roVersionId (\s a -> s { _roVersionId = a })
 
 data RestoreObjectResponse = RestoreObjectResponse
-    deriving (Eq, Ord, Show, Generic)
+    deriving (Eq, Ord, Read, Show, Generic)
 
 -- | 'RestoreObjectResponse' constructor.
 restoreObjectResponse :: RestoreObjectResponse
diff --git a/gen/Network/AWS/S3/Types.hs b/gen/Network/AWS/S3/Types.hs
--- a/gen/Network/AWS/S3/Types.hs
+++ b/gen/Network/AWS/S3/Types.hs
@@ -475,7 +475,7 @@
     | S3ObjectCreatedPost                    -- ^ s3:ObjectCreated:Post
     | S3ObjectCreatedPut                     -- ^ s3:ObjectCreated:Put
     | S3ReducedRedundancyLostObject          -- ^ s3:ReducedRedundancyLostObject
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable Event
 
@@ -509,7 +509,7 @@
 
 newtype NoncurrentVersionExpiration = NoncurrentVersionExpiration
     { _nveNoncurrentDays :: Int
-    } deriving (Eq, Ord, Show, Enum, Num, Integral, Real)
+    } deriving (Eq, Ord, Read, Show, Enum, Num, Integral, Real)
 
 -- | 'NoncurrentVersionExpiration' constructor.
 --
@@ -544,7 +544,7 @@
     { _tDate         :: Maybe ISO8601
     , _tDays         :: Maybe Int
     , _tStorageClass :: Maybe TransitionStorageClass
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'Transition' constructor.
 --
@@ -596,7 +596,7 @@
     , _dmeLastModified :: Maybe RFC822
     , _dmeOwner        :: Maybe Owner
     , _dmeVersionId    :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'DeleteMarkerEntry' constructor.
 --
@@ -661,7 +661,7 @@
 data ExpirationStatus
     = Disabled -- ^ Disabled
     | Enabled  -- ^ Enabled
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable ExpirationStatus
 
@@ -692,7 +692,7 @@
     , _pLastModified :: Maybe RFC822
     , _pPartNumber   :: Maybe Int
     , _pSize         :: Maybe Int
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'Part' constructor.
 --
@@ -748,7 +748,7 @@
 data VersioningConfiguration = VersioningConfiguration
     { _vcMFADelete :: Maybe MFADelete
     , _vcStatus    :: Maybe BucketVersioningStatus
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'VersioningConfiguration' constructor.
 --
@@ -789,7 +789,7 @@
 data Tag = Tag
     { _tagKey   :: Text
     , _tagValue :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'Tag' constructor.
 --
@@ -830,7 +830,7 @@
     = Glacier           -- ^ GLACIER
     | ReducedRedundancy -- ^ REDUCED_REDUNDANCY
     | Standard          -- ^ STANDARD
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable ObjectStorageClass
 
@@ -861,7 +861,7 @@
 data MetadataDirective
     = Copy    -- ^ COPY
     | Replace -- ^ REPLACE
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable MetadataDirective
 
@@ -890,7 +890,7 @@
 data RedirectAllRequestsTo = RedirectAllRequestsTo
     { _rartHostName :: Text
     , _rartProtocol :: Maybe Protocol
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'RedirectAllRequestsTo' constructor.
 --
@@ -930,7 +930,7 @@
 data RoutingRule = RoutingRule
     { _rrCondition :: Maybe Condition
     , _rrRedirect  :: Redirect
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'RoutingRule' constructor.
 --
@@ -975,7 +975,7 @@
     { _ncCloudFunctionConfiguration :: Maybe CloudFunctionConfiguration
     , _ncQueueConfiguration         :: Maybe QueueConfiguration
     , _ncTopicConfiguration         :: Maybe TopicConfiguration
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'NotificationConfiguration' constructor.
 --
@@ -1025,7 +1025,7 @@
     , _sseKey       :: Maybe Text
     , _sseMessage   :: Maybe Text
     , _sseVersionId :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'S3ServiceError' constructor.
 --
@@ -1081,7 +1081,7 @@
     | Private                -- ^ private
     | PublicRead             -- ^ public-read
     | PublicReadWrite        -- ^ public-read-write
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable ObjectCannedACL
 
@@ -1118,7 +1118,7 @@
 data BucketVersioningStatus
     = BVSEnabled   -- ^ Enabled
     | BVSSuspended -- ^ Suspended
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable BucketVersioningStatus
 
@@ -1149,7 +1149,7 @@
     , _do1DeleteMarkerVersionId :: Maybe Text
     , _do1Key                   :: Maybe Text
     , _do1VersionId             :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'DeletedObject' constructor.
 --
@@ -1202,7 +1202,7 @@
 
 data ObjectVersionStorageClass
     = OVSCStandard -- ^ STANDARD
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable ObjectVersionStorageClass
 
@@ -1228,7 +1228,7 @@
 data CopyPartResult = CopyPartResult
     { _cprETag         :: Maybe Text
     , _cprLastModified :: Maybe RFC822
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'CopyPartResult' constructor.
 --
@@ -1265,7 +1265,7 @@
 
 data EncodingType
     = Url -- ^ url
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable EncodingType
 
@@ -1290,7 +1290,7 @@
 
 newtype RequestPaymentConfiguration = RequestPaymentConfiguration
     { _rpcPayer :: Payer
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'RequestPaymentConfiguration' constructor.
 --
@@ -1323,7 +1323,7 @@
     , _corsrAllowedOrigins :: List "AllowedOrigin" Text
     , _corsrExposeHeaders  :: List "ExposeHeader" Text
     , _corsrMaxAgeSeconds  :: Maybe Int
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'CORSRule' constructor.
 --
@@ -1403,7 +1403,7 @@
     , _wcIndexDocument         :: Maybe IndexDocument
     , _wcRedirectAllRequestsTo :: Maybe RedirectAllRequestsTo
     , _wcRoutingRules          :: List "RoutingRule" RoutingRule
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'WebsiteConfiguration' constructor.
 --
@@ -1456,7 +1456,7 @@
 data NoncurrentVersionTransition = NoncurrentVersionTransition
     { _nvtNoncurrentDays :: Int
     , _nvtStorageClass   :: TransitionStorageClass
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'NoncurrentVersionTransition' constructor.
 --
@@ -1500,7 +1500,7 @@
 data Initiator = Initiator
     { _iDisplayName :: Maybe Text
     , _iID          :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'Initiator' constructor.
 --
@@ -1539,7 +1539,7 @@
 data ObjectIdentifier = ObjectIdentifier
     { _oiKey       :: Text
     , _oiVersionId :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'ObjectIdentifier' constructor.
 --
@@ -1578,7 +1578,7 @@
 data Bucket = Bucket
     { _bCreationDate :: RFC822
     , _bName         :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'Bucket' constructor.
 --
@@ -1618,7 +1618,7 @@
 data Protocol
     = Http  -- ^ http
     | Https -- ^ https
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable Protocol
 
@@ -1647,7 +1647,7 @@
 data Grant = Grant
     { _gGrantee    :: Maybe Grantee
     , _gPermission :: Maybe Permission
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'Grant' constructor.
 --
@@ -1691,7 +1691,7 @@
     , _rPrefix                      :: Text
     , _rStatus                      :: ExpirationStatus
     , _rTransition                  :: Maybe Transition
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'Rule' constructor.
 --
@@ -1780,7 +1780,7 @@
     , _tcEvents :: List "Event" Event
     , _tcId     :: Maybe Text
     , _tcTopic  :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'TopicConfiguration' constructor.
 --
@@ -1837,7 +1837,7 @@
     , _qcEvents :: List "Event" Event
     , _qcId     :: Maybe Text
     , _qcQueue  :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'QueueConfiguration' constructor.
 --
@@ -1889,7 +1889,7 @@
 data Owner = Owner
     { _oDisplayName :: Maybe Text
     , _oID          :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'Owner' constructor.
 --
@@ -1926,7 +1926,7 @@
 
 newtype BucketLoggingStatus = BucketLoggingStatus
     { _blsLoggingEnabled :: Maybe LoggingEnabled
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'BucketLoggingStatus' constructor.
 --
@@ -1954,7 +1954,7 @@
 
 newtype ErrorDocument = ErrorDocument
     { _edKey :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'ErrorDocument' constructor.
 --
@@ -1984,7 +1984,7 @@
 data StorageClass
     = SCReducedRedundancy -- ^ REDUCED_REDUNDANCY
     | SCStandard          -- ^ STANDARD
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable StorageClass
 
@@ -2019,7 +2019,7 @@
     , _ovSize         :: Maybe Int
     , _ovStorageClass :: Maybe ObjectVersionStorageClass
     , _ovVersionId    :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'ObjectVersion' constructor.
 --
@@ -2110,7 +2110,7 @@
 data TargetGrant = TargetGrant
     { _tgGrantee    :: Maybe Grantee
     , _tgPermission :: Maybe BucketLogsPermission
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'TargetGrant' constructor.
 --
@@ -2147,7 +2147,7 @@
 data MFADeleteStatus
     = MFADSDisabled -- ^ Disabled
     | MFADSEnabled  -- ^ Enabled
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable MFADeleteStatus
 
@@ -2176,7 +2176,7 @@
 data Payer
     = BucketOwner -- ^ BucketOwner
     | Requester   -- ^ Requester
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable Payer
 
@@ -2208,7 +2208,7 @@
     , _rProtocol             :: Maybe Protocol
     , _rReplaceKeyPrefixWith :: Maybe Text
     , _rReplaceKeyWith       :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'Redirect' constructor.
 --
@@ -2285,7 +2285,7 @@
     = FullControl -- ^ FULL_CONTROL
     | Read        -- ^ READ
     | Write       -- ^ WRITE
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable BucketLogsPermission
 
@@ -2316,7 +2316,7 @@
 data CompletedPart = CompletedPart
     { _cpETag       :: Maybe Text
     , _cpPartNumber :: Maybe Int
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'CompletedPart' constructor.
 --
@@ -2353,7 +2353,7 @@
 
 newtype CreateBucketConfiguration = CreateBucketConfiguration
     { _cbcLocationConstraint :: Maybe Region
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CreateBucketConfiguration' constructor.
 --
@@ -2382,7 +2382,7 @@
 
 newtype Tagging = Tagging
     { _tTagSet :: List "Tag" Tag
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 instance GHC.Exts.IsList Tagging where
     type Item Tagging = Tag
@@ -2416,7 +2416,7 @@
 data LifecycleExpiration = LifecycleExpiration
     { _leDate :: Maybe ISO8601
     , _leDays :: Maybe Int
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'LifecycleExpiration' constructor.
 --
@@ -2455,7 +2455,7 @@
 
 newtype CORSConfiguration = CORSConfiguration
     { _corscCORSRules :: List "CORSRule" CORSRule
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 -- | 'CORSConfiguration' constructor.
 --
@@ -2487,7 +2487,7 @@
     , _oOwner        :: Owner
     , _oSize         :: Int
     , _oStorageClass :: ObjectStorageClass
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'Object' constructor.
 --
@@ -2561,7 +2561,7 @@
 
 newtype CommonPrefix = CommonPrefix
     { _cpPrefix :: Maybe Text
-    } deriving (Eq, Ord, Show, Monoid)
+    } deriving (Eq, Ord, Read, Show, Monoid)
 
 -- | 'CommonPrefix' constructor.
 --
@@ -2595,7 +2595,7 @@
     , _muOwner        :: Maybe Owner
     , _muStorageClass :: Maybe StorageClass
     , _muUploadId     :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'MultipartUpload' constructor.
 --
@@ -2669,7 +2669,7 @@
     = AmazonCustomerByEmail -- ^ AmazonCustomerByEmail
     | CanonicalUser         -- ^ CanonicalUser
     | Group                 -- ^ Group
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable Type
 
@@ -2699,7 +2699,7 @@
 
 data TransitionStorageClass
     = TSCGlacier -- ^ GLACIER
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable TransitionStorageClass
 
@@ -2724,7 +2724,7 @@
 
 newtype CompletedMultipartUpload = CompletedMultipartUpload
     { _cmuParts :: List "Part" CompletedPart
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 -- | 'CompletedMultipartUpload' constructor.
 --
@@ -2752,7 +2752,7 @@
 data Condition = Condition
     { _cHttpErrorCodeReturnedEquals :: Maybe Text
     , _cKeyPrefixEquals             :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'Condition' constructor.
 --
@@ -2805,7 +2805,7 @@
     | PReadAcp     -- ^ READ_ACP
     | PWrite       -- ^ WRITE
     | PWriteAcp    -- ^ WRITE_ACP
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable Permission
 
@@ -2840,7 +2840,7 @@
 data AccessControlPolicy = AccessControlPolicy
     { _acpGrants :: List "Grant" Grant
     , _acpOwner  :: Maybe Owner
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'AccessControlPolicy' constructor.
 --
@@ -2881,7 +2881,7 @@
     | CannedPrivate           -- ^ private
     | CannedPublicRead        -- ^ public-read
     | CannedPublicReadWrite   -- ^ public-read-write
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable BucketCannedACL
 
@@ -2914,7 +2914,7 @@
 data MFADelete
     = MFADDisabled -- ^ Disabled
     | MFADEnabled  -- ^ Enabled
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable MFADelete
 
@@ -2946,7 +2946,7 @@
     , _cfcEvents         :: List "Event" Event
     , _cfcId             :: Maybe Text
     , _cfcInvocationRole :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'CloudFunctionConfiguration' constructor.
 --
@@ -3010,7 +3010,7 @@
     , _gID           :: Maybe Text
     , _gType         :: Type
     , _gURI          :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'Grantee' constructor.
 --
@@ -3075,7 +3075,7 @@
 
 newtype LifecycleConfiguration = LifecycleConfiguration
     { _lcRules :: List "Rule" Rule
-    } deriving (Eq, Show, Monoid, Semigroup)
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
 
 -- | 'LifecycleConfiguration' constructor.
 --
@@ -3104,7 +3104,7 @@
     { _leTargetBucket :: Maybe Text
     , _leTargetGrants :: List "Grant" TargetGrant
     , _leTargetPrefix :: Maybe Text
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'LoggingEnabled' constructor.
 --
@@ -3155,7 +3155,7 @@
 
 data ServerSideEncryption
     = AES256 -- ^ AES256
-      deriving (Eq, Ord, Show, Generic, Enum)
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable ServerSideEncryption
 
@@ -3180,7 +3180,7 @@
 
 newtype IndexDocument = IndexDocument
     { _idSuffix :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
 
 -- | 'IndexDocument' constructor.
 --
@@ -3214,7 +3214,7 @@
 data CopyObjectResult = CopyObjectResult
     { _corETag         :: Maybe Text
     , _corLastModified :: Maybe RFC822
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'CopyObjectResult' constructor.
 --
@@ -3250,7 +3250,7 @@
 data Delete = Delete
     { _dObjects :: List "Object" ObjectIdentifier
     , _dQuiet   :: Maybe Bool
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'Delete' constructor.
 --
@@ -3287,7 +3287,7 @@
 
 newtype RestoreRequest = RestoreRequest
     { _rDays :: Int
-    } deriving (Eq, Ord, Show, Enum, Num, Integral, Real)
+    } deriving (Eq, Ord, Read, Show, Enum, Num, Integral, Real)
 
 -- | 'RestoreRequest' constructor.
 --
diff --git a/gen/Network/AWS/S3/UploadPart.hs b/gen/Network/AWS/S3/UploadPart.hs
--- a/gen/Network/AWS/S3/UploadPart.hs
+++ b/gen/Network/AWS/S3/UploadPart.hs
@@ -175,7 +175,7 @@
     , _uprSSECustomerKeyMD5    :: Maybe Text
     , _uprSSEKMSKeyId          :: Maybe (Sensitive Text)
     , _uprServerSideEncryption :: Maybe ServerSideEncryption
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'UploadPartResponse' constructor.
 --
diff --git a/gen/Network/AWS/S3/UploadPartCopy.hs b/gen/Network/AWS/S3/UploadPartCopy.hs
--- a/gen/Network/AWS/S3/UploadPartCopy.hs
+++ b/gen/Network/AWS/S3/UploadPartCopy.hs
@@ -84,7 +84,7 @@
     , _upcSSECustomerKey                 :: Maybe (Sensitive Text)
     , _upcSSECustomerKeyMD5              :: Maybe Text
     , _upcUploadId                       :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'UploadPartCopy' constructor.
 --
@@ -256,7 +256,7 @@
     , _upcrSSECustomerKeyMD5    :: Maybe Text
     , _upcrSSEKMSKeyId          :: Maybe (Sensitive Text)
     , _upcrServerSideEncryption :: Maybe ServerSideEncryption
-    } deriving (Eq, Show)
+    } deriving (Eq, Read, Show)
 
 -- | 'UploadPartCopyResponse' constructor.
 --
