diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
 
 ## Version
 
-`1.3.6`
+`1.3.7`
 
 
 ## Description
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:               1.3.6
+version:               1.3.7
 synopsis:              Amazon Simple Storage Service SDK.
 homepage:              https://github.com/brendanhay/amazonka
 bug-reports:           https://github.com/brendanhay/amazonka/issues
@@ -108,7 +108,7 @@
         , Network.AWS.S3.Types.Sum
 
     build-depends:
-          amazonka-core == 1.3.6.*
+          amazonka-core == 1.3.7.*
         , base          >= 4.7     && < 5
         , lens >= 4.4
         , text >= 1.1
@@ -130,12 +130,11 @@
         , Test.AWS.S3.Internal
 
     build-depends:
-          amazonka-core == 1.3.6.*
-        , amazonka-test == 1.3.6.*
-        , amazonka-s3 == 1.3.6.*
+          amazonka-core == 1.3.7.*
+        , amazonka-test == 1.3.7.*
+        , amazonka-s3 == 1.3.7.*
         , base
         , bytestring
-        , lens
         , tasty
         , tasty-hunit
         , text
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
@@ -44,6 +44,7 @@
     , amursResponseStatus
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -49,6 +49,7 @@
     , crsResponseStatus
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -75,6 +75,7 @@
     , corsResponseStatus
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -44,6 +44,7 @@
     , cbrsResponseStatus
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -71,6 +71,7 @@
     , cmursResponseStatus
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -36,6 +36,7 @@
     , DeleteBucketResponse
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -34,6 +34,7 @@
     , DeleteBucketCORSResponse
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -34,6 +34,7 @@
     , DeleteBucketLifecycleResponse
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -34,6 +34,7 @@
     , DeleteBucketPolicyResponse
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/S3/DeleteBucketReplication.hs b/gen/Network/AWS/S3/DeleteBucketReplication.hs
--- a/gen/Network/AWS/S3/DeleteBucketReplication.hs
+++ b/gen/Network/AWS/S3/DeleteBucketReplication.hs
@@ -34,6 +34,7 @@
     , DeleteBucketReplicationResponse
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -34,6 +34,7 @@
     , DeleteBucketTaggingResponse
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -34,6 +34,7 @@
     , DeleteBucketWebsiteResponse
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -45,6 +45,7 @@
     , dorsResponseStatus
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -43,6 +43,7 @@
     , drsResponseStatus
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -38,6 +38,7 @@
     , gbarsResponseStatus
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -37,6 +37,7 @@
     , gbcrsResponseStatus
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/S3/GetBucketLifecycleConfiguration.hs b/gen/Network/AWS/S3/GetBucketLifecycleConfiguration.hs
--- a/gen/Network/AWS/S3/GetBucketLifecycleConfiguration.hs
+++ b/gen/Network/AWS/S3/GetBucketLifecycleConfiguration.hs
@@ -37,6 +37,7 @@
     , gblcrsResponseStatus
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -37,6 +37,7 @@
     , grsLocationConstraint
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -38,6 +38,7 @@
     , gblrsResponseStatus
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/S3/GetBucketNotificationConfiguration.hs b/gen/Network/AWS/S3/GetBucketNotificationConfiguration.hs
--- a/gen/Network/AWS/S3/GetBucketNotificationConfiguration.hs
+++ b/gen/Network/AWS/S3/GetBucketNotificationConfiguration.hs
@@ -38,6 +38,7 @@
     , ncLambdaFunctionConfigurations
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -37,6 +37,7 @@
     , gbprsPolicy
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/S3/GetBucketReplication.hs b/gen/Network/AWS/S3/GetBucketReplication.hs
--- a/gen/Network/AWS/S3/GetBucketReplication.hs
+++ b/gen/Network/AWS/S3/GetBucketReplication.hs
@@ -37,6 +37,7 @@
     , gbrrsResponseStatus
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -37,6 +37,7 @@
     , gbrprsResponseStatus
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -37,6 +37,7 @@
     , gbtrsTagSet
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -38,6 +38,7 @@
     , gbvrsResponseStatus
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -40,6 +40,7 @@
     , gbwrsResponseStatus
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -79,6 +79,7 @@
     , gorsBody
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -42,6 +42,7 @@
     , goarsResponseStatus
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -40,6 +40,7 @@
     , gotrsBody
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -35,6 +35,7 @@
     , HeadBucketResponse
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -74,6 +74,7 @@
     , horsResponseStatus
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -37,6 +37,7 @@
     , lbrsResponseStatus
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -56,6 +56,7 @@
     , lmursResponseStatus
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Pager
 import           Network.AWS.Prelude
 import           Network.AWS.Request
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
@@ -57,6 +57,7 @@
     , lovrsResponseStatus
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Pager
 import           Network.AWS.Prelude
 import           Network.AWS.Request
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
@@ -55,6 +55,7 @@
     , lorsResponseStatus
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Pager
 import           Network.AWS.Prelude
 import           Network.AWS.Request
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
@@ -55,6 +55,7 @@
     , lprsResponseStatus
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Pager
 import           Network.AWS.Prelude
 import           Network.AWS.Request
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
@@ -42,6 +42,7 @@
     , PutBucketACLResponse
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -36,6 +36,7 @@
     , PutBucketCORSResponse
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/S3/PutBucketLifecycleConfiguration.hs b/gen/Network/AWS/S3/PutBucketLifecycleConfiguration.hs
--- a/gen/Network/AWS/S3/PutBucketLifecycleConfiguration.hs
+++ b/gen/Network/AWS/S3/PutBucketLifecycleConfiguration.hs
@@ -36,6 +36,7 @@
     , PutBucketLifecycleConfigurationResponse
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -38,6 +38,7 @@
     , PutBucketLoggingResponse
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/S3/PutBucketNotificationConfiguration.hs b/gen/Network/AWS/S3/PutBucketNotificationConfiguration.hs
--- a/gen/Network/AWS/S3/PutBucketNotificationConfiguration.hs
+++ b/gen/Network/AWS/S3/PutBucketNotificationConfiguration.hs
@@ -35,6 +35,7 @@
     , PutBucketNotificationConfigurationResponse
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -37,6 +37,7 @@
     , PutBucketPolicyResponse
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/S3/PutBucketReplication.hs b/gen/Network/AWS/S3/PutBucketReplication.hs
--- a/gen/Network/AWS/S3/PutBucketReplication.hs
+++ b/gen/Network/AWS/S3/PutBucketReplication.hs
@@ -37,6 +37,7 @@
     , PutBucketReplicationResponse
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -41,6 +41,7 @@
     , PutBucketRequestPaymentResponse
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -36,6 +36,7 @@
     , PutBucketTaggingResponse
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -38,6 +38,7 @@
     , PutBucketVersioningResponse
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -36,6 +36,7 @@
     , PutBucketWebsiteResponse
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -68,6 +68,7 @@
     , porsResponseStatus
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -48,6 +48,7 @@
     , poarsResponseStatus
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -41,6 +41,7 @@
     , rorsResponseStatus
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -459,6 +459,7 @@
     , wcRoutingRules
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.S3.Internal
 import           Network.AWS.S3.Types.Product
