diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Change Log
 
+## 0.54.0
+
+* Update resource specification document to version 15.1.0
+
 ## 0.53.0
 
 * Update resource specification document to version 14.3.0
diff --git a/library-gen/Stratosphere/ResourceProperties/CertificateManagerCertificateDomainValidationOption.hs b/library-gen/Stratosphere/ResourceProperties/CertificateManagerCertificateDomainValidationOption.hs
--- a/library-gen/Stratosphere/ResourceProperties/CertificateManagerCertificateDomainValidationOption.hs
+++ b/library-gen/Stratosphere/ResourceProperties/CertificateManagerCertificateDomainValidationOption.hs
@@ -17,7 +17,8 @@
 data CertificateManagerCertificateDomainValidationOption =
   CertificateManagerCertificateDomainValidationOption
   { _certificateManagerCertificateDomainValidationOptionDomainName :: Val Text
-  , _certificateManagerCertificateDomainValidationOptionValidationDomain :: Val Text
+  , _certificateManagerCertificateDomainValidationOptionHostedZoneId :: Maybe (Val Text)
+  , _certificateManagerCertificateDomainValidationOptionValidationDomain :: Maybe (Val Text)
   } deriving (Show, Eq)
 
 instance ToJSON CertificateManagerCertificateDomainValidationOption where
@@ -25,25 +26,30 @@
     object $
     catMaybes
     [ (Just . ("DomainName",) . toJSON) _certificateManagerCertificateDomainValidationOptionDomainName
-    , (Just . ("ValidationDomain",) . toJSON) _certificateManagerCertificateDomainValidationOptionValidationDomain
+    , fmap (("HostedZoneId",) . toJSON) _certificateManagerCertificateDomainValidationOptionHostedZoneId
+    , fmap (("ValidationDomain",) . toJSON) _certificateManagerCertificateDomainValidationOptionValidationDomain
     ]
 
 -- | Constructor for 'CertificateManagerCertificateDomainValidationOption'
 -- containing required fields as arguments.
 certificateManagerCertificateDomainValidationOption
   :: Val Text -- ^ 'cmcdvoDomainName'
-  -> Val Text -- ^ 'cmcdvoValidationDomain'
   -> CertificateManagerCertificateDomainValidationOption
