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-cloudfront.cabal b/amazonka-cloudfront.cabal
--- a/amazonka-cloudfront.cabal
+++ b/amazonka-cloudfront.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-cloudfront
-version:               1.3.6
+version:               1.3.7
 synopsis:              Amazon CloudFront SDK.
 homepage:              https://github.com/brendanhay/amazonka
 bug-reports:           https://github.com/brendanhay/amazonka/issues
@@ -81,7 +81,7 @@
         , Network.AWS.CloudFront.Types.Sum
 
     build-depends:
-          amazonka-core == 1.3.6.*
+          amazonka-core == 1.3.7.*
         , base          >= 4.7     && < 5
 
 test-suite amazonka-cloudfront-test
@@ -101,12 +101,11 @@
         , Test.AWS.CloudFront.Internal
 
     build-depends:
-          amazonka-core == 1.3.6.*
-        , amazonka-test == 1.3.6.*
-        , amazonka-cloudfront == 1.3.6.*
+          amazonka-core == 1.3.7.*
+        , amazonka-test == 1.3.7.*
+        , amazonka-cloudfront == 1.3.7.*
         , base
         , bytestring
-        , lens
         , tasty
         , tasty-hunit
         , text
diff --git a/gen/Network/AWS/CloudFront.hs b/gen/Network/AWS/CloudFront.hs
--- a/gen/Network/AWS/CloudFront.hs
+++ b/gen/Network/AWS/CloudFront.hs
@@ -262,6 +262,9 @@
 
     -- * Types
 
+    -- ** CertificateSource
+    , CertificateSource (..)
+
     -- ** GeoRestrictionType
     , GeoRestrictionType (..)
 
@@ -311,6 +314,7 @@
     , cacheBehavior
     , cbAllowedMethods
     , cbMaxTTL
+    , cbCompress
     , cbSmoothStreaming
     , cbDefaultTTL
     , cbPathPattern
@@ -400,6 +404,7 @@
     , defaultCacheBehavior
     , dcbAllowedMethods
     , dcbMaxTTL
+    , dcbCompress
     , dcbSmoothStreaming
     , dcbDefaultTTL
     , dcbTargetOriginId
@@ -638,7 +643,9 @@
     , ViewerCertificate
     , viewerCertificate
     , vcSSLSupportMethod
+    , vcCertificateSource
     , vcMinimumProtocolVersion
+    , vcCertificate
     , vcIAMCertificateId
     , vcCloudFrontDefaultCertificate
     ) where
diff --git a/gen/Network/AWS/CloudFront/CreateCloudFrontOriginAccessIdentity.hs b/gen/Network/AWS/CloudFront/CreateCloudFrontOriginAccessIdentity.hs
--- a/gen/Network/AWS/CloudFront/CreateCloudFrontOriginAccessIdentity.hs
+++ b/gen/Network/AWS/CloudFront/CreateCloudFrontOriginAccessIdentity.hs
@@ -41,6 +41,7 @@
 
 import           Network.AWS.CloudFront.Types
 import           Network.AWS.CloudFront.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
@@ -86,7 +87,7 @@
          CreateCloudFrontOriginAccessIdentity where
         toElement
           = mkElement
-              "{http://cloudfront.amazonaws.com/doc/2015-07-27/}CloudFrontOriginAccessIdentityConfig"
+              "{http://cloudfront.amazonaws.com/doc/2015-09-17/}CloudFrontOriginAccessIdentityConfig"
               .
               _ccfoaiCloudFrontOriginAccessIdentityConfig
 
@@ -98,7 +99,7 @@
          where
         toPath
           = const
-              "/2015-07-27/origin-access-identity/cloudfront"
+              "/2015-09-17/origin-access-identity/cloudfront"
 
 instance ToQuery CreateCloudFrontOriginAccessIdentity
          where
diff --git a/gen/Network/AWS/CloudFront/CreateDistribution.hs b/gen/Network/AWS/CloudFront/CreateDistribution.hs
--- a/gen/Network/AWS/CloudFront/CreateDistribution.hs
+++ b/gen/Network/AWS/CloudFront/CreateDistribution.hs
@@ -41,6 +41,7 @@
 
 import           Network.AWS.CloudFront.Types
 import           Network.AWS.CloudFront.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
@@ -84,7 +85,7 @@
 instance ToElement CreateDistribution where
         toElement
           = mkElement
-              "{http://cloudfront.amazonaws.com/doc/2015-07-27/}DistributionConfig"
+              "{http://cloudfront.amazonaws.com/doc/2015-09-17/}DistributionConfig"
               .
               _cdDistributionConfig
 
@@ -92,7 +93,7 @@
         toHeaders = const mempty
 
 instance ToPath CreateDistribution where
-        toPath = const "/2015-07-27/distribution"
+        toPath = const "/2015-09-17/distribution"
 
 instance ToQuery CreateDistribution where
         toQuery = const mempty
diff --git a/gen/Network/AWS/CloudFront/CreateInvalidation.hs b/gen/Network/AWS/CloudFront/CreateInvalidation.hs
--- a/gen/Network/AWS/CloudFront/CreateInvalidation.hs
+++ b/gen/Network/AWS/CloudFront/CreateInvalidation.hs
@@ -41,6 +41,7 @@
 
 import           Network.AWS.CloudFront.Types
 import           Network.AWS.CloudFront.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
@@ -92,7 +93,7 @@
 instance ToElement CreateInvalidation where
         toElement
           = mkElement