diff --git a/gen/Network/AWS/S3/Types/Product.hs b/gen/Network/AWS/S3/Types/Product.hs
--- a/gen/Network/AWS/S3/Types/Product.hs
+++ b/gen/Network/AWS/S3/Types/Product.hs
@@ -17,6 +17,7 @@
 --
 module Network.AWS.S3.Types.Product where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.S3.Internal
 import           Network.AWS.S3.Types.Sum
diff --git a/gen/Network/AWS/S3/Types/Sum.hs b/gen/Network/AWS/S3/Types/Sum.hs
--- a/gen/Network/AWS/S3/Types/Sum.hs
+++ b/gen/Network/AWS/S3/Types/Sum.hs
@@ -25,7 +25,7 @@
     | BPrivate
     | BPublicRead
     | BPublicReadWrite
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText BucketCannedACL where
     parser = takeLowerText >>= \case
@@ -55,7 +55,7 @@
     = FullControl
     | Read
     | Write
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText BucketLogsPermission where
     parser = takeLowerText >>= \case
@@ -85,7 +85,7 @@
 data BucketVersioningStatus
     = BVSEnabled
     | BVSSuspended
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText BucketVersioningStatus where
     parser = takeLowerText >>= \case
@@ -118,7 +118,7 @@
 -- Amazon S3 encode the keys in the response.
 data EncodingType =
     URL
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText EncodingType where
     parser = takeLowerText >>= \case
@@ -152,7 +152,7 @@
     | S3ObjectRemovedDelete
     | S3ObjectRemovedDeleteMarkerCreated
     | S3ReducedRedundancyLostObject
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText Event where
     parser = takeLowerText >>= \case
@@ -194,7 +194,7 @@
 data ExpirationStatus
     = ESDisabled
     | ESEnabled
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText ExpirationStatus where
     parser = takeLowerText >>= \case
@@ -222,7 +222,7 @@
 data FilterRuleName
     = Prefix
     | Suffix
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText FilterRuleName where
     parser = takeLowerText >>= \case
@@ -250,7 +250,7 @@
 data MFADelete
     = MDDisabled
     | MDEnabled
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText MFADelete where
     parser = takeLowerText >>= \case
@@ -275,7 +275,7 @@
 data MFADeleteStatus
     = MDSDisabled
     | MDSEnabled
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText MFADeleteStatus where
     parser = takeLowerText >>= \case
@@ -300,7 +300,7 @@
 data MetadataDirective
     = Copy
     | Replace
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText MetadataDirective where
     parser = takeLowerText >>= \case
@@ -323,16 +323,18 @@
     toXML = toXMLText
 
 data ObjectCannedACL