-certificateManagerCertificateDomainValidationOption domainNamearg validationDomainarg =
+certificateManagerCertificateDomainValidationOption domainNamearg =
   CertificateManagerCertificateDomainValidationOption
   { _certificateManagerCertificateDomainValidationOptionDomainName = domainNamearg
-  , _certificateManagerCertificateDomainValidationOptionValidationDomain = validationDomainarg
+  , _certificateManagerCertificateDomainValidationOptionHostedZoneId = Nothing
+  , _certificateManagerCertificateDomainValidationOptionValidationDomain = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-certificatemanager-certificate-domainvalidationoption.html#cfn-certificatemanager-certificate-domainvalidationoptions-domainname
 cmcdvoDomainName :: Lens' CertificateManagerCertificateDomainValidationOption (Val Text)
 cmcdvoDomainName = lens _certificateManagerCertificateDomainValidationOptionDomainName (\s a -> s { _certificateManagerCertificateDomainValidationOptionDomainName = a })
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-certificatemanager-certificate-domainvalidationoption.html#cfn-certificatemanager-certificate-domainvalidationoption-hostedzoneid
+cmcdvoHostedZoneId :: Lens' CertificateManagerCertificateDomainValidationOption (Maybe (Val Text))
+cmcdvoHostedZoneId = lens _certificateManagerCertificateDomainValidationOptionHostedZoneId (\s a -> s { _certificateManagerCertificateDomainValidationOptionHostedZoneId = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-certificatemanager-certificate-domainvalidationoption.html#cfn-certificatemanager-certificate-domainvalidationoption-validationdomain
-cmcdvoValidationDomain :: Lens' CertificateManagerCertificateDomainValidationOption (Val Text)
+cmcdvoValidationDomain :: Lens' CertificateManagerCertificateDomainValidationOption (Maybe (Val Text))
 cmcdvoValidationDomain = lens _certificateManagerCertificateDomainValidationOptionValidationDomain (\s a -> s { _certificateManagerCertificateDomainValidationOptionValidationDomain = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/CloudFrontDistributionOrigin.hs b/library-gen/Stratosphere/ResourceProperties/CloudFrontDistributionOrigin.hs
--- a/library-gen/Stratosphere/ResourceProperties/CloudFrontDistributionOrigin.hs
+++ b/library-gen/Stratosphere/ResourceProperties/CloudFrontDistributionOrigin.hs
@@ -16,7 +16,9 @@
 -- 'cloudFrontDistributionOrigin' for a more convenient constructor.
 data CloudFrontDistributionOrigin =
   CloudFrontDistributionOrigin
-  { _cloudFrontDistributionOriginCustomOriginConfig :: Maybe CloudFrontDistributionCustomOriginConfig
+  { _cloudFrontDistributionOriginConnectionAttempts :: Maybe (Val Integer)
+  , _cloudFrontDistributionOriginConnectionTimeout :: Maybe (Val Integer)
+  , _cloudFrontDistributionOriginCustomOriginConfig :: Maybe CloudFrontDistributionCustomOriginConfig
   , _cloudFrontDistributionOriginDomainName :: Val Text
   , _cloudFrontDistributionOriginId :: Val Text
   , _cloudFrontDistributionOriginOriginCustomHeaders :: Maybe [CloudFrontDistributionOriginCustomHeader]
@@ -28,7 +30,9 @@
   toJSON CloudFrontDistributionOrigin{..} =
     object $
     catMaybes
-    [ fmap (("CustomOriginConfig",) . toJSON) _cloudFrontDistributionOriginCustomOriginConfig
+    [ fmap (("ConnectionAttempts",) . toJSON) _cloudFrontDistributionOriginConnectionAttempts
+    , fmap (("ConnectionTimeout",) . toJSON) _cloudFrontDistributionOriginConnectionTimeout
+    , fmap (("CustomOriginConfig",) . toJSON) _cloudFrontDistributionOriginCustomOriginConfig
     , (Just . ("DomainName",) . toJSON) _cloudFrontDistributionOriginDomainName
     , (Just . ("Id",) . toJSON) _cloudFrontDistributionOriginId
     , fmap (("OriginCustomHeaders",) . toJSON) _cloudFrontDistributionOriginOriginCustomHeaders
@@ -44,13 +48,23 @@
   -> CloudFrontDistributionOrigin
 cloudFrontDistributionOrigin domainNamearg idarg =
   CloudFrontDistributionOrigin
-  { _cloudFrontDistributionOriginCustomOriginConfig = Nothing
+  { _cloudFrontDistributionOriginConnectionAttempts = Nothing
+  , _cloudFrontDistributionOriginConnectionTimeout = Nothing
+  , _cloudFrontDistributionOriginCustomOriginConfig = Nothing
   , _cloudFrontDistributionOriginDomainName = domainNamearg
   , _cloudFrontDistributionOriginId = idarg
   , _cloudFrontDistributionOriginOriginCustomHeaders = Nothing
   , _cloudFrontDistributionOriginOriginPath = Nothing
   , _cloudFrontDistributionOriginS3OriginConfig = Nothing
   }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html#cfn-cloudfront-distribution-origin-connectionattempts
+cfdoConnectionAttempts :: Lens' CloudFrontDistributionOrigin (Maybe (Val Integer))
+cfdoConnectionAttempts = lens _cloudFrontDistributionOriginConnectionAttempts (\s a -> s { _cloudFrontDistributionOriginConnectionAttempts = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html#cfn-cloudfront-distribution-origin-connectiontimeout
+cfdoConnectionTimeout :: Lens' CloudFrontDistributionOrigin (Maybe (Val Integer))
+cfdoConnectionTimeout = lens _cloudFrontDistributionOriginConnectionTimeout (\s a -> s { _cloudFrontDistributionOriginConnectionTimeout = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html#cfn-cloudfront-distribution-origin-customoriginconfig
 cfdoCustomOriginConfig :: Lens' CloudFrontDistributionOrigin (Maybe CloudFrontDistributionCustomOriginConfig)
diff --git a/library-gen/Stratosphere/ResourceProperties/CloudWatchAlarmMetricDataQuery.hs b/library-gen/Stratosphere/ResourceProperties/CloudWatchAlarmMetricDataQuery.hs
--- a/library-gen/Stratosphere/ResourceProperties/CloudWatchAlarmMetricDataQuery.hs
+++ b/library-gen/Stratosphere/ResourceProperties/CloudWatchAlarmMetricDataQuery.hs
@@ -18,6 +18,7 @@
   , _cloudWatchAlarmMetricDataQueryId :: Val Text
   , _cloudWatchAlarmMetricDataQueryLabel :: Maybe (Val Text)
   , _cloudWatchAlarmMetricDataQueryMetricStat :: Maybe CloudWatchAlarmMetricStat
+  , _cloudWatchAlarmMetricDataQueryPeriod :: Maybe (Val Integer)
   , _cloudWatchAlarmMetricDataQueryReturnData :: Maybe (Val Bool)
   } deriving (Show, Eq)
 
@@ -29,6 +30,7 @@
     , (Just . ("Id",) . toJSON) _cloudWatchAlarmMetricDataQueryId
     , fmap (("Label",) . toJSON) _cloudWatchAlarmMetricDataQueryLabel
     , fmap (("MetricStat",) . toJSON) _cloudWatchAlarmMetricDataQueryMetricStat
+    , fmap (("Period",) . toJSON) _cloudWatchAlarmMetricDataQueryPeriod
     , fmap (("ReturnData",) . toJSON) _cloudWatchAlarmMetricDataQueryReturnData
     ]
 
@@ -43,6 +45,7 @@
   , _cloudWatchAlarmMetricDataQueryId = idarg
   , _cloudWatchAlarmMetricDataQueryLabel = Nothing
   , _cloudWatchAlarmMetricDataQueryMetricStat = Nothing
+  , _cloudWatchAlarmMetricDataQueryPeriod = Nothing
   , _cloudWatchAlarmMetricDataQueryReturnData = Nothing
   }
 
@@ -61,6 +64,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricdataquery.html#cfn-cloudwatch-alarm-metricdataquery-metricstat
 cwamdqMetricStat :: Lens' CloudWatchAlarmMetricDataQuery (Maybe CloudWatchAlarmMetricStat)
 cwamdqMetricStat = lens _cloudWatchAlarmMetricDataQueryMetricStat (\s a -> s { _cloudWatchAlarmMetricDataQueryMetricStat = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricdataquery.html#cfn-cloudwatch-alarm-metricdataquery-period
+cwamdqPeriod :: Lens' CloudWatchAlarmMetricDataQuery (Maybe (Val Integer))
+cwamdqPeriod = lens _cloudWatchAlarmMetricDataQueryPeriod (\s a -> s { _cloudWatchAlarmMetricDataQueryPeriod = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricdataquery.html#cfn-cloudwatch-alarm-metricdataquery-returndata
 cwamdqReturnData :: Lens' CloudWatchAlarmMetricDataQuery (Maybe (Val Bool))
diff --git a/library-gen/Stratosphere/ResourceProperties/DLMLifecyclePolicyCreateRule.hs b/library-gen/Stratosphere/ResourceProperties/DLMLifecyclePolicyCreateRule.hs
--- a/library-gen/Stratosphere/ResourceProperties/DLMLifecyclePolicyCreateRule.hs
+++ b/library-gen/Stratosphere/ResourceProperties/DLMLifecyclePolicyCreateRule.hs
@@ -14,8 +14,9 @@
 -- 'dlmLifecyclePolicyCreateRule' for a more convenient constructor.
 data DLMLifecyclePolicyCreateRule =
   DLMLifecyclePolicyCreateRule
-  { _dLMLifecyclePolicyCreateRuleInterval :: Val Integer
-  , _dLMLifecyclePolicyCreateRuleIntervalUnit :: Val Text
+  { _dLMLifecyclePolicyCreateRuleCronExpression :: Maybe (Val Text)
+  , _dLMLifecyclePolicyCreateRuleInterval :: Maybe (Val Integer)
+  , _dLMLifecyclePolicyCreateRuleIntervalUnit :: Maybe (Val Text)
   , _dLMLifecyclePolicyCreateRuleTimes :: Maybe (ValList Text)
   } deriving (Show, Eq)
 
@@ -23,30 +24,34 @@
   toJSON DLMLifecyclePolicyCreateRule{..} =
     object $
     catMaybes
-    [ (Just . ("Interval",) . toJSON) _dLMLifecyclePolicyCreateRuleInterval
-    , (Just . ("IntervalUnit",) . toJSON) _dLMLifecyclePolicyCreateRuleIntervalUnit
+    [ fmap (("CronExpression",) . toJSON) _dLMLifecyclePolicyCreateRuleCronExpression
+    , fmap (("Interval",) . toJSON) _dLMLifecyclePolicyCreateRuleInterval
+    , fmap (("IntervalUnit",) . toJSON) _dLMLifecyclePolicyCreateRuleIntervalUnit
     , fmap (("Times",) . toJSON) _dLMLifecyclePolicyCreateRuleTimes
     ]
 
 -- | Constructor for 'DLMLifecyclePolicyCreateRule' containing required fields
 -- as arguments.
 dlmLifecyclePolicyCreateRule
-  :: Val Integer -- ^ 'dlmlpcrInterval'
-  -> Val Text -- ^ 'dlmlpcrIntervalUnit'
-  -> DLMLifecyclePolicyCreateRule
-dlmLifecyclePolicyCreateRule intervalarg intervalUnitarg =
+  :: DLMLifecyclePolicyCreateRule
+dlmLifecyclePolicyCreateRule  =
   DLMLifecyclePolicyCreateRule
-  { _dLMLifecyclePolicyCreateRuleInterval = intervalarg
-  , _dLMLifecyclePolicyCreateRuleIntervalUnit = intervalUnitarg
+  { _dLMLifecyclePolicyCreateRuleCronExpression = Nothing
+  , _dLMLifecyclePolicyCreateRuleInterval = Nothing
+  , _dLMLifecyclePolicyCreateRuleIntervalUnit = Nothing
   , _dLMLifecyclePolicyCreateRuleTimes = Nothing
   }
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-createrule.html#cfn-dlm-lifecyclepolicy-createrule-cronexpression
+dlmlpcrCronExpression :: Lens' DLMLifecyclePolicyCreateRule (Maybe (Val Text))
+dlmlpcrCronExpression = lens _dLMLifecyclePolicyCreateRuleCronExpression (\s a -> s { _dLMLifecyclePolicyCreateRuleCronExpression = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-createrule.html#cfn-dlm-lifecyclepolicy-createrule-interval
-dlmlpcrInterval :: Lens' DLMLifecyclePolicyCreateRule (Val Integer)
+dlmlpcrInterval :: Lens' DLMLifecyclePolicyCreateRule (Maybe (Val Integer))
 dlmlpcrInterval = lens _dLMLifecyclePolicyCreateRuleInterval (\s a -> s { _dLMLifecyclePolicyCreateRuleInterval = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-createrule.html#cfn-dlm-lifecyclepolicy-createrule-intervalunit
-dlmlpcrIntervalUnit :: Lens' DLMLifecyclePolicyCreateRule (Val Text)
+dlmlpcrIntervalUnit :: Lens' DLMLifecyclePolicyCreateRule (Maybe (Val Text))
 dlmlpcrIntervalUnit = lens _dLMLifecyclePolicyCreateRuleIntervalUnit (\s a -> s { _dLMLifecyclePolicyCreateRuleIntervalUnit = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-createrule.html#cfn-dlm-lifecyclepolicy-createrule-times
diff --git a/library-gen/Stratosphere/ResourceProperties/DLMLifecyclePolicyCrossRegionCopyRetainRule.hs b/library-gen/Stratosphere/ResourceProperties/DLMLifecyclePolicyCrossRegionCopyRetainRule.hs
--- a/library-gen/Stratosphere/ResourceProperties/DLMLifecyclePolicyCrossRegionCopyRetainRule.hs
+++ b/library-gen/Stratosphere/ResourceProperties/DLMLifecyclePolicyCrossRegionCopyRetainRule.hs
@@ -16,32 +16,34 @@
 -- constructor.
 data DLMLifecyclePolicyCrossRegionCopyRetainRule =
   DLMLifecyclePolicyCrossRegionCopyRetainRule
-  { _dLMLifecyclePolicyCrossRegionCopyRetainRuleInterval :: Maybe (Val Integer)
-  , _dLMLifecyclePolicyCrossRegionCopyRetainRuleIntervalUnit :: Maybe (Val Text)
+  { _dLMLifecyclePolicyCrossRegionCopyRetainRuleInterval :: Val Integer
+  , _dLMLifecyclePolicyCrossRegionCopyRetainRuleIntervalUnit :: Val Text
   } deriving (Show, Eq)
 
 instance ToJSON DLMLifecyclePolicyCrossRegionCopyRetainRule where
   toJSON DLMLifecyclePolicyCrossRegionCopyRetainRule{..} =
     object $
     catMaybes
-    [ fmap (("Interval",) . toJSON) _dLMLifecyclePolicyCrossRegionCopyRetainRuleInterval
-    , fmap (("IntervalUnit",) . toJSON) _dLMLifecyclePolicyCrossRegionCopyRetainRuleIntervalUnit
+    [ (Just . ("Interval",) . toJSON) _dLMLifecyclePolicyCrossRegionCopyRetainRuleInterval
+    , (Just . ("IntervalUnit",) . toJSON) _dLMLifecyclePolicyCrossRegionCopyRetainRuleIntervalUnit
     ]
 
 -- | Constructor for 'DLMLifecyclePolicyCrossRegionCopyRetainRule' containing
 -- required fields as arguments.
 dlmLifecyclePolicyCrossRegionCopyRetainRule
-  :: DLMLifecyclePolicyCrossRegionCopyRetainRule
-dlmLifecyclePolicyCrossRegionCopyRetainRule  =
+  :: Val Integer -- ^ 'dlmlpcrcrrInterval'
+  -> Val Text -- ^ 'dlmlpcrcrrIntervalUnit'
+  -> DLMLifecyclePolicyCrossRegionCopyRetainRule
+dlmLifecyclePolicyCrossRegionCopyRetainRule intervalarg intervalUnitarg =
   DLMLifecyclePolicyCrossRegionCopyRetainRule
-  { _dLMLifecyclePolicyCrossRegionCopyRetainRuleInterval = Nothing
-  , _dLMLifecyclePolicyCrossRegionCopyRetainRuleIntervalUnit = Nothing
+  { _dLMLifecyclePolicyCrossRegionCopyRetainRuleInterval = intervalarg
+  , _dLMLifecyclePolicyCrossRegionCopyRetainRuleIntervalUnit = intervalUnitarg
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyretainrule.html#cfn-dlm-lifecyclepolicy-crossregioncopyretainrule-interval
-dlmlpcrcrrInterval :: Lens' DLMLifecyclePolicyCrossRegionCopyRetainRule (Maybe (Val Integer))
+dlmlpcrcrrInterval :: Lens' DLMLifecyclePolicyCrossRegionCopyRetainRule (Val Integer)
 dlmlpcrcrrInterval = lens _dLMLifecyclePolicyCrossRegionCopyRetainRuleInterval (\s a -> s { _dLMLifecyclePolicyCrossRegionCopyRetainRuleInterval = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyretainrule.html#cfn-dlm-lifecyclepolicy-crossregioncopyretainrule-intervalunit
-dlmlpcrcrrIntervalUnit :: Lens' DLMLifecyclePolicyCrossRegionCopyRetainRule (Maybe (Val Text))
+dlmlpcrcrrIntervalUnit :: Lens' DLMLifecyclePolicyCrossRegionCopyRetainRule (Val Text)
 dlmlpcrcrrIntervalUnit = lens _dLMLifecyclePolicyCrossRegionCopyRetainRuleIntervalUnit (\s a -> s { _dLMLifecyclePolicyCrossRegionCopyRetainRuleIntervalUnit = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/DLMLifecyclePolicyCrossRegionCopyRule.hs b/library-gen/Stratosphere/ResourceProperties/DLMLifecyclePolicyCrossRegionCopyRule.hs
--- a/library-gen/Stratosphere/ResourceProperties/DLMLifecyclePolicyCrossRegionCopyRule.hs
+++ b/library-gen/Stratosphere/ResourceProperties/DLMLifecyclePolicyCrossRegionCopyRule.hs
@@ -17,9 +17,9 @@
   DLMLifecyclePolicyCrossRegionCopyRule
   { _dLMLifecyclePolicyCrossRegionCopyRuleCmkArn :: Maybe (Val Text)
   , _dLMLifecyclePolicyCrossRegionCopyRuleCopyTags :: Maybe (Val Bool)
-  , _dLMLifecyclePolicyCrossRegionCopyRuleEncrypted :: Maybe (Val Bool)
+  , _dLMLifecyclePolicyCrossRegionCopyRuleEncrypted :: Val Bool
   , _dLMLifecyclePolicyCrossRegionCopyRuleRetainRule :: Maybe DLMLifecyclePolicyCrossRegionCopyRetainRule
-  , _dLMLifecyclePolicyCrossRegionCopyRuleTargetRegion :: Maybe (Val Text)
+  , _dLMLifecyclePolicyCrossRegionCopyRuleTargetRegion :: Val Text
   } deriving (Show, Eq)
 
 instance ToJSON DLMLifecyclePolicyCrossRegionCopyRule where
@@ -28,22 +28,24 @@
     catMaybes
     [ fmap (("CmkArn",) . toJSON) _dLMLifecyclePolicyCrossRegionCopyRuleCmkArn
     , fmap (("CopyTags",) . toJSON) _dLMLifecyclePolicyCrossRegionCopyRuleCopyTags
-    , fmap (("Encrypted",) . toJSON) _dLMLifecyclePolicyCrossRegionCopyRuleEncrypted
+    , (Just . ("Encrypted",) . toJSON) _dLMLifecyclePolicyCrossRegionCopyRuleEncrypted
     , fmap (("RetainRule",) . toJSON) _dLMLifecyclePolicyCrossRegionCopyRuleRetainRule
-    , fmap (("TargetRegion",) . toJSON) _dLMLifecyclePolicyCrossRegionCopyRuleTargetRegion
+    , (Just . ("TargetRegion",) . toJSON) _dLMLifecyclePolicyCrossRegionCopyRuleTargetRegion
     ]
 
 -- | Constructor for 'DLMLifecyclePolicyCrossRegionCopyRule' containing
 -- required fields as arguments.
 dlmLifecyclePolicyCrossRegionCopyRule
-  :: DLMLifecyclePolicyCrossRegionCopyRule
-dlmLifecyclePolicyCrossRegionCopyRule  =
+  :: Val Bool -- ^ 'dlmlpcrcrEncrypted'
+  -> Val Text -- ^ 'dlmlpcrcrTargetRegion'
+  -> DLMLifecyclePolicyCrossRegionCopyRule
+dlmLifecyclePolicyCrossRegionCopyRule encryptedarg targetRegionarg =
   DLMLifecyclePolicyCrossRegionCopyRule
   { _dLMLifecyclePolicyCrossRegionCopyRuleCmkArn = Nothing
   , _dLMLifecyclePolicyCrossRegionCopyRuleCopyTags = Nothing
-  , _dLMLifecyclePolicyCrossRegionCopyRuleEncrypted = Nothing
+  , _dLMLifecyclePolicyCrossRegionCopyRuleEncrypted = encryptedarg
   , _dLMLifecyclePolicyCrossRegionCopyRuleRetainRule = Nothing
-  , _dLMLifecyclePolicyCrossRegionCopyRuleTargetRegion = Nothing
+  , _dLMLifecyclePolicyCrossRegionCopyRuleTargetRegion = targetRegionarg
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyrule.html#cfn-dlm-lifecyclepolicy-crossregioncopyrule-cmkarn
@@ -55,7 +57,7 @@
 dlmlpcrcrCopyTags = lens _dLMLifecyclePolicyCrossRegionCopyRuleCopyTags (\s a -> s { _dLMLifecyclePolicyCrossRegionCopyRuleCopyTags = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyrule.html#cfn-dlm-lifecyclepolicy-crossregioncopyrule-encrypted
-dlmlpcrcrEncrypted :: Lens' DLMLifecyclePolicyCrossRegionCopyRule (Maybe (Val Bool))
+dlmlpcrcrEncrypted :: Lens' DLMLifecyclePolicyCrossRegionCopyRule (Val Bool)
 dlmlpcrcrEncrypted = lens _dLMLifecyclePolicyCrossRegionCopyRuleEncrypted (\s a -> s { _dLMLifecyclePolicyCrossRegionCopyRuleEncrypted = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyrule.html#cfn-dlm-lifecyclepolicy-crossregioncopyrule-retainrule
@@ -63,5 +65,5 @@
 dlmlpcrcrRetainRule = lens _dLMLifecyclePolicyCrossRegionCopyRuleRetainRule (\s a -> s { _dLMLifecyclePolicyCrossRegionCopyRuleRetainRule = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyrule.html#cfn-dlm-lifecyclepolicy-crossregioncopyrule-targetregion
-dlmlpcrcrTargetRegion :: Lens' DLMLifecyclePolicyCrossRegionCopyRule (Maybe (Val Text))
+dlmlpcrcrTargetRegion :: Lens' DLMLifecyclePolicyCrossRegionCopyRule (Val Text)
 dlmlpcrcrTargetRegion = lens _dLMLifecyclePolicyCrossRegionCopyRuleTargetRegion (\s a -> s { _dLMLifecyclePolicyCrossRegionCopyRuleTargetRegion = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/EC2ClientVpnEndpointClientAuthenticationRequest.hs b/library-gen/Stratosphere/ResourceProperties/EC2ClientVpnEndpointClientAuthenticationRequest.hs
--- a/library-gen/Stratosphere/ResourceProperties/EC2ClientVpnEndpointClientAuthenticationRequest.hs
+++ b/library-gen/Stratosphere/ResourceProperties/EC2ClientVpnEndpointClientAuthenticationRequest.hs
@@ -9,6 +9,7 @@
 
 import Stratosphere.ResourceImports
 import Stratosphere.ResourceProperties.EC2ClientVpnEndpointDirectoryServiceAuthenticationRequest
+import Stratosphere.ResourceProperties.EC2ClientVpnEndpointFederatedAuthenticationRequest
 import Stratosphere.ResourceProperties.EC2ClientVpnEndpointCertificateAuthenticationRequest
 
 -- | Full data type definition for
@@ -18,6 +19,7 @@
 data EC2ClientVpnEndpointClientAuthenticationRequest =
   EC2ClientVpnEndpointClientAuthenticationRequest
   { _eC2ClientVpnEndpointClientAuthenticationRequestActiveDirectory :: Maybe EC2ClientVpnEndpointDirectoryServiceAuthenticationRequest
+  , _eC2ClientVpnEndpointClientAuthenticationRequestFederatedAuthentication :: Maybe EC2ClientVpnEndpointFederatedAuthenticationRequest
   , _eC2ClientVpnEndpointClientAuthenticationRequestMutualAuthentication :: Maybe EC2ClientVpnEndpointCertificateAuthenticationRequest
   , _eC2ClientVpnEndpointClientAuthenticationRequestType :: Val Text
   } deriving (Show, Eq)
@@ -27,6 +29,7 @@
     object $
     catMaybes
     [ fmap (("ActiveDirectory",) . toJSON) _eC2ClientVpnEndpointClientAuthenticationRequestActiveDirectory
+    , fmap (("FederatedAuthentication",) . toJSON) _eC2ClientVpnEndpointClientAuthenticationRequestFederatedAuthentication
     , fmap (("MutualAuthentication",) . toJSON) _eC2ClientVpnEndpointClientAuthenticationRequestMutualAuthentication
     , (Just . ("Type",) . toJSON) _eC2ClientVpnEndpointClientAuthenticationRequestType
     ]
@@ -39,6 +42,7 @@
 ec2ClientVpnEndpointClientAuthenticationRequest typearg =
   EC2ClientVpnEndpointClientAuthenticationRequest
   { _eC2ClientVpnEndpointClientAuthenticationRequestActiveDirectory = Nothing
+  , _eC2ClientVpnEndpointClientAuthenticationRequestFederatedAuthentication = Nothing
   , _eC2ClientVpnEndpointClientAuthenticationRequestMutualAuthentication = Nothing
   , _eC2ClientVpnEndpointClientAuthenticationRequestType = typearg
   }
@@ -46,6 +50,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-clientauthenticationrequest.html#cfn-ec2-clientvpnendpoint-clientauthenticationrequest-activedirectory
 eccvecarActiveDirectory :: Lens' EC2ClientVpnEndpointClientAuthenticationRequest (Maybe EC2ClientVpnEndpointDirectoryServiceAuthenticationRequest)
 eccvecarActiveDirectory = lens _eC2ClientVpnEndpointClientAuthenticationRequestActiveDirectory (\s a -> s { _eC2ClientVpnEndpointClientAuthenticationRequestActiveDirectory = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-clientauthenticationrequest.html#cfn-ec2-clientvpnendpoint-clientauthenticationrequest-federatedauthentication
+eccvecarFederatedAuthentication :: Lens' EC2ClientVpnEndpointClientAuthenticationRequest (Maybe EC2ClientVpnEndpointFederatedAuthenticationRequest)
+eccvecarFederatedAuthentication = lens _eC2ClientVpnEndpointClientAuthenticationRequestFederatedAuthentication (\s a -> s { _eC2ClientVpnEndpointClientAuthenticationRequestFederatedAuthentication = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-clientauthenticationrequest.html#cfn-ec2-clientvpnendpoint-clientauthenticationrequest-mutualauthentication
 eccvecarMutualAuthentication :: Lens' EC2ClientVpnEndpointClientAuthenticationRequest (Maybe EC2ClientVpnEndpointCertificateAuthenticationRequest)
diff --git a/library-gen/Stratosphere/ResourceProperties/EC2ClientVpnEndpointFederatedAuthenticationRequest.hs b/library-gen/Stratosphere/ResourceProperties/EC2ClientVpnEndpointFederatedAuthenticationRequest.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/EC2ClientVpnEndpointFederatedAuthenticationRequest.hs
@@ -0,0 +1,41 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-federatedauthenticationrequest.html
+
+module Stratosphere.ResourceProperties.EC2ClientVpnEndpointFederatedAuthenticationRequest where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- EC2ClientVpnEndpointFederatedAuthenticationRequest. See
+-- 'ec2ClientVpnEndpointFederatedAuthenticationRequest' for a more
+-- convenient constructor.
+data EC2ClientVpnEndpointFederatedAuthenticationRequest =
+  EC2ClientVpnEndpointFederatedAuthenticationRequest
+  { _eC2ClientVpnEndpointFederatedAuthenticationRequestSAMLProviderArn :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON EC2ClientVpnEndpointFederatedAuthenticationRequest where
+  toJSON EC2ClientVpnEndpointFederatedAuthenticationRequest{..} =
+    object $
+    catMaybes
+    [ (Just . ("SAMLProviderArn",) . toJSON) _eC2ClientVpnEndpointFederatedAuthenticationRequestSAMLProviderArn
+    ]
+
+-- | Constructor for 'EC2ClientVpnEndpointFederatedAuthenticationRequest'
+-- containing required fields as arguments.
+ec2ClientVpnEndpointFederatedAuthenticationRequest
+  :: Val Text -- ^ 'eccvefarSAMLProviderArn'
+  -> EC2ClientVpnEndpointFederatedAuthenticationRequest
+ec2ClientVpnEndpointFederatedAuthenticationRequest sAMLProviderArnarg =
+  EC2ClientVpnEndpointFederatedAuthenticationRequest
+  { _eC2ClientVpnEndpointFederatedAuthenticationRequestSAMLProviderArn = sAMLProviderArnarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-federatedauthenticationrequest.html#cfn-ec2-clientvpnendpoint-federatedauthenticationrequest-samlproviderarn
+eccvefarSAMLProviderArn :: Lens' EC2ClientVpnEndpointFederatedAuthenticationRequest (Val Text)
+eccvefarSAMLProviderArn = lens _eC2ClientVpnEndpointFederatedAuthenticationRequestSAMLProviderArn (\s a -> s { _eC2ClientVpnEndpointFederatedAuthenticationRequestSAMLProviderArn = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/EC2PrefixListEntry.hs b/library-gen/Stratosphere/ResourceProperties/EC2PrefixListEntry.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/EC2PrefixListEntry.hs
@@ -0,0 +1,46 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-prefixlist-entry.html
+
+module Stratosphere.ResourceProperties.EC2PrefixListEntry where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for EC2PrefixListEntry. See
+-- 'ec2PrefixListEntry' for a more convenient constructor.
+data EC2PrefixListEntry =
+  EC2PrefixListEntry
+  { _eC2PrefixListEntryCidr :: Val Text
+  , _eC2PrefixListEntryDescription :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON EC2PrefixListEntry where
+  toJSON EC2PrefixListEntry{..} =
+    object $
+    catMaybes
+    [ (Just . ("Cidr",) . toJSON) _eC2PrefixListEntryCidr
+    , fmap (("Description",) . toJSON) _eC2PrefixListEntryDescription
+    ]
+
+-- | Constructor for 'EC2PrefixListEntry' containing required fields as
+-- arguments.
+ec2PrefixListEntry
+  :: Val Text -- ^ 'ecpleCidr'
+  -> EC2PrefixListEntry
+ec2PrefixListEntry cidrarg =
+  EC2PrefixListEntry
+  { _eC2PrefixListEntryCidr = cidrarg
+  , _eC2PrefixListEntryDescription = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-prefixlist-entry.html#cfn-ec2-prefixlist-entry-cidr
+ecpleCidr :: Lens' EC2PrefixListEntry (Val Text)
+ecpleCidr = lens _eC2PrefixListEntryCidr (\s a -> s { _eC2PrefixListEntryCidr = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-prefixlist-entry.html#cfn-ec2-prefixlist-entry-description
+ecpleDescription :: Lens' EC2PrefixListEntry (Maybe (Val Text))
+ecpleDescription = lens _eC2PrefixListEntryDescription (\s a -> s { _eC2PrefixListEntryDescription = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/ECSTaskDefinitionInferenceAccelerator.hs b/library-gen/Stratosphere/ResourceProperties/ECSTaskDefinitionInferenceAccelerator.hs
--- a/library-gen/Stratosphere/ResourceProperties/ECSTaskDefinitionInferenceAccelerator.hs
+++ b/library-gen/Stratosphere/ResourceProperties/ECSTaskDefinitionInferenceAccelerator.hs
@@ -16,7 +16,6 @@
 data ECSTaskDefinitionInferenceAccelerator =
   ECSTaskDefinitionInferenceAccelerator
   { _eCSTaskDefinitionInferenceAcceleratorDeviceName :: Maybe (Val Text)
-  , _eCSTaskDefinitionInferenceAcceleratorDevicePolicy :: Maybe (Val Text)
   , _eCSTaskDefinitionInferenceAcceleratorDeviceType :: Maybe (Val Text)
   } deriving (Show, Eq)
 
@@ -25,7 +24,6 @@
     object $
     catMaybes
     [ fmap (("DeviceName",) . toJSON) _eCSTaskDefinitionInferenceAcceleratorDeviceName
-    , fmap (("DevicePolicy",) . toJSON) _eCSTaskDefinitionInferenceAcceleratorDevicePolicy
     , fmap (("DeviceType",) . toJSON) _eCSTaskDefinitionInferenceAcceleratorDeviceType
     ]
 
@@ -36,17 +34,12 @@
 ecsTaskDefinitionInferenceAccelerator  =
   ECSTaskDefinitionInferenceAccelerator
   { _eCSTaskDefinitionInferenceAcceleratorDeviceName = Nothing
-  , _eCSTaskDefinitionInferenceAcceleratorDevicePolicy = Nothing
   , _eCSTaskDefinitionInferenceAcceleratorDeviceType = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-inferenceaccelerator.html#cfn-ecs-taskdefinition-inferenceaccelerator-devicename
 ecstdiaDeviceName :: Lens' ECSTaskDefinitionInferenceAccelerator (Maybe (Val Text))
 ecstdiaDeviceName = lens _eCSTaskDefinitionInferenceAcceleratorDeviceName (\s a -> s { _eCSTaskDefinitionInferenceAcceleratorDeviceName = a })
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-inferenceaccelerator.html#cfn-ecs-taskdefinition-inferenceaccelerator-devicepolicy
-ecstdiaDevicePolicy :: Lens' ECSTaskDefinitionInferenceAccelerator (Maybe (Val Text))
-ecstdiaDevicePolicy = lens _eCSTaskDefinitionInferenceAcceleratorDevicePolicy (\s a -> s { _eCSTaskDefinitionInferenceAcceleratorDevicePolicy = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-inferenceaccelerator.html#cfn-ecs-taskdefinition-inferenceaccelerator-devicetype
 ecstdiaDeviceType :: Lens' ECSTaskDefinitionInferenceAccelerator (Maybe (Val Text))
diff --git a/library-gen/Stratosphere/ResourceProperties/EFSAccessPointAccessPointTag.hs b/library-gen/Stratosphere/ResourceProperties/EFSAccessPointAccessPointTag.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/EFSAccessPointAccessPointTag.hs
@@ -0,0 +1,45 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-accesspointtag.html
+
+module Stratosphere.ResourceProperties.EFSAccessPointAccessPointTag where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for EFSAccessPointAccessPointTag. See
+-- 'efsAccessPointAccessPointTag' for a more convenient constructor.
+data EFSAccessPointAccessPointTag =
+  EFSAccessPointAccessPointTag
+  { _eFSAccessPointAccessPointTagKey :: Maybe (Val Text)
+  , _eFSAccessPointAccessPointTagValue :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON EFSAccessPointAccessPointTag where
+  toJSON EFSAccessPointAccessPointTag{..} =
+    object $
+    catMaybes
+    [ fmap (("Key",) . toJSON) _eFSAccessPointAccessPointTagKey
+    , fmap (("Value",) . toJSON) _eFSAccessPointAccessPointTagValue
+    ]
+
+-- | Constructor for 'EFSAccessPointAccessPointTag' containing required fields
+-- as arguments.
+efsAccessPointAccessPointTag
+  :: EFSAccessPointAccessPointTag
+efsAccessPointAccessPointTag  =
+  EFSAccessPointAccessPointTag
+  { _eFSAccessPointAccessPointTagKey = Nothing
+  , _eFSAccessPointAccessPointTagValue = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-accesspointtag.html#cfn-efs-accesspoint-accesspointtag-key
+efsapaptKey :: Lens' EFSAccessPointAccessPointTag (Maybe (Val Text))
+efsapaptKey = lens _eFSAccessPointAccessPointTagKey (\s a -> s { _eFSAccessPointAccessPointTagKey = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-accesspointtag.html#cfn-efs-accesspoint-accesspointtag-value
+efsapaptValue :: Lens' EFSAccessPointAccessPointTag (Maybe (Val Text))
+efsapaptValue = lens _eFSAccessPointAccessPointTagValue (\s a -> s { _eFSAccessPointAccessPointTagValue = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/EFSAccessPointCreationInfo.hs b/library-gen/Stratosphere/ResourceProperties/EFSAccessPointCreationInfo.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/EFSAccessPointCreationInfo.hs
@@ -0,0 +1,55 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-creationinfo.html
+
+module Stratosphere.ResourceProperties.EFSAccessPointCreationInfo where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for EFSAccessPointCreationInfo. See
+-- 'efsAccessPointCreationInfo' for a more convenient constructor.
+data EFSAccessPointCreationInfo =
+  EFSAccessPointCreationInfo
+  { _eFSAccessPointCreationInfoOwnerGid :: Val Text
+  , _eFSAccessPointCreationInfoOwnerUid :: Val Text
+  , _eFSAccessPointCreationInfoPermissions :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON EFSAccessPointCreationInfo where
+  toJSON EFSAccessPointCreationInfo{..} =
+    object $
+    catMaybes
+    [ (Just . ("OwnerGid",) . toJSON) _eFSAccessPointCreationInfoOwnerGid
+    , (Just . ("OwnerUid",) . toJSON) _eFSAccessPointCreationInfoOwnerUid
+    , (Just . ("Permissions",) . toJSON) _eFSAccessPointCreationInfoPermissions
+    ]
+
+-- | Constructor for 'EFSAccessPointCreationInfo' containing required fields
+-- as arguments.
+efsAccessPointCreationInfo
+  :: Val Text -- ^ 'efsapciOwnerGid'
+  -> Val Text -- ^ 'efsapciOwnerUid'
+  -> Val Text -- ^ 'efsapciPermissions'
+  -> EFSAccessPointCreationInfo
+efsAccessPointCreationInfo ownerGidarg ownerUidarg permissionsarg =
+  EFSAccessPointCreationInfo
+  { _eFSAccessPointCreationInfoOwnerGid = ownerGidarg
+  , _eFSAccessPointCreationInfoOwnerUid = ownerUidarg
+  , _eFSAccessPointCreationInfoPermissions = permissionsarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-creationinfo.html#cfn-efs-accesspoint-creationinfo-ownergid
+efsapciOwnerGid :: Lens' EFSAccessPointCreationInfo (Val Text)
+efsapciOwnerGid = lens _eFSAccessPointCreationInfoOwnerGid (\s a -> s { _eFSAccessPointCreationInfoOwnerGid = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-creationinfo.html#cfn-efs-accesspoint-creationinfo-owneruid
+efsapciOwnerUid :: Lens' EFSAccessPointCreationInfo (Val Text)
+efsapciOwnerUid = lens _eFSAccessPointCreationInfoOwnerUid (\s a -> s { _eFSAccessPointCreationInfoOwnerUid = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-creationinfo.html#cfn-efs-accesspoint-creationinfo-permissions
+efsapciPermissions :: Lens' EFSAccessPointCreationInfo (Val Text)
+efsapciPermissions = lens _eFSAccessPointCreationInfoPermissions (\s a -> s { _eFSAccessPointCreationInfoPermissions = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/EFSAccessPointPosixUser.hs b/library-gen/Stratosphere/ResourceProperties/EFSAccessPointPosixUser.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/EFSAccessPointPosixUser.hs
@@ -0,0 +1,54 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-posixuser.html
+
+module Stratosphere.ResourceProperties.EFSAccessPointPosixUser where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for EFSAccessPointPosixUser. See
+-- 'efsAccessPointPosixUser' for a more convenient constructor.
+data EFSAccessPointPosixUser =
+  EFSAccessPointPosixUser
+  { _eFSAccessPointPosixUserGid :: Val Text
+  , _eFSAccessPointPosixUserSecondaryGids :: Maybe (ValList Text)
+  , _eFSAccessPointPosixUserUid :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON EFSAccessPointPosixUser where
+  toJSON EFSAccessPointPosixUser{..} =
+    object $
+    catMaybes
+    [ (Just . ("Gid",) . toJSON) _eFSAccessPointPosixUserGid
+    , fmap (("SecondaryGids",) . toJSON) _eFSAccessPointPosixUserSecondaryGids
+    , (Just . ("Uid",) . toJSON) _eFSAccessPointPosixUserUid
+    ]
+
+-- | Constructor for 'EFSAccessPointPosixUser' containing required fields as
+-- arguments.
+efsAccessPointPosixUser
+  :: Val Text -- ^ 'efsappuGid'
+  -> Val Text -- ^ 'efsappuUid'
+  -> EFSAccessPointPosixUser
+efsAccessPointPosixUser gidarg uidarg =
+  EFSAccessPointPosixUser
+  { _eFSAccessPointPosixUserGid = gidarg
+  , _eFSAccessPointPosixUserSecondaryGids = Nothing
+  , _eFSAccessPointPosixUserUid = uidarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-posixuser.html#cfn-efs-accesspoint-posixuser-gid
+efsappuGid :: Lens' EFSAccessPointPosixUser (Val Text)
+efsappuGid = lens _eFSAccessPointPosixUserGid (\s a -> s { _eFSAccessPointPosixUserGid = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-posixuser.html#cfn-efs-accesspoint-posixuser-secondarygids
+efsappuSecondaryGids :: Lens' EFSAccessPointPosixUser (Maybe (ValList Text))
+efsappuSecondaryGids = lens _eFSAccessPointPosixUserSecondaryGids (\s a -> s { _eFSAccessPointPosixUserSecondaryGids = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-posixuser.html#cfn-efs-accesspoint-posixuser-uid
+efsappuUid :: Lens' EFSAccessPointPosixUser (Val Text)
+efsappuUid = lens _eFSAccessPointPosixUserUid (\s a -> s { _eFSAccessPointPosixUserUid = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/EFSAccessPointRootDirectory.hs b/library-gen/Stratosphere/ResourceProperties/EFSAccessPointRootDirectory.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/EFSAccessPointRootDirectory.hs
@@ -0,0 +1,45 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-rootdirectory.html
+
+module Stratosphere.ResourceProperties.EFSAccessPointRootDirectory where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.EFSAccessPointCreationInfo
+
+-- | Full data type definition for EFSAccessPointRootDirectory. See
+-- 'efsAccessPointRootDirectory' for a more convenient constructor.
+data EFSAccessPointRootDirectory =
+  EFSAccessPointRootDirectory
+  { _eFSAccessPointRootDirectoryCreationInfo :: Maybe EFSAccessPointCreationInfo
+  , _eFSAccessPointRootDirectoryPath :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON EFSAccessPointRootDirectory where
+  toJSON EFSAccessPointRootDirectory{..} =
+    object $
+    catMaybes
+    [ fmap (("CreationInfo",) . toJSON) _eFSAccessPointRootDirectoryCreationInfo
+    , fmap (("Path",) . toJSON) _eFSAccessPointRootDirectoryPath
+    ]
+
+-- | Constructor for 'EFSAccessPointRootDirectory' containing required fields
+-- as arguments.
+efsAccessPointRootDirectory
+  :: EFSAccessPointRootDirectory
+efsAccessPointRootDirectory  =
+  EFSAccessPointRootDirectory
+  { _eFSAccessPointRootDirectoryCreationInfo = Nothing
+  , _eFSAccessPointRootDirectoryPath = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-rootdirectory.html#cfn-efs-accesspoint-rootdirectory-creationinfo
+efsaprdCreationInfo :: Lens' EFSAccessPointRootDirectory (Maybe EFSAccessPointCreationInfo)
+efsaprdCreationInfo = lens _eFSAccessPointRootDirectoryCreationInfo (\s a -> s { _eFSAccessPointRootDirectoryCreationInfo = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-rootdirectory.html#cfn-efs-accesspoint-rootdirectory-path
+efsaprdPath :: Lens' EFSAccessPointRootDirectory (Maybe (Val Text))
+efsaprdPath = lens _eFSAccessPointRootDirectoryPath (\s a -> s { _eFSAccessPointRootDirectoryPath = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/EFSFileSystemElasticFileSystemTag.hs b/library-gen/Stratosphere/ResourceProperties/EFSFileSystemElasticFileSystemTag.hs
--- a/library-gen/Stratosphere/ResourceProperties/EFSFileSystemElasticFileSystemTag.hs
+++ b/library-gen/Stratosphere/ResourceProperties/EFSFileSystemElasticFileSystemTag.hs
@@ -3,7 +3,7 @@
 {-# LANGUAGE StrictData #-}
 {-# LANGUAGE TupleSections #-}
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-filesystemtags.html
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-elasticfilesystemtag.html
 
 module Stratosphere.ResourceProperties.EFSFileSystemElasticFileSystemTag where
 
@@ -38,10 +38,10 @@
   , _eFSFileSystemElasticFileSystemTagValue = valuearg
   }
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-filesystemtags.html#cfn-efs-filesystem-filesystemtags-key
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-elasticfilesystemtag.html#cfn-efs-filesystem-elasticfilesystemtag-key
 efsfsefstKey :: Lens' EFSFileSystemElasticFileSystemTag (Val Text)
 efsfsefstKey = lens _eFSFileSystemElasticFileSystemTagKey (\s a -> s { _eFSFileSystemElasticFileSystemTagKey = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-filesystemtags.html#cfn-efs-filesystem-filesystemtags-value
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-elasticfilesystemtag.html#cfn-efs-filesystem-elasticfilesystemtag-value
 efsfsefstValue :: Lens' EFSFileSystemElasticFileSystemTag (Val Text)
 efsfsefstValue = lens _eFSFileSystemElasticFileSystemTagValue (\s a -> s { _eFSFileSystemElasticFileSystemTagValue = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/EFSFileSystemLifecyclePolicy.hs b/library-gen/Stratosphere/ResourceProperties/EFSFileSystemLifecyclePolicy.hs
--- a/library-gen/Stratosphere/ResourceProperties/EFSFileSystemLifecyclePolicy.hs
+++ b/library-gen/Stratosphere/ResourceProperties/EFSFileSystemLifecyclePolicy.hs
@@ -3,7 +3,7 @@
 {-# LANGUAGE StrictData #-}
 {-# LANGUAGE TupleSections #-}
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticfilesystem-filesystem-lifecyclepolicy.html
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-lifecyclepolicy.html
 
 module Stratosphere.ResourceProperties.EFSFileSystemLifecyclePolicy where
 
@@ -34,6 +34,6 @@
   { _eFSFileSystemLifecyclePolicyTransitionToIA = transitionToIAarg
   }
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticfilesystem-filesystem-lifecyclepolicy.html#cfn-elasticfilesystem-filesystem-lifecyclepolicy-transitiontoia
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-lifecyclepolicy.html#cfn-efs-filesystem-lifecyclepolicy-transitiontoia
 efsfslpTransitionToIA :: Lens' EFSFileSystemLifecyclePolicy (Val Text)
 efsfslpTransitionToIA = lens _eFSFileSystemLifecyclePolicyTransitionToIA (\s a -> s { _eFSFileSystemLifecyclePolicyTransitionToIA = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/ElasticLoadBalancingV2LoadBalancerSubnetMapping.hs b/library-gen/Stratosphere/ResourceProperties/ElasticLoadBalancingV2LoadBalancerSubnetMapping.hs
--- a/library-gen/Stratosphere/ResourceProperties/ElasticLoadBalancingV2LoadBalancerSubnetMapping.hs
+++ b/library-gen/Stratosphere/ResourceProperties/ElasticLoadBalancingV2LoadBalancerSubnetMapping.hs
@@ -16,7 +16,8 @@
 -- constructor.
 data ElasticLoadBalancingV2LoadBalancerSubnetMapping =
   ElasticLoadBalancingV2LoadBalancerSubnetMapping
-  { _elasticLoadBalancingV2LoadBalancerSubnetMappingAllocationId :: Val Text
+  { _elasticLoadBalancingV2LoadBalancerSubnetMappingAllocationId :: Maybe (Val Text)
+  , _elasticLoadBalancingV2LoadBalancerSubnetMappingPrivateIPv4Address :: Maybe (Val Text)
   , _elasticLoadBalancingV2LoadBalancerSubnetMappingSubnetId :: Val Text
   } deriving (Show, Eq)
 
@@ -24,25 +25,30 @@
   toJSON ElasticLoadBalancingV2LoadBalancerSubnetMapping{..} =
     object $
     catMaybes
-    [ (Just . ("AllocationId",) . toJSON) _elasticLoadBalancingV2LoadBalancerSubnetMappingAllocationId
+    [ fmap (("AllocationId",) . toJSON) _elasticLoadBalancingV2LoadBalancerSubnetMappingAllocationId
+    , fmap (("PrivateIPv4Address",) . toJSON) _elasticLoadBalancingV2LoadBalancerSubnetMappingPrivateIPv4Address
     , (Just . ("SubnetId",) . toJSON) _elasticLoadBalancingV2LoadBalancerSubnetMappingSubnetId
     ]
 
 -- | Constructor for 'ElasticLoadBalancingV2LoadBalancerSubnetMapping'
 -- containing required fields as arguments.
 elasticLoadBalancingV2LoadBalancerSubnetMapping
-  :: Val Text -- ^ 'elbvlbsmAllocationId'
-  -> Val Text -- ^ 'elbvlbsmSubnetId'
+  :: Val Text -- ^ 'elbvlbsmSubnetId'
   -> ElasticLoadBalancingV2LoadBalancerSubnetMapping
-elasticLoadBalancingV2LoadBalancerSubnetMapping allocationIdarg subnetIdarg =
+elasticLoadBalancingV2LoadBalancerSubnetMapping subnetIdarg =
   ElasticLoadBalancingV2LoadBalancerSubnetMapping
-  { _elasticLoadBalancingV2LoadBalancerSubnetMappingAllocationId = allocationIdarg
+  { _elasticLoadBalancingV2LoadBalancerSubnetMappingAllocationId = Nothing
+  , _elasticLoadBalancingV2LoadBalancerSubnetMappingPrivateIPv4Address = Nothing
   , _elasticLoadBalancingV2LoadBalancerSubnetMappingSubnetId = subnetIdarg
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-subnetmapping.html#cfn-elasticloadbalancingv2-loadbalancer-subnetmapping-allocationid
-elbvlbsmAllocationId :: Lens' ElasticLoadBalancingV2LoadBalancerSubnetMapping (Val Text)
+elbvlbsmAllocationId :: Lens' ElasticLoadBalancingV2LoadBalancerSubnetMapping (Maybe (Val Text))
 elbvlbsmAllocationId = lens _elasticLoadBalancingV2LoadBalancerSubnetMappingAllocationId (\s a -> s { _elasticLoadBalancingV2LoadBalancerSubnetMappingAllocationId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-subnetmapping.html#cfn-elasticloadbalancingv2-loadbalancer-subnetmapping-privateipv4address
+elbvlbsmPrivateIPv4Address :: Lens' ElasticLoadBalancingV2LoadBalancerSubnetMapping (Maybe (Val Text))
+elbvlbsmPrivateIPv4Address = lens _elasticLoadBalancingV2LoadBalancerSubnetMappingPrivateIPv4Address (\s a -> s { _elasticLoadBalancingV2LoadBalancerSubnetMappingPrivateIPv4Address = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-subnetmapping.html#cfn-elasticloadbalancingv2-loadbalancer-subnetmapping-subnetid
 elbvlbsmSubnetId :: Lens' ElasticLoadBalancingV2LoadBalancerSubnetMapping (Val Text)
diff --git a/library-gen/Stratosphere/ResourceProperties/EventsRuleHttpParameters.hs b/library-gen/Stratosphere/ResourceProperties/EventsRuleHttpParameters.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/EventsRuleHttpParameters.hs
@@ -0,0 +1,52 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-httpparameters.html
+
+module Stratosphere.ResourceProperties.EventsRuleHttpParameters where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for EventsRuleHttpParameters. See
+-- 'eventsRuleHttpParameters' for a more convenient constructor.
+data EventsRuleHttpParameters =
+  EventsRuleHttpParameters
+  { _eventsRuleHttpParametersHeaderParameters :: Maybe Object
+  , _eventsRuleHttpParametersPathParameterValues :: Maybe (ValList Text)
+  , _eventsRuleHttpParametersQueryStringParameters :: Maybe Object
+  } deriving (Show, Eq)
+
+instance ToJSON EventsRuleHttpParameters where
+  toJSON EventsRuleHttpParameters{..} =
+    object $
+    catMaybes
+    [ fmap (("HeaderParameters",) . toJSON) _eventsRuleHttpParametersHeaderParameters
+    , fmap (("PathParameterValues",) . toJSON) _eventsRuleHttpParametersPathParameterValues
+    , fmap (("QueryStringParameters",) . toJSON) _eventsRuleHttpParametersQueryStringParameters
+    ]
+
+-- | Constructor for 'EventsRuleHttpParameters' containing required fields as
+-- arguments.
+eventsRuleHttpParameters
+  :: EventsRuleHttpParameters
+eventsRuleHttpParameters  =
+  EventsRuleHttpParameters
+  { _eventsRuleHttpParametersHeaderParameters = Nothing
+  , _eventsRuleHttpParametersPathParameterValues = Nothing
+  , _eventsRuleHttpParametersQueryStringParameters = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-httpparameters.html#cfn-events-rule-httpparameters-headerparameters
+erhpHeaderParameters :: Lens' EventsRuleHttpParameters (Maybe Object)
+erhpHeaderParameters = lens _eventsRuleHttpParametersHeaderParameters (\s a -> s { _eventsRuleHttpParametersHeaderParameters = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-httpparameters.html#cfn-events-rule-httpparameters-pathparametervalues
+erhpPathParameterValues :: Lens' EventsRuleHttpParameters (Maybe (ValList Text))
+erhpPathParameterValues = lens _eventsRuleHttpParametersPathParameterValues (\s a -> s { _eventsRuleHttpParametersPathParameterValues = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-httpparameters.html#cfn-events-rule-httpparameters-querystringparameters
+erhpQueryStringParameters :: Lens' EventsRuleHttpParameters (Maybe Object)
+erhpQueryStringParameters = lens _eventsRuleHttpParametersQueryStringParameters (\s a -> s { _eventsRuleHttpParametersQueryStringParameters = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/EventsRuleTarget.hs b/library-gen/Stratosphere/ResourceProperties/EventsRuleTarget.hs
--- a/library-gen/Stratosphere/ResourceProperties/EventsRuleTarget.hs
+++ b/library-gen/Stratosphere/ResourceProperties/EventsRuleTarget.hs
@@ -10,6 +10,7 @@
 import Stratosphere.ResourceImports
 import Stratosphere.ResourceProperties.EventsRuleBatchParameters
 import Stratosphere.ResourceProperties.EventsRuleEcsParameters
+import Stratosphere.ResourceProperties.EventsRuleHttpParameters
 import Stratosphere.ResourceProperties.EventsRuleInputTransformer
 import Stratosphere.ResourceProperties.EventsRuleKinesisParameters
 import Stratosphere.ResourceProperties.EventsRuleRunCommandParameters
@@ -22,6 +23,7 @@
   { _eventsRuleTargetArn :: Val Text
   , _eventsRuleTargetBatchParameters :: Maybe EventsRuleBatchParameters
   , _eventsRuleTargetEcsParameters :: Maybe EventsRuleEcsParameters
+  , _eventsRuleTargetHttpParameters :: Maybe EventsRuleHttpParameters
   , _eventsRuleTargetId :: Val Text
   , _eventsRuleTargetInput :: Maybe (Val Text)
   , _eventsRuleTargetInputPath :: Maybe (Val Text)
@@ -39,6 +41,7 @@
     [ (Just . ("Arn",) . toJSON) _eventsRuleTargetArn
     , fmap (("BatchParameters",) . toJSON) _eventsRuleTargetBatchParameters
     , fmap (("EcsParameters",) . toJSON) _eventsRuleTargetEcsParameters
+    , fmap (("HttpParameters",) . toJSON) _eventsRuleTargetHttpParameters
     , (Just . ("Id",) . toJSON) _eventsRuleTargetId
     , fmap (("Input",) . toJSON) _eventsRuleTargetInput
     , fmap (("InputPath",) . toJSON) _eventsRuleTargetInputPath
@@ -60,6 +63,7 @@
   { _eventsRuleTargetArn = arnarg
   , _eventsRuleTargetBatchParameters = Nothing
   , _eventsRuleTargetEcsParameters = Nothing
+  , _eventsRuleTargetHttpParameters = Nothing
   , _eventsRuleTargetId = idarg
   , _eventsRuleTargetInput = Nothing
   , _eventsRuleTargetInputPath = Nothing
@@ -81,6 +85,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-ecsparameters
 ertEcsParameters :: Lens' EventsRuleTarget (Maybe EventsRuleEcsParameters)
 ertEcsParameters = lens _eventsRuleTargetEcsParameters (\s a -> s { _eventsRuleTargetEcsParameters = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-httpparameters
+ertHttpParameters :: Lens' EventsRuleTarget (Maybe EventsRuleHttpParameters)
+ertHttpParameters = lens _eventsRuleTargetHttpParameters (\s a -> s { _eventsRuleTargetHttpParameters = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-id
 ertId :: Lens' EventsRuleTarget (Val Text)
diff --git a/library-gen/Stratosphere/ResourceProperties/IoTProvisioningTemplateProvisioningHook.hs b/library-gen/Stratosphere/ResourceProperties/IoTProvisioningTemplateProvisioningHook.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/IoTProvisioningTemplateProvisioningHook.hs
@@ -0,0 +1,46 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-provisioningtemplate-provisioninghook.html
+
+module Stratosphere.ResourceProperties.IoTProvisioningTemplateProvisioningHook where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for IoTProvisioningTemplateProvisioningHook.
+-- See 'ioTProvisioningTemplateProvisioningHook' for a more convenient
+-- constructor.
+data IoTProvisioningTemplateProvisioningHook =
+  IoTProvisioningTemplateProvisioningHook
+  { _ioTProvisioningTemplateProvisioningHookPayloadVersion :: Maybe (Val Text)
+  , _ioTProvisioningTemplateProvisioningHookTargetArn :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON IoTProvisioningTemplateProvisioningHook where
+  toJSON IoTProvisioningTemplateProvisioningHook{..} =
+    object $
+    catMaybes
+    [ fmap (("PayloadVersion",) . toJSON) _ioTProvisioningTemplateProvisioningHookPayloadVersion
+    , fmap (("TargetArn",) . toJSON) _ioTProvisioningTemplateProvisioningHookTargetArn
+    ]
+
+-- | Constructor for 'IoTProvisioningTemplateProvisioningHook' containing
+-- required fields as arguments.
+ioTProvisioningTemplateProvisioningHook
+  :: IoTProvisioningTemplateProvisioningHook
+ioTProvisioningTemplateProvisioningHook  =
+  IoTProvisioningTemplateProvisioningHook
+  { _ioTProvisioningTemplateProvisioningHookPayloadVersion = Nothing
+  , _ioTProvisioningTemplateProvisioningHookTargetArn = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-provisioningtemplate-provisioninghook.html#cfn-iot-provisioningtemplate-provisioninghook-payloadversion
+itptphPayloadVersion :: Lens' IoTProvisioningTemplateProvisioningHook (Maybe (Val Text))
+itptphPayloadVersion = lens _ioTProvisioningTemplateProvisioningHookPayloadVersion (\s a -> s { _ioTProvisioningTemplateProvisioningHookPayloadVersion = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-provisioningtemplate-provisioninghook.html#cfn-iot-provisioningtemplate-provisioninghook-targetarn
+itptphTargetArn :: Lens' IoTProvisioningTemplateProvisioningHook (Maybe (Val Text))
+itptphTargetArn = lens _ioTProvisioningTemplateProvisioningHookTargetArn (\s a -> s { _ioTProvisioningTemplateProvisioningHookTargetArn = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamBufferingHints.hs b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamBufferingHints.hs
--- a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamBufferingHints.hs
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamBufferingHints.hs
@@ -16,34 +16,32 @@
 -- constructor.
 data KinesisFirehoseDeliveryStreamBufferingHints =
   KinesisFirehoseDeliveryStreamBufferingHints
-  { _kinesisFirehoseDeliveryStreamBufferingHintsIntervalInSeconds :: Val Integer
-  , _kinesisFirehoseDeliveryStreamBufferingHintsSizeInMBs :: Val Integer
+  { _kinesisFirehoseDeliveryStreamBufferingHintsIntervalInSeconds :: Maybe (Val Integer)
+  , _kinesisFirehoseDeliveryStreamBufferingHintsSizeInMBs :: Maybe (Val Integer)
   } deriving (Show, Eq)
 
 instance ToJSON KinesisFirehoseDeliveryStreamBufferingHints where
   toJSON KinesisFirehoseDeliveryStreamBufferingHints{..} =
     object $
     catMaybes
-    [ (Just . ("IntervalInSeconds",) . toJSON) _kinesisFirehoseDeliveryStreamBufferingHintsIntervalInSeconds
-    , (Just . ("SizeInMBs",) . toJSON) _kinesisFirehoseDeliveryStreamBufferingHintsSizeInMBs
+    [ fmap (("IntervalInSeconds",) . toJSON) _kinesisFirehoseDeliveryStreamBufferingHintsIntervalInSeconds
+    , fmap (("SizeInMBs",) . toJSON) _kinesisFirehoseDeliveryStreamBufferingHintsSizeInMBs
     ]
 
 -- | Constructor for 'KinesisFirehoseDeliveryStreamBufferingHints' containing
 -- required fields as arguments.
 kinesisFirehoseDeliveryStreamBufferingHints
-  :: Val Integer -- ^ 'kfdsbhIntervalInSeconds'
-  -> Val Integer -- ^ 'kfdsbhSizeInMBs'
-  -> KinesisFirehoseDeliveryStreamBufferingHints
-kinesisFirehoseDeliveryStreamBufferingHints intervalInSecondsarg sizeInMBsarg =
+  :: KinesisFirehoseDeliveryStreamBufferingHints
+kinesisFirehoseDeliveryStreamBufferingHints  =
   KinesisFirehoseDeliveryStreamBufferingHints
-  { _kinesisFirehoseDeliveryStreamBufferingHintsIntervalInSeconds = intervalInSecondsarg
-  , _kinesisFirehoseDeliveryStreamBufferingHintsSizeInMBs = sizeInMBsarg
+  { _kinesisFirehoseDeliveryStreamBufferingHintsIntervalInSeconds = Nothing
+  , _kinesisFirehoseDeliveryStreamBufferingHintsSizeInMBs = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-bufferinghints.html#cfn-kinesisfirehose-deliverystream-bufferinghints-intervalinseconds
-kfdsbhIntervalInSeconds :: Lens' KinesisFirehoseDeliveryStreamBufferingHints (Val Integer)
+kfdsbhIntervalInSeconds :: Lens' KinesisFirehoseDeliveryStreamBufferingHints (Maybe (Val Integer))
 kfdsbhIntervalInSeconds = lens _kinesisFirehoseDeliveryStreamBufferingHintsIntervalInSeconds (\s a -> s { _kinesisFirehoseDeliveryStreamBufferingHintsIntervalInSeconds = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-bufferinghints.html#cfn-kinesisfirehose-deliverystream-bufferinghints-sizeinmbs
-kfdsbhSizeInMBs :: Lens' KinesisFirehoseDeliveryStreamBufferingHints (Val Integer)
+kfdsbhSizeInMBs :: Lens' KinesisFirehoseDeliveryStreamBufferingHints (Maybe (Val Integer))
 kfdsbhSizeInMBs = lens _kinesisFirehoseDeliveryStreamBufferingHintsSizeInMBs (\s a -> s { _kinesisFirehoseDeliveryStreamBufferingHintsSizeInMBs = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamDataFormatConversionConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamDataFormatConversionConfiguration.hs
--- a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamDataFormatConversionConfiguration.hs
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamDataFormatConversionConfiguration.hs
@@ -18,51 +18,47 @@
 -- more convenient constructor.
 data KinesisFirehoseDeliveryStreamDataFormatConversionConfiguration =
   KinesisFirehoseDeliveryStreamDataFormatConversionConfiguration
-  { _kinesisFirehoseDeliveryStreamDataFormatConversionConfigurationEnabled :: Val Bool
-  , _kinesisFirehoseDeliveryStreamDataFormatConversionConfigurationInputFormatConfiguration :: KinesisFirehoseDeliveryStreamInputFormatConfiguration
-  , _kinesisFirehoseDeliveryStreamDataFormatConversionConfigurationOutputFormatConfiguration :: KinesisFirehoseDeliveryStreamOutputFormatConfiguration
-  , _kinesisFirehoseDeliveryStreamDataFormatConversionConfigurationSchemaConfiguration :: KinesisFirehoseDeliveryStreamSchemaConfiguration
+  { _kinesisFirehoseDeliveryStreamDataFormatConversionConfigurationEnabled :: Maybe (Val Bool)
+  , _kinesisFirehoseDeliveryStreamDataFormatConversionConfigurationInputFormatConfiguration :: Maybe KinesisFirehoseDeliveryStreamInputFormatConfiguration
+  , _kinesisFirehoseDeliveryStreamDataFormatConversionConfigurationOutputFormatConfiguration :: Maybe KinesisFirehoseDeliveryStreamOutputFormatConfiguration
+  , _kinesisFirehoseDeliveryStreamDataFormatConversionConfigurationSchemaConfiguration :: Maybe KinesisFirehoseDeliveryStreamSchemaConfiguration
   } deriving (Show, Eq)
 
 instance ToJSON KinesisFirehoseDeliveryStreamDataFormatConversionConfiguration where
   toJSON KinesisFirehoseDeliveryStreamDataFormatConversionConfiguration{..} =
     object $
     catMaybes
-    [ (Just . ("Enabled",) . toJSON) _kinesisFirehoseDeliveryStreamDataFormatConversionConfigurationEnabled
-    , (Just . ("InputFormatConfiguration",) . toJSON) _kinesisFirehoseDeliveryStreamDataFormatConversionConfigurationInputFormatConfiguration
-    , (Just . ("OutputFormatConfiguration",) . toJSON) _kinesisFirehoseDeliveryStreamDataFormatConversionConfigurationOutputFormatConfiguration
-    , (Just . ("SchemaConfiguration",) . toJSON) _kinesisFirehoseDeliveryStreamDataFormatConversionConfigurationSchemaConfiguration
+    [ fmap (("Enabled",) . toJSON) _kinesisFirehoseDeliveryStreamDataFormatConversionConfigurationEnabled
+    , fmap (("InputFormatConfiguration",) . toJSON) _kinesisFirehoseDeliveryStreamDataFormatConversionConfigurationInputFormatConfiguration
+    , fmap (("OutputFormatConfiguration",) . toJSON) _kinesisFirehoseDeliveryStreamDataFormatConversionConfigurationOutputFormatConfiguration
+    , fmap (("SchemaConfiguration",) . toJSON) _kinesisFirehoseDeliveryStreamDataFormatConversionConfigurationSchemaConfiguration
     ]
 
 -- | Constructor for
 -- 'KinesisFirehoseDeliveryStreamDataFormatConversionConfiguration'
 -- containing required fields as arguments.
 kinesisFirehoseDeliveryStreamDataFormatConversionConfiguration
-  :: Val Bool -- ^ 'kfdsdfccEnabled'
-  -> KinesisFirehoseDeliveryStreamInputFormatConfiguration -- ^ 'kfdsdfccInputFormatConfiguration'
-  -> KinesisFirehoseDeliveryStreamOutputFormatConfiguration -- ^ 'kfdsdfccOutputFormatConfiguration'
-  -> KinesisFirehoseDeliveryStreamSchemaConfiguration -- ^ 'kfdsdfccSchemaConfiguration'
-  -> KinesisFirehoseDeliveryStreamDataFormatConversionConfiguration
-kinesisFirehoseDeliveryStreamDataFormatConversionConfiguration enabledarg inputFormatConfigurationarg outputFormatConfigurationarg schemaConfigurationarg =
+  :: KinesisFirehoseDeliveryStreamDataFormatConversionConfiguration
+kinesisFirehoseDeliveryStreamDataFormatConversionConfiguration  =
   KinesisFirehoseDeliveryStreamDataFormatConversionConfiguration
-  { _kinesisFirehoseDeliveryStreamDataFormatConversionConfigurationEnabled = enabledarg
-  , _kinesisFirehoseDeliveryStreamDataFormatConversionConfigurationInputFormatConfiguration = inputFormatConfigurationarg
-  , _kinesisFirehoseDeliveryStreamDataFormatConversionConfigurationOutputFormatConfiguration = outputFormatConfigurationarg
-  , _kinesisFirehoseDeliveryStreamDataFormatConversionConfigurationSchemaConfiguration = schemaConfigurationarg
+  { _kinesisFirehoseDeliveryStreamDataFormatConversionConfigurationEnabled = Nothing
+  , _kinesisFirehoseDeliveryStreamDataFormatConversionConfigurationInputFormatConfiguration = Nothing
+  , _kinesisFirehoseDeliveryStreamDataFormatConversionConfigurationOutputFormatConfiguration = Nothing
+  , _kinesisFirehoseDeliveryStreamDataFormatConversionConfigurationSchemaConfiguration = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-dataformatconversionconfiguration.html#cfn-kinesisfirehose-deliverystream-dataformatconversionconfiguration-enabled
-kfdsdfccEnabled :: Lens' KinesisFirehoseDeliveryStreamDataFormatConversionConfiguration (Val Bool)
+kfdsdfccEnabled :: Lens' KinesisFirehoseDeliveryStreamDataFormatConversionConfiguration (Maybe (Val Bool))
 kfdsdfccEnabled = lens _kinesisFirehoseDeliveryStreamDataFormatConversionConfigurationEnabled (\s a -> s { _kinesisFirehoseDeliveryStreamDataFormatConversionConfigurationEnabled = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-dataformatconversionconfiguration.html#cfn-kinesisfirehose-deliverystream-dataformatconversionconfiguration-inputformatconfiguration
-kfdsdfccInputFormatConfiguration :: Lens' KinesisFirehoseDeliveryStreamDataFormatConversionConfiguration KinesisFirehoseDeliveryStreamInputFormatConfiguration
+kfdsdfccInputFormatConfiguration :: Lens' KinesisFirehoseDeliveryStreamDataFormatConversionConfiguration (Maybe KinesisFirehoseDeliveryStreamInputFormatConfiguration)
 kfdsdfccInputFormatConfiguration = lens _kinesisFirehoseDeliveryStreamDataFormatConversionConfigurationInputFormatConfiguration (\s a -> s { _kinesisFirehoseDeliveryStreamDataFormatConversionConfigurationInputFormatConfiguration = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-dataformatconversionconfiguration.html#cfn-kinesisfirehose-deliverystream-dataformatconversionconfiguration-outputformatconfiguration
-kfdsdfccOutputFormatConfiguration :: Lens' KinesisFirehoseDeliveryStreamDataFormatConversionConfiguration KinesisFirehoseDeliveryStreamOutputFormatConfiguration
+kfdsdfccOutputFormatConfiguration :: Lens' KinesisFirehoseDeliveryStreamDataFormatConversionConfiguration (Maybe KinesisFirehoseDeliveryStreamOutputFormatConfiguration)
 kfdsdfccOutputFormatConfiguration = lens _kinesisFirehoseDeliveryStreamDataFormatConversionConfigurationOutputFormatConfiguration (\s a -> s { _kinesisFirehoseDeliveryStreamDataFormatConversionConfigurationOutputFormatConfiguration = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-dataformatconversionconfiguration.html#cfn-kinesisfirehose-deliverystream-dataformatconversionconfiguration-schemaconfiguration
-kfdsdfccSchemaConfiguration :: Lens' KinesisFirehoseDeliveryStreamDataFormatConversionConfiguration KinesisFirehoseDeliveryStreamSchemaConfiguration
+kfdsdfccSchemaConfiguration :: Lens' KinesisFirehoseDeliveryStreamDataFormatConversionConfiguration (Maybe KinesisFirehoseDeliveryStreamSchemaConfiguration)
 kfdsdfccSchemaConfiguration = lens _kinesisFirehoseDeliveryStreamDataFormatConversionConfigurationSchemaConfiguration (\s a -> s { _kinesisFirehoseDeliveryStreamDataFormatConversionConfigurationSchemaConfiguration = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamElasticsearchBufferingHints.hs b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamElasticsearchBufferingHints.hs
--- a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamElasticsearchBufferingHints.hs
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamElasticsearchBufferingHints.hs
@@ -16,35 +16,33 @@
 -- convenient constructor.
 data KinesisFirehoseDeliveryStreamElasticsearchBufferingHints =
   KinesisFirehoseDeliveryStreamElasticsearchBufferingHints
-  { _kinesisFirehoseDeliveryStreamElasticsearchBufferingHintsIntervalInSeconds :: Val Integer
-  , _kinesisFirehoseDeliveryStreamElasticsearchBufferingHintsSizeInMBs :: Val Integer
+  { _kinesisFirehoseDeliveryStreamElasticsearchBufferingHintsIntervalInSeconds :: Maybe (Val Integer)
+  , _kinesisFirehoseDeliveryStreamElasticsearchBufferingHintsSizeInMBs :: Maybe (Val Integer)
   } deriving (Show, Eq)
 
 instance ToJSON KinesisFirehoseDeliveryStreamElasticsearchBufferingHints where
   toJSON KinesisFirehoseDeliveryStreamElasticsearchBufferingHints{..} =
     object $
     catMaybes
-    [ (Just . ("IntervalInSeconds",) . toJSON) _kinesisFirehoseDeliveryStreamElasticsearchBufferingHintsIntervalInSeconds
-    , (Just . ("SizeInMBs",) . toJSON) _kinesisFirehoseDeliveryStreamElasticsearchBufferingHintsSizeInMBs
+    [ fmap (("IntervalInSeconds",) . toJSON) _kinesisFirehoseDeliveryStreamElasticsearchBufferingHintsIntervalInSeconds
+    , fmap (("SizeInMBs",) . toJSON) _kinesisFirehoseDeliveryStreamElasticsearchBufferingHintsSizeInMBs
     ]
 
 -- | Constructor for
 -- 'KinesisFirehoseDeliveryStreamElasticsearchBufferingHints' containing
 -- required fields as arguments.
 kinesisFirehoseDeliveryStreamElasticsearchBufferingHints
-  :: Val Integer -- ^ 'kfdsebhIntervalInSeconds'
-  -> Val Integer -- ^ 'kfdsebhSizeInMBs'
-  -> KinesisFirehoseDeliveryStreamElasticsearchBufferingHints
-kinesisFirehoseDeliveryStreamElasticsearchBufferingHints intervalInSecondsarg sizeInMBsarg =
+  :: KinesisFirehoseDeliveryStreamElasticsearchBufferingHints
+kinesisFirehoseDeliveryStreamElasticsearchBufferingHints  =
   KinesisFirehoseDeliveryStreamElasticsearchBufferingHints
-  { _kinesisFirehoseDeliveryStreamElasticsearchBufferingHintsIntervalInSeconds = intervalInSecondsarg
-  , _kinesisFirehoseDeliveryStreamElasticsearchBufferingHintsSizeInMBs = sizeInMBsarg
+  { _kinesisFirehoseDeliveryStreamElasticsearchBufferingHintsIntervalInSeconds = Nothing
+  , _kinesisFirehoseDeliveryStreamElasticsearchBufferingHintsSizeInMBs = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchbufferinghints.html#cfn-kinesisfirehose-deliverystream-elasticsearchbufferinghints-intervalinseconds
-kfdsebhIntervalInSeconds :: Lens' KinesisFirehoseDeliveryStreamElasticsearchBufferingHints (Val Integer)
+kfdsebhIntervalInSeconds :: Lens' KinesisFirehoseDeliveryStreamElasticsearchBufferingHints (Maybe (Val Integer))
 kfdsebhIntervalInSeconds = lens _kinesisFirehoseDeliveryStreamElasticsearchBufferingHintsIntervalInSeconds (\s a -> s { _kinesisFirehoseDeliveryStreamElasticsearchBufferingHintsIntervalInSeconds = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchbufferinghints.html#cfn-kinesisfirehose-deliverystream-elasticsearchbufferinghints-sizeinmbs
-kfdsebhSizeInMBs :: Lens' KinesisFirehoseDeliveryStreamElasticsearchBufferingHints (Val Integer)
+kfdsebhSizeInMBs :: Lens' KinesisFirehoseDeliveryStreamElasticsearchBufferingHints (Maybe (Val Integer))
 kfdsebhSizeInMBs = lens _kinesisFirehoseDeliveryStreamElasticsearchBufferingHintsSizeInMBs (\s a -> s { _kinesisFirehoseDeliveryStreamElasticsearchBufferingHintsSizeInMBs = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration.hs
--- a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration.hs
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration.hs
@@ -14,6 +14,7 @@
 import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamProcessingConfiguration
 import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamElasticsearchRetryOptions
 import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamS3DestinationConfiguration
+import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamVpcConfiguration
 
 -- | Full data type definition for
 -- KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration. See
@@ -21,75 +22,79 @@
 -- a more convenient constructor.
 data KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration =
   KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration
-  { _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationBufferingHints :: KinesisFirehoseDeliveryStreamElasticsearchBufferingHints
+  { _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationBufferingHints :: Maybe KinesisFirehoseDeliveryStreamElasticsearchBufferingHints
   , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationCloudWatchLoggingOptions :: Maybe KinesisFirehoseDeliveryStreamCloudWatchLoggingOptions
-  , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationDomainARN :: Val Text
+  , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationClusterEndpoint :: Maybe (Val Text)
+  , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationDomainARN :: Maybe (Val Text)
   , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationIndexName :: Val Text
-  , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationIndexRotationPeriod :: Val Text
+  , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationIndexRotationPeriod :: Maybe (Val Text)
   , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationProcessingConfiguration :: Maybe KinesisFirehoseDeliveryStreamProcessingConfiguration
-  , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationRetryOptions :: KinesisFirehoseDeliveryStreamElasticsearchRetryOptions
+  , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationRetryOptions :: Maybe KinesisFirehoseDeliveryStreamElasticsearchRetryOptions
   , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationRoleARN :: Val Text
-  , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationS3BackupMode :: Val KinesisFirehoseElasticsearchS3BackupMode
+  , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationS3BackupMode :: Maybe (Val KinesisFirehoseElasticsearchS3BackupMode)
   , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationS3Configuration :: KinesisFirehoseDeliveryStreamS3DestinationConfiguration
-  , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationTypeName :: Val Text
+  , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationTypeName :: Maybe (Val Text)
+  , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationVpcConfiguration :: Maybe KinesisFirehoseDeliveryStreamVpcConfiguration
   } deriving (Show, Eq)
 
 instance ToJSON KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration where
   toJSON KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration{..} =
     object $
     catMaybes
-    [ (Just . ("BufferingHints",) . toJSON) _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationBufferingHints
+    [ fmap (("BufferingHints",) . toJSON) _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationBufferingHints
     , fmap (("CloudWatchLoggingOptions",) . toJSON) _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationCloudWatchLoggingOptions
-    , (Just . ("DomainARN",) . toJSON) _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationDomainARN
+    , fmap (("ClusterEndpoint",) . toJSON) _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationClusterEndpoint
+    , fmap (("DomainARN",) . toJSON) _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationDomainARN
     , (Just . ("IndexName",) . toJSON) _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationIndexName
-    , (Just . ("IndexRotationPeriod",) . toJSON) _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationIndexRotationPeriod
+    , fmap (("IndexRotationPeriod",) . toJSON) _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationIndexRotationPeriod
     , fmap (("ProcessingConfiguration",) . toJSON) _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationProcessingConfiguration
-    , (Just . ("RetryOptions",) . toJSON) _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationRetryOptions
+    , fmap (("RetryOptions",) . toJSON) _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationRetryOptions
     , (Just . ("RoleARN",) . toJSON) _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationRoleARN
-    , (Just . ("S3BackupMode",) . toJSON) _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationS3BackupMode
+    , fmap (("S3BackupMode",) . toJSON) _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationS3BackupMode
     , (Just . ("S3Configuration",) . toJSON) _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationS3Configuration
-    , (Just . ("TypeName",) . toJSON) _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationTypeName
+    , fmap (("TypeName",) . toJSON) _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationTypeName
+    , fmap (("VpcConfiguration",) . toJSON) _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationVpcConfiguration
     ]
 
 -- | Constructor for
 -- 'KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration'
 -- containing required fields as arguments.
 kinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration
-  :: KinesisFirehoseDeliveryStreamElasticsearchBufferingHints -- ^ 'kfdsedcBufferingHints'
-  -> Val Text -- ^ 'kfdsedcDomainARN'
-  -> Val Text -- ^ 'kfdsedcIndexName'
-  -> Val Text -- ^ 'kfdsedcIndexRotationPeriod'
-  -> KinesisFirehoseDeliveryStreamElasticsearchRetryOptions -- ^ 'kfdsedcRetryOptions'
+  :: Val Text -- ^ 'kfdsedcIndexName'
   -> Val Text -- ^ 'kfdsedcRoleARN'
-  -> Val KinesisFirehoseElasticsearchS3BackupMode -- ^ 'kfdsedcS3BackupMode'
   -> KinesisFirehoseDeliveryStreamS3DestinationConfiguration -- ^ 'kfdsedcS3Configuration'
-  -> Val Text -- ^ 'kfdsedcTypeName'
   -> KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration
-kinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration bufferingHintsarg domainARNarg indexNamearg indexRotationPeriodarg retryOptionsarg roleARNarg s3BackupModearg s3Configurationarg typeNamearg =
+kinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration indexNamearg roleARNarg s3Configurationarg =
   KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration
-  { _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationBufferingHints = bufferingHintsarg
+  { _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationBufferingHints = Nothing
   , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationCloudWatchLoggingOptions = Nothing
-  , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationDomainARN = domainARNarg
+  , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationClusterEndpoint = Nothing
+  , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationDomainARN = Nothing
   , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationIndexName = indexNamearg
-  , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationIndexRotationPeriod = indexRotationPeriodarg
+  , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationIndexRotationPeriod = Nothing
   , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationProcessingConfiguration = Nothing
-  , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationRetryOptions = retryOptionsarg
+  , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationRetryOptions = Nothing
   , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationRoleARN = roleARNarg
-  , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationS3BackupMode = s3BackupModearg
+  , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationS3BackupMode = Nothing
   , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationS3Configuration = s3Configurationarg
-  , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationTypeName = typeNamearg
+  , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationTypeName = Nothing
+  , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationVpcConfiguration = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-bufferinghints
-kfdsedcBufferingHints :: Lens' KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration KinesisFirehoseDeliveryStreamElasticsearchBufferingHints
+kfdsedcBufferingHints :: Lens' KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration (Maybe KinesisFirehoseDeliveryStreamElasticsearchBufferingHints)
 kfdsedcBufferingHints = lens _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationBufferingHints (\s a -> s { _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationBufferingHints = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-cloudwatchloggingoptions
 kfdsedcCloudWatchLoggingOptions :: Lens' KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration (Maybe KinesisFirehoseDeliveryStreamCloudWatchLoggingOptions)
 kfdsedcCloudWatchLoggingOptions = lens _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationCloudWatchLoggingOptions (\s a -> s { _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationCloudWatchLoggingOptions = a })
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-clusterendpoint
+kfdsedcClusterEndpoint :: Lens' KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration (Maybe (Val Text))
+kfdsedcClusterEndpoint = lens _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationClusterEndpoint (\s a -> s { _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationClusterEndpoint = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-domainarn
-kfdsedcDomainARN :: Lens' KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration (Val Text)
+kfdsedcDomainARN :: Lens' KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration (Maybe (Val Text))
 kfdsedcDomainARN = lens _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationDomainARN (\s a -> s { _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationDomainARN = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-indexname
@@ -97,7 +102,7 @@
 kfdsedcIndexName = lens _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationIndexName (\s a -> s { _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationIndexName = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-indexrotationperiod
-kfdsedcIndexRotationPeriod :: Lens' KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration (Val Text)
+kfdsedcIndexRotationPeriod :: Lens' KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration (Maybe (Val Text))
 kfdsedcIndexRotationPeriod = lens _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationIndexRotationPeriod (\s a -> s { _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationIndexRotationPeriod = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-processingconfiguration
@@ -105,7 +110,7 @@
 kfdsedcProcessingConfiguration = lens _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationProcessingConfiguration (\s a -> s { _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationProcessingConfiguration = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-retryoptions
-kfdsedcRetryOptions :: Lens' KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration KinesisFirehoseDeliveryStreamElasticsearchRetryOptions
+kfdsedcRetryOptions :: Lens' KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration (Maybe KinesisFirehoseDeliveryStreamElasticsearchRetryOptions)
 kfdsedcRetryOptions = lens _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationRetryOptions (\s a -> s { _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationRetryOptions = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-rolearn
@@ -113,7 +118,7 @@
 kfdsedcRoleARN = lens _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationRoleARN (\s a -> s { _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationRoleARN = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-s3backupmode
-kfdsedcS3BackupMode :: Lens' KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration (Val KinesisFirehoseElasticsearchS3BackupMode)
+kfdsedcS3BackupMode :: Lens' KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration (Maybe (Val KinesisFirehoseElasticsearchS3BackupMode))
 kfdsedcS3BackupMode = lens _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationS3BackupMode (\s a -> s { _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationS3BackupMode = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-s3configuration
@@ -121,5 +126,9 @@
 kfdsedcS3Configuration = lens _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationS3Configuration (\s a -> s { _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationS3Configuration = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-typename
-kfdsedcTypeName :: Lens' KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration (Val Text)
+kfdsedcTypeName :: Lens' KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration (Maybe (Val Text))
 kfdsedcTypeName = lens _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationTypeName (\s a -> s { _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationTypeName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-vpcconfiguration
+kfdsedcVpcConfiguration :: Lens' KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration (Maybe KinesisFirehoseDeliveryStreamVpcConfiguration)
+kfdsedcVpcConfiguration = lens _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationVpcConfiguration (\s a -> s { _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationVpcConfiguration = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamElasticsearchRetryOptions.hs b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamElasticsearchRetryOptions.hs
--- a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamElasticsearchRetryOptions.hs
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamElasticsearchRetryOptions.hs
@@ -16,26 +16,25 @@
 -- convenient constructor.
 data KinesisFirehoseDeliveryStreamElasticsearchRetryOptions =
   KinesisFirehoseDeliveryStreamElasticsearchRetryOptions
-  { _kinesisFirehoseDeliveryStreamElasticsearchRetryOptionsDurationInSeconds :: Val Integer
+  { _kinesisFirehoseDeliveryStreamElasticsearchRetryOptionsDurationInSeconds :: Maybe (Val Integer)
   } deriving (Show, Eq)
 
 instance ToJSON KinesisFirehoseDeliveryStreamElasticsearchRetryOptions where
   toJSON KinesisFirehoseDeliveryStreamElasticsearchRetryOptions{..} =
     object $
     catMaybes
-    [ (Just . ("DurationInSeconds",) . toJSON) _kinesisFirehoseDeliveryStreamElasticsearchRetryOptionsDurationInSeconds
+    [ fmap (("DurationInSeconds",) . toJSON) _kinesisFirehoseDeliveryStreamElasticsearchRetryOptionsDurationInSeconds
     ]
 
 -- | Constructor for 'KinesisFirehoseDeliveryStreamElasticsearchRetryOptions'
 -- containing required fields as arguments.
 kinesisFirehoseDeliveryStreamElasticsearchRetryOptions
-  :: Val Integer -- ^ 'kfdseroDurationInSeconds'
-  -> KinesisFirehoseDeliveryStreamElasticsearchRetryOptions
-kinesisFirehoseDeliveryStreamElasticsearchRetryOptions durationInSecondsarg =
+  :: KinesisFirehoseDeliveryStreamElasticsearchRetryOptions
+kinesisFirehoseDeliveryStreamElasticsearchRetryOptions  =
   KinesisFirehoseDeliveryStreamElasticsearchRetryOptions
-  { _kinesisFirehoseDeliveryStreamElasticsearchRetryOptionsDurationInSeconds = durationInSecondsarg
+  { _kinesisFirehoseDeliveryStreamElasticsearchRetryOptionsDurationInSeconds = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchretryoptions.html#cfn-kinesisfirehose-deliverystream-elasticsearchretryoptions-durationinseconds
-kfdseroDurationInSeconds :: Lens' KinesisFirehoseDeliveryStreamElasticsearchRetryOptions (Val Integer)
+kfdseroDurationInSeconds :: Lens' KinesisFirehoseDeliveryStreamElasticsearchRetryOptions (Maybe (Val Integer))
 kfdseroDurationInSeconds = lens _kinesisFirehoseDeliveryStreamElasticsearchRetryOptionsDurationInSeconds (\s a -> s { _kinesisFirehoseDeliveryStreamElasticsearchRetryOptionsDurationInSeconds = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration.hs
--- a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration.hs
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration.hs
@@ -22,9 +22,9 @@
 data KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration =
   KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration
   { _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationBucketARN :: Val Text
-  , _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationBufferingHints :: KinesisFirehoseDeliveryStreamBufferingHints
+  , _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationBufferingHints :: Maybe KinesisFirehoseDeliveryStreamBufferingHints
   , _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationCloudWatchLoggingOptions :: Maybe KinesisFirehoseDeliveryStreamCloudWatchLoggingOptions
-  , _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationCompressionFormat :: Val Text
+  , _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationCompressionFormat :: Maybe (Val Text)
   , _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationDataFormatConversionConfiguration :: Maybe KinesisFirehoseDeliveryStreamDataFormatConversionConfiguration
   , _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationEncryptionConfiguration :: Maybe KinesisFirehoseDeliveryStreamEncryptionConfiguration
   , _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationErrorOutputPrefix :: Maybe (Val Text)
@@ -40,9 +40,9 @@
     object $
     catMaybes
     [ (Just . ("BucketARN",) . toJSON) _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationBucketARN
-    , (Just . ("BufferingHints",) . toJSON) _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationBufferingHints
+    , fmap (("BufferingHints",) . toJSON) _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationBufferingHints
     , fmap (("CloudWatchLoggingOptions",) . toJSON) _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationCloudWatchLoggingOptions
-    , (Just . ("CompressionFormat",) . toJSON) _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationCompressionFormat
+    , fmap (("CompressionFormat",) . toJSON) _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationCompressionFormat
     , fmap (("DataFormatConversionConfiguration",) . toJSON) _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationDataFormatConversionConfiguration
     , fmap (("EncryptionConfiguration",) . toJSON) _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationEncryptionConfiguration
     , fmap (("ErrorOutputPrefix",) . toJSON) _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationErrorOutputPrefix
@@ -58,16 +58,14 @@
 -- containing required fields as arguments.
 kinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration
   :: Val Text -- ^ 'kfdsesdcBucketARN'
-  -> KinesisFirehoseDeliveryStreamBufferingHints -- ^ 'kfdsesdcBufferingHints'
-  -> Val Text -- ^ 'kfdsesdcCompressionFormat'
   -> Val Text -- ^ 'kfdsesdcRoleARN'
   -> KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration
-kinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration bucketARNarg bufferingHintsarg compressionFormatarg roleARNarg =
+kinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration bucketARNarg roleARNarg =
   KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration
   { _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationBucketARN = bucketARNarg
-  , _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationBufferingHints = bufferingHintsarg
+  , _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationBufferingHints = Nothing
   , _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationCloudWatchLoggingOptions = Nothing
-  , _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationCompressionFormat = compressionFormatarg
+  , _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationCompressionFormat = Nothing
   , _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationDataFormatConversionConfiguration = Nothing
   , _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationEncryptionConfiguration = Nothing
   , _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationErrorOutputPrefix = Nothing
@@ -83,7 +81,7 @@
 kfdsesdcBucketARN = lens _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationBucketARN (\s a -> s { _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationBucketARN = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-bufferinghints
-kfdsesdcBufferingHints :: Lens' KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration KinesisFirehoseDeliveryStreamBufferingHints
+kfdsesdcBufferingHints :: Lens' KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration (Maybe KinesisFirehoseDeliveryStreamBufferingHints)
 kfdsesdcBufferingHints = lens _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationBufferingHints (\s a -> s { _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationBufferingHints = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-cloudwatchloggingoptions
@@ -91,7 +89,7 @@
 kfdsesdcCloudWatchLoggingOptions = lens _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationCloudWatchLoggingOptions (\s a -> s { _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationCloudWatchLoggingOptions = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-compressionformat
-kfdsesdcCompressionFormat :: Lens' KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration (Val Text)
+kfdsesdcCompressionFormat :: Lens' KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration (Maybe (Val Text))
 kfdsesdcCompressionFormat = lens _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationCompressionFormat (\s a -> s { _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationCompressionFormat = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-dataformatconversionconfiguration
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamInputFormatConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamInputFormatConfiguration.hs
--- a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamInputFormatConfiguration.hs
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamInputFormatConfiguration.hs
@@ -16,26 +16,25 @@
 -- convenient constructor.
 data KinesisFirehoseDeliveryStreamInputFormatConfiguration =
   KinesisFirehoseDeliveryStreamInputFormatConfiguration
-  { _kinesisFirehoseDeliveryStreamInputFormatConfigurationDeserializer :: KinesisFirehoseDeliveryStreamDeserializer
+  { _kinesisFirehoseDeliveryStreamInputFormatConfigurationDeserializer :: Maybe KinesisFirehoseDeliveryStreamDeserializer
   } deriving (Show, Eq)
 
 instance ToJSON KinesisFirehoseDeliveryStreamInputFormatConfiguration where
   toJSON KinesisFirehoseDeliveryStreamInputFormatConfiguration{..} =
     object $
     catMaybes
-    [ (Just . ("Deserializer",) . toJSON) _kinesisFirehoseDeliveryStreamInputFormatConfigurationDeserializer
+    [ fmap (("Deserializer",) . toJSON) _kinesisFirehoseDeliveryStreamInputFormatConfigurationDeserializer
     ]
 
 -- | Constructor for 'KinesisFirehoseDeliveryStreamInputFormatConfiguration'
 -- containing required fields as arguments.
 kinesisFirehoseDeliveryStreamInputFormatConfiguration
-  :: KinesisFirehoseDeliveryStreamDeserializer -- ^ 'kfdsifcDeserializer'
-  -> KinesisFirehoseDeliveryStreamInputFormatConfiguration
-kinesisFirehoseDeliveryStreamInputFormatConfiguration deserializerarg =
+  :: KinesisFirehoseDeliveryStreamInputFormatConfiguration
+kinesisFirehoseDeliveryStreamInputFormatConfiguration  =
   KinesisFirehoseDeliveryStreamInputFormatConfiguration
-  { _kinesisFirehoseDeliveryStreamInputFormatConfigurationDeserializer = deserializerarg
+  { _kinesisFirehoseDeliveryStreamInputFormatConfigurationDeserializer = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-inputformatconfiguration.html#cfn-kinesisfirehose-deliverystream-inputformatconfiguration-deserializer
-kfdsifcDeserializer :: Lens' KinesisFirehoseDeliveryStreamInputFormatConfiguration KinesisFirehoseDeliveryStreamDeserializer
+kfdsifcDeserializer :: Lens' KinesisFirehoseDeliveryStreamInputFormatConfiguration (Maybe KinesisFirehoseDeliveryStreamDeserializer)
 kfdsifcDeserializer = lens _kinesisFirehoseDeliveryStreamInputFormatConfigurationDeserializer (\s a -> s { _kinesisFirehoseDeliveryStreamInputFormatConfigurationDeserializer = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamOutputFormatConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamOutputFormatConfiguration.hs
--- a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamOutputFormatConfiguration.hs
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamOutputFormatConfiguration.hs
@@ -16,26 +16,25 @@
 -- convenient constructor.
 data KinesisFirehoseDeliveryStreamOutputFormatConfiguration =
   KinesisFirehoseDeliveryStreamOutputFormatConfiguration
-  { _kinesisFirehoseDeliveryStreamOutputFormatConfigurationSerializer :: KinesisFirehoseDeliveryStreamSerializer
+  { _kinesisFirehoseDeliveryStreamOutputFormatConfigurationSerializer :: Maybe KinesisFirehoseDeliveryStreamSerializer
   } deriving (Show, Eq)
 
 instance ToJSON KinesisFirehoseDeliveryStreamOutputFormatConfiguration where
   toJSON KinesisFirehoseDeliveryStreamOutputFormatConfiguration{..} =
     object $
     catMaybes
-    [ (Just . ("Serializer",) . toJSON) _kinesisFirehoseDeliveryStreamOutputFormatConfigurationSerializer
+    [ fmap (("Serializer",) . toJSON) _kinesisFirehoseDeliveryStreamOutputFormatConfigurationSerializer
     ]
 
 -- | Constructor for 'KinesisFirehoseDeliveryStreamOutputFormatConfiguration'
 -- containing required fields as arguments.
 kinesisFirehoseDeliveryStreamOutputFormatConfiguration
-  :: KinesisFirehoseDeliveryStreamSerializer -- ^ 'kfdsofcSerializer'
-  -> KinesisFirehoseDeliveryStreamOutputFormatConfiguration
-kinesisFirehoseDeliveryStreamOutputFormatConfiguration serializerarg =
+  :: KinesisFirehoseDeliveryStreamOutputFormatConfiguration
+kinesisFirehoseDeliveryStreamOutputFormatConfiguration  =
   KinesisFirehoseDeliveryStreamOutputFormatConfiguration
-  { _kinesisFirehoseDeliveryStreamOutputFormatConfigurationSerializer = serializerarg
+  { _kinesisFirehoseDeliveryStreamOutputFormatConfigurationSerializer = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-outputformatconfiguration.html#cfn-kinesisfirehose-deliverystream-outputformatconfiguration-serializer
-kfdsofcSerializer :: Lens' KinesisFirehoseDeliveryStreamOutputFormatConfiguration KinesisFirehoseDeliveryStreamSerializer
+kfdsofcSerializer :: Lens' KinesisFirehoseDeliveryStreamOutputFormatConfiguration (Maybe KinesisFirehoseDeliveryStreamSerializer)
 kfdsofcSerializer = lens _kinesisFirehoseDeliveryStreamOutputFormatConfigurationSerializer (\s a -> s { _kinesisFirehoseDeliveryStreamOutputFormatConfigurationSerializer = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamProcessor.hs b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamProcessor.hs
--- a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamProcessor.hs
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamProcessor.hs
@@ -15,7 +15,7 @@
 -- constructor.
 data KinesisFirehoseDeliveryStreamProcessor =
   KinesisFirehoseDeliveryStreamProcessor
-  { _kinesisFirehoseDeliveryStreamProcessorParameters :: [KinesisFirehoseDeliveryStreamProcessorParameter]
+  { _kinesisFirehoseDeliveryStreamProcessorParameters :: Maybe [KinesisFirehoseDeliveryStreamProcessorParameter]
   , _kinesisFirehoseDeliveryStreamProcessorType :: Val Text
   } deriving (Show, Eq)
 
@@ -23,24 +23,23 @@
   toJSON KinesisFirehoseDeliveryStreamProcessor{..} =
     object $
     catMaybes
-    [ (Just . ("Parameters",) . toJSON) _kinesisFirehoseDeliveryStreamProcessorParameters
+    [ fmap (("Parameters",) . toJSON) _kinesisFirehoseDeliveryStreamProcessorParameters
     , (Just . ("Type",) . toJSON) _kinesisFirehoseDeliveryStreamProcessorType
     ]
 
 -- | Constructor for 'KinesisFirehoseDeliveryStreamProcessor' containing
 -- required fields as arguments.
 kinesisFirehoseDeliveryStreamProcessor
-  :: [KinesisFirehoseDeliveryStreamProcessorParameter] -- ^ 'kfdspParameters'
-  -> Val Text -- ^ 'kfdspType'
+  :: Val Text -- ^ 'kfdspType'
   -> KinesisFirehoseDeliveryStreamProcessor
-kinesisFirehoseDeliveryStreamProcessor parametersarg typearg =
+kinesisFirehoseDeliveryStreamProcessor typearg =
   KinesisFirehoseDeliveryStreamProcessor
-  { _kinesisFirehoseDeliveryStreamProcessorParameters = parametersarg
+  { _kinesisFirehoseDeliveryStreamProcessorParameters = Nothing
   , _kinesisFirehoseDeliveryStreamProcessorType = typearg
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processor.html#cfn-kinesisfirehose-deliverystream-processor-parameters
-kfdspParameters :: Lens' KinesisFirehoseDeliveryStreamProcessor [KinesisFirehoseDeliveryStreamProcessorParameter]
+kfdspParameters :: Lens' KinesisFirehoseDeliveryStreamProcessor (Maybe [KinesisFirehoseDeliveryStreamProcessorParameter])
 kfdspParameters = lens _kinesisFirehoseDeliveryStreamProcessorParameters (\s a -> s { _kinesisFirehoseDeliveryStreamProcessorParameters = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processor.html#cfn-kinesisfirehose-deliverystream-processor-type
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration.hs
--- a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration.hs
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration.hs
@@ -11,6 +11,7 @@
 import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamCloudWatchLoggingOptions
 import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamCopyCommand
 import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamProcessingConfiguration
+import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamRedshiftRetryOptions
 import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamS3DestinationConfiguration
 
 -- | Full data type definition for
@@ -24,7 +25,10 @@
   , _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationCopyCommand :: KinesisFirehoseDeliveryStreamCopyCommand
   , _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationPassword :: Val Text
   , _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationProcessingConfiguration :: Maybe KinesisFirehoseDeliveryStreamProcessingConfiguration
+  , _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationRetryOptions :: Maybe KinesisFirehoseDeliveryStreamRedshiftRetryOptions
   , _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationRoleARN :: Val Text
+  , _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationS3BackupConfiguration :: Maybe KinesisFirehoseDeliveryStreamS3DestinationConfiguration
+  , _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationS3BackupMode :: Maybe (Val Text)
   , _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationS3Configuration :: KinesisFirehoseDeliveryStreamS3DestinationConfiguration
   , _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationUsername :: Val Text
   } deriving (Show, Eq)
@@ -38,7 +42,10 @@
     , (Just . ("CopyCommand",) . toJSON) _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationCopyCommand
     , (Just . ("Password",) . toJSON) _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationPassword
     , fmap (("ProcessingConfiguration",) . toJSON) _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationProcessingConfiguration
+    , fmap (("RetryOptions",) . toJSON) _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationRetryOptions
     , (Just . ("RoleARN",) . toJSON) _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationRoleARN
+    , fmap (("S3BackupConfiguration",) . toJSON) _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationS3BackupConfiguration
+    , fmap (("S3BackupMode",) . toJSON) _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationS3BackupMode
     , (Just . ("S3Configuration",) . toJSON) _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationS3Configuration
     , (Just . ("Username",) . toJSON) _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationUsername
     ]
@@ -61,7 +68,10 @@
   , _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationCopyCommand = copyCommandarg
   , _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationPassword = passwordarg
   , _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationProcessingConfiguration = Nothing
+  , _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationRetryOptions = Nothing
   , _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationRoleARN = roleARNarg
+  , _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationS3BackupConfiguration = Nothing
+  , _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationS3BackupMode = Nothing
   , _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationS3Configuration = s3Configurationarg
   , _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationUsername = usernamearg
   }
@@ -86,9 +96,21 @@
 kfdsrdcProcessingConfiguration :: Lens' KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration (Maybe KinesisFirehoseDeliveryStreamProcessingConfiguration)
 kfdsrdcProcessingConfiguration = lens _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationProcessingConfiguration (\s a -> s { _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationProcessingConfiguration = a })
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-retryoptions
+kfdsrdcRetryOptions :: Lens' KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration (Maybe KinesisFirehoseDeliveryStreamRedshiftRetryOptions)
+kfdsrdcRetryOptions = lens _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationRetryOptions (\s a -> s { _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationRetryOptions = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-rolearn
 kfdsrdcRoleARN :: Lens' KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration (Val Text)
 kfdsrdcRoleARN = lens _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationRoleARN (\s a -> s { _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationRoleARN = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-s3backupconfiguration
+kfdsrdcS3BackupConfiguration :: Lens' KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration (Maybe KinesisFirehoseDeliveryStreamS3DestinationConfiguration)
+kfdsrdcS3BackupConfiguration = lens _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationS3BackupConfiguration (\s a -> s { _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationS3BackupConfiguration = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-s3backupmode
+kfdsrdcS3BackupMode :: Lens' KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration (Maybe (Val Text))
+kfdsrdcS3BackupMode = lens _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationS3BackupMode (\s a -> s { _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationS3BackupMode = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-s3configuration
 kfdsrdcS3Configuration :: Lens' KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration KinesisFirehoseDeliveryStreamS3DestinationConfiguration
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamRedshiftRetryOptions.hs b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamRedshiftRetryOptions.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamRedshiftRetryOptions.hs
@@ -0,0 +1,40 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftretryoptions.html
+
+module Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamRedshiftRetryOptions where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- KinesisFirehoseDeliveryStreamRedshiftRetryOptions. See
+-- 'kinesisFirehoseDeliveryStreamRedshiftRetryOptions' for a more convenient
+-- constructor.
+data KinesisFirehoseDeliveryStreamRedshiftRetryOptions =
+  KinesisFirehoseDeliveryStreamRedshiftRetryOptions
+  { _kinesisFirehoseDeliveryStreamRedshiftRetryOptionsDurationInSeconds :: Maybe (Val Integer)
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisFirehoseDeliveryStreamRedshiftRetryOptions where
+  toJSON KinesisFirehoseDeliveryStreamRedshiftRetryOptions{..} =
+    object $
+    catMaybes
+    [ fmap (("DurationInSeconds",) . toJSON) _kinesisFirehoseDeliveryStreamRedshiftRetryOptionsDurationInSeconds
+    ]
+
+-- | Constructor for 'KinesisFirehoseDeliveryStreamRedshiftRetryOptions'
+-- containing required fields as arguments.
+kinesisFirehoseDeliveryStreamRedshiftRetryOptions
+  :: KinesisFirehoseDeliveryStreamRedshiftRetryOptions
+kinesisFirehoseDeliveryStreamRedshiftRetryOptions  =
+  KinesisFirehoseDeliveryStreamRedshiftRetryOptions
+  { _kinesisFirehoseDeliveryStreamRedshiftRetryOptionsDurationInSeconds = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftretryoptions.html#cfn-kinesisfirehose-deliverystream-redshiftretryoptions-durationinseconds
+kfdsrroDurationInSeconds :: Lens' KinesisFirehoseDeliveryStreamRedshiftRetryOptions (Maybe (Val Integer))
+kfdsrroDurationInSeconds = lens _kinesisFirehoseDeliveryStreamRedshiftRetryOptionsDurationInSeconds (\s a -> s { _kinesisFirehoseDeliveryStreamRedshiftRetryOptionsDurationInSeconds = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamS3DestinationConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamS3DestinationConfiguration.hs
--- a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamS3DestinationConfiguration.hs
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamS3DestinationConfiguration.hs
@@ -20,9 +20,9 @@
 data KinesisFirehoseDeliveryStreamS3DestinationConfiguration =
   KinesisFirehoseDeliveryStreamS3DestinationConfiguration
   { _kinesisFirehoseDeliveryStreamS3DestinationConfigurationBucketARN :: Val Text
-  , _kinesisFirehoseDeliveryStreamS3DestinationConfigurationBufferingHints :: KinesisFirehoseDeliveryStreamBufferingHints
+  , _kinesisFirehoseDeliveryStreamS3DestinationConfigurationBufferingHints :: Maybe KinesisFirehoseDeliveryStreamBufferingHints
   , _kinesisFirehoseDeliveryStreamS3DestinationConfigurationCloudWatchLoggingOptions :: Maybe KinesisFirehoseDeliveryStreamCloudWatchLoggingOptions
-  , _kinesisFirehoseDeliveryStreamS3DestinationConfigurationCompressionFormat :: Val KinesisFirehoseS3CompressionFormat
+  , _kinesisFirehoseDeliveryStreamS3DestinationConfigurationCompressionFormat :: Maybe (Val KinesisFirehoseS3CompressionFormat)
   , _kinesisFirehoseDeliveryStreamS3DestinationConfigurationEncryptionConfiguration :: Maybe KinesisFirehoseDeliveryStreamEncryptionConfiguration
   , _kinesisFirehoseDeliveryStreamS3DestinationConfigurationErrorOutputPrefix :: Maybe (Val Text)
   , _kinesisFirehoseDeliveryStreamS3DestinationConfigurationPrefix :: Maybe (Val Text)
@@ -34,9 +34,9 @@
     object $
     catMaybes
     [ (Just . ("BucketARN",) . toJSON) _kinesisFirehoseDeliveryStreamS3DestinationConfigurationBucketARN
-    , (Just . ("BufferingHints",) . toJSON) _kinesisFirehoseDeliveryStreamS3DestinationConfigurationBufferingHints
+    , fmap (("BufferingHints",) . toJSON) _kinesisFirehoseDeliveryStreamS3DestinationConfigurationBufferingHints
     , fmap (("CloudWatchLoggingOptions",) . toJSON) _kinesisFirehoseDeliveryStreamS3DestinationConfigurationCloudWatchLoggingOptions
-    , (Just . ("CompressionFormat",) . toJSON) _kinesisFirehoseDeliveryStreamS3DestinationConfigurationCompressionFormat
+    , fmap (("CompressionFormat",) . toJSON) _kinesisFirehoseDeliveryStreamS3DestinationConfigurationCompressionFormat
     , fmap (("EncryptionConfiguration",) . toJSON) _kinesisFirehoseDeliveryStreamS3DestinationConfigurationEncryptionConfiguration
     , fmap (("ErrorOutputPrefix",) . toJSON) _kinesisFirehoseDeliveryStreamS3DestinationConfigurationErrorOutputPrefix
     , fmap (("Prefix",) . toJSON) _kinesisFirehoseDeliveryStreamS3DestinationConfigurationPrefix
@@ -47,16 +47,14 @@
 -- containing required fields as arguments.
 kinesisFirehoseDeliveryStreamS3DestinationConfiguration
   :: Val Text -- ^ 'kfdssdcBucketARN'
-  -> KinesisFirehoseDeliveryStreamBufferingHints -- ^ 'kfdssdcBufferingHints'
-  -> Val KinesisFirehoseS3CompressionFormat -- ^ 'kfdssdcCompressionFormat'
   -> Val Text -- ^ 'kfdssdcRoleARN'
   -> KinesisFirehoseDeliveryStreamS3DestinationConfiguration
-kinesisFirehoseDeliveryStreamS3DestinationConfiguration bucketARNarg bufferingHintsarg compressionFormatarg roleARNarg =
+kinesisFirehoseDeliveryStreamS3DestinationConfiguration bucketARNarg roleARNarg =
   KinesisFirehoseDeliveryStreamS3DestinationConfiguration
   { _kinesisFirehoseDeliveryStreamS3DestinationConfigurationBucketARN = bucketARNarg
-  , _kinesisFirehoseDeliveryStreamS3DestinationConfigurationBufferingHints = bufferingHintsarg
+  , _kinesisFirehoseDeliveryStreamS3DestinationConfigurationBufferingHints = Nothing
   , _kinesisFirehoseDeliveryStreamS3DestinationConfigurationCloudWatchLoggingOptions = Nothing
-  , _kinesisFirehoseDeliveryStreamS3DestinationConfigurationCompressionFormat = compressionFormatarg
+  , _kinesisFirehoseDeliveryStreamS3DestinationConfigurationCompressionFormat = Nothing
   , _kinesisFirehoseDeliveryStreamS3DestinationConfigurationEncryptionConfiguration = Nothing
   , _kinesisFirehoseDeliveryStreamS3DestinationConfigurationErrorOutputPrefix = Nothing
   , _kinesisFirehoseDeliveryStreamS3DestinationConfigurationPrefix = Nothing
@@ -68,7 +66,7 @@
 kfdssdcBucketARN = lens _kinesisFirehoseDeliveryStreamS3DestinationConfigurationBucketARN (\s a -> s { _kinesisFirehoseDeliveryStreamS3DestinationConfigurationBucketARN = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-s3destinationconfiguration-bufferinghints
-kfdssdcBufferingHints :: Lens' KinesisFirehoseDeliveryStreamS3DestinationConfiguration KinesisFirehoseDeliveryStreamBufferingHints
+kfdssdcBufferingHints :: Lens' KinesisFirehoseDeliveryStreamS3DestinationConfiguration (Maybe KinesisFirehoseDeliveryStreamBufferingHints)
 kfdssdcBufferingHints = lens _kinesisFirehoseDeliveryStreamS3DestinationConfigurationBufferingHints (\s a -> s { _kinesisFirehoseDeliveryStreamS3DestinationConfigurationBufferingHints = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-s3destinationconfiguration-cloudwatchloggingoptions
@@ -76,7 +74,7 @@
 kfdssdcCloudWatchLoggingOptions = lens _kinesisFirehoseDeliveryStreamS3DestinationConfigurationCloudWatchLoggingOptions (\s a -> s { _kinesisFirehoseDeliveryStreamS3DestinationConfigurationCloudWatchLoggingOptions = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-s3destinationconfiguration-compressionformat
-kfdssdcCompressionFormat :: Lens' KinesisFirehoseDeliveryStreamS3DestinationConfiguration (Val KinesisFirehoseS3CompressionFormat)
+kfdssdcCompressionFormat :: Lens' KinesisFirehoseDeliveryStreamS3DestinationConfiguration (Maybe (Val KinesisFirehoseS3CompressionFormat))
 kfdssdcCompressionFormat = lens _kinesisFirehoseDeliveryStreamS3DestinationConfigurationCompressionFormat (\s a -> s { _kinesisFirehoseDeliveryStreamS3DestinationConfigurationCompressionFormat = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-s3destinationconfiguration-encryptionconfiguration
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamSchemaConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamSchemaConfiguration.hs
--- a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamSchemaConfiguration.hs
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamSchemaConfiguration.hs
@@ -16,66 +16,60 @@
 -- constructor.
 data KinesisFirehoseDeliveryStreamSchemaConfiguration =
   KinesisFirehoseDeliveryStreamSchemaConfiguration
-  { _kinesisFirehoseDeliveryStreamSchemaConfigurationCatalogId :: Val Text
-  , _kinesisFirehoseDeliveryStreamSchemaConfigurationDatabaseName :: Val Text
-  , _kinesisFirehoseDeliveryStreamSchemaConfigurationRegion :: Val Text
-  , _kinesisFirehoseDeliveryStreamSchemaConfigurationRoleARN :: Val Text
-  , _kinesisFirehoseDeliveryStreamSchemaConfigurationTableName :: Val Text
-  , _kinesisFirehoseDeliveryStreamSchemaConfigurationVersionId :: Val Text
+  { _kinesisFirehoseDeliveryStreamSchemaConfigurationCatalogId :: Maybe (Val Text)
+  , _kinesisFirehoseDeliveryStreamSchemaConfigurationDatabaseName :: Maybe (Val Text)
+  , _kinesisFirehoseDeliveryStreamSchemaConfigurationRegion :: Maybe (Val Text)
+  , _kinesisFirehoseDeliveryStreamSchemaConfigurationRoleARN :: Maybe (Val Text)
+  , _kinesisFirehoseDeliveryStreamSchemaConfigurationTableName :: Maybe (Val Text)
+  , _kinesisFirehoseDeliveryStreamSchemaConfigurationVersionId :: Maybe (Val Text)
   } deriving (Show, Eq)
 
 instance ToJSON KinesisFirehoseDeliveryStreamSchemaConfiguration where
   toJSON KinesisFirehoseDeliveryStreamSchemaConfiguration{..} =
     object $
     catMaybes
-    [ (Just . ("CatalogId",) . toJSON) _kinesisFirehoseDeliveryStreamSchemaConfigurationCatalogId
-    , (Just . ("DatabaseName",) . toJSON) _kinesisFirehoseDeliveryStreamSchemaConfigurationDatabaseName
-    , (Just . ("Region",) . toJSON) _kinesisFirehoseDeliveryStreamSchemaConfigurationRegion
-    , (Just . ("RoleARN",) . toJSON) _kinesisFirehoseDeliveryStreamSchemaConfigurationRoleARN
-    , (Just . ("TableName",) . toJSON) _kinesisFirehoseDeliveryStreamSchemaConfigurationTableName
-    , (Just . ("VersionId",) . toJSON) _kinesisFirehoseDeliveryStreamSchemaConfigurationVersionId
+    [ fmap (("CatalogId",) . toJSON) _kinesisFirehoseDeliveryStreamSchemaConfigurationCatalogId
+    , fmap (("DatabaseName",) . toJSON) _kinesisFirehoseDeliveryStreamSchemaConfigurationDatabaseName
+    , fmap (("Region",) . toJSON) _kinesisFirehoseDeliveryStreamSchemaConfigurationRegion
+    , fmap (("RoleARN",) . toJSON) _kinesisFirehoseDeliveryStreamSchemaConfigurationRoleARN
+    , fmap (("TableName",) . toJSON) _kinesisFirehoseDeliveryStreamSchemaConfigurationTableName
+    , fmap (("VersionId",) . toJSON) _kinesisFirehoseDeliveryStreamSchemaConfigurationVersionId
     ]
 
 -- | Constructor for 'KinesisFirehoseDeliveryStreamSchemaConfiguration'
 -- containing required fields as arguments.
 kinesisFirehoseDeliveryStreamSchemaConfiguration
-  :: Val Text -- ^ 'kfdsscCatalogId'
-  -> Val Text -- ^ 'kfdsscDatabaseName'
-  -> Val Text -- ^ 'kfdsscRegion'
-  -> Val Text -- ^ 'kfdsscRoleARN'
-  -> Val Text -- ^ 'kfdsscTableName'
-  -> Val Text -- ^ 'kfdsscVersionId'
-  -> KinesisFirehoseDeliveryStreamSchemaConfiguration
-kinesisFirehoseDeliveryStreamSchemaConfiguration catalogIdarg databaseNamearg regionarg roleARNarg tableNamearg versionIdarg =
+  :: KinesisFirehoseDeliveryStreamSchemaConfiguration
+kinesisFirehoseDeliveryStreamSchemaConfiguration  =
   KinesisFirehoseDeliveryStreamSchemaConfiguration
-  { _kinesisFirehoseDeliveryStreamSchemaConfigurationCatalogId = catalogIdarg
-  , _kinesisFirehoseDeliveryStreamSchemaConfigurationDatabaseName = databaseNamearg
-  , _kinesisFirehoseDeliveryStreamSchemaConfigurationRegion = regionarg
-  , _kinesisFirehoseDeliveryStreamSchemaConfigurationRoleARN = roleARNarg
-  , _kinesisFirehoseDeliveryStreamSchemaConfigurationTableName = tableNamearg
-  , _kinesisFirehoseDeliveryStreamSchemaConfigurationVersionId = versionIdarg
+  { _kinesisFirehoseDeliveryStreamSchemaConfigurationCatalogId = Nothing
+  , _kinesisFirehoseDeliveryStreamSchemaConfigurationDatabaseName = Nothing
+  , _kinesisFirehoseDeliveryStreamSchemaConfigurationRegion = Nothing
+  , _kinesisFirehoseDeliveryStreamSchemaConfigurationRoleARN = Nothing
+  , _kinesisFirehoseDeliveryStreamSchemaConfigurationTableName = Nothing
+  , _kinesisFirehoseDeliveryStreamSchemaConfigurationVersionId = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-schemaconfiguration.html#cfn-kinesisfirehose-deliverystream-schemaconfiguration-catalogid
-kfdsscCatalogId :: Lens' KinesisFirehoseDeliveryStreamSchemaConfiguration (Val Text)
+kfdsscCatalogId :: Lens' KinesisFirehoseDeliveryStreamSchemaConfiguration (Maybe (Val Text))
 kfdsscCatalogId = lens _kinesisFirehoseDeliveryStreamSchemaConfigurationCatalogId (\s a -> s { _kinesisFirehoseDeliveryStreamSchemaConfigurationCatalogId = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-schemaconfiguration.html#cfn-kinesisfirehose-deliverystream-schemaconfiguration-databasename
-kfdsscDatabaseName :: Lens' KinesisFirehoseDeliveryStreamSchemaConfiguration (Val Text)
+kfdsscDatabaseName :: Lens' KinesisFirehoseDeliveryStreamSchemaConfiguration (Maybe (Val Text))
 kfdsscDatabaseName = lens _kinesisFirehoseDeliveryStreamSchemaConfigurationDatabaseName (\s a -> s { _kinesisFirehoseDeliveryStreamSchemaConfigurationDatabaseName = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-schemaconfiguration.html#cfn-kinesisfirehose-deliverystream-schemaconfiguration-region
-kfdsscRegion :: Lens' KinesisFirehoseDeliveryStreamSchemaConfiguration (Val Text)
+kfdsscRegion :: Lens' KinesisFirehoseDeliveryStreamSchemaConfiguration (Maybe (Val Text))
 kfdsscRegion = lens _kinesisFirehoseDeliveryStreamSchemaConfigurationRegion (\s a -> s { _kinesisFirehoseDeliveryStreamSchemaConfigurationRegion = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-schemaconfiguration.html#cfn-kinesisfirehose-deliverystream-schemaconfiguration-rolearn
-kfdsscRoleARN :: Lens' KinesisFirehoseDeliveryStreamSchemaConfiguration (Val Text)
+kfdsscRoleARN :: Lens' KinesisFirehoseDeliveryStreamSchemaConfiguration (Maybe (Val Text))
 kfdsscRoleARN = lens _kinesisFirehoseDeliveryStreamSchemaConfigurationRoleARN (\s a -> s { _kinesisFirehoseDeliveryStreamSchemaConfigurationRoleARN = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-schemaconfiguration.html#cfn-kinesisfirehose-deliverystream-schemaconfiguration-tablename
-kfdsscTableName :: Lens' KinesisFirehoseDeliveryStreamSchemaConfiguration (Val Text)
+kfdsscTableName :: Lens' KinesisFirehoseDeliveryStreamSchemaConfiguration (Maybe (Val Text))
 kfdsscTableName = lens _kinesisFirehoseDeliveryStreamSchemaConfigurationTableName (\s a -> s { _kinesisFirehoseDeliveryStreamSchemaConfigurationTableName = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-schemaconfiguration.html#cfn-kinesisfirehose-deliverystream-schemaconfiguration-versionid
-kfdsscVersionId :: Lens' KinesisFirehoseDeliveryStreamSchemaConfiguration (Val Text)
+kfdsscVersionId :: Lens' KinesisFirehoseDeliveryStreamSchemaConfiguration (Maybe (Val Text))
 kfdsscVersionId = lens _kinesisFirehoseDeliveryStreamSchemaConfigurationVersionId (\s a -> s { _kinesisFirehoseDeliveryStreamSchemaConfigurationVersionId = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamSplunkRetryOptions.hs b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamSplunkRetryOptions.hs
--- a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamSplunkRetryOptions.hs
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamSplunkRetryOptions.hs
@@ -16,26 +16,25 @@
 -- constructor.
 data KinesisFirehoseDeliveryStreamSplunkRetryOptions =
   KinesisFirehoseDeliveryStreamSplunkRetryOptions
-  { _kinesisFirehoseDeliveryStreamSplunkRetryOptionsDurationInSeconds :: Val Integer
+  { _kinesisFirehoseDeliveryStreamSplunkRetryOptionsDurationInSeconds :: Maybe (Val Integer)
   } deriving (Show, Eq)
 
 instance ToJSON KinesisFirehoseDeliveryStreamSplunkRetryOptions where
   toJSON KinesisFirehoseDeliveryStreamSplunkRetryOptions{..} =
     object $
     catMaybes
-    [ (Just . ("DurationInSeconds",) . toJSON) _kinesisFirehoseDeliveryStreamSplunkRetryOptionsDurationInSeconds
+    [ fmap (("DurationInSeconds",) . toJSON) _kinesisFirehoseDeliveryStreamSplunkRetryOptionsDurationInSeconds
     ]
 
 -- | Constructor for 'KinesisFirehoseDeliveryStreamSplunkRetryOptions'
 -- containing required fields as arguments.
 kinesisFirehoseDeliveryStreamSplunkRetryOptions
-  :: Val Integer -- ^ 'kfdssroDurationInSeconds'
-  -> KinesisFirehoseDeliveryStreamSplunkRetryOptions
-kinesisFirehoseDeliveryStreamSplunkRetryOptions durationInSecondsarg =
+  :: KinesisFirehoseDeliveryStreamSplunkRetryOptions
+kinesisFirehoseDeliveryStreamSplunkRetryOptions  =
   KinesisFirehoseDeliveryStreamSplunkRetryOptions
-  { _kinesisFirehoseDeliveryStreamSplunkRetryOptionsDurationInSeconds = durationInSecondsarg
+  { _kinesisFirehoseDeliveryStreamSplunkRetryOptionsDurationInSeconds = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-splunkretryoptions.html#cfn-kinesisfirehose-deliverystream-splunkretryoptions-durationinseconds
-kfdssroDurationInSeconds :: Lens' KinesisFirehoseDeliveryStreamSplunkRetryOptions (Val Integer)
+kfdssroDurationInSeconds :: Lens' KinesisFirehoseDeliveryStreamSplunkRetryOptions (Maybe (Val Integer))
 kfdssroDurationInSeconds = lens _kinesisFirehoseDeliveryStreamSplunkRetryOptionsDurationInSeconds (\s a -> s { _kinesisFirehoseDeliveryStreamSplunkRetryOptionsDurationInSeconds = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamVpcConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamVpcConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamVpcConfiguration.hs
@@ -0,0 +1,57 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-vpcconfiguration.html
+
+module Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamVpcConfiguration where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- KinesisFirehoseDeliveryStreamVpcConfiguration. See
+-- 'kinesisFirehoseDeliveryStreamVpcConfiguration' for a more convenient
+-- constructor.
+data KinesisFirehoseDeliveryStreamVpcConfiguration =
+  KinesisFirehoseDeliveryStreamVpcConfiguration
+  { _kinesisFirehoseDeliveryStreamVpcConfigurationRoleARN :: Val Text
+  , _kinesisFirehoseDeliveryStreamVpcConfigurationSecurityGroupIds :: ValList Text
+  , _kinesisFirehoseDeliveryStreamVpcConfigurationSubnetIds :: ValList Text
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisFirehoseDeliveryStreamVpcConfiguration where
+  toJSON KinesisFirehoseDeliveryStreamVpcConfiguration{..} =
+    object $
+    catMaybes
+    [ (Just . ("RoleARN",) . toJSON) _kinesisFirehoseDeliveryStreamVpcConfigurationRoleARN
+    , (Just . ("SecurityGroupIds",) . toJSON) _kinesisFirehoseDeliveryStreamVpcConfigurationSecurityGroupIds
+    , (Just . ("SubnetIds",) . toJSON) _kinesisFirehoseDeliveryStreamVpcConfigurationSubnetIds
+    ]
+
+-- | Constructor for 'KinesisFirehoseDeliveryStreamVpcConfiguration'
+-- containing required fields as arguments.
+kinesisFirehoseDeliveryStreamVpcConfiguration
+  :: Val Text -- ^ 'kfdsvcRoleARN'
+  -> ValList Text -- ^ 'kfdsvcSecurityGroupIds'
+  -> ValList Text -- ^ 'kfdsvcSubnetIds'
+  -> KinesisFirehoseDeliveryStreamVpcConfiguration
+kinesisFirehoseDeliveryStreamVpcConfiguration roleARNarg securityGroupIdsarg subnetIdsarg =
+  KinesisFirehoseDeliveryStreamVpcConfiguration
+  { _kinesisFirehoseDeliveryStreamVpcConfigurationRoleARN = roleARNarg
+  , _kinesisFirehoseDeliveryStreamVpcConfigurationSecurityGroupIds = securityGroupIdsarg
+  , _kinesisFirehoseDeliveryStreamVpcConfigurationSubnetIds = subnetIdsarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-vpcconfiguration.html#cfn-kinesisfirehose-deliverystream-vpcconfiguration-rolearn
+kfdsvcRoleARN :: Lens' KinesisFirehoseDeliveryStreamVpcConfiguration (Val Text)
+kfdsvcRoleARN = lens _kinesisFirehoseDeliveryStreamVpcConfigurationRoleARN (\s a -> s { _kinesisFirehoseDeliveryStreamVpcConfigurationRoleARN = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-vpcconfiguration.html#cfn-kinesisfirehose-deliverystream-vpcconfiguration-securitygroupids
+kfdsvcSecurityGroupIds :: Lens' KinesisFirehoseDeliveryStreamVpcConfiguration (ValList Text)
+kfdsvcSecurityGroupIds = lens _kinesisFirehoseDeliveryStreamVpcConfigurationSecurityGroupIds (\s a -> s { _kinesisFirehoseDeliveryStreamVpcConfigurationSecurityGroupIds = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-vpcconfiguration.html#cfn-kinesisfirehose-deliverystream-vpcconfiguration-subnetids
+kfdsvcSubnetIds :: Lens' KinesisFirehoseDeliveryStreamVpcConfiguration (ValList Text)
+kfdsvcSubnetIds = lens _kinesisFirehoseDeliveryStreamVpcConfigurationSubnetIds (\s a -> s { _kinesisFirehoseDeliveryStreamVpcConfigurationSubnetIds = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/RDSDBProxyAuthFormat.hs b/library-gen/Stratosphere/ResourceProperties/RDSDBProxyAuthFormat.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/RDSDBProxyAuthFormat.hs
@@ -0,0 +1,66 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxy-authformat.html
+
+module Stratosphere.ResourceProperties.RDSDBProxyAuthFormat where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for RDSDBProxyAuthFormat. See
+-- 'rdsdbProxyAuthFormat' for a more convenient constructor.
+data RDSDBProxyAuthFormat =
+  RDSDBProxyAuthFormat
+  { _rDSDBProxyAuthFormatAuthScheme :: Maybe (Val Text)
+  , _rDSDBProxyAuthFormatDescription :: Maybe (Val Text)
+  , _rDSDBProxyAuthFormatIAMAuth :: Maybe (Val Text)
+  , _rDSDBProxyAuthFormatSecretArn :: Maybe (Val Text)
+  , _rDSDBProxyAuthFormatUserName :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON RDSDBProxyAuthFormat where
+  toJSON RDSDBProxyAuthFormat{..} =
+    object $
+    catMaybes
+    [ fmap (("AuthScheme",) . toJSON) _rDSDBProxyAuthFormatAuthScheme
+    , fmap (("Description",) . toJSON) _rDSDBProxyAuthFormatDescription
+    , fmap (("IAMAuth",) . toJSON) _rDSDBProxyAuthFormatIAMAuth
+    , fmap (("SecretArn",) . toJSON) _rDSDBProxyAuthFormatSecretArn
+    , fmap (("UserName",) . toJSON) _rDSDBProxyAuthFormatUserName
+    ]
+
+-- | Constructor for 'RDSDBProxyAuthFormat' containing required fields as
+-- arguments.
+rdsdbProxyAuthFormat
+  :: RDSDBProxyAuthFormat
+rdsdbProxyAuthFormat  =
+  RDSDBProxyAuthFormat
+  { _rDSDBProxyAuthFormatAuthScheme = Nothing
+  , _rDSDBProxyAuthFormatDescription = Nothing
+  , _rDSDBProxyAuthFormatIAMAuth = Nothing
+  , _rDSDBProxyAuthFormatSecretArn = Nothing
+  , _rDSDBProxyAuthFormatUserName = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxy-authformat.html#cfn-rds-dbproxy-authformat-authscheme
+rdsdbpafAuthScheme :: Lens' RDSDBProxyAuthFormat (Maybe (Val Text))
+rdsdbpafAuthScheme = lens _rDSDBProxyAuthFormatAuthScheme (\s a -> s { _rDSDBProxyAuthFormatAuthScheme = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxy-authformat.html#cfn-rds-dbproxy-authformat-description
+rdsdbpafDescription :: Lens' RDSDBProxyAuthFormat (Maybe (Val Text))
+rdsdbpafDescription = lens _rDSDBProxyAuthFormatDescription (\s a -> s { _rDSDBProxyAuthFormatDescription = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxy-authformat.html#cfn-rds-dbproxy-authformat-iamauth
+rdsdbpafIAMAuth :: Lens' RDSDBProxyAuthFormat (Maybe (Val Text))
+rdsdbpafIAMAuth = lens _rDSDBProxyAuthFormatIAMAuth (\s a -> s { _rDSDBProxyAuthFormatIAMAuth = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxy-authformat.html#cfn-rds-dbproxy-authformat-secretarn
+rdsdbpafSecretArn :: Lens' RDSDBProxyAuthFormat (Maybe (Val Text))
+rdsdbpafSecretArn = lens _rDSDBProxyAuthFormatSecretArn (\s a -> s { _rDSDBProxyAuthFormatSecretArn = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxy-authformat.html#cfn-rds-dbproxy-authformat-username
+rdsdbpafUserName :: Lens' RDSDBProxyAuthFormat (Maybe (Val Text))
+rdsdbpafUserName = lens _rDSDBProxyAuthFormatUserName (\s a -> s { _rDSDBProxyAuthFormatUserName = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/RDSDBProxyTagFormat.hs b/library-gen/Stratosphere/ResourceProperties/RDSDBProxyTagFormat.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/RDSDBProxyTagFormat.hs
@@ -0,0 +1,45 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxy-tagformat.html
+
+module Stratosphere.ResourceProperties.RDSDBProxyTagFormat where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for RDSDBProxyTagFormat. See
+-- 'rdsdbProxyTagFormat' for a more convenient constructor.
+data RDSDBProxyTagFormat =
+  RDSDBProxyTagFormat
+  { _rDSDBProxyTagFormatKey :: Maybe (Val Text)
+  , _rDSDBProxyTagFormatValue :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON RDSDBProxyTagFormat where
+  toJSON RDSDBProxyTagFormat{..} =
+    object $
+    catMaybes
+    [ fmap (("Key",) . toJSON) _rDSDBProxyTagFormatKey
+    , fmap (("Value",) . toJSON) _rDSDBProxyTagFormatValue
+    ]
+
+-- | Constructor for 'RDSDBProxyTagFormat' containing required fields as
+-- arguments.
+rdsdbProxyTagFormat
+  :: RDSDBProxyTagFormat
+rdsdbProxyTagFormat  =
+  RDSDBProxyTagFormat
+  { _rDSDBProxyTagFormatKey = Nothing
+  , _rDSDBProxyTagFormatValue = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxy-tagformat.html#cfn-rds-dbproxy-tagformat-key
+rdsdbptfKey :: Lens' RDSDBProxyTagFormat (Maybe (Val Text))
+rdsdbptfKey = lens _rDSDBProxyTagFormatKey (\s a -> s { _rDSDBProxyTagFormatKey = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxy-tagformat.html#cfn-rds-dbproxy-tagformat-value
+rdsdbptfValue :: Lens' RDSDBProxyTagFormat (Maybe (Val Text))
+rdsdbptfValue = lens _rDSDBProxyTagFormatValue (\s a -> s { _rDSDBProxyTagFormatValue = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/RDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormat.hs b/library-gen/Stratosphere/ResourceProperties/RDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormat.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/RDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormat.hs
@@ -0,0 +1,69 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxytargetgroup-connectionpoolconfigurationinfoformat.html
+
+module Stratosphere.ResourceProperties.RDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormat where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- RDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormat. See
+-- 'rdsdbProxyTargetGroupConnectionPoolConfigurationInfoFormat' for a more
+-- convenient constructor.
+data RDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormat =
+  RDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormat
+  { _rDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormatConnectionBorrowTimeout :: Maybe (Val Integer)
+  , _rDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormatInitQuery :: Maybe (Val Text)
+  , _rDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormatMaxConnectionsPercent :: Maybe (Val Integer)
+  , _rDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormatMaxIdleConnectionsPercent :: Maybe (Val Integer)
+  , _rDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormatSessionPinningFilters :: Maybe (ValList Text)
+  } deriving (Show, Eq)
+
+instance ToJSON RDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormat where
+  toJSON RDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormat{..} =
+    object $
+    catMaybes
+    [ fmap (("ConnectionBorrowTimeout",) . toJSON) _rDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormatConnectionBorrowTimeout
+    , fmap (("InitQuery",) . toJSON) _rDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormatInitQuery
+    , fmap (("MaxConnectionsPercent",) . toJSON) _rDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormatMaxConnectionsPercent
+    , fmap (("MaxIdleConnectionsPercent",) . toJSON) _rDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormatMaxIdleConnectionsPercent
+    , fmap (("SessionPinningFilters",) . toJSON) _rDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormatSessionPinningFilters
+    ]
+
+-- | Constructor for
+-- 'RDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormat' containing
+-- required fields as arguments.
+rdsdbProxyTargetGroupConnectionPoolConfigurationInfoFormat
+  :: RDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormat
+rdsdbProxyTargetGroupConnectionPoolConfigurationInfoFormat  =
+  RDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormat
+  { _rDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormatConnectionBorrowTimeout = Nothing
+  , _rDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormatInitQuery = Nothing
+  , _rDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormatMaxConnectionsPercent = Nothing
+  , _rDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormatMaxIdleConnectionsPercent = Nothing
+  , _rDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormatSessionPinningFilters = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxytargetgroup-connectionpoolconfigurationinfoformat.html#cfn-rds-dbproxytargetgroup-connectionpoolconfigurationinfoformat-connectionborrowtimeout
+rdsdbptgcpcifConnectionBorrowTimeout :: Lens' RDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormat (Maybe (Val Integer))
+rdsdbptgcpcifConnectionBorrowTimeout = lens _rDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormatConnectionBorrowTimeout (\s a -> s { _rDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormatConnectionBorrowTimeout = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxytargetgroup-connectionpoolconfigurationinfoformat.html#cfn-rds-dbproxytargetgroup-connectionpoolconfigurationinfoformat-initquery
+rdsdbptgcpcifInitQuery :: Lens' RDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormat (Maybe (Val Text))
+rdsdbptgcpcifInitQuery = lens _rDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormatInitQuery (\s a -> s { _rDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormatInitQuery = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxytargetgroup-connectionpoolconfigurationinfoformat.html#cfn-rds-dbproxytargetgroup-connectionpoolconfigurationinfoformat-maxconnectionspercent
+rdsdbptgcpcifMaxConnectionsPercent :: Lens' RDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormat (Maybe (Val Integer))
+rdsdbptgcpcifMaxConnectionsPercent = lens _rDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormatMaxConnectionsPercent (\s a -> s { _rDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormatMaxConnectionsPercent = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxytargetgroup-connectionpoolconfigurationinfoformat.html#cfn-rds-dbproxytargetgroup-connectionpoolconfigurationinfoformat-maxidleconnectionspercent
+rdsdbptgcpcifMaxIdleConnectionsPercent :: Lens' RDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormat (Maybe (Val Integer))
+rdsdbptgcpcifMaxIdleConnectionsPercent = lens _rDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormatMaxIdleConnectionsPercent (\s a -> s { _rDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormatMaxIdleConnectionsPercent = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxytargetgroup-connectionpoolconfigurationinfoformat.html#cfn-rds-dbproxytargetgroup-connectionpoolconfigurationinfoformat-sessionpinningfilters
+rdsdbptgcpcifSessionPinningFilters :: Lens' RDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormat (Maybe (ValList Text))
+rdsdbptgcpcifSessionPinningFilters = lens _rDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormatSessionPinningFilters (\s a -> s { _rDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormatSessionPinningFilters = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/S3BucketDeleteMarkerReplication.hs b/library-gen/Stratosphere/ResourceProperties/S3BucketDeleteMarkerReplication.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/S3BucketDeleteMarkerReplication.hs
@@ -0,0 +1,38 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-deletemarkerreplication.html
+
+module Stratosphere.ResourceProperties.S3BucketDeleteMarkerReplication where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for S3BucketDeleteMarkerReplication. See
+-- 's3BucketDeleteMarkerReplication' for a more convenient constructor.
+data S3BucketDeleteMarkerReplication =
+  S3BucketDeleteMarkerReplication
+  { _s3BucketDeleteMarkerReplicationStatus :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON S3BucketDeleteMarkerReplication where
+  toJSON S3BucketDeleteMarkerReplication{..} =
+    object $
+    catMaybes
+    [ fmap (("Status",) . toJSON) _s3BucketDeleteMarkerReplicationStatus
+    ]
+
+-- | Constructor for 'S3BucketDeleteMarkerReplication' containing required
+-- fields as arguments.
+s3BucketDeleteMarkerReplication
+  :: S3BucketDeleteMarkerReplication
+s3BucketDeleteMarkerReplication  =
+  S3BucketDeleteMarkerReplication
+  { _s3BucketDeleteMarkerReplicationStatus = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-deletemarkerreplication.html#cfn-s3-bucket-deletemarkerreplication-status
+sbdmrStatus :: Lens' S3BucketDeleteMarkerReplication (Maybe (Val Text))
+sbdmrStatus = lens _s3BucketDeleteMarkerReplicationStatus (\s a -> s { _s3BucketDeleteMarkerReplicationStatus = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/S3BucketMetrics.hs b/library-gen/Stratosphere/ResourceProperties/S3BucketMetrics.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/S3BucketMetrics.hs
@@ -0,0 +1,47 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metrics.html
+
+module Stratosphere.ResourceProperties.S3BucketMetrics where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.S3BucketReplicationTimeValue
+
+-- | Full data type definition for S3BucketMetrics. See 's3BucketMetrics' for
+-- a more convenient constructor.
+data S3BucketMetrics =
+  S3BucketMetrics
+  { _s3BucketMetricsEventThreshold :: S3BucketReplicationTimeValue
+  , _s3BucketMetricsStatus :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON S3BucketMetrics where
+  toJSON S3BucketMetrics{..} =
+    object $
+    catMaybes
+    [ (Just . ("EventThreshold",) . toJSON) _s3BucketMetricsEventThreshold
+    , (Just . ("Status",) . toJSON) _s3BucketMetricsStatus
+    ]
+
+-- | Constructor for 'S3BucketMetrics' containing required fields as
+-- arguments.
+s3BucketMetrics
+  :: S3BucketReplicationTimeValue -- ^ 'sbmEventThreshold'
+  -> Val Text -- ^ 'sbmStatus'
+  -> S3BucketMetrics
+s3BucketMetrics eventThresholdarg statusarg =
+  S3BucketMetrics
+  { _s3BucketMetricsEventThreshold = eventThresholdarg
+  , _s3BucketMetricsStatus = statusarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metrics.html#cfn-s3-bucket-metrics-eventthreshold
+sbmEventThreshold :: Lens' S3BucketMetrics S3BucketReplicationTimeValue
+sbmEventThreshold = lens _s3BucketMetricsEventThreshold (\s a -> s { _s3BucketMetricsEventThreshold = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metrics.html#cfn-s3-bucket-metrics-status
+sbmStatus :: Lens' S3BucketMetrics (Val Text)
+sbmStatus = lens _s3BucketMetricsStatus (\s a -> s { _s3BucketMetricsStatus = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/S3BucketReplicationDestination.hs b/library-gen/Stratosphere/ResourceProperties/S3BucketReplicationDestination.hs
--- a/library-gen/Stratosphere/ResourceProperties/S3BucketReplicationDestination.hs
+++ b/library-gen/Stratosphere/ResourceProperties/S3BucketReplicationDestination.hs
@@ -10,6 +10,8 @@
 import Stratosphere.ResourceImports
 import Stratosphere.ResourceProperties.S3BucketAccessControlTranslation
 import Stratosphere.ResourceProperties.S3BucketEncryptionConfiguration
+import Stratosphere.ResourceProperties.S3BucketMetrics
+import Stratosphere.ResourceProperties.S3BucketReplicationTime
 
 -- | Full data type definition for S3BucketReplicationDestination. See
 -- 's3BucketReplicationDestination' for a more convenient constructor.
@@ -19,6 +21,8 @@
   , _s3BucketReplicationDestinationAccount :: Maybe (Val Text)
   , _s3BucketReplicationDestinationBucket :: Val Text
   , _s3BucketReplicationDestinationEncryptionConfiguration :: Maybe S3BucketEncryptionConfiguration
+  , _s3BucketReplicationDestinationMetrics :: Maybe S3BucketMetrics
+  , _s3BucketReplicationDestinationReplicationTime :: Maybe S3BucketReplicationTime
   , _s3BucketReplicationDestinationStorageClass :: Maybe (Val Text)
   } deriving (Show, Eq)
 
@@ -30,6 +34,8 @@
     , fmap (("Account",) . toJSON) _s3BucketReplicationDestinationAccount
     , (Just . ("Bucket",) . toJSON) _s3BucketReplicationDestinationBucket
     , fmap (("EncryptionConfiguration",) . toJSON) _s3BucketReplicationDestinationEncryptionConfiguration
+    , fmap (("Metrics",) . toJSON) _s3BucketReplicationDestinationMetrics
+    , fmap (("ReplicationTime",) . toJSON) _s3BucketReplicationDestinationReplicationTime
     , fmap (("StorageClass",) . toJSON) _s3BucketReplicationDestinationStorageClass
     ]
 
@@ -44,6 +50,8 @@
   , _s3BucketReplicationDestinationAccount = Nothing
   , _s3BucketReplicationDestinationBucket = bucketarg
   , _s3BucketReplicationDestinationEncryptionConfiguration = Nothing
+  , _s3BucketReplicationDestinationMetrics = Nothing
+  , _s3BucketReplicationDestinationReplicationTime = Nothing
   , _s3BucketReplicationDestinationStorageClass = Nothing
   }
 
@@ -62,6 +70,14 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules-destination.html#cfn-s3-bucket-replicationdestination-encryptionconfiguration
 sbrdEncryptionConfiguration :: Lens' S3BucketReplicationDestination (Maybe S3BucketEncryptionConfiguration)
 sbrdEncryptionConfiguration = lens _s3BucketReplicationDestinationEncryptionConfiguration (\s a -> s { _s3BucketReplicationDestinationEncryptionConfiguration = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules-destination.html#cfn-s3-bucket-replicationdestination-metrics
+sbrdMetrics :: Lens' S3BucketReplicationDestination (Maybe S3BucketMetrics)
+sbrdMetrics = lens _s3BucketReplicationDestinationMetrics (\s a -> s { _s3BucketReplicationDestinationMetrics = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules-destination.html#cfn-s3-bucket-replicationdestination-replicationtime
+sbrdReplicationTime :: Lens' S3BucketReplicationDestination (Maybe S3BucketReplicationTime)
+sbrdReplicationTime = lens _s3BucketReplicationDestinationReplicationTime (\s a -> s { _s3BucketReplicationDestinationReplicationTime = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules-destination.html#cfn-s3-bucket-replicationconfiguration-rules-destination-storageclass
 sbrdStorageClass :: Lens' S3BucketReplicationDestination (Maybe (Val Text))
diff --git a/library-gen/Stratosphere/ResourceProperties/S3BucketReplicationRule.hs b/library-gen/Stratosphere/ResourceProperties/S3BucketReplicationRule.hs
--- a/library-gen/Stratosphere/ResourceProperties/S3BucketReplicationRule.hs
+++ b/library-gen/Stratosphere/ResourceProperties/S3BucketReplicationRule.hs
@@ -8,16 +8,21 @@
 module Stratosphere.ResourceProperties.S3BucketReplicationRule where
 
 import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.S3BucketDeleteMarkerReplication
 import Stratosphere.ResourceProperties.S3BucketReplicationDestination
+import Stratosphere.ResourceProperties.S3BucketReplicationRuleFilter
 import Stratosphere.ResourceProperties.S3BucketSourceSelectionCriteria
 
 -- | Full data type definition for S3BucketReplicationRule. See
 -- 's3BucketReplicationRule' for a more convenient constructor.
 data S3BucketReplicationRule =
   S3BucketReplicationRule
-  { _s3BucketReplicationRuleDestination :: S3BucketReplicationDestination
+  { _s3BucketReplicationRuleDeleteMarkerReplication :: Maybe S3BucketDeleteMarkerReplication
+  , _s3BucketReplicationRuleDestination :: S3BucketReplicationDestination
+  , _s3BucketReplicationRuleFilter :: Maybe S3BucketReplicationRuleFilter
   , _s3BucketReplicationRuleId :: Maybe (Val Text)
-  , _s3BucketReplicationRulePrefix :: Val Text
+  , _s3BucketReplicationRulePrefix :: Maybe (Val Text)
+  , _s3BucketReplicationRulePriority :: Maybe (Val Integer)
   , _s3BucketReplicationRuleSourceSelectionCriteria :: Maybe S3BucketSourceSelectionCriteria
   , _s3BucketReplicationRuleStatus :: Val Text
   } deriving (Show, Eq)
@@ -26,9 +31,12 @@
   toJSON S3BucketReplicationRule{..} =
     object $
     catMaybes
-    [ (Just . ("Destination",) . toJSON) _s3BucketReplicationRuleDestination
+    [ fmap (("DeleteMarkerReplication",) . toJSON) _s3BucketReplicationRuleDeleteMarkerReplication
+    , (Just . ("Destination",) . toJSON) _s3BucketReplicationRuleDestination
+    , fmap (("Filter",) . toJSON) _s3BucketReplicationRuleFilter
     , fmap (("Id",) . toJSON) _s3BucketReplicationRuleId
-    , (Just . ("Prefix",) . toJSON) _s3BucketReplicationRulePrefix
+    , fmap (("Prefix",) . toJSON) _s3BucketReplicationRulePrefix
+    , fmap (("Priority",) . toJSON) _s3BucketReplicationRulePriority
     , fmap (("SourceSelectionCriteria",) . toJSON) _s3BucketReplicationRuleSourceSelectionCriteria
     , (Just . ("Status",) . toJSON) _s3BucketReplicationRuleStatus
     ]
@@ -37,29 +45,43 @@
 -- arguments.
 s3BucketReplicationRule
   :: S3BucketReplicationDestination -- ^ 'sbrrDestination'
-  -> Val Text -- ^ 'sbrrPrefix'
   -> Val Text -- ^ 'sbrrStatus'
   -> S3BucketReplicationRule
-s3BucketReplicationRule destinationarg prefixarg statusarg =
+s3BucketReplicationRule destinationarg statusarg =
   S3BucketReplicationRule
-  { _s3BucketReplicationRuleDestination = destinationarg
+  { _s3BucketReplicationRuleDeleteMarkerReplication = Nothing
+  , _s3BucketReplicationRuleDestination = destinationarg
+  , _s3BucketReplicationRuleFilter = Nothing
   , _s3BucketReplicationRuleId = Nothing
-  , _s3BucketReplicationRulePrefix = prefixarg
+  , _s3BucketReplicationRulePrefix = Nothing
+  , _s3BucketReplicationRulePriority = Nothing
   , _s3BucketReplicationRuleSourceSelectionCriteria = Nothing
   , _s3BucketReplicationRuleStatus = statusarg
   }
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules.html#cfn-s3-bucket-replicationrule-deletemarkerreplication
+sbrrDeleteMarkerReplication :: Lens' S3BucketReplicationRule (Maybe S3BucketDeleteMarkerReplication)
+sbrrDeleteMarkerReplication = lens _s3BucketReplicationRuleDeleteMarkerReplication (\s a -> s { _s3BucketReplicationRuleDeleteMarkerReplication = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules.html#cfn-s3-bucket-replicationconfiguration-rules-destination
 sbrrDestination :: Lens' S3BucketReplicationRule S3BucketReplicationDestination
 sbrrDestination = lens _s3BucketReplicationRuleDestination (\s a -> s { _s3BucketReplicationRuleDestination = a })
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules.html#cfn-s3-bucket-replicationrule-filter
+sbrrFilter :: Lens' S3BucketReplicationRule (Maybe S3BucketReplicationRuleFilter)
+sbrrFilter = lens _s3BucketReplicationRuleFilter (\s a -> s { _s3BucketReplicationRuleFilter = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules.html#cfn-s3-bucket-replicationconfiguration-rules-id
 sbrrId :: Lens' S3BucketReplicationRule (Maybe (Val Text))
 sbrrId = lens _s3BucketReplicationRuleId (\s a -> s { _s3BucketReplicationRuleId = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules.html#cfn-s3-bucket-replicationconfiguration-rules-prefix
-sbrrPrefix :: Lens' S3BucketReplicationRule (Val Text)
+sbrrPrefix :: Lens' S3BucketReplicationRule (Maybe (Val Text))
 sbrrPrefix = lens _s3BucketReplicationRulePrefix (\s a -> s { _s3BucketReplicationRulePrefix = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules.html#cfn-s3-bucket-replicationrule-priority
+sbrrPriority :: Lens' S3BucketReplicationRule (Maybe (Val Integer))
+sbrrPriority = lens _s3BucketReplicationRulePriority (\s a -> s { _s3BucketReplicationRulePriority = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules.html#cfn-s3-bucket-replicationrule-sourceselectioncriteria
 sbrrSourceSelectionCriteria :: Lens' S3BucketReplicationRule (Maybe S3BucketSourceSelectionCriteria)
diff --git a/library-gen/Stratosphere/ResourceProperties/S3BucketReplicationRuleAndOperator.hs b/library-gen/Stratosphere/ResourceProperties/S3BucketReplicationRuleAndOperator.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/S3BucketReplicationRuleAndOperator.hs
@@ -0,0 +1,45 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationruleandoperator.html
+
+module Stratosphere.ResourceProperties.S3BucketReplicationRuleAndOperator where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.S3BucketTagFilter
+
+-- | Full data type definition for S3BucketReplicationRuleAndOperator. See
+-- 's3BucketReplicationRuleAndOperator' for a more convenient constructor.
+data S3BucketReplicationRuleAndOperator =
+  S3BucketReplicationRuleAndOperator
+  { _s3BucketReplicationRuleAndOperatorPrefix :: Maybe (Val Text)
+  , _s3BucketReplicationRuleAndOperatorTagFilters :: Maybe [S3BucketTagFilter]
+  } deriving (Show, Eq)
+
+instance ToJSON S3BucketReplicationRuleAndOperator where
+  toJSON S3BucketReplicationRuleAndOperator{..} =
+    object $
+    catMaybes
+    [ fmap (("Prefix",) . toJSON) _s3BucketReplicationRuleAndOperatorPrefix
+    , fmap (("TagFilters",) . toJSON) _s3BucketReplicationRuleAndOperatorTagFilters
+    ]
+
+-- | Constructor for 'S3BucketReplicationRuleAndOperator' containing required
+-- fields as arguments.
+s3BucketReplicationRuleAndOperator
+  :: S3BucketReplicationRuleAndOperator
+s3BucketReplicationRuleAndOperator  =
+  S3BucketReplicationRuleAndOperator
+  { _s3BucketReplicationRuleAndOperatorPrefix = Nothing
+  , _s3BucketReplicationRuleAndOperatorTagFilters = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationruleandoperator.html#cfn-s3-bucket-replicationruleandoperator-prefix
+sbrraoPrefix :: Lens' S3BucketReplicationRuleAndOperator (Maybe (Val Text))
+sbrraoPrefix = lens _s3BucketReplicationRuleAndOperatorPrefix (\s a -> s { _s3BucketReplicationRuleAndOperatorPrefix = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationruleandoperator.html#cfn-s3-bucket-replicationruleandoperator-tagfilters
+sbrraoTagFilters :: Lens' S3BucketReplicationRuleAndOperator (Maybe [S3BucketTagFilter])
+sbrraoTagFilters = lens _s3BucketReplicationRuleAndOperatorTagFilters (\s a -> s { _s3BucketReplicationRuleAndOperatorTagFilters = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/S3BucketReplicationRuleFilter.hs b/library-gen/Stratosphere/ResourceProperties/S3BucketReplicationRuleFilter.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/S3BucketReplicationRuleFilter.hs
@@ -0,0 +1,53 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationrulefilter.html
+
+module Stratosphere.ResourceProperties.S3BucketReplicationRuleFilter where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.S3BucketReplicationRuleAndOperator
+import Stratosphere.ResourceProperties.S3BucketTagFilter
+
+-- | Full data type definition for S3BucketReplicationRuleFilter. See
+-- 's3BucketReplicationRuleFilter' for a more convenient constructor.
+data S3BucketReplicationRuleFilter =
+  S3BucketReplicationRuleFilter
+  { _s3BucketReplicationRuleFilterAnd :: Maybe S3BucketReplicationRuleAndOperator
+  , _s3BucketReplicationRuleFilterPrefix :: Maybe (Val Text)
+  , _s3BucketReplicationRuleFilterTagFilter :: Maybe S3BucketTagFilter
+  } deriving (Show, Eq)
+
+instance ToJSON S3BucketReplicationRuleFilter where
+  toJSON S3BucketReplicationRuleFilter{..} =
+    object $
+    catMaybes
+    [ fmap (("And",) . toJSON) _s3BucketReplicationRuleFilterAnd
+    , fmap (("Prefix",) . toJSON) _s3BucketReplicationRuleFilterPrefix
+    , fmap (("TagFilter",) . toJSON) _s3BucketReplicationRuleFilterTagFilter
+    ]
+
+-- | Constructor for 'S3BucketReplicationRuleFilter' containing required
+-- fields as arguments.
+s3BucketReplicationRuleFilter
+  :: S3BucketReplicationRuleFilter
+s3BucketReplicationRuleFilter  =
+  S3BucketReplicationRuleFilter
+  { _s3BucketReplicationRuleFilterAnd = Nothing
+  , _s3BucketReplicationRuleFilterPrefix = Nothing
+  , _s3BucketReplicationRuleFilterTagFilter = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationrulefilter.html#cfn-s3-bucket-replicationrulefilter-and
+sbrrfAnd :: Lens' S3BucketReplicationRuleFilter (Maybe S3BucketReplicationRuleAndOperator)
+sbrrfAnd = lens _s3BucketReplicationRuleFilterAnd (\s a -> s { _s3BucketReplicationRuleFilterAnd = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationrulefilter.html#cfn-s3-bucket-replicationrulefilter-prefix
+sbrrfPrefix :: Lens' S3BucketReplicationRuleFilter (Maybe (Val Text))
+sbrrfPrefix = lens _s3BucketReplicationRuleFilterPrefix (\s a -> s { _s3BucketReplicationRuleFilterPrefix = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationrulefilter.html#cfn-s3-bucket-replicationrulefilter-tagfilter
+sbrrfTagFilter :: Lens' S3BucketReplicationRuleFilter (Maybe S3BucketTagFilter)
+sbrrfTagFilter = lens _s3BucketReplicationRuleFilterTagFilter (\s a -> s { _s3BucketReplicationRuleFilterTagFilter = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/S3BucketReplicationTime.hs b/library-gen/Stratosphere/ResourceProperties/S3BucketReplicationTime.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/S3BucketReplicationTime.hs
@@ -0,0 +1,47 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationtime.html
+
+module Stratosphere.ResourceProperties.S3BucketReplicationTime where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.S3BucketReplicationTimeValue
+
+-- | Full data type definition for S3BucketReplicationTime. See
+-- 's3BucketReplicationTime' for a more convenient constructor.
+data S3BucketReplicationTime =
+  S3BucketReplicationTime
+  { _s3BucketReplicationTimeStatus :: Val Text
+  , _s3BucketReplicationTimeTime :: S3BucketReplicationTimeValue
+  } deriving (Show, Eq)
+
+instance ToJSON S3BucketReplicationTime where
+  toJSON S3BucketReplicationTime{..} =
+    object $
+    catMaybes
+    [ (Just . ("Status",) . toJSON) _s3BucketReplicationTimeStatus
+    , (Just . ("Time",) . toJSON) _s3BucketReplicationTimeTime
+    ]
+
+-- | Constructor for 'S3BucketReplicationTime' containing required fields as
+-- arguments.
+s3BucketReplicationTime
+  :: Val Text -- ^ 'sbrtStatus'
+  -> S3BucketReplicationTimeValue -- ^ 'sbrtTime'
+  -> S3BucketReplicationTime
+s3BucketReplicationTime statusarg timearg =
+  S3BucketReplicationTime
+  { _s3BucketReplicationTimeStatus = statusarg
+  , _s3BucketReplicationTimeTime = timearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationtime.html#cfn-s3-bucket-replicationtime-status
+sbrtStatus :: Lens' S3BucketReplicationTime (Val Text)
+sbrtStatus = lens _s3BucketReplicationTimeStatus (\s a -> s { _s3BucketReplicationTimeStatus = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationtime.html#cfn-s3-bucket-replicationtime-time
+sbrtTime :: Lens' S3BucketReplicationTime S3BucketReplicationTimeValue
+sbrtTime = lens _s3BucketReplicationTimeTime (\s a -> s { _s3BucketReplicationTimeTime = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/S3BucketReplicationTimeValue.hs b/library-gen/Stratosphere/ResourceProperties/S3BucketReplicationTimeValue.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/S3BucketReplicationTimeValue.hs
@@ -0,0 +1,39 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationtimevalue.html
+
+module Stratosphere.ResourceProperties.S3BucketReplicationTimeValue where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for S3BucketReplicationTimeValue. See
+-- 's3BucketReplicationTimeValue' for a more convenient constructor.
+data S3BucketReplicationTimeValue =
+  S3BucketReplicationTimeValue
+  { _s3BucketReplicationTimeValueMinutes :: Val Integer
+  } deriving (Show, Eq)
+
+instance ToJSON S3BucketReplicationTimeValue where
+  toJSON S3BucketReplicationTimeValue{..} =
+    object $
+    catMaybes
+    [ (Just . ("Minutes",) . toJSON) _s3BucketReplicationTimeValueMinutes
+    ]
+
+-- | Constructor for 'S3BucketReplicationTimeValue' containing required fields
+-- as arguments.
+s3BucketReplicationTimeValue
+  :: Val Integer -- ^ 'sbrtvMinutes'
+  -> S3BucketReplicationTimeValue
+s3BucketReplicationTimeValue minutesarg =
+  S3BucketReplicationTimeValue
+  { _s3BucketReplicationTimeValueMinutes = minutesarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationtimevalue.html#cfn-s3-bucket-replicationtimevalue-minutes
+sbrtvMinutes :: Lens' S3BucketReplicationTimeValue (Val Integer)
+sbrtvMinutes = lens _s3BucketReplicationTimeValueMinutes (\s a -> s { _s3BucketReplicationTimeValueMinutes = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/SSMAssociationParameterValues.hs b/library-gen/Stratosphere/ResourceProperties/SSMAssociationParameterValues.hs
deleted file mode 100644
--- a/library-gen/Stratosphere/ResourceProperties/SSMAssociationParameterValues.hs
+++ /dev/null
@@ -1,39 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE RecordWildCards #-}
-{-# LANGUAGE StrictData #-}
-{-# LANGUAGE TupleSections #-}
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-association-parametervalues.html
-
-module Stratosphere.ResourceProperties.SSMAssociationParameterValues where
-
-import Stratosphere.ResourceImports
-
-
--- | Full data type definition for SSMAssociationParameterValues. See
--- 'ssmAssociationParameterValues' for a more convenient constructor.
-data SSMAssociationParameterValues =
-  SSMAssociationParameterValues
-  { _sSMAssociationParameterValuesParameterValues :: ValList Text
-  } deriving (Show, Eq)
-
-instance ToJSON SSMAssociationParameterValues where
-  toJSON SSMAssociationParameterValues{..} =
-    object $
-    catMaybes
-    [ (Just . ("ParameterValues",) . toJSON) _sSMAssociationParameterValuesParameterValues
-    ]
-
--- | Constructor for 'SSMAssociationParameterValues' containing required
--- fields as arguments.
-ssmAssociationParameterValues
-  :: ValList Text -- ^ 'ssmapvParameterValues'
-  -> SSMAssociationParameterValues
-ssmAssociationParameterValues parameterValuesarg =
-  SSMAssociationParameterValues
-  { _sSMAssociationParameterValuesParameterValues = parameterValuesarg
-  }
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-association-parametervalues.html#cfn-ssm-association-parametervalues-parametervalues
-ssmapvParameterValues :: Lens' SSMAssociationParameterValues (ValList Text)
-ssmapvParameterValues = lens _sSMAssociationParameterValuesParameterValues (\s a -> s { _sSMAssociationParameterValuesParameterValues = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/StepFunctionsStateMachineS3Location.hs b/library-gen/Stratosphere/ResourceProperties/StepFunctionsStateMachineS3Location.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/StepFunctionsStateMachineS3Location.hs
@@ -0,0 +1,54 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-s3location.html
+
+module Stratosphere.ResourceProperties.StepFunctionsStateMachineS3Location where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for StepFunctionsStateMachineS3Location. See
+-- 'stepFunctionsStateMachineS3Location' for a more convenient constructor.
+data StepFunctionsStateMachineS3Location =
+  StepFunctionsStateMachineS3Location
+  { _stepFunctionsStateMachineS3LocationBucket :: Val Text
+  , _stepFunctionsStateMachineS3LocationKey :: Val Text
+  , _stepFunctionsStateMachineS3LocationVersion :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON StepFunctionsStateMachineS3Location where
+  toJSON StepFunctionsStateMachineS3Location{..} =
+    object $
+    catMaybes
+    [ (Just . ("Bucket",) . toJSON) _stepFunctionsStateMachineS3LocationBucket
+    , (Just . ("Key",) . toJSON) _stepFunctionsStateMachineS3LocationKey
+    , fmap (("Version",) . toJSON) _stepFunctionsStateMachineS3LocationVersion
+    ]
+
+-- | Constructor for 'StepFunctionsStateMachineS3Location' containing required
+-- fields as arguments.
+stepFunctionsStateMachineS3Location
+  :: Val Text -- ^ 'sfsmslBucket'
+  -> Val Text -- ^ 'sfsmslKey'
+  -> StepFunctionsStateMachineS3Location
+stepFunctionsStateMachineS3Location bucketarg keyarg =
+  StepFunctionsStateMachineS3Location
+  { _stepFunctionsStateMachineS3LocationBucket = bucketarg
+  , _stepFunctionsStateMachineS3LocationKey = keyarg
+  , _stepFunctionsStateMachineS3LocationVersion = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-s3location.html#cfn-stepfunctions-statemachine-s3location-bucket
+sfsmslBucket :: Lens' StepFunctionsStateMachineS3Location (Val Text)
+sfsmslBucket = lens _stepFunctionsStateMachineS3LocationBucket (\s a -> s { _stepFunctionsStateMachineS3LocationBucket = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-s3location.html#cfn-stepfunctions-statemachine-s3location-key
+sfsmslKey :: Lens' StepFunctionsStateMachineS3Location (Val Text)
+sfsmslKey = lens _stepFunctionsStateMachineS3LocationKey (\s a -> s { _stepFunctionsStateMachineS3LocationKey = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-s3location.html#cfn-stepfunctions-statemachine-s3location-version
+sfsmslVersion :: Lens' StepFunctionsStateMachineS3Location (Maybe (Val Text))
+sfsmslVersion = lens _stepFunctionsStateMachineS3LocationVersion (\s a -> s { _stepFunctionsStateMachineS3LocationVersion = a })
diff --git a/library-gen/Stratosphere/Resources.hs b/library-gen/Stratosphere/Resources.hs
--- a/library-gen/Stratosphere/Resources.hs
+++ b/library-gen/Stratosphere/Resources.hs
@@ -226,6 +226,7 @@
 import Stratosphere.Resources.EC2NetworkInterfaceAttachment as X
 import Stratosphere.Resources.EC2NetworkInterfacePermission as X
 import Stratosphere.Resources.EC2PlacementGroup as X
+import Stratosphere.Resources.EC2PrefixList as X
 import Stratosphere.Resources.EC2Route as X
 import Stratosphere.Resources.EC2RouteTable as X
 import Stratosphere.Resources.EC2SecurityGroup as X
@@ -267,6 +268,7 @@
 import Stratosphere.Resources.ECSService as X
 import Stratosphere.Resources.ECSTaskDefinition as X
 import Stratosphere.Resources.ECSTaskSet as X
+import Stratosphere.Resources.EFSAccessPoint as X
 import Stratosphere.Resources.EFSFileSystem as X
 import Stratosphere.Resources.EFSMountTarget as X
 import Stratosphere.Resources.EKSCluster as X
@@ -372,6 +374,7 @@
 import Stratosphere.Resources.IoTCertificate as X
 import Stratosphere.Resources.IoTPolicy as X
 import Stratosphere.Resources.IoTPolicyPrincipalAttachment as X
+import Stratosphere.Resources.IoTProvisioningTemplate as X
 import Stratosphere.Resources.IoTThing as X
 import Stratosphere.Resources.IoTThingPrincipalAttachment as X
 import Stratosphere.Resources.IoTTopicRule as X
@@ -471,6 +474,8 @@
 import Stratosphere.Resources.RDSDBClusterParameterGroup as X
 import Stratosphere.Resources.RDSDBInstance as X
 import Stratosphere.Resources.RDSDBParameterGroup as X
+import Stratosphere.Resources.RDSDBProxy as X
+import Stratosphere.Resources.RDSDBProxyTargetGroup as X
 import Stratosphere.Resources.RDSDBSecurityGroup as X
 import Stratosphere.Resources.RDSDBSecurityGroupIngress as X
 import Stratosphere.Resources.RDSDBSubnetGroup as X
@@ -973,6 +978,7 @@
 import Stratosphere.ResourceProperties.EC2ClientVpnEndpointClientAuthenticationRequest as X
 import Stratosphere.ResourceProperties.EC2ClientVpnEndpointConnectionLogOptions as X
 import Stratosphere.ResourceProperties.EC2ClientVpnEndpointDirectoryServiceAuthenticationRequest as X
+import Stratosphere.ResourceProperties.EC2ClientVpnEndpointFederatedAuthenticationRequest as X
 import Stratosphere.ResourceProperties.EC2ClientVpnEndpointTagSpecification as X
 import Stratosphere.ResourceProperties.EC2EC2FleetCapacityReservationOptionsRequest as X
 import Stratosphere.ResourceProperties.EC2EC2FleetFleetLaunchTemplateConfigRequest as X
@@ -1025,6 +1031,7 @@
 import Stratosphere.ResourceProperties.EC2NetworkAclEntryPortRange as X
 import Stratosphere.ResourceProperties.EC2NetworkInterfaceInstanceIpv6Address as X
 import Stratosphere.ResourceProperties.EC2NetworkInterfacePrivateIpAddressSpecification as X
+import Stratosphere.ResourceProperties.EC2PrefixListEntry as X
 import Stratosphere.ResourceProperties.EC2SecurityGroupEgressProperty as X
 import Stratosphere.ResourceProperties.EC2SecurityGroupIngressProperty as X
 import Stratosphere.ResourceProperties.EC2SpotFleetBlockDeviceMapping as X
@@ -1089,6 +1096,10 @@
 import Stratosphere.ResourceProperties.ECSTaskSetNetworkConfiguration as X
 import Stratosphere.ResourceProperties.ECSTaskSetScale as X
 import Stratosphere.ResourceProperties.ECSTaskSetServiceRegistry as X
+import Stratosphere.ResourceProperties.EFSAccessPointAccessPointTag as X
+import Stratosphere.ResourceProperties.EFSAccessPointCreationInfo as X
+import Stratosphere.ResourceProperties.EFSAccessPointPosixUser as X
+import Stratosphere.ResourceProperties.EFSAccessPointRootDirectory as X
 import Stratosphere.ResourceProperties.EFSFileSystemElasticFileSystemTag as X
 import Stratosphere.ResourceProperties.EFSFileSystemLifecyclePolicy as X
 import Stratosphere.ResourceProperties.EKSClusterEncryptionConfig as X
@@ -1210,6 +1221,7 @@
 import Stratosphere.ResourceProperties.EventsRuleBatchParameters as X
 import Stratosphere.ResourceProperties.EventsRuleBatchRetryStrategy as X
 import Stratosphere.ResourceProperties.EventsRuleEcsParameters as X
+import Stratosphere.ResourceProperties.EventsRuleHttpParameters as X
 import Stratosphere.ResourceProperties.EventsRuleInputTransformer as X
 import Stratosphere.ResourceProperties.EventsRuleKinesisParameters as X
 import Stratosphere.ResourceProperties.EventsRuleNetworkConfiguration as X
@@ -1348,6 +1360,7 @@
 import Stratosphere.ResourceProperties.ImageBuilderInfrastructureConfigurationS3Logs as X
 import Stratosphere.ResourceProperties.IoT1ClickProjectDeviceTemplate as X
 import Stratosphere.ResourceProperties.IoT1ClickProjectPlacementTemplate as X
+import Stratosphere.ResourceProperties.IoTProvisioningTemplateProvisioningHook as X
 import Stratosphere.ResourceProperties.IoTThingAttributePayload as X
 import Stratosphere.ResourceProperties.IoTTopicRuleAction as X
 import Stratosphere.ResourceProperties.IoTTopicRuleAssetPropertyTimestamp as X
@@ -1528,11 +1541,13 @@
 import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamProcessor as X
 import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamProcessorParameter as X
 import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration as X
+import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamRedshiftRetryOptions as X
 import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamS3DestinationConfiguration as X
 import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamSchemaConfiguration as X
 import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamSerializer as X
 import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamSplunkDestinationConfiguration as X
 import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamSplunkRetryOptions as X
+import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamVpcConfiguration as X
 import Stratosphere.ResourceProperties.LakeFormationDataLakeSettingsDataLakePrincipal as X
 import Stratosphere.ResourceProperties.LakeFormationPermissionsColumnWildcard as X
 import Stratosphere.ResourceProperties.LakeFormationPermissionsDataLakePrincipal as X
@@ -1691,6 +1706,9 @@
 import Stratosphere.ResourceProperties.RDSDBClusterScalingConfiguration as X
 import Stratosphere.ResourceProperties.RDSDBInstanceDBInstanceRole as X
 import Stratosphere.ResourceProperties.RDSDBInstanceProcessorFeature as X
+import Stratosphere.ResourceProperties.RDSDBProxyAuthFormat as X
+import Stratosphere.ResourceProperties.RDSDBProxyTagFormat as X
+import Stratosphere.ResourceProperties.RDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormat as X
 import Stratosphere.ResourceProperties.RDSDBSecurityGroupIngressProperty as X
 import Stratosphere.ResourceProperties.RDSOptionGroupOptionConfiguration as X
 import Stratosphere.ResourceProperties.RDSOptionGroupOptionSetting as X
@@ -1730,6 +1748,7 @@
 import Stratosphere.ResourceProperties.S3BucketCorsRule as X
 import Stratosphere.ResourceProperties.S3BucketDataExport as X
 import Stratosphere.ResourceProperties.S3BucketDefaultRetention as X
+import Stratosphere.ResourceProperties.S3BucketDeleteMarkerReplication as X
 import Stratosphere.ResourceProperties.S3BucketDestination as X
 import Stratosphere.ResourceProperties.S3BucketEncryptionConfiguration as X
 import Stratosphere.ResourceProperties.S3BucketFilterRule as X
@@ -1737,6 +1756,7 @@
 import Stratosphere.ResourceProperties.S3BucketLambdaConfiguration as X
 import Stratosphere.ResourceProperties.S3BucketLifecycleConfiguration as X
 import Stratosphere.ResourceProperties.S3BucketLoggingConfiguration as X
+import Stratosphere.ResourceProperties.S3BucketMetrics as X
 import Stratosphere.ResourceProperties.S3BucketMetricsConfiguration as X
 import Stratosphere.ResourceProperties.S3BucketNoncurrentVersionTransition as X
 import Stratosphere.ResourceProperties.S3BucketNotificationConfiguration as X
@@ -1750,6 +1770,10 @@
 import Stratosphere.ResourceProperties.S3BucketReplicationConfiguration as X
 import Stratosphere.ResourceProperties.S3BucketReplicationDestination as X
 import Stratosphere.ResourceProperties.S3BucketReplicationRule as X
+import Stratosphere.ResourceProperties.S3BucketReplicationRuleAndOperator as X
+import Stratosphere.ResourceProperties.S3BucketReplicationRuleFilter as X
+import Stratosphere.ResourceProperties.S3BucketReplicationTime as X
+import Stratosphere.ResourceProperties.S3BucketReplicationTimeValue as X
 import Stratosphere.ResourceProperties.S3BucketRoutingRule as X
 import Stratosphere.ResourceProperties.S3BucketRoutingRuleCondition as X
 import Stratosphere.ResourceProperties.S3BucketRule as X
@@ -1782,7 +1806,6 @@
 import Stratosphere.ResourceProperties.SESTemplateTemplate as X
 import Stratosphere.ResourceProperties.SNSTopicSubscription as X
 import Stratosphere.ResourceProperties.SSMAssociationInstanceAssociationOutputLocation as X
-import Stratosphere.ResourceProperties.SSMAssociationParameterValues as X
 import Stratosphere.ResourceProperties.SSMAssociationS3OutputLocation as X
 import Stratosphere.ResourceProperties.SSMAssociationTarget as X
 import Stratosphere.ResourceProperties.SSMMaintenanceWindowTargetTargets as X
@@ -1824,6 +1847,7 @@
 import Stratosphere.ResourceProperties.StepFunctionsStateMachineCloudWatchLogsLogGroup as X
 import Stratosphere.ResourceProperties.StepFunctionsStateMachineLogDestination as X
 import Stratosphere.ResourceProperties.StepFunctionsStateMachineLoggingConfiguration as X
+import Stratosphere.ResourceProperties.StepFunctionsStateMachineS3Location as X
 import Stratosphere.ResourceProperties.StepFunctionsStateMachineTagsEntry as X
 import Stratosphere.ResourceProperties.SyntheticsCanaryCode as X
 import Stratosphere.ResourceProperties.SyntheticsCanaryRunConfig as X
diff --git a/library-gen/Stratosphere/Resources/ApiGatewayV2Api.hs b/library-gen/Stratosphere/Resources/ApiGatewayV2Api.hs
--- a/library-gen/Stratosphere/Resources/ApiGatewayV2Api.hs
+++ b/library-gen/Stratosphere/Resources/ApiGatewayV2Api.hs
@@ -22,7 +22,6 @@
   , _apiGatewayV2ApiCorsConfiguration :: Maybe ApiGatewayV2ApiCors
   , _apiGatewayV2ApiCredentialsArn :: Maybe (Val Text)
   , _apiGatewayV2ApiDescription :: Maybe (Val Text)
-  , _apiGatewayV2ApiDisableExecuteApiEndpoint :: Maybe (Val Bool)
   , _apiGatewayV2ApiDisableSchemaValidation :: Maybe (Val Bool)
   , _apiGatewayV2ApiFailOnWarnings :: Maybe (Val Bool)
   , _apiGatewayV2ApiName :: Maybe (Val Text)
@@ -47,7 +46,6 @@
         , fmap (("CorsConfiguration",) . toJSON) _apiGatewayV2ApiCorsConfiguration
         , fmap (("CredentialsArn",) . toJSON) _apiGatewayV2ApiCredentialsArn
         , fmap (("Description",) . toJSON) _apiGatewayV2ApiDescription
-        , fmap (("DisableExecuteApiEndpoint",) . toJSON) _apiGatewayV2ApiDisableExecuteApiEndpoint
         , fmap (("DisableSchemaValidation",) . toJSON) _apiGatewayV2ApiDisableSchemaValidation
         , fmap (("FailOnWarnings",) . toJSON) _apiGatewayV2ApiFailOnWarnings
         , fmap (("Name",) . toJSON) _apiGatewayV2ApiName
@@ -73,7 +71,6 @@
   , _apiGatewayV2ApiCorsConfiguration = Nothing
   , _apiGatewayV2ApiCredentialsArn = Nothing
   , _apiGatewayV2ApiDescription = Nothing
-  , _apiGatewayV2ApiDisableExecuteApiEndpoint = Nothing
   , _apiGatewayV2ApiDisableSchemaValidation = Nothing
   , _apiGatewayV2ApiFailOnWarnings = Nothing
   , _apiGatewayV2ApiName = Nothing
@@ -112,10 +109,6 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-description
 agvapDescription :: Lens' ApiGatewayV2Api (Maybe (Val Text))
 agvapDescription = lens _apiGatewayV2ApiDescription (\s a -> s { _apiGatewayV2ApiDescription = a })
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-disableexecuteapiendpoint
-agvapDisableExecuteApiEndpoint :: Lens' ApiGatewayV2Api (Maybe (Val Bool))
-agvapDisableExecuteApiEndpoint = lens _apiGatewayV2ApiDisableExecuteApiEndpoint (\s a -> s { _apiGatewayV2ApiDisableExecuteApiEndpoint = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-disableschemavalidation
 agvapDisableSchemaValidation :: Lens' ApiGatewayV2Api (Maybe (Val Bool))
diff --git a/library-gen/Stratosphere/Resources/CertificateManagerCertificate.hs b/library-gen/Stratosphere/Resources/CertificateManagerCertificate.hs
--- a/library-gen/Stratosphere/Resources/CertificateManagerCertificate.hs
+++ b/library-gen/Stratosphere/Resources/CertificateManagerCertificate.hs
@@ -15,7 +15,9 @@
 -- 'certificateManagerCertificate' for a more convenient constructor.
 data CertificateManagerCertificate =
   CertificateManagerCertificate
-  { _certificateManagerCertificateDomainName :: Val Text
+  { _certificateManagerCertificateCertificateAuthorityArn :: Maybe (Val Text)
+  , _certificateManagerCertificateCertificateTransparencyLoggingPreference :: Maybe (Val Text)
+  , _certificateManagerCertificateDomainName :: Val Text
   , _certificateManagerCertificateDomainValidationOptions :: Maybe [CertificateManagerCertificateDomainValidationOption]
   , _certificateManagerCertificateSubjectAlternativeNames :: Maybe (ValList Text)
   , _certificateManagerCertificateTags :: Maybe [Tag]
@@ -28,7 +30,9 @@
     { resourcePropertiesType = "AWS::CertificateManager::Certificate"
     , resourcePropertiesProperties =
         hashMapFromList $ catMaybes
-        [ (Just . ("DomainName",) . toJSON) _certificateManagerCertificateDomainName
+        [ fmap (("CertificateAuthorityArn",) . toJSON) _certificateManagerCertificateCertificateAuthorityArn
+        , fmap (("CertificateTransparencyLoggingPreference",) . toJSON) _certificateManagerCertificateCertificateTransparencyLoggingPreference
+        , (Just . ("DomainName",) . toJSON) _certificateManagerCertificateDomainName
         , fmap (("DomainValidationOptions",) . toJSON) _certificateManagerCertificateDomainValidationOptions
         , fmap (("SubjectAlternativeNames",) . toJSON) _certificateManagerCertificateSubjectAlternativeNames
         , fmap (("Tags",) . toJSON) _certificateManagerCertificateTags
@@ -43,12 +47,22 @@
   -> CertificateManagerCertificate
 certificateManagerCertificate domainNamearg =
   CertificateManagerCertificate
-  { _certificateManagerCertificateDomainName = domainNamearg
+  { _certificateManagerCertificateCertificateAuthorityArn = Nothing
+  , _certificateManagerCertificateCertificateTransparencyLoggingPreference = Nothing
+  , _certificateManagerCertificateDomainName = domainNamearg
   , _certificateManagerCertificateDomainValidationOptions = Nothing
   , _certificateManagerCertificateSubjectAlternativeNames = Nothing
   , _certificateManagerCertificateTags = Nothing
   , _certificateManagerCertificateValidationMethod = Nothing
   }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-certificatemanager-certificate.html#cfn-certificatemanager-certificate-certificateauthorityarn
+cmcCertificateAuthorityArn :: Lens' CertificateManagerCertificate (Maybe (Val Text))
+cmcCertificateAuthorityArn = lens _certificateManagerCertificateCertificateAuthorityArn (\s a -> s { _certificateManagerCertificateCertificateAuthorityArn = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-certificatemanager-certificate.html#cfn-certificatemanager-certificate-certificatetransparencyloggingpreference
+cmcCertificateTransparencyLoggingPreference :: Lens' CertificateManagerCertificate (Maybe (Val Text))
+cmcCertificateTransparencyLoggingPreference = lens _certificateManagerCertificateCertificateTransparencyLoggingPreference (\s a -> s { _certificateManagerCertificateCertificateTransparencyLoggingPreference = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-certificatemanager-certificate.html#cfn-certificatemanager-certificate-domainname
 cmcDomainName :: Lens' CertificateManagerCertificate (Val Text)
diff --git a/library-gen/Stratosphere/Resources/ChatbotSlackChannelConfiguration.hs b/library-gen/Stratosphere/Resources/ChatbotSlackChannelConfiguration.hs
--- a/library-gen/Stratosphere/Resources/ChatbotSlackChannelConfiguration.hs
+++ b/library-gen/Stratosphere/Resources/ChatbotSlackChannelConfiguration.hs
@@ -14,8 +14,7 @@
 -- 'chatbotSlackChannelConfiguration' for a more convenient constructor.
 data ChatbotSlackChannelConfiguration =
   ChatbotSlackChannelConfiguration
-  { _chatbotSlackChannelConfigurationArn :: Maybe (Val Text)
-  , _chatbotSlackChannelConfigurationConfigurationName :: Val Text
+  { _chatbotSlackChannelConfigurationConfigurationName :: Val Text
   , _chatbotSlackChannelConfigurationIamRoleArn :: Val Text
   , _chatbotSlackChannelConfigurationLoggingLevel :: Maybe (Val LoggingLevel)
   , _chatbotSlackChannelConfigurationSlackChannelId :: Val Text
@@ -29,8 +28,7 @@
     { resourcePropertiesType = "AWS::Chatbot::SlackChannelConfiguration"
     , resourcePropertiesProperties =
         hashMapFromList $ catMaybes
-        [ fmap (("Arn",) . toJSON) _chatbotSlackChannelConfigurationArn
-        , (Just . ("ConfigurationName",) . toJSON) _chatbotSlackChannelConfigurationConfigurationName
+        [ (Just . ("ConfigurationName",) . toJSON) _chatbotSlackChannelConfigurationConfigurationName
         , (Just . ("IamRoleArn",) . toJSON) _chatbotSlackChannelConfigurationIamRoleArn
         , fmap (("LoggingLevel",) . toJSON) _chatbotSlackChannelConfigurationLoggingLevel
         , (Just . ("SlackChannelId",) . toJSON) _chatbotSlackChannelConfigurationSlackChannelId
@@ -49,18 +47,13 @@
   -> ChatbotSlackChannelConfiguration
 chatbotSlackChannelConfiguration configurationNamearg iamRoleArnarg slackChannelIdarg slackWorkspaceIdarg =
   ChatbotSlackChannelConfiguration
-  { _chatbotSlackChannelConfigurationArn = Nothing
-  , _chatbotSlackChannelConfigurationConfigurationName = configurationNamearg
+  { _chatbotSlackChannelConfigurationConfigurationName = configurationNamearg
   , _chatbotSlackChannelConfigurationIamRoleArn = iamRoleArnarg
   , _chatbotSlackChannelConfigurationLoggingLevel = Nothing
   , _chatbotSlackChannelConfigurationSlackChannelId = slackChannelIdarg
   , _chatbotSlackChannelConfigurationSlackWorkspaceId = slackWorkspaceIdarg
   , _chatbotSlackChannelConfigurationSnsTopicArns = Nothing
   }
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-chatbot-slackchannelconfiguration.html#cfn-chatbot-slackchannelconfiguration-arn
-csccArn :: Lens' ChatbotSlackChannelConfiguration (Maybe (Val Text))
-csccArn = lens _chatbotSlackChannelConfigurationArn (\s a -> s { _chatbotSlackChannelConfigurationArn = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-chatbot-slackchannelconfiguration.html#cfn-chatbot-slackchannelconfiguration-configurationname
 csccConfigurationName :: Lens' ChatbotSlackChannelConfiguration (Val Text)
diff --git a/library-gen/Stratosphere/Resources/CodeGuruProfilerProfilingGroup.hs b/library-gen/Stratosphere/Resources/CodeGuruProfilerProfilingGroup.hs
--- a/library-gen/Stratosphere/Resources/CodeGuruProfilerProfilingGroup.hs
+++ b/library-gen/Stratosphere/Resources/CodeGuruProfilerProfilingGroup.hs
@@ -14,7 +14,8 @@
 -- 'codeGuruProfilerProfilingGroup' for a more convenient constructor.
 data CodeGuruProfilerProfilingGroup =
   CodeGuruProfilerProfilingGroup
-  { _codeGuruProfilerProfilingGroupProfilingGroupName :: Val Text
+  { _codeGuruProfilerProfilingGroupAgentPermissions :: Maybe Object
+  , _codeGuruProfilerProfilingGroupProfilingGroupName :: Val Text
   } deriving (Show, Eq)
 
 instance ToResourceProperties CodeGuruProfilerProfilingGroup where
@@ -23,7 +24,8 @@
     { resourcePropertiesType = "AWS::CodeGuruProfiler::ProfilingGroup"
     , resourcePropertiesProperties =
         hashMapFromList $ catMaybes
-        [ (Just . ("ProfilingGroupName",) . toJSON) _codeGuruProfilerProfilingGroupProfilingGroupName
+        [ fmap (("AgentPermissions",) . toJSON) _codeGuruProfilerProfilingGroupAgentPermissions
+        , (Just . ("ProfilingGroupName",) . toJSON) _codeGuruProfilerProfilingGroupProfilingGroupName
         ]
     }
 
@@ -34,8 +36,13 @@
   -> CodeGuruProfilerProfilingGroup
 codeGuruProfilerProfilingGroup profilingGroupNamearg =
   CodeGuruProfilerProfilingGroup
-  { _codeGuruProfilerProfilingGroupProfilingGroupName = profilingGroupNamearg
+  { _codeGuruProfilerProfilingGroupAgentPermissions = Nothing
+  , _codeGuruProfilerProfilingGroupProfilingGroupName = profilingGroupNamearg
   }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeguruprofiler-profilinggroup.html#cfn-codeguruprofiler-profilinggroup-agentpermissions
+cgppgAgentPermissions :: Lens' CodeGuruProfilerProfilingGroup (Maybe Object)
+cgppgAgentPermissions = lens _codeGuruProfilerProfilingGroupAgentPermissions (\s a -> s { _codeGuruProfilerProfilingGroupAgentPermissions = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeguruprofiler-profilinggroup.html#cfn-codeguruprofiler-profilinggroup-profilinggroupname
 cgppgProfilingGroupName :: Lens' CodeGuruProfilerProfilingGroup (Val Text)
diff --git a/library-gen/Stratosphere/Resources/EC2PrefixList.hs b/library-gen/Stratosphere/Resources/EC2PrefixList.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/EC2PrefixList.hs
@@ -0,0 +1,72 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-prefixlist.html
+
+module Stratosphere.Resources.EC2PrefixList where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.EC2PrefixListEntry
+import Stratosphere.ResourceProperties.Tag
+
+-- | Full data type definition for EC2PrefixList. See 'ec2PrefixList' for a
+-- more convenient constructor.
+data EC2PrefixList =
+  EC2PrefixList
+  { _eC2PrefixListAddressFamily :: Val Text
+  , _eC2PrefixListEntries :: Maybe [EC2PrefixListEntry]
+  , _eC2PrefixListMaxEntries :: Val Integer
+  , _eC2PrefixListPrefixListName :: Val Text
+  , _eC2PrefixListTags :: Maybe [Tag]
+  } deriving (Show, Eq)
+
+instance ToResourceProperties EC2PrefixList where
+  toResourceProperties EC2PrefixList{..} =
+    ResourceProperties
+    { resourcePropertiesType = "AWS::EC2::PrefixList"
+    , resourcePropertiesProperties =
+        hashMapFromList $ catMaybes
+        [ (Just . ("AddressFamily",) . toJSON) _eC2PrefixListAddressFamily
+        , fmap (("Entries",) . toJSON) _eC2PrefixListEntries
+        , (Just . ("MaxEntries",) . toJSON) _eC2PrefixListMaxEntries
+        , (Just . ("PrefixListName",) . toJSON) _eC2PrefixListPrefixListName
+        , fmap (("Tags",) . toJSON) _eC2PrefixListTags
+        ]
+    }
+
+-- | Constructor for 'EC2PrefixList' containing required fields as arguments.
+ec2PrefixList
+  :: Val Text -- ^ 'ecplAddressFamily'
+  -> Val Integer -- ^ 'ecplMaxEntries'
+  -> Val Text -- ^ 'ecplPrefixListName'
+  -> EC2PrefixList
+ec2PrefixList addressFamilyarg maxEntriesarg prefixListNamearg =
+  EC2PrefixList
+  { _eC2PrefixListAddressFamily = addressFamilyarg
+  , _eC2PrefixListEntries = Nothing
+  , _eC2PrefixListMaxEntries = maxEntriesarg
+  , _eC2PrefixListPrefixListName = prefixListNamearg
+  , _eC2PrefixListTags = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-prefixlist.html#cfn-ec2-prefixlist-addressfamily
+ecplAddressFamily :: Lens' EC2PrefixList (Val Text)
+ecplAddressFamily = lens _eC2PrefixListAddressFamily (\s a -> s { _eC2PrefixListAddressFamily = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-prefixlist.html#cfn-ec2-prefixlist-entries
+ecplEntries :: Lens' EC2PrefixList (Maybe [EC2PrefixListEntry])
+ecplEntries = lens _eC2PrefixListEntries (\s a -> s { _eC2PrefixListEntries = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-prefixlist.html#cfn-ec2-prefixlist-maxentries
+ecplMaxEntries :: Lens' EC2PrefixList (Val Integer)
+ecplMaxEntries = lens _eC2PrefixListMaxEntries (\s a -> s { _eC2PrefixListMaxEntries = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-prefixlist.html#cfn-ec2-prefixlist-prefixlistname
+ecplPrefixListName :: Lens' EC2PrefixList (Val Text)
+ecplPrefixListName = lens _eC2PrefixListPrefixListName (\s a -> s { _eC2PrefixListPrefixListName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-prefixlist.html#cfn-ec2-prefixlist-tags
+ecplTags :: Lens' EC2PrefixList (Maybe [Tag])
+ecplTags = lens _eC2PrefixListTags (\s a -> s { _eC2PrefixListTags = a })
diff --git a/library-gen/Stratosphere/Resources/EC2Volume.hs b/library-gen/Stratosphere/Resources/EC2Volume.hs
--- a/library-gen/Stratosphere/Resources/EC2Volume.hs
+++ b/library-gen/Stratosphere/Resources/EC2Volume.hs
@@ -20,6 +20,7 @@
   , _eC2VolumeIops :: Maybe (Val Integer)
   , _eC2VolumeKmsKeyId :: Maybe (Val Text)
   , _eC2VolumeMultiAttachEnabled :: Maybe (Val Bool)
+  , _eC2VolumeOutpostArn :: Maybe (Val Text)
   , _eC2VolumeSize :: Maybe (Val Integer)
   , _eC2VolumeSnapshotId :: Maybe (Val Text)
   , _eC2VolumeTags :: Maybe [Tag]
@@ -38,6 +39,7 @@
         , fmap (("Iops",) . toJSON) _eC2VolumeIops
         , fmap (("KmsKeyId",) . toJSON) _eC2VolumeKmsKeyId
         , fmap (("MultiAttachEnabled",) . toJSON) _eC2VolumeMultiAttachEnabled
+        , fmap (("OutpostArn",) . toJSON) _eC2VolumeOutpostArn
         , fmap (("Size",) . toJSON) _eC2VolumeSize
         , fmap (("SnapshotId",) . toJSON) _eC2VolumeSnapshotId
         , fmap (("Tags",) . toJSON) _eC2VolumeTags
@@ -57,6 +59,7 @@
   , _eC2VolumeIops = Nothing
   , _eC2VolumeKmsKeyId = Nothing
   , _eC2VolumeMultiAttachEnabled = Nothing
+  , _eC2VolumeOutpostArn = Nothing
   , _eC2VolumeSize = Nothing
   , _eC2VolumeSnapshotId = Nothing
   , _eC2VolumeTags = Nothing
@@ -86,6 +89,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html#cfn-ec2-ebs-volume-multiattachenabled
 ecvMultiAttachEnabled :: Lens' EC2Volume (Maybe (Val Bool))
 ecvMultiAttachEnabled = lens _eC2VolumeMultiAttachEnabled (\s a -> s { _eC2VolumeMultiAttachEnabled = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html#cfn-ec2-ebs-volume-outpostarn
+ecvOutpostArn :: Lens' EC2Volume (Maybe (Val Text))
+ecvOutpostArn = lens _eC2VolumeOutpostArn (\s a -> s { _eC2VolumeOutpostArn = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html#cfn-ec2-ebs-volume-size
 ecvSize :: Lens' EC2Volume (Maybe (Val Integer))
diff --git a/library-gen/Stratosphere/Resources/EFSAccessPoint.hs b/library-gen/Stratosphere/Resources/EFSAccessPoint.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/EFSAccessPoint.hs
@@ -0,0 +1,71 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-accesspoint.html
+
+module Stratosphere.Resources.EFSAccessPoint where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.EFSAccessPointAccessPointTag
+import Stratosphere.ResourceProperties.EFSAccessPointPosixUser
+import Stratosphere.ResourceProperties.EFSAccessPointRootDirectory
+
+-- | Full data type definition for EFSAccessPoint. See 'efsAccessPoint' for a
+-- more convenient constructor.
+data EFSAccessPoint =
+  EFSAccessPoint
+  { _eFSAccessPointAccessPointTags :: Maybe [EFSAccessPointAccessPointTag]
+  , _eFSAccessPointClientToken :: Maybe (Val Text)
+  , _eFSAccessPointFileSystemId :: Val Text
+  , _eFSAccessPointPosixUser :: Maybe EFSAccessPointPosixUser
+  , _eFSAccessPointRootDirectory :: Maybe EFSAccessPointRootDirectory
+  } deriving (Show, Eq)
+
+instance ToResourceProperties EFSAccessPoint where
+  toResourceProperties EFSAccessPoint{..} =
+    ResourceProperties
+    { resourcePropertiesType = "AWS::EFS::AccessPoint"
+    , resourcePropertiesProperties =
+        hashMapFromList $ catMaybes
+        [ fmap (("AccessPointTags",) . toJSON) _eFSAccessPointAccessPointTags
+        , fmap (("ClientToken",) . toJSON) _eFSAccessPointClientToken
+        , (Just . ("FileSystemId",) . toJSON) _eFSAccessPointFileSystemId
+        , fmap (("PosixUser",) . toJSON) _eFSAccessPointPosixUser
+        , fmap (("RootDirectory",) . toJSON) _eFSAccessPointRootDirectory
+        ]
+    }
+
+-- | Constructor for 'EFSAccessPoint' containing required fields as arguments.
+efsAccessPoint
+  :: Val Text -- ^ 'efsapFileSystemId'
+  -> EFSAccessPoint
+efsAccessPoint fileSystemIdarg =
+  EFSAccessPoint
+  { _eFSAccessPointAccessPointTags = Nothing
+  , _eFSAccessPointClientToken = Nothing
+  , _eFSAccessPointFileSystemId = fileSystemIdarg
+  , _eFSAccessPointPosixUser = Nothing
+  , _eFSAccessPointRootDirectory = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-accesspoint.html#cfn-efs-accesspoint-accesspointtags
+efsapAccessPointTags :: Lens' EFSAccessPoint (Maybe [EFSAccessPointAccessPointTag])
+efsapAccessPointTags = lens _eFSAccessPointAccessPointTags (\s a -> s { _eFSAccessPointAccessPointTags = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-accesspoint.html#cfn-efs-accesspoint-clienttoken
+efsapClientToken :: Lens' EFSAccessPoint (Maybe (Val Text))
+efsapClientToken = lens _eFSAccessPointClientToken (\s a -> s { _eFSAccessPointClientToken = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-accesspoint.html#cfn-efs-accesspoint-filesystemid
+efsapFileSystemId :: Lens' EFSAccessPoint (Val Text)
+efsapFileSystemId = lens _eFSAccessPointFileSystemId (\s a -> s { _eFSAccessPointFileSystemId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-accesspoint.html#cfn-efs-accesspoint-posixuser
+efsapPosixUser :: Lens' EFSAccessPoint (Maybe EFSAccessPointPosixUser)
+efsapPosixUser = lens _eFSAccessPointPosixUser (\s a -> s { _eFSAccessPointPosixUser = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-accesspoint.html#cfn-efs-accesspoint-rootdirectory
+efsapRootDirectory :: Lens' EFSAccessPoint (Maybe EFSAccessPointRootDirectory)
+efsapRootDirectory = lens _eFSAccessPointRootDirectory (\s a -> s { _eFSAccessPointRootDirectory = a })
diff --git a/library-gen/Stratosphere/Resources/EFSFileSystem.hs b/library-gen/Stratosphere/Resources/EFSFileSystem.hs
--- a/library-gen/Stratosphere/Resources/EFSFileSystem.hs
+++ b/library-gen/Stratosphere/Resources/EFSFileSystem.hs
@@ -16,6 +16,7 @@
 data EFSFileSystem =
   EFSFileSystem
   { _eFSFileSystemEncrypted :: Maybe (Val Bool)
+  , _eFSFileSystemFileSystemPolicy :: Maybe Object
   , _eFSFileSystemFileSystemTags :: Maybe [EFSFileSystemElasticFileSystemTag]
   , _eFSFileSystemKmsKeyId :: Maybe (Val Text)
   , _eFSFileSystemLifecyclePolicies :: Maybe [EFSFileSystemLifecyclePolicy]
@@ -31,6 +32,7 @@
     , resourcePropertiesProperties =
         hashMapFromList $ catMaybes
         [ fmap (("Encrypted",) . toJSON) _eFSFileSystemEncrypted
+        , fmap (("FileSystemPolicy",) . toJSON) _eFSFileSystemFileSystemPolicy
         , fmap (("FileSystemTags",) . toJSON) _eFSFileSystemFileSystemTags
         , fmap (("KmsKeyId",) . toJSON) _eFSFileSystemKmsKeyId
         , fmap (("LifecyclePolicies",) . toJSON) _eFSFileSystemLifecyclePolicies
@@ -46,6 +48,7 @@
 efsFileSystem  =
   EFSFileSystem
   { _eFSFileSystemEncrypted = Nothing
+  , _eFSFileSystemFileSystemPolicy = Nothing
   , _eFSFileSystemFileSystemTags = Nothing
   , _eFSFileSystemKmsKeyId = Nothing
   , _eFSFileSystemLifecyclePolicies = Nothing
@@ -58,6 +61,10 @@
 efsfsEncrypted :: Lens' EFSFileSystem (Maybe (Val Bool))
 efsfsEncrypted = lens _eFSFileSystemEncrypted (\s a -> s { _eFSFileSystemEncrypted = a })
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-filesystempolicy
+efsfsFileSystemPolicy :: Lens' EFSFileSystem (Maybe Object)
+efsfsFileSystemPolicy = lens _eFSFileSystemFileSystemPolicy (\s a -> s { _eFSFileSystemFileSystemPolicy = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-filesystemtags
 efsfsFileSystemTags :: Lens' EFSFileSystem (Maybe [EFSFileSystemElasticFileSystemTag])
 efsfsFileSystemTags = lens _eFSFileSystemFileSystemTags (\s a -> s { _eFSFileSystemFileSystemTags = a })
@@ -66,7 +73,7 @@
 efsfsKmsKeyId :: Lens' EFSFileSystem (Maybe (Val Text))
 efsfsKmsKeyId = lens _eFSFileSystemKmsKeyId (\s a -> s { _eFSFileSystemKmsKeyId = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-elasticfilesystem-filesystem-lifecyclepolicies
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-lifecyclepolicies
 efsfsLifecyclePolicies :: Lens' EFSFileSystem (Maybe [EFSFileSystemLifecyclePolicy])
 efsfsLifecyclePolicies = lens _eFSFileSystemLifecyclePolicies (\s a -> s { _eFSFileSystemLifecyclePolicies = a })
 
@@ -74,10 +81,10 @@
 efsfsPerformanceMode :: Lens' EFSFileSystem (Maybe (Val Text))
 efsfsPerformanceMode = lens _eFSFileSystemPerformanceMode (\s a -> s { _eFSFileSystemPerformanceMode = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-elasticfilesystem-filesystem-provisionedthroughputinmibps
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-provisionedthroughputinmibps
 efsfsProvisionedThroughputInMibps :: Lens' EFSFileSystem (Maybe (Val Double))
 efsfsProvisionedThroughputInMibps = lens _eFSFileSystemProvisionedThroughputInMibps (\s a -> s { _eFSFileSystemProvisionedThroughputInMibps = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-elasticfilesystem-filesystem-throughputmode
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-throughputmode
 efsfsThroughputMode :: Lens' EFSFileSystem (Maybe (Val Text))
 efsfsThroughputMode = lens _eFSFileSystemThroughputMode (\s a -> s { _eFSFileSystemThroughputMode = a })
diff --git a/library-gen/Stratosphere/Resources/ElastiCacheReplicationGroup.hs b/library-gen/Stratosphere/Resources/ElastiCacheReplicationGroup.hs
--- a/library-gen/Stratosphere/Resources/ElastiCacheReplicationGroup.hs
+++ b/library-gen/Stratosphere/Resources/ElastiCacheReplicationGroup.hs
@@ -26,6 +26,7 @@
   , _elastiCacheReplicationGroupEngine :: Maybe (Val Text)
   , _elastiCacheReplicationGroupEngineVersion :: Maybe (Val Text)
   , _elastiCacheReplicationGroupKmsKeyId :: Maybe (Val Text)
+  , _elastiCacheReplicationGroupMultiAZEnabled :: Maybe (Val Bool)
   , _elastiCacheReplicationGroupNodeGroupConfiguration :: Maybe [ElastiCacheReplicationGroupNodeGroupConfiguration]
   , _elastiCacheReplicationGroupNotificationTopicArn :: Maybe (Val Text)
   , _elastiCacheReplicationGroupNumCacheClusters :: Maybe (Val Integer)
@@ -64,6 +65,7 @@
         , fmap (("Engine",) . toJSON) _elastiCacheReplicationGroupEngine
         , fmap (("EngineVersion",) . toJSON) _elastiCacheReplicationGroupEngineVersion
         , fmap (("KmsKeyId",) . toJSON) _elastiCacheReplicationGroupKmsKeyId
+        , fmap (("MultiAZEnabled",) . toJSON) _elastiCacheReplicationGroupMultiAZEnabled
         , fmap (("NodeGroupConfiguration",) . toJSON) _elastiCacheReplicationGroupNodeGroupConfiguration
         , fmap (("NotificationTopicArn",) . toJSON) _elastiCacheReplicationGroupNotificationTopicArn
         , fmap (("NumCacheClusters",) . toJSON) _elastiCacheReplicationGroupNumCacheClusters
@@ -104,6 +106,7 @@
   , _elastiCacheReplicationGroupEngine = Nothing
   , _elastiCacheReplicationGroupEngineVersion = Nothing
   , _elastiCacheReplicationGroupKmsKeyId = Nothing
+  , _elastiCacheReplicationGroupMultiAZEnabled = Nothing
   , _elastiCacheReplicationGroupNodeGroupConfiguration = Nothing
   , _elastiCacheReplicationGroupNotificationTopicArn = Nothing
   , _elastiCacheReplicationGroupNumCacheClusters = Nothing
@@ -168,6 +171,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-kmskeyid
 ecrgKmsKeyId :: Lens' ElastiCacheReplicationGroup (Maybe (Val Text))
 ecrgKmsKeyId = lens _elastiCacheReplicationGroupKmsKeyId (\s a -> s { _elastiCacheReplicationGroupKmsKeyId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-multiazenabled
+ecrgMultiAZEnabled :: Lens' ElastiCacheReplicationGroup (Maybe (Val Bool))
+ecrgMultiAZEnabled = lens _elastiCacheReplicationGroupMultiAZEnabled (\s a -> s { _elastiCacheReplicationGroupMultiAZEnabled = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-nodegroupconfiguration
 ecrgNodeGroupConfiguration :: Lens' ElastiCacheReplicationGroup (Maybe [ElastiCacheReplicationGroupNodeGroupConfiguration])
diff --git a/library-gen/Stratosphere/Resources/GuardDutyFilter.hs b/library-gen/Stratosphere/Resources/GuardDutyFilter.hs
--- a/library-gen/Stratosphere/Resources/GuardDutyFilter.hs
+++ b/library-gen/Stratosphere/Resources/GuardDutyFilter.hs
@@ -8,8 +8,8 @@
 module Stratosphere.Resources.GuardDutyFilter where
 
 import Stratosphere.ResourceImports
-import Stratosphere.ResourceProperties.GuardDutyFilterFindingCriteria
 
+
 -- | Full data type definition for GuardDutyFilter. See 'guardDutyFilter' for
 -- a more convenient constructor.
 data GuardDutyFilter =
@@ -17,7 +17,6 @@
   { _guardDutyFilterAction :: Val Text
   , _guardDutyFilterDescription :: Val Text
   , _guardDutyFilterDetectorId :: Val Text
-  , _guardDutyFilterFindingCriteria :: GuardDutyFilterFindingCriteria
   , _guardDutyFilterName :: Val Text
   , _guardDutyFilterRank :: Val Integer
   } deriving (Show, Eq)
@@ -31,7 +30,6 @@
         [ (Just . ("Action",) . toJSON) _guardDutyFilterAction
         , (Just . ("Description",) . toJSON) _guardDutyFilterDescription
         , (Just . ("DetectorId",) . toJSON) _guardDutyFilterDetectorId
-        , (Just . ("FindingCriteria",) . toJSON) _guardDutyFilterFindingCriteria
         , (Just . ("Name",) . toJSON) _guardDutyFilterName
         , (Just . ("Rank",) . toJSON) _guardDutyFilterRank
         ]
@@ -43,16 +41,14 @@
   :: Val Text -- ^ 'gdfAction'
   -> Val Text -- ^ 'gdfDescription'
   -> Val Text -- ^ 'gdfDetectorId'
-  -> GuardDutyFilterFindingCriteria -- ^ 'gdfFindingCriteria'
   -> Val Text -- ^ 'gdfName'
   -> Val Integer -- ^ 'gdfRank'
   -> GuardDutyFilter
-guardDutyFilter actionarg descriptionarg detectorIdarg findingCriteriaarg namearg rankarg =
+guardDutyFilter actionarg descriptionarg detectorIdarg namearg rankarg =
   GuardDutyFilter
   { _guardDutyFilterAction = actionarg
   , _guardDutyFilterDescription = descriptionarg
   , _guardDutyFilterDetectorId = detectorIdarg
-  , _guardDutyFilterFindingCriteria = findingCriteriaarg
   , _guardDutyFilterName = namearg
   , _guardDutyFilterRank = rankarg
   }
@@ -68,10 +64,6 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-filter.html#cfn-guardduty-filter-detectorid
 gdfDetectorId :: Lens' GuardDutyFilter (Val Text)
 gdfDetectorId = lens _guardDutyFilterDetectorId (\s a -> s { _guardDutyFilterDetectorId = a })
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-filter.html#cfn-guardduty-filter-findingcriteria
-gdfFindingCriteria :: Lens' GuardDutyFilter GuardDutyFilterFindingCriteria
-gdfFindingCriteria = lens _guardDutyFilterFindingCriteria (\s a -> s { _guardDutyFilterFindingCriteria = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-filter.html#cfn-guardduty-filter-name
 gdfName :: Lens' GuardDutyFilter (Val Text)
diff --git a/library-gen/Stratosphere/Resources/IoTProvisioningTemplate.hs b/library-gen/Stratosphere/Resources/IoTProvisioningTemplate.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/IoTProvisioningTemplate.hs
@@ -0,0 +1,85 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-provisioningtemplate.html
+
+module Stratosphere.Resources.IoTProvisioningTemplate where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.IoTProvisioningTemplateProvisioningHook
+
+-- | Full data type definition for IoTProvisioningTemplate. See
+-- 'ioTProvisioningTemplate' for a more convenient constructor.
+data IoTProvisioningTemplate =
+  IoTProvisioningTemplate
+  { _ioTProvisioningTemplateDescription :: Maybe (Val Text)
+  , _ioTProvisioningTemplateEnabled :: Maybe (Val Bool)
+  , _ioTProvisioningTemplatePreProvisioningHook :: Maybe IoTProvisioningTemplateProvisioningHook
+  , _ioTProvisioningTemplateProvisioningRoleArn :: Val Text
+  , _ioTProvisioningTemplateTags :: Maybe [Object]
+  , _ioTProvisioningTemplateTemplateBody :: Val Text
+  , _ioTProvisioningTemplateTemplateName :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToResourceProperties IoTProvisioningTemplate where
+  toResourceProperties IoTProvisioningTemplate{..} =
+    ResourceProperties
+    { resourcePropertiesType = "AWS::IoT::ProvisioningTemplate"
+    , resourcePropertiesProperties =
+        hashMapFromList $ catMaybes
+        [ fmap (("Description",) . toJSON) _ioTProvisioningTemplateDescription
+        , fmap (("Enabled",) . toJSON) _ioTProvisioningTemplateEnabled
+        , fmap (("PreProvisioningHook",) . toJSON) _ioTProvisioningTemplatePreProvisioningHook
+        , (Just . ("ProvisioningRoleArn",) . toJSON) _ioTProvisioningTemplateProvisioningRoleArn
+        , fmap (("Tags",) . toJSON) _ioTProvisioningTemplateTags
+        , (Just . ("TemplateBody",) . toJSON) _ioTProvisioningTemplateTemplateBody
+        , fmap (("TemplateName",) . toJSON) _ioTProvisioningTemplateTemplateName
+        ]
+    }
+
+-- | Constructor for 'IoTProvisioningTemplate' containing required fields as
+-- arguments.
+ioTProvisioningTemplate
+  :: Val Text -- ^ 'itptProvisioningRoleArn'
+  -> Val Text -- ^ 'itptTemplateBody'
+  -> IoTProvisioningTemplate
+ioTProvisioningTemplate provisioningRoleArnarg templateBodyarg =
+  IoTProvisioningTemplate
+  { _ioTProvisioningTemplateDescription = Nothing
+  , _ioTProvisioningTemplateEnabled = Nothing
+  , _ioTProvisioningTemplatePreProvisioningHook = Nothing
+  , _ioTProvisioningTemplateProvisioningRoleArn = provisioningRoleArnarg
+  , _ioTProvisioningTemplateTags = Nothing
+  , _ioTProvisioningTemplateTemplateBody = templateBodyarg
+  , _ioTProvisioningTemplateTemplateName = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-provisioningtemplate.html#cfn-iot-provisioningtemplate-description
+itptDescription :: Lens' IoTProvisioningTemplate (Maybe (Val Text))
+itptDescription = lens _ioTProvisioningTemplateDescription (\s a -> s { _ioTProvisioningTemplateDescription = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-provisioningtemplate.html#cfn-iot-provisioningtemplate-enabled
+itptEnabled :: Lens' IoTProvisioningTemplate (Maybe (Val Bool))
+itptEnabled = lens _ioTProvisioningTemplateEnabled (\s a -> s { _ioTProvisioningTemplateEnabled = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-provisioningtemplate.html#cfn-iot-provisioningtemplate-preprovisioninghook
+itptPreProvisioningHook :: Lens' IoTProvisioningTemplate (Maybe IoTProvisioningTemplateProvisioningHook)
+itptPreProvisioningHook = lens _ioTProvisioningTemplatePreProvisioningHook (\s a -> s { _ioTProvisioningTemplatePreProvisioningHook = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-provisioningtemplate.html#cfn-iot-provisioningtemplate-provisioningrolearn
+itptProvisioningRoleArn :: Lens' IoTProvisioningTemplate (Val Text)
+itptProvisioningRoleArn = lens _ioTProvisioningTemplateProvisioningRoleArn (\s a -> s { _ioTProvisioningTemplateProvisioningRoleArn = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-provisioningtemplate.html#cfn-iot-provisioningtemplate-tags
+itptTags :: Lens' IoTProvisioningTemplate (Maybe [Object])
+itptTags = lens _ioTProvisioningTemplateTags (\s a -> s { _ioTProvisioningTemplateTags = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-provisioningtemplate.html#cfn-iot-provisioningtemplate-templatebody
+itptTemplateBody :: Lens' IoTProvisioningTemplate (Val Text)
+itptTemplateBody = lens _ioTProvisioningTemplateTemplateBody (\s a -> s { _ioTProvisioningTemplateTemplateBody = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-provisioningtemplate.html#cfn-iot-provisioningtemplate-templatename
+itptTemplateName :: Lens' IoTProvisioningTemplate (Maybe (Val Text))
+itptTemplateName = lens _ioTProvisioningTemplateTemplateName (\s a -> s { _ioTProvisioningTemplateTemplateName = a })
diff --git a/library-gen/Stratosphere/Resources/MacieFindingsFilter.hs b/library-gen/Stratosphere/Resources/MacieFindingsFilter.hs
--- a/library-gen/Stratosphere/Resources/MacieFindingsFilter.hs
+++ b/library-gen/Stratosphere/Resources/MacieFindingsFilter.hs
@@ -16,7 +16,7 @@
   MacieFindingsFilter
   { _macieFindingsFilterAction :: Maybe (Val Text)
   , _macieFindingsFilterDescription :: Maybe (Val Text)
-  , _macieFindingsFilterName :: Maybe (Val Text)
+  , _macieFindingsFilterName :: Val Text
   , _macieFindingsFilterPosition :: Maybe (Val Integer)
   } deriving (Show, Eq)
 
@@ -28,7 +28,7 @@
         hashMapFromList $ catMaybes
         [ fmap (("Action",) . toJSON) _macieFindingsFilterAction
         , fmap (("Description",) . toJSON) _macieFindingsFilterDescription
-        , fmap (("Name",) . toJSON) _macieFindingsFilterName
+        , (Just . ("Name",) . toJSON) _macieFindingsFilterName
         , fmap (("Position",) . toJSON) _macieFindingsFilterPosition
         ]
     }
@@ -36,12 +36,13 @@
 -- | Constructor for 'MacieFindingsFilter' containing required fields as
 -- arguments.
 macieFindingsFilter
-  :: MacieFindingsFilter
-macieFindingsFilter  =
+  :: Val Text -- ^ 'mffName'
+  -> MacieFindingsFilter
+macieFindingsFilter namearg =
   MacieFindingsFilter
   { _macieFindingsFilterAction = Nothing
   , _macieFindingsFilterDescription = Nothing
-  , _macieFindingsFilterName = Nothing
+  , _macieFindingsFilterName = namearg
   , _macieFindingsFilterPosition = Nothing
   }
 
@@ -54,7 +55,7 @@
 mffDescription = lens _macieFindingsFilterDescription (\s a -> s { _macieFindingsFilterDescription = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-findingsfilter.html#cfn-macie-findingsfilter-name
-mffName :: Lens' MacieFindingsFilter (Maybe (Val Text))
+mffName :: Lens' MacieFindingsFilter (Val Text)
 mffName = lens _macieFindingsFilterName (\s a -> s { _macieFindingsFilterName = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-findingsfilter.html#cfn-macie-findingsfilter-position
diff --git a/library-gen/Stratosphere/Resources/NeptuneDBCluster.hs b/library-gen/Stratosphere/Resources/NeptuneDBCluster.hs
--- a/library-gen/Stratosphere/Resources/NeptuneDBCluster.hs
+++ b/library-gen/Stratosphere/Resources/NeptuneDBCluster.hs
@@ -27,9 +27,13 @@
   , _neptuneDBClusterPort :: Maybe (Val Integer)
   , _neptuneDBClusterPreferredBackupWindow :: Maybe (Val Text)
   , _neptuneDBClusterPreferredMaintenanceWindow :: Maybe (Val Text)
+  , _neptuneDBClusterRestoreToTime :: Maybe (Val Text)
+  , _neptuneDBClusterRestoreType :: Maybe (Val Text)
   , _neptuneDBClusterSnapshotIdentifier :: Maybe (Val Text)
+  , _neptuneDBClusterSourceDBClusterIdentifier :: Maybe (Val Text)
   , _neptuneDBClusterStorageEncrypted :: Maybe (Val Bool)
   , _neptuneDBClusterTags :: Maybe [Tag]
+  , _neptuneDBClusterUseLatestRestorableTime :: Maybe (Val Bool)
   , _neptuneDBClusterVpcSecurityGroupIds :: Maybe (ValList Text)
   } deriving (Show, Eq)
 
@@ -52,9 +56,13 @@
         , fmap (("Port",) . toJSON) _neptuneDBClusterPort
         , fmap (("PreferredBackupWindow",) . toJSON) _neptuneDBClusterPreferredBackupWindow
         , fmap (("PreferredMaintenanceWindow",) . toJSON) _neptuneDBClusterPreferredMaintenanceWindow
+        , fmap (("RestoreToTime",) . toJSON) _neptuneDBClusterRestoreToTime
+        , fmap (("RestoreType",) . toJSON) _neptuneDBClusterRestoreType
         , fmap (("SnapshotIdentifier",) . toJSON) _neptuneDBClusterSnapshotIdentifier
+        , fmap (("SourceDBClusterIdentifier",) . toJSON) _neptuneDBClusterSourceDBClusterIdentifier
         , fmap (("StorageEncrypted",) . toJSON) _neptuneDBClusterStorageEncrypted
         , fmap (("Tags",) . toJSON) _neptuneDBClusterTags
+        , fmap (("UseLatestRestorableTime",) . toJSON) _neptuneDBClusterUseLatestRestorableTime
         , fmap (("VpcSecurityGroupIds",) . toJSON) _neptuneDBClusterVpcSecurityGroupIds
         ]
     }
@@ -78,9 +86,13 @@
   , _neptuneDBClusterPort = Nothing
   , _neptuneDBClusterPreferredBackupWindow = Nothing
   , _neptuneDBClusterPreferredMaintenanceWindow = Nothing
+  , _neptuneDBClusterRestoreToTime = Nothing
+  , _neptuneDBClusterRestoreType = Nothing
   , _neptuneDBClusterSnapshotIdentifier = Nothing
+  , _neptuneDBClusterSourceDBClusterIdentifier = Nothing
   , _neptuneDBClusterStorageEncrypted = Nothing
   , _neptuneDBClusterTags = Nothing
+  , _neptuneDBClusterUseLatestRestorableTime = Nothing
   , _neptuneDBClusterVpcSecurityGroupIds = Nothing
   }
 
@@ -136,10 +148,22 @@
 ndbcPreferredMaintenanceWindow :: Lens' NeptuneDBCluster (Maybe (Val Text))
 ndbcPreferredMaintenanceWindow = lens _neptuneDBClusterPreferredMaintenanceWindow (\s a -> s { _neptuneDBClusterPreferredMaintenanceWindow = a })
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbcluster.html#cfn-neptune-dbcluster-restoretotime
+ndbcRestoreToTime :: Lens' NeptuneDBCluster (Maybe (Val Text))
+ndbcRestoreToTime = lens _neptuneDBClusterRestoreToTime (\s a -> s { _neptuneDBClusterRestoreToTime = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbcluster.html#cfn-neptune-dbcluster-restoretype
+ndbcRestoreType :: Lens' NeptuneDBCluster (Maybe (Val Text))
+ndbcRestoreType = lens _neptuneDBClusterRestoreType (\s a -> s { _neptuneDBClusterRestoreType = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbcluster.html#cfn-neptune-dbcluster-snapshotidentifier
 ndbcSnapshotIdentifier :: Lens' NeptuneDBCluster (Maybe (Val Text))
 ndbcSnapshotIdentifier = lens _neptuneDBClusterSnapshotIdentifier (\s a -> s { _neptuneDBClusterSnapshotIdentifier = a })
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbcluster.html#cfn-neptune-dbcluster-sourcedbclusteridentifier
+ndbcSourceDBClusterIdentifier :: Lens' NeptuneDBCluster (Maybe (Val Text))
+ndbcSourceDBClusterIdentifier = lens _neptuneDBClusterSourceDBClusterIdentifier (\s a -> s { _neptuneDBClusterSourceDBClusterIdentifier = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbcluster.html#cfn-neptune-dbcluster-storageencrypted
 ndbcStorageEncrypted :: Lens' NeptuneDBCluster (Maybe (Val Bool))
 ndbcStorageEncrypted = lens _neptuneDBClusterStorageEncrypted (\s a -> s { _neptuneDBClusterStorageEncrypted = a })
@@ -147,6 +171,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbcluster.html#cfn-neptune-dbcluster-tags
 ndbcTags :: Lens' NeptuneDBCluster (Maybe [Tag])
 ndbcTags = lens _neptuneDBClusterTags (\s a -> s { _neptuneDBClusterTags = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbcluster.html#cfn-neptune-dbcluster-uselatestrestorabletime
+ndbcUseLatestRestorableTime :: Lens' NeptuneDBCluster (Maybe (Val Bool))
+ndbcUseLatestRestorableTime = lens _neptuneDBClusterUseLatestRestorableTime (\s a -> s { _neptuneDBClusterUseLatestRestorableTime = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbcluster.html#cfn-neptune-dbcluster-vpcsecuritygroupids
 ndbcVpcSecurityGroupIds :: Lens' NeptuneDBCluster (Maybe (ValList Text))
diff --git a/library-gen/Stratosphere/Resources/RDSDBProxy.hs b/library-gen/Stratosphere/Resources/RDSDBProxy.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/RDSDBProxy.hs
@@ -0,0 +1,109 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html
+
+module Stratosphere.Resources.RDSDBProxy where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.RDSDBProxyAuthFormat
+import Stratosphere.ResourceProperties.RDSDBProxyTagFormat
+
+-- | Full data type definition for RDSDBProxy. See 'rdsdbProxy' for a more
+-- convenient constructor.
+data RDSDBProxy =
+  RDSDBProxy
+  { _rDSDBProxyAuth :: [RDSDBProxyAuthFormat]
+  , _rDSDBProxyDBProxyName :: Val Text
+  , _rDSDBProxyDebugLogging :: Maybe (Val Bool)
+  , _rDSDBProxyEngineFamily :: Val Text
+  , _rDSDBProxyIdleClientTimeout :: Maybe (Val Integer)
+  , _rDSDBProxyRequireTLS :: Maybe (Val Bool)
+  , _rDSDBProxyRoleArn :: Val Text
+  , _rDSDBProxyTags :: Maybe [RDSDBProxyTagFormat]
+  , _rDSDBProxyVpcSecurityGroupIds :: Maybe (ValList Text)
+  , _rDSDBProxyVpcSubnetIds :: ValList Text
+  } deriving (Show, Eq)
+
+instance ToResourceProperties RDSDBProxy where
+  toResourceProperties RDSDBProxy{..} =
+    ResourceProperties
+    { resourcePropertiesType = "AWS::RDS::DBProxy"
+    , resourcePropertiesProperties =
+        hashMapFromList $ catMaybes
+        [ (Just . ("Auth",) . toJSON) _rDSDBProxyAuth
+        , (Just . ("DBProxyName",) . toJSON) _rDSDBProxyDBProxyName
+        , fmap (("DebugLogging",) . toJSON) _rDSDBProxyDebugLogging
+        , (Just . ("EngineFamily",) . toJSON) _rDSDBProxyEngineFamily
+        , fmap (("IdleClientTimeout",) . toJSON) _rDSDBProxyIdleClientTimeout
+        , fmap (("RequireTLS",) . toJSON) _rDSDBProxyRequireTLS
+        , (Just . ("RoleArn",) . toJSON) _rDSDBProxyRoleArn
+        , fmap (("Tags",) . toJSON) _rDSDBProxyTags
+        , fmap (("VpcSecurityGroupIds",) . toJSON) _rDSDBProxyVpcSecurityGroupIds
+        , (Just . ("VpcSubnetIds",) . toJSON) _rDSDBProxyVpcSubnetIds
+        ]
+    }
+
+-- | Constructor for 'RDSDBProxy' containing required fields as arguments.
+rdsdbProxy
+  :: [RDSDBProxyAuthFormat] -- ^ 'rdsdbpAuth'
+  -> Val Text -- ^ 'rdsdbpDBProxyName'
+  -> Val Text -- ^ 'rdsdbpEngineFamily'
+  -> Val Text -- ^ 'rdsdbpRoleArn'
+  -> ValList Text -- ^ 'rdsdbpVpcSubnetIds'
+  -> RDSDBProxy
+rdsdbProxy autharg dBProxyNamearg engineFamilyarg roleArnarg vpcSubnetIdsarg =
+  RDSDBProxy
+  { _rDSDBProxyAuth = autharg
+  , _rDSDBProxyDBProxyName = dBProxyNamearg
+  , _rDSDBProxyDebugLogging = Nothing
+  , _rDSDBProxyEngineFamily = engineFamilyarg
+  , _rDSDBProxyIdleClientTimeout = Nothing
+  , _rDSDBProxyRequireTLS = Nothing
+  , _rDSDBProxyRoleArn = roleArnarg
+  , _rDSDBProxyTags = Nothing
+  , _rDSDBProxyVpcSecurityGroupIds = Nothing
+  , _rDSDBProxyVpcSubnetIds = vpcSubnetIdsarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html#cfn-rds-dbproxy-auth
+rdsdbpAuth :: Lens' RDSDBProxy [RDSDBProxyAuthFormat]
+rdsdbpAuth = lens _rDSDBProxyAuth (\s a -> s { _rDSDBProxyAuth = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html#cfn-rds-dbproxy-dbproxyname
+rdsdbpDBProxyName :: Lens' RDSDBProxy (Val Text)
+rdsdbpDBProxyName = lens _rDSDBProxyDBProxyName (\s a -> s { _rDSDBProxyDBProxyName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html#cfn-rds-dbproxy-debuglogging
+rdsdbpDebugLogging :: Lens' RDSDBProxy (Maybe (Val Bool))
+rdsdbpDebugLogging = lens _rDSDBProxyDebugLogging (\s a -> s { _rDSDBProxyDebugLogging = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html#cfn-rds-dbproxy-enginefamily
+rdsdbpEngineFamily :: Lens' RDSDBProxy (Val Text)
+rdsdbpEngineFamily = lens _rDSDBProxyEngineFamily (\s a -> s { _rDSDBProxyEngineFamily = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html#cfn-rds-dbproxy-idleclienttimeout
+rdsdbpIdleClientTimeout :: Lens' RDSDBProxy (Maybe (Val Integer))
+rdsdbpIdleClientTimeout = lens _rDSDBProxyIdleClientTimeout (\s a -> s { _rDSDBProxyIdleClientTimeout = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html#cfn-rds-dbproxy-requiretls
+rdsdbpRequireTLS :: Lens' RDSDBProxy (Maybe (Val Bool))
+rdsdbpRequireTLS = lens _rDSDBProxyRequireTLS (\s a -> s { _rDSDBProxyRequireTLS = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html#cfn-rds-dbproxy-rolearn
+rdsdbpRoleArn :: Lens' RDSDBProxy (Val Text)
+rdsdbpRoleArn = lens _rDSDBProxyRoleArn (\s a -> s { _rDSDBProxyRoleArn = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html#cfn-rds-dbproxy-tags
+rdsdbpTags :: Lens' RDSDBProxy (Maybe [RDSDBProxyTagFormat])
+rdsdbpTags = lens _rDSDBProxyTags (\s a -> s { _rDSDBProxyTags = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html#cfn-rds-dbproxy-vpcsecuritygroupids
+rdsdbpVpcSecurityGroupIds :: Lens' RDSDBProxy (Maybe (ValList Text))
+rdsdbpVpcSecurityGroupIds = lens _rDSDBProxyVpcSecurityGroupIds (\s a -> s { _rDSDBProxyVpcSecurityGroupIds = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html#cfn-rds-dbproxy-vpcsubnetids
+rdsdbpVpcSubnetIds :: Lens' RDSDBProxy (ValList Text)
+rdsdbpVpcSubnetIds = lens _rDSDBProxyVpcSubnetIds (\s a -> s { _rDSDBProxyVpcSubnetIds = a })
diff --git a/library-gen/Stratosphere/Resources/RDSDBProxyTargetGroup.hs b/library-gen/Stratosphere/Resources/RDSDBProxyTargetGroup.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/RDSDBProxyTargetGroup.hs
@@ -0,0 +1,63 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxytargetgroup.html
+
+module Stratosphere.Resources.RDSDBProxyTargetGroup where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.RDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormat
+
+-- | Full data type definition for RDSDBProxyTargetGroup. See
+-- 'rdsdbProxyTargetGroup' for a more convenient constructor.
+data RDSDBProxyTargetGroup =
+  RDSDBProxyTargetGroup
+  { _rDSDBProxyTargetGroupConnectionPoolConfigurationInfo :: Maybe RDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormat
+  , _rDSDBProxyTargetGroupDBClusterIdentifiers :: Maybe (ValList Text)
+  , _rDSDBProxyTargetGroupDBInstanceIdentifiers :: Maybe (ValList Text)
+  , _rDSDBProxyTargetGroupDBProxyName :: Val Text
+  } deriving (Show, Eq)
+
+instance ToResourceProperties RDSDBProxyTargetGroup where
+  toResourceProperties RDSDBProxyTargetGroup{..} =
+    ResourceProperties
+    { resourcePropertiesType = "AWS::RDS::DBProxyTargetGroup"
+    , resourcePropertiesProperties =
+        hashMapFromList $ catMaybes
+        [ fmap (("ConnectionPoolConfigurationInfo",) . toJSON) _rDSDBProxyTargetGroupConnectionPoolConfigurationInfo
+        , fmap (("DBClusterIdentifiers",) . toJSON) _rDSDBProxyTargetGroupDBClusterIdentifiers
+        , fmap (("DBInstanceIdentifiers",) . toJSON) _rDSDBProxyTargetGroupDBInstanceIdentifiers
+        , (Just . ("DBProxyName",) . toJSON) _rDSDBProxyTargetGroupDBProxyName
+        ]
+    }
+
+-- | Constructor for 'RDSDBProxyTargetGroup' containing required fields as
+-- arguments.
+rdsdbProxyTargetGroup
+  :: Val Text -- ^ 'rdsdbptgDBProxyName'
+  -> RDSDBProxyTargetGroup
+rdsdbProxyTargetGroup dBProxyNamearg =
+  RDSDBProxyTargetGroup
+  { _rDSDBProxyTargetGroupConnectionPoolConfigurationInfo = Nothing
+  , _rDSDBProxyTargetGroupDBClusterIdentifiers = Nothing
+  , _rDSDBProxyTargetGroupDBInstanceIdentifiers = Nothing
+  , _rDSDBProxyTargetGroupDBProxyName = dBProxyNamearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxytargetgroup.html#cfn-rds-dbproxytargetgroup-connectionpoolconfigurationinfo
+rdsdbptgConnectionPoolConfigurationInfo :: Lens' RDSDBProxyTargetGroup (Maybe RDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormat)
+rdsdbptgConnectionPoolConfigurationInfo = lens _rDSDBProxyTargetGroupConnectionPoolConfigurationInfo (\s a -> s { _rDSDBProxyTargetGroupConnectionPoolConfigurationInfo = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxytargetgroup.html#cfn-rds-dbproxytargetgroup-dbclusteridentifiers
+rdsdbptgDBClusterIdentifiers :: Lens' RDSDBProxyTargetGroup (Maybe (ValList Text))
+rdsdbptgDBClusterIdentifiers = lens _rDSDBProxyTargetGroupDBClusterIdentifiers (\s a -> s { _rDSDBProxyTargetGroupDBClusterIdentifiers = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxytargetgroup.html#cfn-rds-dbproxytargetgroup-dbinstanceidentifiers
+rdsdbptgDBInstanceIdentifiers :: Lens' RDSDBProxyTargetGroup (Maybe (ValList Text))
+rdsdbptgDBInstanceIdentifiers = lens _rDSDBProxyTargetGroupDBInstanceIdentifiers (\s a -> s { _rDSDBProxyTargetGroupDBInstanceIdentifiers = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxytargetgroup.html#cfn-rds-dbproxytargetgroup-dbproxyname
+rdsdbptgDBProxyName :: Lens' RDSDBProxyTargetGroup (Val Text)
+rdsdbptgDBProxyName = lens _rDSDBProxyTargetGroupDBProxyName (\s a -> s { _rDSDBProxyTargetGroupDBProxyName = a })
diff --git a/library-gen/Stratosphere/Resources/SNSTopic.hs b/library-gen/Stratosphere/Resources/SNSTopic.hs
--- a/library-gen/Stratosphere/Resources/SNSTopic.hs
+++ b/library-gen/Stratosphere/Resources/SNSTopic.hs
@@ -15,7 +15,9 @@
 -- convenient constructor.
 data SNSTopic =
   SNSTopic
-  { _sNSTopicDisplayName :: Maybe (Val Text)
+  { _sNSTopicContentBasedDeduplication :: Maybe (Val Bool)
+  , _sNSTopicDisplayName :: Maybe (Val Text)
+  , _sNSTopicFifoTopic :: Maybe (Val Bool)
   , _sNSTopicKmsMasterKeyId :: Maybe (Val Text)
   , _sNSTopicSubscription :: Maybe [SNSTopicSubscription]
   , _sNSTopicTags :: Maybe [Tag]
@@ -28,7 +30,9 @@
     { resourcePropertiesType = "AWS::SNS::Topic"
     , resourcePropertiesProperties =
         hashMapFromList $ catMaybes
-        [ fmap (("DisplayName",) . toJSON) _sNSTopicDisplayName
+        [ fmap (("ContentBasedDeduplication",) . toJSON) _sNSTopicContentBasedDeduplication
+        , fmap (("DisplayName",) . toJSON) _sNSTopicDisplayName
+        , fmap (("FifoTopic",) . toJSON) _sNSTopicFifoTopic
         , fmap (("KmsMasterKeyId",) . toJSON) _sNSTopicKmsMasterKeyId
         , fmap (("Subscription",) . toJSON) _sNSTopicSubscription
         , fmap (("Tags",) . toJSON) _sNSTopicTags
@@ -41,16 +45,26 @@
   :: SNSTopic
 snsTopic  =
   SNSTopic
-  { _sNSTopicDisplayName = Nothing
+  { _sNSTopicContentBasedDeduplication = Nothing
+  , _sNSTopicDisplayName = Nothing
+  , _sNSTopicFifoTopic = Nothing
   , _sNSTopicKmsMasterKeyId = Nothing
   , _sNSTopicSubscription = Nothing
   , _sNSTopicTags = Nothing
   , _sNSTopicTopicName = Nothing
   }
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic.html#cfn-sns-topic-contentbaseddeduplication
+snstContentBasedDeduplication :: Lens' SNSTopic (Maybe (Val Bool))
+snstContentBasedDeduplication = lens _sNSTopicContentBasedDeduplication (\s a -> s { _sNSTopicContentBasedDeduplication = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic.html#cfn-sns-topic-displayname
 snstDisplayName :: Lens' SNSTopic (Maybe (Val Text))
 snstDisplayName = lens _sNSTopicDisplayName (\s a -> s { _sNSTopicDisplayName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic.html#cfn-sns-topic-fifotopic
+snstFifoTopic :: Lens' SNSTopic (Maybe (Val Bool))
+snstFifoTopic = lens _sNSTopicFifoTopic (\s a -> s { _sNSTopicFifoTopic = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic.html#cfn-sns-topic-kmsmasterkeyid
 snstKmsMasterKeyId :: Lens' SNSTopic (Maybe (Val Text))
diff --git a/library-gen/Stratosphere/Resources/SSMAssociation.hs b/library-gen/Stratosphere/Resources/SSMAssociation.hs
--- a/library-gen/Stratosphere/Resources/SSMAssociation.hs
+++ b/library-gen/Stratosphere/Resources/SSMAssociation.hs
@@ -9,7 +9,6 @@
 
 import Stratosphere.ResourceImports
 import Stratosphere.ResourceProperties.SSMAssociationInstanceAssociationOutputLocation
-import Stratosphere.ResourceProperties.SSMAssociationParameterValues
 import Stratosphere.ResourceProperties.SSMAssociationTarget
 
 -- | Full data type definition for SSMAssociation. See 'ssmAssociation' for a
@@ -25,7 +24,6 @@
   , _sSMAssociationMaxErrors :: Maybe (Val Text)
   , _sSMAssociationName :: Val Text
   , _sSMAssociationOutputLocation :: Maybe SSMAssociationInstanceAssociationOutputLocation
-  , _sSMAssociationParameters :: Maybe (Map Text SSMAssociationParameterValues)
   , _sSMAssociationScheduleExpression :: Maybe (Val Text)
   , _sSMAssociationSyncCompliance :: Maybe (Val Text)
   , _sSMAssociationTargets :: Maybe [SSMAssociationTarget]
@@ -47,7 +45,6 @@
         , fmap (("MaxErrors",) . toJSON) _sSMAssociationMaxErrors
         , (Just . ("Name",) . toJSON) _sSMAssociationName
         , fmap (("OutputLocation",) . toJSON) _sSMAssociationOutputLocation
-        , fmap (("Parameters",) . toJSON) _sSMAssociationParameters
         , fmap (("ScheduleExpression",) . toJSON) _sSMAssociationScheduleExpression
         , fmap (("SyncCompliance",) . toJSON) _sSMAssociationSyncCompliance
         , fmap (("Targets",) . toJSON) _sSMAssociationTargets
@@ -70,7 +67,6 @@
   , _sSMAssociationMaxErrors = Nothing
   , _sSMAssociationName = namearg
   , _sSMAssociationOutputLocation = Nothing
-  , _sSMAssociationParameters = Nothing
   , _sSMAssociationScheduleExpression = Nothing
   , _sSMAssociationSyncCompliance = Nothing
   , _sSMAssociationTargets = Nothing
@@ -112,10 +108,6 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-association.html#cfn-ssm-association-outputlocation
 ssmaOutputLocation :: Lens' SSMAssociation (Maybe SSMAssociationInstanceAssociationOutputLocation)
 ssmaOutputLocation = lens _sSMAssociationOutputLocation (\s a -> s { _sSMAssociationOutputLocation = a })
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-association.html#cfn-ssm-association-parameters
-ssmaParameters :: Lens' SSMAssociation (Maybe (Map Text SSMAssociationParameterValues))
-ssmaParameters = lens _sSMAssociationParameters (\s a -> s { _sSMAssociationParameters = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-association.html#cfn-ssm-association-scheduleexpression
 ssmaScheduleExpression :: Lens' SSMAssociation (Maybe (Val Text))
diff --git a/library-gen/Stratosphere/Resources/StepFunctionsStateMachine.hs b/library-gen/Stratosphere/Resources/StepFunctionsStateMachine.hs
--- a/library-gen/Stratosphere/Resources/StepFunctionsStateMachine.hs
+++ b/library-gen/Stratosphere/Resources/StepFunctionsStateMachine.hs
@@ -8,6 +8,7 @@
 module Stratosphere.Resources.StepFunctionsStateMachine where
 
 import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.StepFunctionsStateMachineS3Location
 import Stratosphere.ResourceProperties.StepFunctionsStateMachineLoggingConfiguration
 import Stratosphere.ResourceProperties.StepFunctionsStateMachineTagsEntry
 
@@ -15,7 +16,8 @@
 -- 'stepFunctionsStateMachine' for a more convenient constructor.
 data StepFunctionsStateMachine =
   StepFunctionsStateMachine
-  { _stepFunctionsStateMachineDefinitionString :: Val Text
+  { _stepFunctionsStateMachineDefinitionS3Location :: Maybe StepFunctionsStateMachineS3Location
+  , _stepFunctionsStateMachineDefinitionString :: Maybe (Val Text)
   , _stepFunctionsStateMachineLoggingConfiguration :: Maybe StepFunctionsStateMachineLoggingConfiguration
   , _stepFunctionsStateMachineRoleArn :: Val Text
   , _stepFunctionsStateMachineStateMachineName :: Maybe (Val Text)
@@ -29,7 +31,8 @@
     { resourcePropertiesType = "AWS::StepFunctions::StateMachine"
     , resourcePropertiesProperties =
         hashMapFromList $ catMaybes
-        [ (Just . ("DefinitionString",) . toJSON) _stepFunctionsStateMachineDefinitionString
+        [ fmap (("DefinitionS3Location",) . toJSON) _stepFunctionsStateMachineDefinitionS3Location
+        , fmap (("DefinitionString",) . toJSON) _stepFunctionsStateMachineDefinitionString
         , fmap (("LoggingConfiguration",) . toJSON) _stepFunctionsStateMachineLoggingConfiguration
         , (Just . ("RoleArn",) . toJSON) _stepFunctionsStateMachineRoleArn
         , fmap (("StateMachineName",) . toJSON) _stepFunctionsStateMachineStateMachineName
@@ -41,12 +44,12 @@
 -- | Constructor for 'StepFunctionsStateMachine' containing required fields as
 -- arguments.
 stepFunctionsStateMachine
-  :: Val Text -- ^ 'sfsmDefinitionString'
-  -> Val Text -- ^ 'sfsmRoleArn'
+  :: Val Text -- ^ 'sfsmRoleArn'
   -> StepFunctionsStateMachine
-stepFunctionsStateMachine definitionStringarg roleArnarg =
+stepFunctionsStateMachine roleArnarg =
   StepFunctionsStateMachine
-  { _stepFunctionsStateMachineDefinitionString = definitionStringarg
+  { _stepFunctionsStateMachineDefinitionS3Location = Nothing
+  , _stepFunctionsStateMachineDefinitionString = Nothing
   , _stepFunctionsStateMachineLoggingConfiguration = Nothing
   , _stepFunctionsStateMachineRoleArn = roleArnarg
   , _stepFunctionsStateMachineStateMachineName = Nothing
@@ -54,8 +57,12 @@
   , _stepFunctionsStateMachineTags = Nothing
   }
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definitions3location
+sfsmDefinitionS3Location :: Lens' StepFunctionsStateMachine (Maybe StepFunctionsStateMachineS3Location)
+sfsmDefinitionS3Location = lens _stepFunctionsStateMachineDefinitionS3Location (\s a -> s { _stepFunctionsStateMachineDefinitionS3Location = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definitionstring
-sfsmDefinitionString :: Lens' StepFunctionsStateMachine (Val Text)
+sfsmDefinitionString :: Lens' StepFunctionsStateMachine (Maybe (Val Text))
 sfsmDefinitionString = lens _stepFunctionsStateMachineDefinitionString (\s a -> s { _stepFunctionsStateMachineDefinitionString = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-loggingconfiguration
diff --git a/stratosphere.cabal b/stratosphere.cabal
--- a/stratosphere.cabal
+++ b/stratosphere.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: bb5ed2583f74d8e58fc8662a2869847472c16ccaa71de969d995fa546e725e96
+-- hash: 558d8697844ceae54a906e27f7ea27a528dee32d412141b9b7807a7bd4273cb6
 
 name:           stratosphere
-version:        0.53.0
+version:        0.54.0
 synopsis:       EDSL for AWS CloudFormation
 description:    EDSL for AWS CloudFormation
 category:       AWS, Cloud
@@ -446,6 +446,7 @@
       Stratosphere.ResourceProperties.EC2ClientVpnEndpointClientAuthenticationRequest
       Stratosphere.ResourceProperties.EC2ClientVpnEndpointConnectionLogOptions
       Stratosphere.ResourceProperties.EC2ClientVpnEndpointDirectoryServiceAuthenticationRequest
+      Stratosphere.ResourceProperties.EC2ClientVpnEndpointFederatedAuthenticationRequest
       Stratosphere.ResourceProperties.EC2ClientVpnEndpointTagSpecification
       Stratosphere.ResourceProperties.EC2EC2FleetCapacityReservationOptionsRequest
       Stratosphere.ResourceProperties.EC2EC2FleetFleetLaunchTemplateConfigRequest
@@ -498,6 +499,7 @@
       Stratosphere.ResourceProperties.EC2NetworkAclEntryPortRange
       Stratosphere.ResourceProperties.EC2NetworkInterfaceInstanceIpv6Address
       Stratosphere.ResourceProperties.EC2NetworkInterfacePrivateIpAddressSpecification
+      Stratosphere.ResourceProperties.EC2PrefixListEntry
       Stratosphere.ResourceProperties.EC2SecurityGroupEgressProperty
       Stratosphere.ResourceProperties.EC2SecurityGroupIngressProperty
       Stratosphere.ResourceProperties.EC2SpotFleetBlockDeviceMapping
@@ -562,6 +564,10 @@
       Stratosphere.ResourceProperties.ECSTaskSetNetworkConfiguration
       Stratosphere.ResourceProperties.ECSTaskSetScale
       Stratosphere.ResourceProperties.ECSTaskSetServiceRegistry
+      Stratosphere.ResourceProperties.EFSAccessPointAccessPointTag
+      Stratosphere.ResourceProperties.EFSAccessPointCreationInfo
+      Stratosphere.ResourceProperties.EFSAccessPointPosixUser
+      Stratosphere.ResourceProperties.EFSAccessPointRootDirectory
       Stratosphere.ResourceProperties.EFSFileSystemElasticFileSystemTag
       Stratosphere.ResourceProperties.EFSFileSystemLifecyclePolicy
       Stratosphere.ResourceProperties.EKSClusterEncryptionConfig
@@ -683,6 +689,7 @@
       Stratosphere.ResourceProperties.EventsRuleBatchParameters
       Stratosphere.ResourceProperties.EventsRuleBatchRetryStrategy
       Stratosphere.ResourceProperties.EventsRuleEcsParameters
+      Stratosphere.ResourceProperties.EventsRuleHttpParameters
       Stratosphere.ResourceProperties.EventsRuleInputTransformer
       Stratosphere.ResourceProperties.EventsRuleKinesisParameters
       Stratosphere.ResourceProperties.EventsRuleNetworkConfiguration
@@ -886,6 +893,7 @@
       Stratosphere.ResourceProperties.IoTEventsDetectorModelTransitionEvent
       Stratosphere.ResourceProperties.IoTEventsInputAttribute
       Stratosphere.ResourceProperties.IoTEventsInputInputDefinition
+      Stratosphere.ResourceProperties.IoTProvisioningTemplateProvisioningHook
       Stratosphere.ResourceProperties.IoTThingAttributePayload
       Stratosphere.ResourceProperties.IoTThingsGraphFlowTemplateDefinitionDocument
       Stratosphere.ResourceProperties.IoTTopicRuleAction
@@ -1000,11 +1008,13 @@
       Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamProcessor
       Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamProcessorParameter
       Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration
+      Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamRedshiftRetryOptions
       Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamS3DestinationConfiguration
       Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamSchemaConfiguration
       Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamSerializer
       Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamSplunkDestinationConfiguration
       Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamSplunkRetryOptions
+      Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamVpcConfiguration
       Stratosphere.ResourceProperties.KinesisStreamStreamEncryption
       Stratosphere.ResourceProperties.LakeFormationDataLakeSettingsDataLakePrincipal
       Stratosphere.ResourceProperties.LakeFormationPermissionsColumnWildcard
@@ -1164,6 +1174,9 @@
       Stratosphere.ResourceProperties.RDSDBClusterScalingConfiguration
       Stratosphere.ResourceProperties.RDSDBInstanceDBInstanceRole
       Stratosphere.ResourceProperties.RDSDBInstanceProcessorFeature
+      Stratosphere.ResourceProperties.RDSDBProxyAuthFormat
+      Stratosphere.ResourceProperties.RDSDBProxyTagFormat
+      Stratosphere.ResourceProperties.RDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormat
       Stratosphere.ResourceProperties.RDSDBSecurityGroupIngressProperty
       Stratosphere.ResourceProperties.RDSOptionGroupOptionConfiguration
       Stratosphere.ResourceProperties.RDSOptionGroupOptionSetting
@@ -1203,6 +1216,7 @@
       Stratosphere.ResourceProperties.S3BucketCorsRule
       Stratosphere.ResourceProperties.S3BucketDataExport
       Stratosphere.ResourceProperties.S3BucketDefaultRetention
+      Stratosphere.ResourceProperties.S3BucketDeleteMarkerReplication
       Stratosphere.ResourceProperties.S3BucketDestination
       Stratosphere.ResourceProperties.S3BucketEncryptionConfiguration
       Stratosphere.ResourceProperties.S3BucketFilterRule
@@ -1210,6 +1224,7 @@
       Stratosphere.ResourceProperties.S3BucketLambdaConfiguration
       Stratosphere.ResourceProperties.S3BucketLifecycleConfiguration
       Stratosphere.ResourceProperties.S3BucketLoggingConfiguration
+      Stratosphere.ResourceProperties.S3BucketMetrics
       Stratosphere.ResourceProperties.S3BucketMetricsConfiguration
       Stratosphere.ResourceProperties.S3BucketNoncurrentVersionTransition
       Stratosphere.ResourceProperties.S3BucketNotificationConfiguration
@@ -1223,6 +1238,10 @@
       Stratosphere.ResourceProperties.S3BucketReplicationConfiguration
       Stratosphere.ResourceProperties.S3BucketReplicationDestination
       Stratosphere.ResourceProperties.S3BucketReplicationRule
+      Stratosphere.ResourceProperties.S3BucketReplicationRuleAndOperator
+      Stratosphere.ResourceProperties.S3BucketReplicationRuleFilter
+      Stratosphere.ResourceProperties.S3BucketReplicationTime
+      Stratosphere.ResourceProperties.S3BucketReplicationTimeValue
       Stratosphere.ResourceProperties.S3BucketRoutingRule
       Stratosphere.ResourceProperties.S3BucketRoutingRuleCondition
       Stratosphere.ResourceProperties.S3BucketRule
@@ -1273,7 +1292,6 @@
       Stratosphere.ResourceProperties.SESTemplateTemplate
       Stratosphere.ResourceProperties.SNSTopicSubscription
       Stratosphere.ResourceProperties.SSMAssociationInstanceAssociationOutputLocation
-      Stratosphere.ResourceProperties.SSMAssociationParameterValues
       Stratosphere.ResourceProperties.SSMAssociationS3OutputLocation
       Stratosphere.ResourceProperties.SSMAssociationTarget
       Stratosphere.ResourceProperties.SSMMaintenanceWindowTargetTargets
@@ -1297,6 +1315,7 @@
       Stratosphere.ResourceProperties.StepFunctionsStateMachineCloudWatchLogsLogGroup
       Stratosphere.ResourceProperties.StepFunctionsStateMachineLogDestination
       Stratosphere.ResourceProperties.StepFunctionsStateMachineLoggingConfiguration
+      Stratosphere.ResourceProperties.StepFunctionsStateMachineS3Location
       Stratosphere.ResourceProperties.StepFunctionsStateMachineTagsEntry
       Stratosphere.ResourceProperties.SyntheticsCanaryCode
       Stratosphere.ResourceProperties.SyntheticsCanaryRunConfig
@@ -1568,6 +1587,7 @@
       Stratosphere.Resources.EC2NetworkInterfaceAttachment
       Stratosphere.Resources.EC2NetworkInterfacePermission
       Stratosphere.Resources.EC2PlacementGroup
+      Stratosphere.Resources.EC2PrefixList
       Stratosphere.Resources.EC2Route
       Stratosphere.Resources.EC2RouteTable
       Stratosphere.Resources.EC2SecurityGroup
@@ -1609,6 +1629,7 @@
       Stratosphere.Resources.ECSService
       Stratosphere.Resources.ECSTaskDefinition
       Stratosphere.Resources.ECSTaskSet
+      Stratosphere.Resources.EFSAccessPoint
       Stratosphere.Resources.EFSFileSystem
       Stratosphere.Resources.EFSMountTarget
       Stratosphere.Resources.EKSCluster
@@ -1720,6 +1741,7 @@
       Stratosphere.Resources.IoTEventsInput
       Stratosphere.Resources.IoTPolicy
       Stratosphere.Resources.IoTPolicyPrincipalAttachment
+      Stratosphere.Resources.IoTProvisioningTemplate
       Stratosphere.Resources.IoTThing
       Stratosphere.Resources.IoTThingPrincipalAttachment
       Stratosphere.Resources.IoTThingsGraphFlowTemplate
@@ -1813,6 +1835,8 @@
       Stratosphere.Resources.RDSDBClusterParameterGroup
       Stratosphere.Resources.RDSDBInstance
       Stratosphere.Resources.RDSDBParameterGroup
+      Stratosphere.Resources.RDSDBProxy
+      Stratosphere.Resources.RDSDBProxyTargetGroup
       Stratosphere.Resources.RDSDBSecurityGroup
       Stratosphere.Resources.RDSDBSecurityGroupIngress
       Stratosphere.Resources.RDSDBSubnetGroup