-              "{http://cloudfront.amazonaws.com/doc/2015-07-27/}InvalidationBatch"
+              "{http://cloudfront.amazonaws.com/doc/2015-09-17/}InvalidationBatch"
               .
               _ciInvalidationBatch
 
@@ -102,7 +103,7 @@
 instance ToPath CreateInvalidation where
         toPath CreateInvalidation'{..}
           = mconcat
-              ["/2015-07-27/distribution/", toBS _ciDistributionId,
+              ["/2015-09-17/distribution/", toBS _ciDistributionId,
                "/invalidation"]
 
 instance ToQuery CreateInvalidation where
diff --git a/gen/Network/AWS/CloudFront/CreateStreamingDistribution.hs b/gen/Network/AWS/CloudFront/CreateStreamingDistribution.hs
--- a/gen/Network/AWS/CloudFront/CreateStreamingDistribution.hs
+++ b/gen/Network/AWS/CloudFront/CreateStreamingDistribution.hs
@@ -41,6 +41,7 @@
 
 import           Network.AWS.CloudFront.Types
 import           Network.AWS.CloudFront.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
@@ -84,7 +85,7 @@
 instance ToElement CreateStreamingDistribution where
         toElement
           = mkElement
-              "{http://cloudfront.amazonaws.com/doc/2015-07-27/}StreamingDistributionConfig"
+              "{http://cloudfront.amazonaws.com/doc/2015-09-17/}StreamingDistributionConfig"
               .
               _csdStreamingDistributionConfig
 
@@ -92,7 +93,7 @@
         toHeaders = const mempty
 
 instance ToPath CreateStreamingDistribution where
-        toPath = const "/2015-07-27/streaming-distribution"
+        toPath = const "/2015-09-17/streaming-distribution"
 
 instance ToQuery CreateStreamingDistribution where
         toQuery = const mempty
diff --git a/gen/Network/AWS/CloudFront/DeleteCloudFrontOriginAccessIdentity.hs b/gen/Network/AWS/CloudFront/DeleteCloudFrontOriginAccessIdentity.hs
--- a/gen/Network/AWS/CloudFront/DeleteCloudFrontOriginAccessIdentity.hs
+++ b/gen/Network/AWS/CloudFront/DeleteCloudFrontOriginAccessIdentity.hs
@@ -37,6 +37,7 @@
 
 import           Network.AWS.CloudFront.Types
 import           Network.AWS.CloudFront.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
@@ -92,7 +93,7 @@
          where
         toPath DeleteCloudFrontOriginAccessIdentity'{..}
           = mconcat
-              ["/2015-07-27/origin-access-identity/cloudfront/",
+              ["/2015-09-17/origin-access-identity/cloudfront/",
                toBS _dcfoaiId]
 
 instance ToQuery DeleteCloudFrontOriginAccessIdentity
diff --git a/gen/Network/AWS/CloudFront/DeleteDistribution.hs b/gen/Network/AWS/CloudFront/DeleteDistribution.hs
--- a/gen/Network/AWS/CloudFront/DeleteDistribution.hs
+++ b/gen/Network/AWS/CloudFront/DeleteDistribution.hs
@@ -37,6 +37,7 @@
 
 import           Network.AWS.CloudFront.Types
 import           Network.AWS.CloudFront.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
@@ -86,7 +87,7 @@
 
 instance ToPath DeleteDistribution where
         toPath DeleteDistribution'{..}
-          = mconcat ["/2015-07-27/distribution/", toBS _ddId]
+          = mconcat ["/2015-09-17/distribution/", toBS _ddId]
 
 instance ToQuery DeleteDistribution where
         toQuery = const mempty
diff --git a/gen/Network/AWS/CloudFront/DeleteStreamingDistribution.hs b/gen/Network/AWS/CloudFront/DeleteStreamingDistribution.hs
--- a/gen/Network/AWS/CloudFront/DeleteStreamingDistribution.hs
+++ b/gen/Network/AWS/CloudFront/DeleteStreamingDistribution.hs
@@ -37,6 +37,7 @@
 
 import           Network.AWS.CloudFront.Types
 import           Network.AWS.CloudFront.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
@@ -88,7 +89,7 @@
 instance ToPath DeleteStreamingDistribution where
         toPath DeleteStreamingDistribution'{..}
           = mconcat
-              ["/2015-07-27/streaming-distribution/", toBS _dsdId]
+              ["/2015-09-17/streaming-distribution/", toBS _dsdId]
 
 instance ToQuery DeleteStreamingDistribution where
         toQuery = const mempty
diff --git a/gen/Network/AWS/CloudFront/GetCloudFrontOriginAccessIdentity.hs b/gen/Network/AWS/CloudFront/GetCloudFrontOriginAccessIdentity.hs
--- a/gen/Network/AWS/CloudFront/GetCloudFrontOriginAccessIdentity.hs
+++ b/gen/Network/AWS/CloudFront/GetCloudFrontOriginAccessIdentity.hs
@@ -40,6 +40,7 @@
 
 import           Network.AWS.CloudFront.Types
 import           Network.AWS.CloudFront.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
@@ -88,7 +89,7 @@
          where
         toPath GetCloudFrontOriginAccessIdentity'{..}
           = mconcat
-              ["/2015-07-27/origin-access-identity/cloudfront/",
+              ["/2015-09-17/origin-access-identity/cloudfront/",
                toBS _gcfoaiId]
 
 instance ToQuery GetCloudFrontOriginAccessIdentity
diff --git a/gen/Network/AWS/CloudFront/GetCloudFrontOriginAccessIdentityConfig.hs b/gen/Network/AWS/CloudFront/GetCloudFrontOriginAccessIdentityConfig.hs
--- a/gen/Network/AWS/CloudFront/GetCloudFrontOriginAccessIdentityConfig.hs
+++ b/gen/Network/AWS/CloudFront/GetCloudFrontOriginAccessIdentityConfig.hs
@@ -40,6 +40,7 @@
 
 import           Network.AWS.CloudFront.Types
 import           Network.AWS.CloudFront.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
@@ -88,7 +89,7 @@
          GetCloudFrontOriginAccessIdentityConfig where
         toPath GetCloudFrontOriginAccessIdentityConfig'{..}
           = mconcat
-              ["/2015-07-27/origin-access-identity/cloudfront/",
+              ["/2015-09-17/origin-access-identity/cloudfront/",
                toBS _gcfoaicId, "/config"]
 
 instance ToQuery
diff --git a/gen/Network/AWS/CloudFront/GetDistribution.hs b/gen/Network/AWS/CloudFront/GetDistribution.hs
--- a/gen/Network/AWS/CloudFront/GetDistribution.hs
+++ b/gen/Network/AWS/CloudFront/GetDistribution.hs
@@ -40,6 +40,7 @@
 
 import           Network.AWS.CloudFront.Types
 import           Network.AWS.CloudFront.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
@@ -83,7 +84,7 @@
 
 instance ToPath GetDistribution where
         toPath GetDistribution'{..}
-          = mconcat ["/2015-07-27/distribution/", toBS _gdId]
+          = mconcat ["/2015-09-17/distribution/", toBS _gdId]
 
 instance ToQuery GetDistribution where
         toQuery = const mempty
diff --git a/gen/Network/AWS/CloudFront/GetDistributionConfig.hs b/gen/Network/AWS/CloudFront/GetDistributionConfig.hs
--- a/gen/Network/AWS/CloudFront/GetDistributionConfig.hs
+++ b/gen/Network/AWS/CloudFront/GetDistributionConfig.hs
@@ -40,6 +40,7 @@
 
 import           Network.AWS.CloudFront.Types
 import           Network.AWS.CloudFront.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
@@ -85,7 +86,7 @@
 instance ToPath GetDistributionConfig where
         toPath GetDistributionConfig'{..}
           = mconcat
-              ["/2015-07-27/distribution/", toBS _gdcId, "/config"]
+              ["/2015-09-17/distribution/", toBS _gdcId, "/config"]
 
 instance ToQuery GetDistributionConfig where
         toQuery = const mempty
diff --git a/gen/Network/AWS/CloudFront/GetInvalidation.hs b/gen/Network/AWS/CloudFront/GetInvalidation.hs
--- a/gen/Network/AWS/CloudFront/GetInvalidation.hs
+++ b/gen/Network/AWS/CloudFront/GetInvalidation.hs
@@ -40,6 +40,7 @@
 
 import           Network.AWS.CloudFront.Types
 import           Network.AWS.CloudFront.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
@@ -92,7 +93,7 @@
 instance ToPath GetInvalidation where
         toPath GetInvalidation'{..}
           = mconcat
-              ["/2015-07-27/distribution/", toBS _giDistributionId,
+              ["/2015-09-17/distribution/", toBS _giDistributionId,
                "/invalidation/", toBS _giId]
 
 instance ToQuery GetInvalidation where
diff --git a/gen/Network/AWS/CloudFront/GetStreamingDistribution.hs b/gen/Network/AWS/CloudFront/GetStreamingDistribution.hs
--- a/gen/Network/AWS/CloudFront/GetStreamingDistribution.hs
+++ b/gen/Network/AWS/CloudFront/GetStreamingDistribution.hs
@@ -40,6 +40,7 @@
 
 import           Network.AWS.CloudFront.Types
 import           Network.AWS.CloudFront.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
@@ -85,7 +86,7 @@
 instance ToPath GetStreamingDistribution where
         toPath GetStreamingDistribution'{..}
           = mconcat
-              ["/2015-07-27/streaming-distribution/", toBS _gsdId]
+              ["/2015-09-17/streaming-distribution/", toBS _gsdId]
 
 instance ToQuery GetStreamingDistribution where
         toQuery = const mempty
diff --git a/gen/Network/AWS/CloudFront/GetStreamingDistributionConfig.hs b/gen/Network/AWS/CloudFront/GetStreamingDistributionConfig.hs
--- a/gen/Network/AWS/CloudFront/GetStreamingDistributionConfig.hs
+++ b/gen/Network/AWS/CloudFront/GetStreamingDistributionConfig.hs
@@ -40,6 +40,7 @@
 
 import           Network.AWS.CloudFront.Types
 import           Network.AWS.CloudFront.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
@@ -87,7 +88,7 @@
 instance ToPath GetStreamingDistributionConfig where
         toPath GetStreamingDistributionConfig'{..}
           = mconcat
-              ["/2015-07-27/streaming-distribution/", toBS _gsdcId,
+              ["/2015-09-17/streaming-distribution/", toBS _gsdcId,
                "/config"]
 
 instance ToQuery GetStreamingDistributionConfig where
diff --git a/gen/Network/AWS/CloudFront/ListCloudFrontOriginAccessIdentities.hs b/gen/Network/AWS/CloudFront/ListCloudFrontOriginAccessIdentities.hs
--- a/gen/Network/AWS/CloudFront/ListCloudFrontOriginAccessIdentities.hs
+++ b/gen/Network/AWS/CloudFront/ListCloudFrontOriginAccessIdentities.hs
@@ -42,6 +42,7 @@
 
 import           Network.AWS.CloudFront.Types
 import           Network.AWS.CloudFront.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Pager
 import           Network.AWS.Prelude
 import           Network.AWS.Request
@@ -122,7 +123,7 @@
          where
         toPath
           = const
-              "/2015-07-27/origin-access-identity/cloudfront"
+              "/2015-09-17/origin-access-identity/cloudfront"
 
 instance ToQuery ListCloudFrontOriginAccessIdentities
          where
diff --git a/gen/Network/AWS/CloudFront/ListDistributions.hs b/gen/Network/AWS/CloudFront/ListDistributions.hs
--- a/gen/Network/AWS/CloudFront/ListDistributions.hs
+++ b/gen/Network/AWS/CloudFront/ListDistributions.hs
@@ -42,6 +42,7 @@
 
 import           Network.AWS.CloudFront.Types
 import           Network.AWS.CloudFront.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Pager
 import           Network.AWS.Prelude
 import           Network.AWS.Request
@@ -108,7 +109,7 @@
         toHeaders = const mempty
 
 instance ToPath ListDistributions where
-        toPath = const "/2015-07-27/distribution"
+        toPath = const "/2015-09-17/distribution"
 
 instance ToQuery ListDistributions where
         toQuery ListDistributions'{..}
diff --git a/gen/Network/AWS/CloudFront/ListDistributionsByWebACLId.hs b/gen/Network/AWS/CloudFront/ListDistributionsByWebACLId.hs
--- a/gen/Network/AWS/CloudFront/ListDistributionsByWebACLId.hs
+++ b/gen/Network/AWS/CloudFront/ListDistributionsByWebACLId.hs
@@ -42,6 +42,7 @@
 
 import           Network.AWS.CloudFront.Types
 import           Network.AWS.CloudFront.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
@@ -110,7 +111,7 @@
 instance ToPath ListDistributionsByWebACLId where
         toPath ListDistributionsByWebACLId'{..}
           = mconcat
-              ["/2015-07-27/distributionsByWebACLId/",
+              ["/2015-09-17/distributionsByWebACLId/",
                toBS _ldbwaiWebACLId]
 
 instance ToQuery ListDistributionsByWebACLId where
diff --git a/gen/Network/AWS/CloudFront/ListInvalidations.hs b/gen/Network/AWS/CloudFront/ListInvalidations.hs
--- a/gen/Network/AWS/CloudFront/ListInvalidations.hs
+++ b/gen/Network/AWS/CloudFront/ListInvalidations.hs
@@ -43,6 +43,7 @@
 
 import           Network.AWS.CloudFront.Types
 import           Network.AWS.CloudFront.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Pager
 import           Network.AWS.Prelude
 import           Network.AWS.Request
@@ -122,7 +123,7 @@
 instance ToPath ListInvalidations where
         toPath ListInvalidations'{..}
           = mconcat
-              ["/2015-07-27/distribution/", toBS _liDistributionId,
+              ["/2015-09-17/distribution/", toBS _liDistributionId,
                "/invalidation"]
 
 instance ToQuery ListInvalidations where
diff --git a/gen/Network/AWS/CloudFront/ListStreamingDistributions.hs b/gen/Network/AWS/CloudFront/ListStreamingDistributions.hs
--- a/gen/Network/AWS/CloudFront/ListStreamingDistributions.hs
+++ b/gen/Network/AWS/CloudFront/ListStreamingDistributions.hs
@@ -42,6 +42,7 @@
 
 import           Network.AWS.CloudFront.Types
 import           Network.AWS.CloudFront.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Pager
 import           Network.AWS.Prelude
 import           Network.AWS.Request
@@ -115,7 +116,7 @@
         toHeaders = const mempty
 
 instance ToPath ListStreamingDistributions where
-        toPath = const "/2015-07-27/streaming-distribution"
+        toPath = const "/2015-09-17/streaming-distribution"
 
 instance ToQuery ListStreamingDistributions where
         toQuery ListStreamingDistributions'{..}
diff --git a/gen/Network/AWS/CloudFront/Types.hs b/gen/Network/AWS/CloudFront/Types.hs
--- a/gen/Network/AWS/CloudFront/Types.hs
+++ b/gen/Network/AWS/CloudFront/Types.hs
@@ -66,6 +66,9 @@
     , _InvalidGeoRestrictionParameter
     , _InvalidLocationCode
 
+    -- * CertificateSource
+    , CertificateSource (..)
+
     -- * GeoRestrictionType
     , GeoRestrictionType (..)
 
@@ -115,6 +118,7 @@
     , cacheBehavior
     , cbAllowedMethods
     , cbMaxTTL
+    , cbCompress
     , cbSmoothStreaming
     , cbDefaultTTL
     , cbPathPattern
@@ -204,6 +208,7 @@
     , defaultCacheBehavior
     , dcbAllowedMethods
     , dcbMaxTTL
+    , dcbCompress
     , dcbSmoothStreaming
     , dcbDefaultTTL
     , dcbTargetOriginId
@@ -442,24 +447,27 @@
     , ViewerCertificate
     , viewerCertificate
     , vcSSLSupportMethod
+    , vcCertificateSource
     , vcMinimumProtocolVersion
+    , vcCertificate
     , vcIAMCertificateId
     , vcCloudFrontDefaultCertificate
     ) where
 
 import           Network.AWS.CloudFront.Types.Product
 import           Network.AWS.CloudFront.Types.Sum
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Sign.V4
 
--- | API version '2015-07-27' of the Amazon CloudFront SDK configuration.
+-- | API version '2015-09-17' of the Amazon CloudFront SDK configuration.
 cloudFront :: Service
 cloudFront =
     Service
     { _svcAbbrev = "CloudFront"
     , _svcSigner = v4
     , _svcPrefix = "cloudfront"
-    , _svcVersion = "2015-07-27"
+    , _svcVersion = "2015-09-17"
     , _svcEndpoint = defaultEndpoint cloudFront
     , _svcTimeout = Just 70
     , _svcCheck = statusSuccess
diff --git a/gen/Network/AWS/CloudFront/Types/Product.hs b/gen/Network/AWS/CloudFront/Types/Product.hs
--- a/gen/Network/AWS/CloudFront/Types/Product.hs
+++ b/gen/Network/AWS/CloudFront/Types/Product.hs
@@ -18,6 +18,7 @@
 module Network.AWS.CloudFront.Types.Product where
 
 import           Network.AWS.CloudFront.Types.Sum
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 
 -- | A complex type that lists the AWS accounts, if any, that you included in
@@ -211,6 +212,7 @@
 data CacheBehavior = CacheBehavior'
     { _cbAllowedMethods       :: !(Maybe AllowedMethods)
     , _cbMaxTTL               :: !(Maybe Integer)
+    , _cbCompress             :: !(Maybe Bool)
     , _cbSmoothStreaming      :: !(Maybe Bool)
     , _cbDefaultTTL           :: !(Maybe Integer)
     , _cbPathPattern          :: !Text
@@ -229,6 +231,8 @@
 --
 -- * 'cbMaxTTL'
 --
+-- * 'cbCompress'
+--
 -- * 'cbSmoothStreaming'
 --
 -- * 'cbDefaultTTL'
@@ -256,6 +260,7 @@
     CacheBehavior'
     { _cbAllowedMethods = Nothing
     , _cbMaxTTL = Nothing
+    , _cbCompress = Nothing
     , _cbSmoothStreaming = Nothing
     , _cbDefaultTTL = Nothing
     , _cbPathPattern = pPathPattern_
@@ -279,6 +284,26 @@
 cbMaxTTL :: Lens' CacheBehavior (Maybe Integer)
 cbMaxTTL = lens _cbMaxTTL (\ s a -> s{_cbMaxTTL = a});
 
+-- | Whether you want CloudFront to automatically compress content for web
+-- requests that include Accept-Encoding: gzip in the request header. If
+-- so, specify true; if not, specify false. CloudFront compresses files
+-- larger than 1000 bytes and less than 1 megabyte for both Amazon S3 and
+-- custom origins. When a CloudFront edge location is unusually busy, some
+-- files might not be compressed. The value of the Content-Type header must
+-- be on the list of file types that CloudFront will compress. For the
+-- current list, see
+-- <http://docs.aws.amazon.com/console/cloudfront/compressed-content Serving Compressed Content>
+-- in the Amazon CloudFront Developer Guide. If you configure CloudFront to
+-- compress content, CloudFront removes the ETag response header from the
+-- objects that it compresses. The ETag header indicates that the version
+-- in a CloudFront edge cache is identical to the version on the origin
+-- server, but after compression the two versions are no longer identical.
+-- As a result, for compressed objects, CloudFront can\'t use the ETag
+-- header to determine whether an expired object in the CloudFront edge
+-- cache is still the latest version.
+cbCompress :: Lens' CacheBehavior (Maybe Bool)
+cbCompress = lens _cbCompress (\ s a -> s{_cbCompress = a});
+
 -- | Indicates whether you want to distribute media files in Microsoft Smooth
 -- Streaming format using the origin that is associated with this cache
 -- behavior. If so, specify true; if not, specify false.
@@ -355,7 +380,8 @@
         parseXML x
           = CacheBehavior' <$>
               (x .@? "AllowedMethods") <*> (x .@? "MaxTTL") <*>
-                (x .@? "SmoothStreaming")
+                (x .@? "Compress")
+                <*> (x .@? "SmoothStreaming")
                 <*> (x .@? "DefaultTTL")
                 <*> (x .@ "PathPattern")
                 <*> (x .@ "TargetOriginId")
@@ -368,7 +394,7 @@
         toXML CacheBehavior'{..}
           = mconcat
               ["AllowedMethods" @= _cbAllowedMethods,
-               "MaxTTL" @= _cbMaxTTL,
+               "MaxTTL" @= _cbMaxTTL, "Compress" @= _cbCompress,
                "SmoothStreaming" @= _cbSmoothStreaming,
                "DefaultTTL" @= _cbDefaultTTL,
                "PathPattern" @= _cbPathPattern,
@@ -1022,6 +1048,7 @@
 data DefaultCacheBehavior = DefaultCacheBehavior'
     { _dcbAllowedMethods       :: !(Maybe AllowedMethods)
     , _dcbMaxTTL               :: !(Maybe Integer)
+    , _dcbCompress             :: !(Maybe Bool)
     , _dcbSmoothStreaming      :: !(Maybe Bool)
     , _dcbDefaultTTL           :: !(Maybe Integer)
     , _dcbTargetOriginId       :: !Text
@@ -1039,6 +1066,8 @@
 --
 -- * 'dcbMaxTTL'
 --
+-- * 'dcbCompress'
+--
 -- * 'dcbSmoothStreaming'
 --
 -- * 'dcbDefaultTTL'
@@ -1063,6 +1092,7 @@
     DefaultCacheBehavior'
     { _dcbAllowedMethods = Nothing
     , _dcbMaxTTL = Nothing
+    , _dcbCompress = Nothing
     , _dcbSmoothStreaming = Nothing
     , _dcbDefaultTTL = Nothing
     , _dcbTargetOriginId = pTargetOriginId_
@@ -1085,6 +1115,26 @@
 dcbMaxTTL :: Lens' DefaultCacheBehavior (Maybe Integer)
 dcbMaxTTL = lens _dcbMaxTTL (\ s a -> s{_dcbMaxTTL = a});
 
+-- | Whether you want CloudFront to automatically compress content for web
+-- requests that include Accept-Encoding: gzip in the request header. If
+-- so, specify true; if not, specify false. CloudFront compresses files
+-- larger than 1000 bytes and less than 1 megabyte for both Amazon S3 and
+-- custom origins. When a CloudFront edge location is unusually busy, some
+-- files might not be compressed. The value of the Content-Type header must
+-- be on the list of file types that CloudFront will compress. For the
+-- current list, see
+-- <http://docs.aws.amazon.com/console/cloudfront/compressed-content Serving Compressed Content>
+-- in the Amazon CloudFront Developer Guide. If you configure CloudFront to
+-- compress content, CloudFront removes the ETag response header from the
+-- objects that it compresses. The ETag header indicates that the version
+-- in a CloudFront edge cache is identical to the version on the origin
+-- server, but after compression the two versions are no longer identical.
+-- As a result, for compressed objects, CloudFront can\'t use the ETag
+-- header to determine whether an expired object in the CloudFront edge
+-- cache is still the latest version.
+dcbCompress :: Lens' DefaultCacheBehavior (Maybe Bool)
+dcbCompress = lens _dcbCompress (\ s a -> s{_dcbCompress = a});
+
 -- | Indicates whether you want to distribute media files in Microsoft Smooth
 -- Streaming format using the origin that is associated with this cache
 -- behavior. If so, specify true; if not, specify false.
@@ -1150,7 +1200,8 @@
         parseXML x
           = DefaultCacheBehavior' <$>
               (x .@? "AllowedMethods") <*> (x .@? "MaxTTL") <*>
-                (x .@? "SmoothStreaming")
+                (x .@? "Compress")
+                <*> (x .@? "SmoothStreaming")
                 <*> (x .@? "DefaultTTL")
                 <*> (x .@ "TargetOriginId")
                 <*> (x .@ "ForwardedValues")
@@ -1162,7 +1213,7 @@
         toXML DefaultCacheBehavior'{..}
           = mconcat
               ["AllowedMethods" @= _dcbAllowedMethods,
-               "MaxTTL" @= _dcbMaxTTL,
+               "MaxTTL" @= _dcbMaxTTL, "Compress" @= _dcbCompress,
                "SmoothStreaming" @= _dcbSmoothStreaming,
                "DefaultTTL" @= _dcbDefaultTTL,
                "TargetOriginId" @= _dcbTargetOriginId,
@@ -3229,7 +3280,9 @@
 -- /See:/ 'viewerCertificate' smart constructor.
 data ViewerCertificate = ViewerCertificate'
     { _vcSSLSupportMethod             :: !(Maybe SSLSupportMethod)
+    , _vcCertificateSource            :: !(Maybe CertificateSource)
     , _vcMinimumProtocolVersion       :: !(Maybe MinimumProtocolVersion)
+    , _vcCertificate                  :: !(Maybe Text)
     , _vcIAMCertificateId             :: !(Maybe Text)
     , _vcCloudFrontDefaultCertificate :: !(Maybe Bool)
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
@@ -3240,8 +3293,12 @@
 --
 -- * 'vcSSLSupportMethod'
 --
+-- * 'vcCertificateSource'
+--
 -- * 'vcMinimumProtocolVersion'
 --
+-- * 'vcCertificate'
+--
 -- * 'vcIAMCertificateId'
 --
 -- * 'vcCloudFrontDefaultCertificate'
@@ -3250,7 +3307,9 @@
 viewerCertificate =
     ViewerCertificate'
     { _vcSSLSupportMethod = Nothing
+    , _vcCertificateSource = Nothing
     , _vcMinimumProtocolVersion = Nothing
+    , _vcCertificate = Nothing
     , _vcIAMCertificateId = Nothing
     , _vcCloudFrontDefaultCertificate = Nothing
     }
@@ -3268,6 +3327,17 @@
 vcSSLSupportMethod :: Lens' ViewerCertificate (Maybe SSLSupportMethod)
 vcSSLSupportMethod = lens _vcSSLSupportMethod (\ s a -> s{_vcSSLSupportMethod = a});
 
+-- | If you want viewers to use HTTPS to request your objects and you\'re
+-- using the CloudFront domain name of your distribution in your object
+-- URLs (for example, https:\/\/d111111abcdef8.cloudfront.net\/logo.jpg),
+-- set to \"cloudfront\". If you want viewers to use HTTPS to request your
+-- objects and you\'re using an alternate domain name in your object URLs
+-- (for example, https:\/\/example.com\/logo.jpg), set to \"iam\", and
+-- update the Certificate field with the IAM certificate identifier of the
+-- custom viewer certificate for this distribution.
+vcCertificateSource :: Lens' ViewerCertificate (Maybe CertificateSource)
+vcCertificateSource = lens _vcCertificateSource (\ s a -> s{_vcCertificateSource = a});
+
 -- | Specify the minimum version of the SSL protocol that you want CloudFront
 -- to use, SSLv3 or TLSv1, for HTTPS connections. CloudFront will serve
 -- your objects only to browsers or devices that support at least the SSL
@@ -3285,16 +3355,27 @@
 
 -- | If you want viewers to use HTTPS to request your objects and you\'re
 -- using an alternate domain name in your object URLs (for example,
+-- https:\/\/example.com\/logo.jpg), set to the IAM certificate identifier
+-- of the custom viewer certificate for this distribution.
+vcCertificate :: Lens' ViewerCertificate (Maybe Text)
+vcCertificate = lens _vcCertificate (\ s a -> s{_vcCertificate = a});
+
+-- | Note: this field is deprecated. Please use \"iam\" as CertificateSource
+-- and specify the IAM certificate Id as the Certificate. If you want
+-- viewers to use HTTPS to request your objects and you\'re using an
+-- alternate domain name in your object URLs (for example,
 -- https:\/\/example.com\/logo.jpg), specify the IAM certificate identifier
 -- of the custom viewer certificate for this distribution. Specify either
 -- this value or CloudFrontDefaultCertificate.
 vcIAMCertificateId :: Lens' ViewerCertificate (Maybe Text)
 vcIAMCertificateId = lens _vcIAMCertificateId (\ s a -> s{_vcIAMCertificateId = a});
 
--- | If you want viewers to use HTTPS to request your objects and you\'re
--- using the CloudFront domain name of your distribution in your object
--- URLs (for example, https:\/\/d111111abcdef8.cloudfront.net\/logo.jpg),
--- set to true. Omit this value if you are setting an IAMCertificateId.
+-- | Note: this field is deprecated. Please use \"cloudfront\" as
+-- CertificateSource and omit specifying a Certificate. If you want viewers
+-- to use HTTPS to request your objects and you\'re using the CloudFront
+-- domain name of your distribution in your object URLs (for example,
+-- https:\/\/d111111abcdef8.cloudfront.net\/logo.jpg), set to true. Omit
+-- this value if you are setting an IAMCertificateId.
 vcCloudFrontDefaultCertificate :: Lens' ViewerCertificate (Maybe Bool)
 vcCloudFrontDefaultCertificate = lens _vcCloudFrontDefaultCertificate (\ s a -> s{_vcCloudFrontDefaultCertificate = a});
 
@@ -3302,7 +3383,9 @@
         parseXML x
           = ViewerCertificate' <$>
               (x .@? "SSLSupportMethod") <*>
-                (x .@? "MinimumProtocolVersion")
+                (x .@? "CertificateSource")
+                <*> (x .@? "MinimumProtocolVersion")
+                <*> (x .@? "Certificate")
                 <*> (x .@? "IAMCertificateId")
                 <*> (x .@? "CloudFrontDefaultCertificate")
 
@@ -3310,8 +3393,10 @@
         toXML ViewerCertificate'{..}
           = mconcat
               ["SSLSupportMethod" @= _vcSSLSupportMethod,
+               "CertificateSource" @= _vcCertificateSource,
                "MinimumProtocolVersion" @=
                  _vcMinimumProtocolVersion,
+               "Certificate" @= _vcCertificate,
                "IAMCertificateId" @= _vcIAMCertificateId,
                "CloudFrontDefaultCertificate" @=
                  _vcCloudFrontDefaultCertificate]
diff --git a/gen/Network/AWS/CloudFront/Types/Sum.hs b/gen/Network/AWS/CloudFront/Types/Sum.hs
--- a/gen/Network/AWS/CloudFront/Types/Sum.hs
+++ b/gen/Network/AWS/CloudFront/Types/Sum.hs
@@ -19,11 +19,39 @@
 
 import           Network.AWS.Prelude
 
+data CertificateSource
+    = Cloudfront
+    | IAM
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+
+instance FromText CertificateSource where
+    parser = takeLowerText >>= \case
+        "cloudfront" -> pure Cloudfront
+        "iam" -> pure IAM
+        e -> fromTextError $ "Failure parsing CertificateSource from value: '" <> e
+           <> "'. Accepted values: cloudfront, iam"
+
+instance ToText CertificateSource where
+    toText = \case
+        Cloudfront -> "cloudfront"
+        IAM -> "iam"
+
+instance Hashable     CertificateSource
+instance ToByteString CertificateSource
+instance ToQuery      CertificateSource
+instance ToHeader     CertificateSource
+
+instance FromXML CertificateSource where
+    parseXML = parseXMLText "CertificateSource"
+
+instance ToXML CertificateSource where
+    toXML = toXMLText
+
 data GeoRestrictionType
     = Blacklist
     | None
     | Whitelist
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText GeoRestrictionType where
     parser = takeLowerText >>= \case
@@ -54,7 +82,7 @@
     = ISAll
     | ISNone
     | ISWhitelist
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText ItemSelection where
     parser = takeLowerText >>= \case
@@ -89,7 +117,7 @@
     | Patch
     | Post
     | Put
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText Method where
     parser = takeLowerText >>= \case
@@ -127,7 +155,7 @@
 data MinimumProtocolVersion
     = SSLV3
     | TLSV1
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText MinimumProtocolVersion where
     parser = takeLowerText >>= \case
@@ -155,7 +183,7 @@
 data OriginProtocolPolicy
     = HTTPOnly
     | MatchViewer
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText OriginProtocolPolicy where
     parser = takeLowerText >>= \case
@@ -184,7 +212,7 @@
     = PriceClass100
     | PriceClass200
     | PriceClassAll
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText PriceClass where
     parser = takeLowerText >>= \case
@@ -214,7 +242,7 @@
 data SSLSupportMethod
     = SNIOnly
     | VIP
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText SSLSupportMethod where
     parser = takeLowerText >>= \case
@@ -243,7 +271,7 @@
     = AllowAll
     | HTTPSOnly
     | RedirectToHTTPS
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText ViewerProtocolPolicy where
     parser = takeLowerText >>= \case
diff --git a/gen/Network/AWS/CloudFront/UpdateCloudFrontOriginAccessIdentity.hs b/gen/Network/AWS/CloudFront/UpdateCloudFrontOriginAccessIdentity.hs
--- a/gen/Network/AWS/CloudFront/UpdateCloudFrontOriginAccessIdentity.hs
+++ b/gen/Network/AWS/CloudFront/UpdateCloudFrontOriginAccessIdentity.hs
@@ -42,6 +42,7 @@
 
 import           Network.AWS.CloudFront.Types
 import           Network.AWS.CloudFront.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
@@ -104,7 +105,7 @@
          UpdateCloudFrontOriginAccessIdentity where
         toElement
           = mkElement
-              "{http://cloudfront.amazonaws.com/doc/2015-07-27/}CloudFrontOriginAccessIdentityConfig"
+              "{http://cloudfront.amazonaws.com/doc/2015-09-17/}CloudFrontOriginAccessIdentityConfig"
               .
               _ucfoaiCloudFrontOriginAccessIdentityConfig
 
@@ -117,7 +118,7 @@
          where
         toPath UpdateCloudFrontOriginAccessIdentity'{..}
           = mconcat
-              ["/2015-07-27/origin-access-identity/cloudfront/",
+              ["/2015-09-17/origin-access-identity/cloudfront/",
                toBS _ucfoaiId, "/config"]
 
 instance ToQuery UpdateCloudFrontOriginAccessIdentity
diff --git a/gen/Network/AWS/CloudFront/UpdateDistribution.hs b/gen/Network/AWS/CloudFront/UpdateDistribution.hs
--- a/gen/Network/AWS/CloudFront/UpdateDistribution.hs
+++ b/gen/Network/AWS/CloudFront/UpdateDistribution.hs
@@ -42,6 +42,7 @@
 
 import           Network.AWS.CloudFront.Types
 import           Network.AWS.CloudFront.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
@@ -102,7 +103,7 @@
 instance ToElement UpdateDistribution where
         toElement
           = mkElement
-              "{http://cloudfront.amazonaws.com/doc/2015-07-27/}DistributionConfig"
+              "{http://cloudfront.amazonaws.com/doc/2015-09-17/}DistributionConfig"
               .
               _udDistributionConfig
 
@@ -113,7 +114,7 @@
 instance ToPath UpdateDistribution where
         toPath UpdateDistribution'{..}
           = mconcat
-              ["/2015-07-27/distribution/", toBS _udId, "/config"]
+              ["/2015-09-17/distribution/", toBS _udId, "/config"]
 
 instance ToQuery UpdateDistribution where
         toQuery = const mempty
diff --git a/gen/Network/AWS/CloudFront/UpdateStreamingDistribution.hs b/gen/Network/AWS/CloudFront/UpdateStreamingDistribution.hs
--- a/gen/Network/AWS/CloudFront/UpdateStreamingDistribution.hs
+++ b/gen/Network/AWS/CloudFront/UpdateStreamingDistribution.hs
@@ -42,6 +42,7 @@
 
 import           Network.AWS.CloudFront.Types
 import           Network.AWS.CloudFront.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
@@ -102,7 +103,7 @@
 instance ToElement UpdateStreamingDistribution where
         toElement
           = mkElement
-              "{http://cloudfront.amazonaws.com/doc/2015-07-27/}StreamingDistributionConfig"
+              "{http://cloudfront.amazonaws.com/doc/2015-09-17/}StreamingDistributionConfig"
               .
               _usdStreamingDistributionConfig
 
@@ -113,7 +114,7 @@
 instance ToPath UpdateStreamingDistribution where
         toPath UpdateStreamingDistribution'{..}
           = mconcat
-              ["/2015-07-27/streaming-distribution/", toBS _usdId,
+              ["/2015-09-17/streaming-distribution/", toBS _usdId,
                "/config"]
 
 instance ToQuery UpdateStreamingDistribution where
diff --git a/gen/Network/AWS/CloudFront/Waiters.hs b/gen/Network/AWS/CloudFront/Waiters.hs
--- a/gen/Network/AWS/CloudFront/Waiters.hs
+++ b/gen/Network/AWS/CloudFront/Waiters.hs
@@ -19,6 +19,7 @@
 import           Network.AWS.CloudFront.GetInvalidation
 import           Network.AWS.CloudFront.GetStreamingDistribution
 import           Network.AWS.CloudFront.Types
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Waiter
 