-    = OAuthenticatedRead
+    = OAWSExecRead
+    | OAuthenticatedRead
     | OBucketOwnerFullControl
     | OBucketOwnerRead
     | OPrivate
     | OPublicRead
     | OPublicReadWrite
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText ObjectCannedACL where
     parser = takeLowerText >>= \case
+        "aws-exec-read" -> pure OAWSExecRead
         "authenticated-read" -> pure OAuthenticatedRead
         "bucket-owner-full-control" -> pure OBucketOwnerFullControl
         "bucket-owner-read" -> pure OBucketOwnerRead
@@ -340,10 +342,11 @@
         "public-read" -> pure OPublicRead
         "public-read-write" -> pure OPublicReadWrite
         e -> fromTextError $ "Failure parsing ObjectCannedACL from value: '" <> e
-           <> "'. Accepted values: authenticated-read, bucket-owner-full-control, bucket-owner-read, private, public-read, public-read-write"
+           <> "'. Accepted values: aws-exec-read, authenticated-read, bucket-owner-full-control, bucket-owner-read, private, public-read, public-read-write"
 
 instance ToText ObjectCannedACL where
     toText = \case
+        OAWSExecRead -> "aws-exec-read"
         OAuthenticatedRead -> "authenticated-read"
         OBucketOwnerFullControl -> "bucket-owner-full-control"
         OBucketOwnerRead -> "bucket-owner-read"
@@ -364,7 +367,7 @@
     | OSCReducedRedundancy
     | OSCStandard
     | OSCStandardIA
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText ObjectStorageClass where
     parser = takeLowerText >>= \case
@@ -392,7 +395,7 @@
 
 data ObjectVersionStorageClass =
     OVSCStandard
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText ObjectVersionStorageClass where
     parser = takeLowerText >>= \case
@@ -415,7 +418,7 @@
 data Payer
     = BucketOwner
     | Requester
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText Payer where
     parser = takeLowerText >>= \case
@@ -446,7 +449,7 @@
     | PReadAcp
     | PWrite
     | PWriteAcp
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText Permission where
     parser = takeLowerText >>= \case
@@ -480,7 +483,7 @@
 data Protocol
     = HTTP
     | HTTPS
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText Protocol where
     parser = takeLowerText >>= \case
@@ -508,7 +511,7 @@
 data ReplicationRuleStatus
     = Disabled
     | Enabled
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText ReplicationRuleStatus where
     parser = takeLowerText >>= \case
@@ -538,7 +541,7 @@
     | Failed
     | Pending
     | Replica
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText ReplicationStatus where
     parser = takeLowerText >>= \case
@@ -568,7 +571,7 @@
 -- the request.
 data RequestCharged =
     RCRequester
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText RequestCharged where
     parser = takeLowerText >>= \case
@@ -595,7 +598,7 @@
 -- http:\/\/docs.aws.amazon.com\/AmazonS3\/latest\/dev\/ObjectsinRequesterPaysBuckets.html
 data RequestPayer =
     RPRequester
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText RequestPayer where
     parser = takeLowerText >>= \case
@@ -618,7 +621,7 @@
 data ServerSideEncryption
     = AES256
     | AWSKMS
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText ServerSideEncryption where
     parser = takeLowerText >>= \case
@@ -647,7 +650,7 @@
     = ReducedRedundancy
     | Standard
     | StandardIA
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText StorageClass where
     parser = takeLowerText >>= \case
@@ -677,7 +680,7 @@
 data TransitionStorageClass
     = TSCGlacier
     | TSCStandardIA
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText TransitionStorageClass where
     parser = takeLowerText >>= \case
@@ -706,7 +709,7 @@
     = AmazonCustomerByEmail
     | CanonicalUser
     | Group
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText Type where
     parser = takeLowerText >>= \case
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
@@ -58,6 +58,7 @@
     , uprsResponseStatus
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -59,6 +59,7 @@
     , upcrsResponseStatus
     ) where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/S3/Waiters.hs b/gen/Network/AWS/S3/Waiters.hs
--- a/gen/Network/AWS/S3/Waiters.hs
+++ b/gen/Network/AWS/S3/Waiters.hs
@@ -15,6 +15,7 @@
 --
 module Network.AWS.S3.Waiters where
 
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.S3.HeadBucket
 import           Network.AWS.S3.HeadBucket
diff --git a/src/Network/AWS/S3/Internal.hs b/src/Network/AWS/S3/Internal.hs
--- a/src/Network/AWS/S3/Internal.hs
+++ b/src/Network/AWS/S3/Internal.hs
@@ -35,11 +35,13 @@
     , keyComponents
     ) where
 
-import           Control.Lens
 import           Data.String
 import qualified Data.Text            as Text
 import           Network.AWS.Data.Log
 import           Network.AWS.Data.XML
+import           Network.AWS.Lens     (IndexedTraversal', Iso', Prism',
+                                       Traversal')
+import           Network.AWS.Lens     (iso, prism, traversed, _1, _2)
 import           Network.AWS.Prelude
 
 newtype BucketName = BucketName Text
