diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Change Log
 
+## 0.27.0
+
+* Update resource specification document to version 2.12.0
+
 ## 0.26.2
 
 * Update resource specification document to version 2.10.0
diff --git a/library-gen/Stratosphere/ResourceProperties/ApiGatewayDeploymentStageDescription.hs b/library-gen/Stratosphere/ResourceProperties/ApiGatewayDeploymentStageDescription.hs
--- a/library-gen/Stratosphere/ResourceProperties/ApiGatewayDeploymentStageDescription.hs
+++ b/library-gen/Stratosphere/ResourceProperties/ApiGatewayDeploymentStageDescription.hs
@@ -32,6 +32,7 @@
   , _apiGatewayDeploymentStageDescriptionMetricsEnabled :: Maybe (Val Bool)
   , _apiGatewayDeploymentStageDescriptionThrottlingBurstLimit :: Maybe (Val Integer)
   , _apiGatewayDeploymentStageDescriptionThrottlingRateLimit :: Maybe (Val Double)
+  , _apiGatewayDeploymentStageDescriptionTracingEnabled :: Maybe (Val Bool)
   , _apiGatewayDeploymentStageDescriptionVariables :: Maybe Object
   } deriving (Show, Eq)
 
@@ -55,6 +56,7 @@
     , fmap (("MetricsEnabled",) . toJSON . fmap Bool') _apiGatewayDeploymentStageDescriptionMetricsEnabled
     , fmap (("ThrottlingBurstLimit",) . toJSON . fmap Integer') _apiGatewayDeploymentStageDescriptionThrottlingBurstLimit
     , fmap (("ThrottlingRateLimit",) . toJSON . fmap Double') _apiGatewayDeploymentStageDescriptionThrottlingRateLimit
+    , fmap (("TracingEnabled",) . toJSON . fmap Bool') _apiGatewayDeploymentStageDescriptionTracingEnabled
     , fmap (("Variables",) . toJSON) _apiGatewayDeploymentStageDescriptionVariables
     ]
 
@@ -77,6 +79,7 @@
       fmap (fmap (fmap unBool')) (obj .:? "MetricsEnabled") <*>
       fmap (fmap (fmap unInteger')) (obj .:? "ThrottlingBurstLimit") <*>
       fmap (fmap (fmap unDouble')) (obj .:? "ThrottlingRateLimit") <*>
+      fmap (fmap (fmap unBool')) (obj .:? "TracingEnabled") <*>
       (obj .:? "Variables")
   parseJSON _ = mempty
 
@@ -102,6 +105,7 @@
   , _apiGatewayDeploymentStageDescriptionMetricsEnabled = Nothing
   , _apiGatewayDeploymentStageDescriptionThrottlingBurstLimit = Nothing
   , _apiGatewayDeploymentStageDescriptionThrottlingRateLimit = Nothing
+  , _apiGatewayDeploymentStageDescriptionTracingEnabled = Nothing
   , _apiGatewayDeploymentStageDescriptionVariables = Nothing
   }
 
@@ -168,6 +172,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-throttlingratelimit
 agdsdThrottlingRateLimit :: Lens' ApiGatewayDeploymentStageDescription (Maybe (Val Double))
 agdsdThrottlingRateLimit = lens _apiGatewayDeploymentStageDescriptionThrottlingRateLimit (\s a -> s { _apiGatewayDeploymentStageDescriptionThrottlingRateLimit = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-tracingenabled
+agdsdTracingEnabled :: Lens' ApiGatewayDeploymentStageDescription (Maybe (Val Bool))
+agdsdTracingEnabled = lens _apiGatewayDeploymentStageDescriptionTracingEnabled (\s a -> s { _apiGatewayDeploymentStageDescriptionTracingEnabled = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-variables
 agdsdVariables :: Lens' ApiGatewayDeploymentStageDescription (Maybe Object)
diff --git a/library-gen/Stratosphere/ResourceProperties/AutoScalingPlansScalingPlanCustomizedLoadMetricSpecification.hs b/library-gen/Stratosphere/ResourceProperties/AutoScalingPlansScalingPlanCustomizedLoadMetricSpecification.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/AutoScalingPlansScalingPlanCustomizedLoadMetricSpecification.hs
@@ -0,0 +1,81 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-customizedloadmetricspecification.html
+
+module Stratosphere.ResourceProperties.AutoScalingPlansScalingPlanCustomizedLoadMetricSpecification where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.AutoScalingPlansScalingPlanMetricDimension
+
+-- | Full data type definition for
+-- AutoScalingPlansScalingPlanCustomizedLoadMetricSpecification. See
+-- 'autoScalingPlansScalingPlanCustomizedLoadMetricSpecification' for a more
+-- convenient constructor.
+data AutoScalingPlansScalingPlanCustomizedLoadMetricSpecification =
+  AutoScalingPlansScalingPlanCustomizedLoadMetricSpecification
+  { _autoScalingPlansScalingPlanCustomizedLoadMetricSpecificationDimensions :: Maybe [AutoScalingPlansScalingPlanMetricDimension]
+  , _autoScalingPlansScalingPlanCustomizedLoadMetricSpecificationMetricName :: Val Text
+  , _autoScalingPlansScalingPlanCustomizedLoadMetricSpecificationNamespace :: Val Text
+  , _autoScalingPlansScalingPlanCustomizedLoadMetricSpecificationStatistic :: Val Text
+  , _autoScalingPlansScalingPlanCustomizedLoadMetricSpecificationUnit :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON AutoScalingPlansScalingPlanCustomizedLoadMetricSpecification where
+  toJSON AutoScalingPlansScalingPlanCustomizedLoadMetricSpecification{..} =
+    object $
+    catMaybes
+    [ fmap (("Dimensions",) . toJSON) _autoScalingPlansScalingPlanCustomizedLoadMetricSpecificationDimensions
+    , (Just . ("MetricName",) . toJSON) _autoScalingPlansScalingPlanCustomizedLoadMetricSpecificationMetricName
+    , (Just . ("Namespace",) . toJSON) _autoScalingPlansScalingPlanCustomizedLoadMetricSpecificationNamespace
+    , (Just . ("Statistic",) . toJSON) _autoScalingPlansScalingPlanCustomizedLoadMetricSpecificationStatistic
+    , fmap (("Unit",) . toJSON) _autoScalingPlansScalingPlanCustomizedLoadMetricSpecificationUnit
+    ]
+
+instance FromJSON AutoScalingPlansScalingPlanCustomizedLoadMetricSpecification where
+  parseJSON (Object obj) =
+    AutoScalingPlansScalingPlanCustomizedLoadMetricSpecification <$>
+      (obj .:? "Dimensions") <*>
+      (obj .: "MetricName") <*>
+      (obj .: "Namespace") <*>
+      (obj .: "Statistic") <*>
+      (obj .:? "Unit")
+  parseJSON _ = mempty
+
+-- | Constructor for
+-- 'AutoScalingPlansScalingPlanCustomizedLoadMetricSpecification' containing
+-- required fields as arguments.
+autoScalingPlansScalingPlanCustomizedLoadMetricSpecification
+  :: Val Text -- ^ 'aspspclmsMetricName'
+  -> Val Text -- ^ 'aspspclmsNamespace'
+  -> Val Text -- ^ 'aspspclmsStatistic'
+  -> AutoScalingPlansScalingPlanCustomizedLoadMetricSpecification
+autoScalingPlansScalingPlanCustomizedLoadMetricSpecification metricNamearg namespacearg statisticarg =
+  AutoScalingPlansScalingPlanCustomizedLoadMetricSpecification
+  { _autoScalingPlansScalingPlanCustomizedLoadMetricSpecificationDimensions = Nothing
+  , _autoScalingPlansScalingPlanCustomizedLoadMetricSpecificationMetricName = metricNamearg
+  , _autoScalingPlansScalingPlanCustomizedLoadMetricSpecificationNamespace = namespacearg
+  , _autoScalingPlansScalingPlanCustomizedLoadMetricSpecificationStatistic = statisticarg
+  , _autoScalingPlansScalingPlanCustomizedLoadMetricSpecificationUnit = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-customizedloadmetricspecification.html#cfn-autoscalingplans-scalingplan-customizedloadmetricspecification-dimensions
+aspspclmsDimensions :: Lens' AutoScalingPlansScalingPlanCustomizedLoadMetricSpecification (Maybe [AutoScalingPlansScalingPlanMetricDimension])
+aspspclmsDimensions = lens _autoScalingPlansScalingPlanCustomizedLoadMetricSpecificationDimensions (\s a -> s { _autoScalingPlansScalingPlanCustomizedLoadMetricSpecificationDimensions = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-customizedloadmetricspecification.html#cfn-autoscalingplans-scalingplan-customizedloadmetricspecification-metricname
+aspspclmsMetricName :: Lens' AutoScalingPlansScalingPlanCustomizedLoadMetricSpecification (Val Text)
+aspspclmsMetricName = lens _autoScalingPlansScalingPlanCustomizedLoadMetricSpecificationMetricName (\s a -> s { _autoScalingPlansScalingPlanCustomizedLoadMetricSpecificationMetricName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-customizedloadmetricspecification.html#cfn-autoscalingplans-scalingplan-customizedloadmetricspecification-namespace
+aspspclmsNamespace :: Lens' AutoScalingPlansScalingPlanCustomizedLoadMetricSpecification (Val Text)
+aspspclmsNamespace = lens _autoScalingPlansScalingPlanCustomizedLoadMetricSpecificationNamespace (\s a -> s { _autoScalingPlansScalingPlanCustomizedLoadMetricSpecificationNamespace = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-customizedloadmetricspecification.html#cfn-autoscalingplans-scalingplan-customizedloadmetricspecification-statistic
+aspspclmsStatistic :: Lens' AutoScalingPlansScalingPlanCustomizedLoadMetricSpecification (Val Text)
+aspspclmsStatistic = lens _autoScalingPlansScalingPlanCustomizedLoadMetricSpecificationStatistic (\s a -> s { _autoScalingPlansScalingPlanCustomizedLoadMetricSpecificationStatistic = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-customizedloadmetricspecification.html#cfn-autoscalingplans-scalingplan-customizedloadmetricspecification-unit
+aspspclmsUnit :: Lens' AutoScalingPlansScalingPlanCustomizedLoadMetricSpecification (Maybe (Val Text))
+aspspclmsUnit = lens _autoScalingPlansScalingPlanCustomizedLoadMetricSpecificationUnit (\s a -> s { _autoScalingPlansScalingPlanCustomizedLoadMetricSpecificationUnit = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/AutoScalingPlansScalingPlanPredefinedLoadMetricSpecification.hs b/library-gen/Stratosphere/ResourceProperties/AutoScalingPlansScalingPlanPredefinedLoadMetricSpecification.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/AutoScalingPlansScalingPlanPredefinedLoadMetricSpecification.hs
@@ -0,0 +1,55 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-predefinedloadmetricspecification.html
+
+module Stratosphere.ResourceProperties.AutoScalingPlansScalingPlanPredefinedLoadMetricSpecification where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- AutoScalingPlansScalingPlanPredefinedLoadMetricSpecification. See
+-- 'autoScalingPlansScalingPlanPredefinedLoadMetricSpecification' for a more
+-- convenient constructor.
+data AutoScalingPlansScalingPlanPredefinedLoadMetricSpecification =
+  AutoScalingPlansScalingPlanPredefinedLoadMetricSpecification
+  { _autoScalingPlansScalingPlanPredefinedLoadMetricSpecificationPredefinedLoadMetricType :: Val Text
+  , _autoScalingPlansScalingPlanPredefinedLoadMetricSpecificationResourceLabel :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON AutoScalingPlansScalingPlanPredefinedLoadMetricSpecification where
+  toJSON AutoScalingPlansScalingPlanPredefinedLoadMetricSpecification{..} =
+    object $
+    catMaybes
+    [ (Just . ("PredefinedLoadMetricType",) . toJSON) _autoScalingPlansScalingPlanPredefinedLoadMetricSpecificationPredefinedLoadMetricType
+    , fmap (("ResourceLabel",) . toJSON) _autoScalingPlansScalingPlanPredefinedLoadMetricSpecificationResourceLabel
+    ]
+
+instance FromJSON AutoScalingPlansScalingPlanPredefinedLoadMetricSpecification where
+  parseJSON (Object obj) =
+    AutoScalingPlansScalingPlanPredefinedLoadMetricSpecification <$>
+      (obj .: "PredefinedLoadMetricType") <*>
+      (obj .:? "ResourceLabel")
+  parseJSON _ = mempty
+
+-- | Constructor for
+-- 'AutoScalingPlansScalingPlanPredefinedLoadMetricSpecification' containing
+-- required fields as arguments.
+autoScalingPlansScalingPlanPredefinedLoadMetricSpecification
+  :: Val Text -- ^ 'aspspplmsPredefinedLoadMetricType'
+  -> AutoScalingPlansScalingPlanPredefinedLoadMetricSpecification
+autoScalingPlansScalingPlanPredefinedLoadMetricSpecification predefinedLoadMetricTypearg =
+  AutoScalingPlansScalingPlanPredefinedLoadMetricSpecification
+  { _autoScalingPlansScalingPlanPredefinedLoadMetricSpecificationPredefinedLoadMetricType = predefinedLoadMetricTypearg
+  , _autoScalingPlansScalingPlanPredefinedLoadMetricSpecificationResourceLabel = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-predefinedloadmetricspecification.html#cfn-autoscalingplans-scalingplan-predefinedloadmetricspecification-predefinedloadmetrictype
+aspspplmsPredefinedLoadMetricType :: Lens' AutoScalingPlansScalingPlanPredefinedLoadMetricSpecification (Val Text)
+aspspplmsPredefinedLoadMetricType = lens _autoScalingPlansScalingPlanPredefinedLoadMetricSpecificationPredefinedLoadMetricType (\s a -> s { _autoScalingPlansScalingPlanPredefinedLoadMetricSpecificationPredefinedLoadMetricType = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-predefinedloadmetricspecification.html#cfn-autoscalingplans-scalingplan-predefinedloadmetricspecification-resourcelabel
+aspspplmsResourceLabel :: Lens' AutoScalingPlansScalingPlanPredefinedLoadMetricSpecification (Maybe (Val Text))
+aspspplmsResourceLabel = lens _autoScalingPlansScalingPlanPredefinedLoadMetricSpecificationResourceLabel (\s a -> s { _autoScalingPlansScalingPlanPredefinedLoadMetricSpecificationResourceLabel = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/AutoScalingPlansScalingPlanScalingInstruction.hs b/library-gen/Stratosphere/ResourceProperties/AutoScalingPlansScalingPlanScalingInstruction.hs
--- a/library-gen/Stratosphere/ResourceProperties/AutoScalingPlansScalingPlanScalingInstruction.hs
+++ b/library-gen/Stratosphere/ResourceProperties/AutoScalingPlansScalingPlanScalingInstruction.hs
@@ -7,6 +7,8 @@
 module Stratosphere.ResourceProperties.AutoScalingPlansScalingPlanScalingInstruction where
 
 import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.AutoScalingPlansScalingPlanCustomizedLoadMetricSpecification
+import Stratosphere.ResourceProperties.AutoScalingPlansScalingPlanPredefinedLoadMetricSpecification
 import Stratosphere.ResourceProperties.AutoScalingPlansScalingPlanTargetTrackingConfiguration
 
 -- | Full data type definition for
@@ -15,10 +17,18 @@
 -- constructor.
 data AutoScalingPlansScalingPlanScalingInstruction =
   AutoScalingPlansScalingPlanScalingInstruction
-  { _autoScalingPlansScalingPlanScalingInstructionMaxCapacity :: Val Integer
+  { _autoScalingPlansScalingPlanScalingInstructionCustomizedLoadMetricSpecification :: Maybe AutoScalingPlansScalingPlanCustomizedLoadMetricSpecification
+  , _autoScalingPlansScalingPlanScalingInstructionDisableDynamicScaling :: Maybe (Val Bool)
+  , _autoScalingPlansScalingPlanScalingInstructionMaxCapacity :: Val Integer
   , _autoScalingPlansScalingPlanScalingInstructionMinCapacity :: Val Integer
+  , _autoScalingPlansScalingPlanScalingInstructionPredefinedLoadMetricSpecification :: Maybe AutoScalingPlansScalingPlanPredefinedLoadMetricSpecification
+  , _autoScalingPlansScalingPlanScalingInstructionPredictiveScalingMaxCapacityBehavior :: Maybe (Val Text)
+  , _autoScalingPlansScalingPlanScalingInstructionPredictiveScalingMaxCapacityBuffer :: Maybe (Val Integer)
+  , _autoScalingPlansScalingPlanScalingInstructionPredictiveScalingMode :: Maybe (Val Text)
   , _autoScalingPlansScalingPlanScalingInstructionResourceId :: Val Text
   , _autoScalingPlansScalingPlanScalingInstructionScalableDimension :: Val Text
+  , _autoScalingPlansScalingPlanScalingInstructionScalingPolicyUpdateBehavior :: Maybe (Val Text)
+  , _autoScalingPlansScalingPlanScalingInstructionScheduledActionBufferTime :: Maybe (Val Integer)
   , _autoScalingPlansScalingPlanScalingInstructionServiceNamespace :: Val Text
   , _autoScalingPlansScalingPlanScalingInstructionTargetTrackingConfigurations :: [AutoScalingPlansScalingPlanTargetTrackingConfiguration]
   } deriving (Show, Eq)
@@ -27,10 +37,18 @@
   toJSON AutoScalingPlansScalingPlanScalingInstruction{..} =
     object $
     catMaybes
-    [ (Just . ("MaxCapacity",) . toJSON . fmap Integer') _autoScalingPlansScalingPlanScalingInstructionMaxCapacity
+    [ fmap (("CustomizedLoadMetricSpecification",) . toJSON) _autoScalingPlansScalingPlanScalingInstructionCustomizedLoadMetricSpecification
+    , fmap (("DisableDynamicScaling",) . toJSON . fmap Bool') _autoScalingPlansScalingPlanScalingInstructionDisableDynamicScaling
+    , (Just . ("MaxCapacity",) . toJSON . fmap Integer') _autoScalingPlansScalingPlanScalingInstructionMaxCapacity
     , (Just . ("MinCapacity",) . toJSON . fmap Integer') _autoScalingPlansScalingPlanScalingInstructionMinCapacity
+    , fmap (("PredefinedLoadMetricSpecification",) . toJSON) _autoScalingPlansScalingPlanScalingInstructionPredefinedLoadMetricSpecification
+    , fmap (("PredictiveScalingMaxCapacityBehavior",) . toJSON) _autoScalingPlansScalingPlanScalingInstructionPredictiveScalingMaxCapacityBehavior
+    , fmap (("PredictiveScalingMaxCapacityBuffer",) . toJSON . fmap Integer') _autoScalingPlansScalingPlanScalingInstructionPredictiveScalingMaxCapacityBuffer
+    , fmap (("PredictiveScalingMode",) . toJSON) _autoScalingPlansScalingPlanScalingInstructionPredictiveScalingMode
     , (Just . ("ResourceId",) . toJSON) _autoScalingPlansScalingPlanScalingInstructionResourceId
     , (Just . ("ScalableDimension",) . toJSON) _autoScalingPlansScalingPlanScalingInstructionScalableDimension
+    , fmap (("ScalingPolicyUpdateBehavior",) . toJSON) _autoScalingPlansScalingPlanScalingInstructionScalingPolicyUpdateBehavior
+    , fmap (("ScheduledActionBufferTime",) . toJSON . fmap Integer') _autoScalingPlansScalingPlanScalingInstructionScheduledActionBufferTime
     , (Just . ("ServiceNamespace",) . toJSON) _autoScalingPlansScalingPlanScalingInstructionServiceNamespace
     , (Just . ("TargetTrackingConfigurations",) . toJSON) _autoScalingPlansScalingPlanScalingInstructionTargetTrackingConfigurations
     ]
@@ -38,10 +56,18 @@
 instance FromJSON AutoScalingPlansScalingPlanScalingInstruction where
   parseJSON (Object obj) =
     AutoScalingPlansScalingPlanScalingInstruction <$>
+      (obj .:? "CustomizedLoadMetricSpecification") <*>
+      fmap (fmap (fmap unBool')) (obj .:? "DisableDynamicScaling") <*>
       fmap (fmap unInteger') (obj .: "MaxCapacity") <*>
       fmap (fmap unInteger') (obj .: "MinCapacity") <*>
+      (obj .:? "PredefinedLoadMetricSpecification") <*>
+      (obj .:? "PredictiveScalingMaxCapacityBehavior") <*>
+      fmap (fmap (fmap unInteger')) (obj .:? "PredictiveScalingMaxCapacityBuffer") <*>
+      (obj .:? "PredictiveScalingMode") <*>
       (obj .: "ResourceId") <*>
       (obj .: "ScalableDimension") <*>
+      (obj .:? "ScalingPolicyUpdateBehavior") <*>
+      fmap (fmap (fmap unInteger')) (obj .:? "ScheduledActionBufferTime") <*>
       (obj .: "ServiceNamespace") <*>
       (obj .: "TargetTrackingConfigurations")
   parseJSON _ = mempty
@@ -58,14 +84,30 @@
   -> AutoScalingPlansScalingPlanScalingInstruction
 autoScalingPlansScalingPlanScalingInstruction maxCapacityarg minCapacityarg resourceIdarg scalableDimensionarg serviceNamespacearg targetTrackingConfigurationsarg =
   AutoScalingPlansScalingPlanScalingInstruction
-  { _autoScalingPlansScalingPlanScalingInstructionMaxCapacity = maxCapacityarg
+  { _autoScalingPlansScalingPlanScalingInstructionCustomizedLoadMetricSpecification = Nothing
+  , _autoScalingPlansScalingPlanScalingInstructionDisableDynamicScaling = Nothing
+  , _autoScalingPlansScalingPlanScalingInstructionMaxCapacity = maxCapacityarg
   , _autoScalingPlansScalingPlanScalingInstructionMinCapacity = minCapacityarg
+  , _autoScalingPlansScalingPlanScalingInstructionPredefinedLoadMetricSpecification = Nothing
+  , _autoScalingPlansScalingPlanScalingInstructionPredictiveScalingMaxCapacityBehavior = Nothing
+  , _autoScalingPlansScalingPlanScalingInstructionPredictiveScalingMaxCapacityBuffer = Nothing
+  , _autoScalingPlansScalingPlanScalingInstructionPredictiveScalingMode = Nothing
   , _autoScalingPlansScalingPlanScalingInstructionResourceId = resourceIdarg
   , _autoScalingPlansScalingPlanScalingInstructionScalableDimension = scalableDimensionarg
+  , _autoScalingPlansScalingPlanScalingInstructionScalingPolicyUpdateBehavior = Nothing
+  , _autoScalingPlansScalingPlanScalingInstructionScheduledActionBufferTime = Nothing
   , _autoScalingPlansScalingPlanScalingInstructionServiceNamespace = serviceNamespacearg
   , _autoScalingPlansScalingPlanScalingInstructionTargetTrackingConfigurations = targetTrackingConfigurationsarg
   }
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-scalinginstruction.html#cfn-autoscalingplans-scalingplan-scalinginstruction-customizedloadmetricspecification
+aspspsiCustomizedLoadMetricSpecification :: Lens' AutoScalingPlansScalingPlanScalingInstruction (Maybe AutoScalingPlansScalingPlanCustomizedLoadMetricSpecification)
+aspspsiCustomizedLoadMetricSpecification = lens _autoScalingPlansScalingPlanScalingInstructionCustomizedLoadMetricSpecification (\s a -> s { _autoScalingPlansScalingPlanScalingInstructionCustomizedLoadMetricSpecification = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-scalinginstruction.html#cfn-autoscalingplans-scalingplan-scalinginstruction-disabledynamicscaling
+aspspsiDisableDynamicScaling :: Lens' AutoScalingPlansScalingPlanScalingInstruction (Maybe (Val Bool))
+aspspsiDisableDynamicScaling = lens _autoScalingPlansScalingPlanScalingInstructionDisableDynamicScaling (\s a -> s { _autoScalingPlansScalingPlanScalingInstructionDisableDynamicScaling = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-scalinginstruction.html#cfn-autoscalingplans-scalingplan-scalinginstruction-maxcapacity
 aspspsiMaxCapacity :: Lens' AutoScalingPlansScalingPlanScalingInstruction (Val Integer)
 aspspsiMaxCapacity = lens _autoScalingPlansScalingPlanScalingInstructionMaxCapacity (\s a -> s { _autoScalingPlansScalingPlanScalingInstructionMaxCapacity = a })
@@ -74,6 +116,22 @@
 aspspsiMinCapacity :: Lens' AutoScalingPlansScalingPlanScalingInstruction (Val Integer)
 aspspsiMinCapacity = lens _autoScalingPlansScalingPlanScalingInstructionMinCapacity (\s a -> s { _autoScalingPlansScalingPlanScalingInstructionMinCapacity = a })
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-scalinginstruction.html#cfn-autoscalingplans-scalingplan-scalinginstruction-predefinedloadmetricspecification
+aspspsiPredefinedLoadMetricSpecification :: Lens' AutoScalingPlansScalingPlanScalingInstruction (Maybe AutoScalingPlansScalingPlanPredefinedLoadMetricSpecification)
+aspspsiPredefinedLoadMetricSpecification = lens _autoScalingPlansScalingPlanScalingInstructionPredefinedLoadMetricSpecification (\s a -> s { _autoScalingPlansScalingPlanScalingInstructionPredefinedLoadMetricSpecification = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-scalinginstruction.html#cfn-autoscalingplans-scalingplan-scalinginstruction-predictivescalingmaxcapacitybehavior
+aspspsiPredictiveScalingMaxCapacityBehavior :: Lens' AutoScalingPlansScalingPlanScalingInstruction (Maybe (Val Text))
+aspspsiPredictiveScalingMaxCapacityBehavior = lens _autoScalingPlansScalingPlanScalingInstructionPredictiveScalingMaxCapacityBehavior (\s a -> s { _autoScalingPlansScalingPlanScalingInstructionPredictiveScalingMaxCapacityBehavior = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-scalinginstruction.html#cfn-autoscalingplans-scalingplan-scalinginstruction-predictivescalingmaxcapacitybuffer
+aspspsiPredictiveScalingMaxCapacityBuffer :: Lens' AutoScalingPlansScalingPlanScalingInstruction (Maybe (Val Integer))
+aspspsiPredictiveScalingMaxCapacityBuffer = lens _autoScalingPlansScalingPlanScalingInstructionPredictiveScalingMaxCapacityBuffer (\s a -> s { _autoScalingPlansScalingPlanScalingInstructionPredictiveScalingMaxCapacityBuffer = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-scalinginstruction.html#cfn-autoscalingplans-scalingplan-scalinginstruction-predictivescalingmode
+aspspsiPredictiveScalingMode :: Lens' AutoScalingPlansScalingPlanScalingInstruction (Maybe (Val Text))
+aspspsiPredictiveScalingMode = lens _autoScalingPlansScalingPlanScalingInstructionPredictiveScalingMode (\s a -> s { _autoScalingPlansScalingPlanScalingInstructionPredictiveScalingMode = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-scalinginstruction.html#cfn-autoscalingplans-scalingplan-scalinginstruction-resourceid
 aspspsiResourceId :: Lens' AutoScalingPlansScalingPlanScalingInstruction (Val Text)
 aspspsiResourceId = lens _autoScalingPlansScalingPlanScalingInstructionResourceId (\s a -> s { _autoScalingPlansScalingPlanScalingInstructionResourceId = a })
@@ -81,6 +139,14 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-scalinginstruction.html#cfn-autoscalingplans-scalingplan-scalinginstruction-scalabledimension
 aspspsiScalableDimension :: Lens' AutoScalingPlansScalingPlanScalingInstruction (Val Text)
 aspspsiScalableDimension = lens _autoScalingPlansScalingPlanScalingInstructionScalableDimension (\s a -> s { _autoScalingPlansScalingPlanScalingInstructionScalableDimension = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-scalinginstruction.html#cfn-autoscalingplans-scalingplan-scalinginstruction-scalingpolicyupdatebehavior
+aspspsiScalingPolicyUpdateBehavior :: Lens' AutoScalingPlansScalingPlanScalingInstruction (Maybe (Val Text))
+aspspsiScalingPolicyUpdateBehavior = lens _autoScalingPlansScalingPlanScalingInstructionScalingPolicyUpdateBehavior (\s a -> s { _autoScalingPlansScalingPlanScalingInstructionScalingPolicyUpdateBehavior = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-scalinginstruction.html#cfn-autoscalingplans-scalingplan-scalinginstruction-scheduledactionbuffertime
+aspspsiScheduledActionBufferTime :: Lens' AutoScalingPlansScalingPlanScalingInstruction (Maybe (Val Integer))
+aspspsiScheduledActionBufferTime = lens _autoScalingPlansScalingPlanScalingInstructionScheduledActionBufferTime (\s a -> s { _autoScalingPlansScalingPlanScalingInstructionScheduledActionBufferTime = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-scalinginstruction.html#cfn-autoscalingplans-scalingplan-scalinginstruction-servicenamespace
 aspspsiServiceNamespace :: Lens' AutoScalingPlansScalingPlanScalingInstruction (Val Text)
diff --git a/library-gen/Stratosphere/ResourceProperties/DLMLifecyclePolicyCreateRule.hs b/library-gen/Stratosphere/ResourceProperties/DLMLifecyclePolicyCreateRule.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/DLMLifecyclePolicyCreateRule.hs
@@ -0,0 +1,61 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-createrule.html
+
+module Stratosphere.ResourceProperties.DLMLifecyclePolicyCreateRule where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for DLMLifecyclePolicyCreateRule. See
+-- 'dlmLifecyclePolicyCreateRule' for a more convenient constructor.
+data DLMLifecyclePolicyCreateRule =
+  DLMLifecyclePolicyCreateRule
+  { _dLMLifecyclePolicyCreateRuleInterval :: Val Integer
+  , _dLMLifecyclePolicyCreateRuleIntervalUnit :: Val Text
+  , _dLMLifecyclePolicyCreateRuleTimes :: Maybe (ValList Text)
+  } deriving (Show, Eq)
+
+instance ToJSON DLMLifecyclePolicyCreateRule where
+  toJSON DLMLifecyclePolicyCreateRule{..} =
+    object $
+    catMaybes
+    [ (Just . ("Interval",) . toJSON . fmap Integer') _dLMLifecyclePolicyCreateRuleInterval
+    , (Just . ("IntervalUnit",) . toJSON) _dLMLifecyclePolicyCreateRuleIntervalUnit
+    , fmap (("Times",) . toJSON) _dLMLifecyclePolicyCreateRuleTimes
+    ]
+
+instance FromJSON DLMLifecyclePolicyCreateRule where
+  parseJSON (Object obj) =
+    DLMLifecyclePolicyCreateRule <$>
+      fmap (fmap unInteger') (obj .: "Interval") <*>
+      (obj .: "IntervalUnit") <*>
+      (obj .:? "Times")
+  parseJSON _ = mempty
+
+-- | Constructor for 'DLMLifecyclePolicyCreateRule' containing required fields
+-- as arguments.
+dlmLifecyclePolicyCreateRule
+  :: Val Integer -- ^ 'dlmlpcrInterval'
+  -> Val Text -- ^ 'dlmlpcrIntervalUnit'
+  -> DLMLifecyclePolicyCreateRule
+dlmLifecyclePolicyCreateRule intervalarg intervalUnitarg =
+  DLMLifecyclePolicyCreateRule
+  { _dLMLifecyclePolicyCreateRuleInterval = intervalarg
+  , _dLMLifecyclePolicyCreateRuleIntervalUnit = intervalUnitarg
+  , _dLMLifecyclePolicyCreateRuleTimes = Nothing
+  }
+
+-- | 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 _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 _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
+dlmlpcrTimes :: Lens' DLMLifecyclePolicyCreateRule (Maybe (ValList Text))
+dlmlpcrTimes = lens _dLMLifecyclePolicyCreateRuleTimes (\s a -> s { _dLMLifecyclePolicyCreateRuleTimes = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/DLMLifecyclePolicyPolicyDetails.hs b/library-gen/Stratosphere/ResourceProperties/DLMLifecyclePolicyPolicyDetails.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/DLMLifecyclePolicyPolicyDetails.hs
@@ -0,0 +1,60 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-policydetails.html
+
+module Stratosphere.ResourceProperties.DLMLifecyclePolicyPolicyDetails where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.DLMLifecyclePolicySchedule
+import Stratosphere.ResourceProperties.Tag
+
+-- | Full data type definition for DLMLifecyclePolicyPolicyDetails. See
+-- 'dlmLifecyclePolicyPolicyDetails' for a more convenient constructor.
+data DLMLifecyclePolicyPolicyDetails =
+  DLMLifecyclePolicyPolicyDetails
+  { _dLMLifecyclePolicyPolicyDetailsResourceTypes :: Maybe (ValList Text)
+  , _dLMLifecyclePolicyPolicyDetailsSchedules :: Maybe [DLMLifecyclePolicySchedule]
+  , _dLMLifecyclePolicyPolicyDetailsTargetTags :: Maybe [Tag]
+  } deriving (Show, Eq)
+
+instance ToJSON DLMLifecyclePolicyPolicyDetails where
+  toJSON DLMLifecyclePolicyPolicyDetails{..} =
+    object $
+    catMaybes
+    [ fmap (("ResourceTypes",) . toJSON) _dLMLifecyclePolicyPolicyDetailsResourceTypes
+    , fmap (("Schedules",) . toJSON) _dLMLifecyclePolicyPolicyDetailsSchedules
+    , fmap (("TargetTags",) . toJSON) _dLMLifecyclePolicyPolicyDetailsTargetTags
+    ]
+
+instance FromJSON DLMLifecyclePolicyPolicyDetails where
+  parseJSON (Object obj) =
+    DLMLifecyclePolicyPolicyDetails <$>
+      (obj .:? "ResourceTypes") <*>
+      (obj .:? "Schedules") <*>
+      (obj .:? "TargetTags")
+  parseJSON _ = mempty
+
+-- | Constructor for 'DLMLifecyclePolicyPolicyDetails' containing required
+-- fields as arguments.
+dlmLifecyclePolicyPolicyDetails
+  :: DLMLifecyclePolicyPolicyDetails
+dlmLifecyclePolicyPolicyDetails  =
+  DLMLifecyclePolicyPolicyDetails
+  { _dLMLifecyclePolicyPolicyDetailsResourceTypes = Nothing
+  , _dLMLifecyclePolicyPolicyDetailsSchedules = Nothing
+  , _dLMLifecyclePolicyPolicyDetailsTargetTags = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-policydetails.html#cfn-dlm-lifecyclepolicy-policydetails-resourcetypes
+dlmlppdResourceTypes :: Lens' DLMLifecyclePolicyPolicyDetails (Maybe (ValList Text))
+dlmlppdResourceTypes = lens _dLMLifecyclePolicyPolicyDetailsResourceTypes (\s a -> s { _dLMLifecyclePolicyPolicyDetailsResourceTypes = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-policydetails.html#cfn-dlm-lifecyclepolicy-policydetails-schedules
+dlmlppdSchedules :: Lens' DLMLifecyclePolicyPolicyDetails (Maybe [DLMLifecyclePolicySchedule])
+dlmlppdSchedules = lens _dLMLifecyclePolicyPolicyDetailsSchedules (\s a -> s { _dLMLifecyclePolicyPolicyDetailsSchedules = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-policydetails.html#cfn-dlm-lifecyclepolicy-policydetails-targettags
+dlmlppdTargetTags :: Lens' DLMLifecyclePolicyPolicyDetails (Maybe [Tag])
+dlmlppdTargetTags = lens _dLMLifecyclePolicyPolicyDetailsTargetTags (\s a -> s { _dLMLifecyclePolicyPolicyDetailsTargetTags = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/DLMLifecyclePolicyRetainRule.hs b/library-gen/Stratosphere/ResourceProperties/DLMLifecyclePolicyRetainRule.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/DLMLifecyclePolicyRetainRule.hs
@@ -0,0 +1,44 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-retainrule.html
+
+module Stratosphere.ResourceProperties.DLMLifecyclePolicyRetainRule where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for DLMLifecyclePolicyRetainRule. See
+-- 'dlmLifecyclePolicyRetainRule' for a more convenient constructor.
+data DLMLifecyclePolicyRetainRule =
+  DLMLifecyclePolicyRetainRule
+  { _dLMLifecyclePolicyRetainRuleCount :: Val Integer
+  } deriving (Show, Eq)
+
+instance ToJSON DLMLifecyclePolicyRetainRule where
+  toJSON DLMLifecyclePolicyRetainRule{..} =
+    object $
+    catMaybes
+    [ (Just . ("Count",) . toJSON . fmap Integer') _dLMLifecyclePolicyRetainRuleCount
+    ]
+
+instance FromJSON DLMLifecyclePolicyRetainRule where
+  parseJSON (Object obj) =
+    DLMLifecyclePolicyRetainRule <$>
+      fmap (fmap unInteger') (obj .: "Count")
+  parseJSON _ = mempty
+
+-- | Constructor for 'DLMLifecyclePolicyRetainRule' containing required fields
+-- as arguments.
+dlmLifecyclePolicyRetainRule
+  :: Val Integer -- ^ 'dlmlprrCount'
+  -> DLMLifecyclePolicyRetainRule
+dlmLifecyclePolicyRetainRule countarg =
+  DLMLifecyclePolicyRetainRule
+  { _dLMLifecyclePolicyRetainRuleCount = countarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-retainrule.html#cfn-dlm-lifecyclepolicy-retainrule-count
+dlmlprrCount :: Lens' DLMLifecyclePolicyRetainRule (Val Integer)
+dlmlprrCount = lens _dLMLifecyclePolicyRetainRuleCount (\s a -> s { _dLMLifecyclePolicyRetainRuleCount = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/DLMLifecyclePolicySchedule.hs b/library-gen/Stratosphere/ResourceProperties/DLMLifecyclePolicySchedule.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/DLMLifecyclePolicySchedule.hs
@@ -0,0 +1,77 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-schedule.html
+
+module Stratosphere.ResourceProperties.DLMLifecyclePolicySchedule where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.DLMLifecyclePolicyCreateRule
+import Stratosphere.ResourceProperties.DLMLifecyclePolicyRetainRule
+import Stratosphere.ResourceProperties.Tag
+
+-- | Full data type definition for DLMLifecyclePolicySchedule. See
+-- 'dlmLifecyclePolicySchedule' for a more convenient constructor.
+data DLMLifecyclePolicySchedule =
+  DLMLifecyclePolicySchedule
+  { _dLMLifecyclePolicyScheduleCopyTags :: Maybe (Val Bool)
+  , _dLMLifecyclePolicyScheduleCreateRule :: Maybe DLMLifecyclePolicyCreateRule
+  , _dLMLifecyclePolicyScheduleName :: Maybe (Val Text)
+  , _dLMLifecyclePolicyScheduleRetainRule :: Maybe DLMLifecyclePolicyRetainRule
+  , _dLMLifecyclePolicyScheduleTagsToAdd :: Maybe [Tag]
+  } deriving (Show, Eq)
+
+instance ToJSON DLMLifecyclePolicySchedule where
+  toJSON DLMLifecyclePolicySchedule{..} =
+    object $
+    catMaybes
+    [ fmap (("CopyTags",) . toJSON . fmap Bool') _dLMLifecyclePolicyScheduleCopyTags
+    , fmap (("CreateRule",) . toJSON) _dLMLifecyclePolicyScheduleCreateRule
+    , fmap (("Name",) . toJSON) _dLMLifecyclePolicyScheduleName
+    , fmap (("RetainRule",) . toJSON) _dLMLifecyclePolicyScheduleRetainRule
+    , fmap (("TagsToAdd",) . toJSON) _dLMLifecyclePolicyScheduleTagsToAdd
+    ]
+
+instance FromJSON DLMLifecyclePolicySchedule where
+  parseJSON (Object obj) =
+    DLMLifecyclePolicySchedule <$>
+      fmap (fmap (fmap unBool')) (obj .:? "CopyTags") <*>
+      (obj .:? "CreateRule") <*>
+      (obj .:? "Name") <*>
+      (obj .:? "RetainRule") <*>
+      (obj .:? "TagsToAdd")
+  parseJSON _ = mempty
+
+-- | Constructor for 'DLMLifecyclePolicySchedule' containing required fields
+-- as arguments.
+dlmLifecyclePolicySchedule
+  :: DLMLifecyclePolicySchedule
+dlmLifecyclePolicySchedule  =
+  DLMLifecyclePolicySchedule
+  { _dLMLifecyclePolicyScheduleCopyTags = Nothing
+  , _dLMLifecyclePolicyScheduleCreateRule = Nothing
+  , _dLMLifecyclePolicyScheduleName = Nothing
+  , _dLMLifecyclePolicyScheduleRetainRule = Nothing
+  , _dLMLifecyclePolicyScheduleTagsToAdd = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-schedule.html#cfn-dlm-lifecyclepolicy-schedule-copytags
+dlmlpsCopyTags :: Lens' DLMLifecyclePolicySchedule (Maybe (Val Bool))
+dlmlpsCopyTags = lens _dLMLifecyclePolicyScheduleCopyTags (\s a -> s { _dLMLifecyclePolicyScheduleCopyTags = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-schedule.html#cfn-dlm-lifecyclepolicy-schedule-createrule
+dlmlpsCreateRule :: Lens' DLMLifecyclePolicySchedule (Maybe DLMLifecyclePolicyCreateRule)
+dlmlpsCreateRule = lens _dLMLifecyclePolicyScheduleCreateRule (\s a -> s { _dLMLifecyclePolicyScheduleCreateRule = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-schedule.html#cfn-dlm-lifecyclepolicy-schedule-name
+dlmlpsName :: Lens' DLMLifecyclePolicySchedule (Maybe (Val Text))
+dlmlpsName = lens _dLMLifecyclePolicyScheduleName (\s a -> s { _dLMLifecyclePolicyScheduleName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-schedule.html#cfn-dlm-lifecyclepolicy-schedule-retainrule
+dlmlpsRetainRule :: Lens' DLMLifecyclePolicySchedule (Maybe DLMLifecyclePolicyRetainRule)
+dlmlpsRetainRule = lens _dLMLifecyclePolicyScheduleRetainRule (\s a -> s { _dLMLifecyclePolicyScheduleRetainRule = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-schedule.html#cfn-dlm-lifecyclepolicy-schedule-tagstoadd
+dlmlpsTagsToAdd :: Lens' DLMLifecyclePolicySchedule (Maybe [Tag])
+dlmlpsTagsToAdd = lens _dLMLifecyclePolicyScheduleTagsToAdd (\s a -> s { _dLMLifecyclePolicyScheduleTagsToAdd = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/EC2SecurityGroupIngressProperty.hs b/library-gen/Stratosphere/ResourceProperties/EC2SecurityGroupIngressProperty.hs
--- a/library-gen/Stratosphere/ResourceProperties/EC2SecurityGroupIngressProperty.hs
+++ b/library-gen/Stratosphere/ResourceProperties/EC2SecurityGroupIngressProperty.hs
@@ -18,6 +18,7 @@
   , _eC2SecurityGroupIngressPropertyDescription :: Maybe (Val Text)
   , _eC2SecurityGroupIngressPropertyFromPort :: Maybe (Val Integer)
   , _eC2SecurityGroupIngressPropertyIpProtocol :: Val Text
+  , _eC2SecurityGroupIngressPropertySourcePrefixListId :: Maybe (Val Text)
   , _eC2SecurityGroupIngressPropertySourceSecurityGroupId :: Maybe (Val Text)
   , _eC2SecurityGroupIngressPropertySourceSecurityGroupName :: Maybe (Val Text)
   , _eC2SecurityGroupIngressPropertySourceSecurityGroupOwnerId :: Maybe (Val Text)
@@ -33,6 +34,7 @@
     , fmap (("Description",) . toJSON) _eC2SecurityGroupIngressPropertyDescription
     , fmap (("FromPort",) . toJSON . fmap Integer') _eC2SecurityGroupIngressPropertyFromPort
     , (Just . ("IpProtocol",) . toJSON) _eC2SecurityGroupIngressPropertyIpProtocol
+    , fmap (("SourcePrefixListId",) . toJSON) _eC2SecurityGroupIngressPropertySourcePrefixListId
     , fmap (("SourceSecurityGroupId",) . toJSON) _eC2SecurityGroupIngressPropertySourceSecurityGroupId
     , fmap (("SourceSecurityGroupName",) . toJSON) _eC2SecurityGroupIngressPropertySourceSecurityGroupName
     , fmap (("SourceSecurityGroupOwnerId",) . toJSON) _eC2SecurityGroupIngressPropertySourceSecurityGroupOwnerId
@@ -47,6 +49,7 @@
       (obj .:? "Description") <*>
       fmap (fmap (fmap unInteger')) (obj .:? "FromPort") <*>
       (obj .: "IpProtocol") <*>
+      (obj .:? "SourcePrefixListId") <*>
       (obj .:? "SourceSecurityGroupId") <*>
       (obj .:? "SourceSecurityGroupName") <*>
       (obj .:? "SourceSecurityGroupOwnerId") <*>
@@ -65,6 +68,7 @@
   , _eC2SecurityGroupIngressPropertyDescription = Nothing
   , _eC2SecurityGroupIngressPropertyFromPort = Nothing
   , _eC2SecurityGroupIngressPropertyIpProtocol = ipProtocolarg
+  , _eC2SecurityGroupIngressPropertySourcePrefixListId = Nothing
   , _eC2SecurityGroupIngressPropertySourceSecurityGroupId = Nothing
   , _eC2SecurityGroupIngressPropertySourceSecurityGroupName = Nothing
   , _eC2SecurityGroupIngressPropertySourceSecurityGroupOwnerId = Nothing
@@ -90,6 +94,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html#cfn-ec2-security-group-rule-ipprotocol
 ecsgipIpProtocol :: Lens' EC2SecurityGroupIngressProperty (Val Text)
 ecsgipIpProtocol = lens _eC2SecurityGroupIngressPropertyIpProtocol (\s a -> s { _eC2SecurityGroupIngressPropertyIpProtocol = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html#cfn-ec2-securitygroup-ingress-sourceprefixlistid
+ecsgipSourcePrefixListId :: Lens' EC2SecurityGroupIngressProperty (Maybe (Val Text))
+ecsgipSourcePrefixListId = lens _eC2SecurityGroupIngressPropertySourcePrefixListId (\s a -> s { _eC2SecurityGroupIngressPropertySourcePrefixListId = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html#cfn-ec2-security-group-rule-sourcesecuritygroupid
 ecsgipSourceSecurityGroupId :: Lens' EC2SecurityGroupIngressProperty (Maybe (Val Text))
diff --git a/library-gen/Stratosphere/ResourceProperties/EC2SpotFleetSpotFleetTagSpecification.hs b/library-gen/Stratosphere/ResourceProperties/EC2SpotFleetSpotFleetTagSpecification.hs
--- a/library-gen/Stratosphere/ResourceProperties/EC2SpotFleetSpotFleetTagSpecification.hs
+++ b/library-gen/Stratosphere/ResourceProperties/EC2SpotFleetSpotFleetTagSpecification.hs
@@ -7,7 +7,7 @@
 module Stratosphere.ResourceProperties.EC2SpotFleetSpotFleetTagSpecification where
 
 import Stratosphere.ResourceImports
-
+import Stratosphere.ResourceProperties.Tag
 
 -- | Full data type definition for EC2SpotFleetSpotFleetTagSpecification. See
 -- 'ec2SpotFleetSpotFleetTagSpecification' for a more convenient
@@ -15,6 +15,7 @@
 data EC2SpotFleetSpotFleetTagSpecification =
   EC2SpotFleetSpotFleetTagSpecification
   { _eC2SpotFleetSpotFleetTagSpecificationResourceType :: Maybe (Val Text)
+  , _eC2SpotFleetSpotFleetTagSpecificationTags :: Maybe [Tag]
   } deriving (Show, Eq)
 
 instance ToJSON EC2SpotFleetSpotFleetTagSpecification where
@@ -22,12 +23,14 @@
     object $
     catMaybes
     [ fmap (("ResourceType",) . toJSON) _eC2SpotFleetSpotFleetTagSpecificationResourceType
+    , fmap (("Tags",) . toJSON) _eC2SpotFleetSpotFleetTagSpecificationTags
     ]
 
 instance FromJSON EC2SpotFleetSpotFleetTagSpecification where
   parseJSON (Object obj) =
     EC2SpotFleetSpotFleetTagSpecification <$>
-      (obj .:? "ResourceType")
+      (obj .:? "ResourceType") <*>
+      (obj .:? "Tags")
   parseJSON _ = mempty
 
 -- | Constructor for 'EC2SpotFleetSpotFleetTagSpecification' containing
@@ -37,8 +40,13 @@
 ec2SpotFleetSpotFleetTagSpecification  =
   EC2SpotFleetSpotFleetTagSpecification
   { _eC2SpotFleetSpotFleetTagSpecificationResourceType = Nothing
+  , _eC2SpotFleetSpotFleetTagSpecificationTags = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-tagspecifications.html#cfn-ec2-spotfleet-spotfleettagspecification-resourcetype
 ecsfsftsResourceType :: Lens' EC2SpotFleetSpotFleetTagSpecification (Maybe (Val Text))
 ecsfsftsResourceType = lens _eC2SpotFleetSpotFleetTagSpecificationResourceType (\s a -> s { _eC2SpotFleetSpotFleetTagSpecificationResourceType = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-tagspecifications.html#cfn-ec2-spotfleet-tags
+ecsfsftsTags :: Lens' EC2SpotFleetSpotFleetTagSpecification (Maybe [Tag])
+ecsfsftsTags = lens _eC2SpotFleetSpotFleetTagSpecificationTags (\s a -> s { _eC2SpotFleetSpotFleetTagSpecificationTags = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleAction.hs b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleAction.hs
--- a/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleAction.hs
+++ b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleAction.hs
@@ -13,12 +13,14 @@
 import Stratosphere.ResourceProperties.IoTTopicRuleDynamoDBV2Action
 import Stratosphere.ResourceProperties.IoTTopicRuleElasticsearchAction
 import Stratosphere.ResourceProperties.IoTTopicRuleFirehoseAction
+import Stratosphere.ResourceProperties.IoTTopicRuleIotAnalyticsAction
 import Stratosphere.ResourceProperties.IoTTopicRuleKinesisAction
 import Stratosphere.ResourceProperties.IoTTopicRuleLambdaAction
 import Stratosphere.ResourceProperties.IoTTopicRuleRepublishAction
 import Stratosphere.ResourceProperties.IoTTopicRuleS3Action
 import Stratosphere.ResourceProperties.IoTTopicRuleSnsAction
 import Stratosphere.ResourceProperties.IoTTopicRuleSqsAction
+import Stratosphere.ResourceProperties.IoTTopicRuleStepFunctionsAction
 
 -- | Full data type definition for IoTTopicRuleAction. See
 -- 'ioTTopicRuleAction' for a more convenient constructor.
@@ -30,12 +32,14 @@
   , _ioTTopicRuleActionDynamoDBv2 :: Maybe IoTTopicRuleDynamoDBV2Action
   , _ioTTopicRuleActionElasticsearch :: Maybe IoTTopicRuleElasticsearchAction
   , _ioTTopicRuleActionFirehose :: Maybe IoTTopicRuleFirehoseAction
+  , _ioTTopicRuleActionIotAnalytics :: Maybe IoTTopicRuleIotAnalyticsAction
   , _ioTTopicRuleActionKinesis :: Maybe IoTTopicRuleKinesisAction
   , _ioTTopicRuleActionLambda :: Maybe IoTTopicRuleLambdaAction
   , _ioTTopicRuleActionRepublish :: Maybe IoTTopicRuleRepublishAction
   , _ioTTopicRuleActionS3 :: Maybe IoTTopicRuleS3Action
   , _ioTTopicRuleActionSns :: Maybe IoTTopicRuleSnsAction
   , _ioTTopicRuleActionSqs :: Maybe IoTTopicRuleSqsAction
+  , _ioTTopicRuleActionStepFunctions :: Maybe IoTTopicRuleStepFunctionsAction
   } deriving (Show, Eq)
 
 instance ToJSON IoTTopicRuleAction where
@@ -48,12 +52,14 @@
     , fmap (("DynamoDBv2",) . toJSON) _ioTTopicRuleActionDynamoDBv2
     , fmap (("Elasticsearch",) . toJSON) _ioTTopicRuleActionElasticsearch
     , fmap (("Firehose",) . toJSON) _ioTTopicRuleActionFirehose
+    , fmap (("IotAnalytics",) . toJSON) _ioTTopicRuleActionIotAnalytics
     , fmap (("Kinesis",) . toJSON) _ioTTopicRuleActionKinesis
     , fmap (("Lambda",) . toJSON) _ioTTopicRuleActionLambda
     , fmap (("Republish",) . toJSON) _ioTTopicRuleActionRepublish
     , fmap (("S3",) . toJSON) _ioTTopicRuleActionS3
     , fmap (("Sns",) . toJSON) _ioTTopicRuleActionSns
     , fmap (("Sqs",) . toJSON) _ioTTopicRuleActionSqs
+    , fmap (("StepFunctions",) . toJSON) _ioTTopicRuleActionStepFunctions
     ]
 
 instance FromJSON IoTTopicRuleAction where
@@ -65,12 +71,14 @@
       (obj .:? "DynamoDBv2") <*>
       (obj .:? "Elasticsearch") <*>
       (obj .:? "Firehose") <*>
+      (obj .:? "IotAnalytics") <*>
       (obj .:? "Kinesis") <*>
       (obj .:? "Lambda") <*>
       (obj .:? "Republish") <*>
       (obj .:? "S3") <*>
       (obj .:? "Sns") <*>
-      (obj .:? "Sqs")
+      (obj .:? "Sqs") <*>
+      (obj .:? "StepFunctions")
   parseJSON _ = mempty
 
 -- | Constructor for 'IoTTopicRuleAction' containing required fields as
@@ -85,12 +93,14 @@
   , _ioTTopicRuleActionDynamoDBv2 = Nothing
   , _ioTTopicRuleActionElasticsearch = Nothing
   , _ioTTopicRuleActionFirehose = Nothing
+  , _ioTTopicRuleActionIotAnalytics = Nothing
   , _ioTTopicRuleActionKinesis = Nothing
   , _ioTTopicRuleActionLambda = Nothing
   , _ioTTopicRuleActionRepublish = Nothing
   , _ioTTopicRuleActionS3 = Nothing
   , _ioTTopicRuleActionSns = Nothing
   , _ioTTopicRuleActionSqs = Nothing
+  , _ioTTopicRuleActionStepFunctions = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-cloudwatchalarm
@@ -117,6 +127,10 @@
 ittraFirehose :: Lens' IoTTopicRuleAction (Maybe IoTTopicRuleFirehoseAction)
 ittraFirehose = lens _ioTTopicRuleActionFirehose (\s a -> s { _ioTTopicRuleActionFirehose = a })
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-iotanalytics
+ittraIotAnalytics :: Lens' IoTTopicRuleAction (Maybe IoTTopicRuleIotAnalyticsAction)
+ittraIotAnalytics = lens _ioTTopicRuleActionIotAnalytics (\s a -> s { _ioTTopicRuleActionIotAnalytics = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-kinesis
 ittraKinesis :: Lens' IoTTopicRuleAction (Maybe IoTTopicRuleKinesisAction)
 ittraKinesis = lens _ioTTopicRuleActionKinesis (\s a -> s { _ioTTopicRuleActionKinesis = a })
@@ -140,3 +154,7 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-sqs
 ittraSqs :: Lens' IoTTopicRuleAction (Maybe IoTTopicRuleSqsAction)
 ittraSqs = lens _ioTTopicRuleActionSqs (\s a -> s { _ioTTopicRuleActionSqs = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-stepfunctions
+ittraStepFunctions :: Lens' IoTTopicRuleAction (Maybe IoTTopicRuleStepFunctionsAction)
+ittraStepFunctions = lens _ioTTopicRuleActionStepFunctions (\s a -> s { _ioTTopicRuleActionStepFunctions = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleIotAnalyticsAction.hs b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleIotAnalyticsAction.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleIotAnalyticsAction.hs
@@ -0,0 +1,53 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-iotanalyticsaction.html
+
+module Stratosphere.ResourceProperties.IoTTopicRuleIotAnalyticsAction where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for IoTTopicRuleIotAnalyticsAction. See
+-- 'ioTTopicRuleIotAnalyticsAction' for a more convenient constructor.
+data IoTTopicRuleIotAnalyticsAction =
+  IoTTopicRuleIotAnalyticsAction
+  { _ioTTopicRuleIotAnalyticsActionChannelName :: Val Text
+  , _ioTTopicRuleIotAnalyticsActionRoleArn :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON IoTTopicRuleIotAnalyticsAction where
+  toJSON IoTTopicRuleIotAnalyticsAction{..} =
+    object $
+    catMaybes
+    [ (Just . ("ChannelName",) . toJSON) _ioTTopicRuleIotAnalyticsActionChannelName
+    , (Just . ("RoleArn",) . toJSON) _ioTTopicRuleIotAnalyticsActionRoleArn
+    ]
+
+instance FromJSON IoTTopicRuleIotAnalyticsAction where
+  parseJSON (Object obj) =
+    IoTTopicRuleIotAnalyticsAction <$>
+      (obj .: "ChannelName") <*>
+      (obj .: "RoleArn")
+  parseJSON _ = mempty
+
+-- | Constructor for 'IoTTopicRuleIotAnalyticsAction' containing required
+-- fields as arguments.
+ioTTopicRuleIotAnalyticsAction
+  :: Val Text -- ^ 'ittriaaChannelName'
+  -> Val Text -- ^ 'ittriaaRoleArn'
+  -> IoTTopicRuleIotAnalyticsAction
+ioTTopicRuleIotAnalyticsAction channelNamearg roleArnarg =
+  IoTTopicRuleIotAnalyticsAction
+  { _ioTTopicRuleIotAnalyticsActionChannelName = channelNamearg
+  , _ioTTopicRuleIotAnalyticsActionRoleArn = roleArnarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-iotanalyticsaction.html#cfn-iot-topicrule-iotanalyticsaction-channelname
+ittriaaChannelName :: Lens' IoTTopicRuleIotAnalyticsAction (Val Text)
+ittriaaChannelName = lens _ioTTopicRuleIotAnalyticsActionChannelName (\s a -> s { _ioTTopicRuleIotAnalyticsActionChannelName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-iotanalyticsaction.html#cfn-iot-topicrule-iotanalyticsaction-rolearn
+ittriaaRoleArn :: Lens' IoTTopicRuleIotAnalyticsAction (Val Text)
+ittriaaRoleArn = lens _ioTTopicRuleIotAnalyticsActionRoleArn (\s a -> s { _ioTTopicRuleIotAnalyticsActionRoleArn = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleStepFunctionsAction.hs b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleStepFunctionsAction.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleStepFunctionsAction.hs
@@ -0,0 +1,61 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-stepfunctionsaction.html
+
+module Stratosphere.ResourceProperties.IoTTopicRuleStepFunctionsAction where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for IoTTopicRuleStepFunctionsAction. See
+-- 'ioTTopicRuleStepFunctionsAction' for a more convenient constructor.
+data IoTTopicRuleStepFunctionsAction =
+  IoTTopicRuleStepFunctionsAction
+  { _ioTTopicRuleStepFunctionsActionExecutionNamePrefix :: Maybe (Val Text)
+  , _ioTTopicRuleStepFunctionsActionRoleArn :: Val Text
+  , _ioTTopicRuleStepFunctionsActionStateMachineName :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON IoTTopicRuleStepFunctionsAction where
+  toJSON IoTTopicRuleStepFunctionsAction{..} =
+    object $
+    catMaybes
+    [ fmap (("ExecutionNamePrefix",) . toJSON) _ioTTopicRuleStepFunctionsActionExecutionNamePrefix
+    , (Just . ("RoleArn",) . toJSON) _ioTTopicRuleStepFunctionsActionRoleArn
+    , (Just . ("StateMachineName",) . toJSON) _ioTTopicRuleStepFunctionsActionStateMachineName
+    ]
+
+instance FromJSON IoTTopicRuleStepFunctionsAction where
+  parseJSON (Object obj) =
+    IoTTopicRuleStepFunctionsAction <$>
+      (obj .:? "ExecutionNamePrefix") <*>
+      (obj .: "RoleArn") <*>
+      (obj .: "StateMachineName")
+  parseJSON _ = mempty
+
+-- | Constructor for 'IoTTopicRuleStepFunctionsAction' containing required
+-- fields as arguments.
+ioTTopicRuleStepFunctionsAction
+  :: Val Text -- ^ 'ittrsfaRoleArn'
+  -> Val Text -- ^ 'ittrsfaStateMachineName'
+  -> IoTTopicRuleStepFunctionsAction
+ioTTopicRuleStepFunctionsAction roleArnarg stateMachineNamearg =
+  IoTTopicRuleStepFunctionsAction
+  { _ioTTopicRuleStepFunctionsActionExecutionNamePrefix = Nothing
+  , _ioTTopicRuleStepFunctionsActionRoleArn = roleArnarg
+  , _ioTTopicRuleStepFunctionsActionStateMachineName = stateMachineNamearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-stepfunctionsaction.html#cfn-iot-topicrule-stepfunctionsaction-executionnameprefix
+ittrsfaExecutionNamePrefix :: Lens' IoTTopicRuleStepFunctionsAction (Maybe (Val Text))
+ittrsfaExecutionNamePrefix = lens _ioTTopicRuleStepFunctionsActionExecutionNamePrefix (\s a -> s { _ioTTopicRuleStepFunctionsActionExecutionNamePrefix = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-stepfunctionsaction.html#cfn-iot-topicrule-stepfunctionsaction-rolearn
+ittrsfaRoleArn :: Lens' IoTTopicRuleStepFunctionsAction (Val Text)
+ittrsfaRoleArn = lens _ioTTopicRuleStepFunctionsActionRoleArn (\s a -> s { _ioTTopicRuleStepFunctionsActionRoleArn = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-stepfunctionsaction.html#cfn-iot-topicrule-stepfunctionsaction-statemachinename
+ittrsfaStateMachineName :: Lens' IoTTopicRuleStepFunctionsAction (Val Text)
+ittrsfaStateMachineName = lens _ioTTopicRuleStepFunctionsActionStateMachineName (\s a -> s { _ioTTopicRuleStepFunctionsActionStateMachineName = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleTopicRulePayload.hs b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleTopicRulePayload.hs
--- a/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleTopicRulePayload.hs
+++ b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleTopicRulePayload.hs
@@ -16,6 +16,7 @@
   { _ioTTopicRuleTopicRulePayloadActions :: [IoTTopicRuleAction]
   , _ioTTopicRuleTopicRulePayloadAwsIotSqlVersion :: Maybe (Val Text)
   , _ioTTopicRuleTopicRulePayloadDescription :: Maybe (Val Text)
+  , _ioTTopicRuleTopicRulePayloadErrorAction :: Maybe IoTTopicRuleAction
   , _ioTTopicRuleTopicRulePayloadRuleDisabled :: Val Bool
   , _ioTTopicRuleTopicRulePayloadSql :: Val Text
   } deriving (Show, Eq)
@@ -27,6 +28,7 @@
     [ (Just . ("Actions",) . toJSON) _ioTTopicRuleTopicRulePayloadActions
     , fmap (("AwsIotSqlVersion",) . toJSON) _ioTTopicRuleTopicRulePayloadAwsIotSqlVersion
     , fmap (("Description",) . toJSON) _ioTTopicRuleTopicRulePayloadDescription
+    , fmap (("ErrorAction",) . toJSON) _ioTTopicRuleTopicRulePayloadErrorAction
     , (Just . ("RuleDisabled",) . toJSON . fmap Bool') _ioTTopicRuleTopicRulePayloadRuleDisabled
     , (Just . ("Sql",) . toJSON) _ioTTopicRuleTopicRulePayloadSql
     ]
@@ -37,6 +39,7 @@
       (obj .: "Actions") <*>
       (obj .:? "AwsIotSqlVersion") <*>
       (obj .:? "Description") <*>
+      (obj .:? "ErrorAction") <*>
       fmap (fmap unBool') (obj .: "RuleDisabled") <*>
       (obj .: "Sql")
   parseJSON _ = mempty
@@ -53,6 +56,7 @@
   { _ioTTopicRuleTopicRulePayloadActions = actionsarg
   , _ioTTopicRuleTopicRulePayloadAwsIotSqlVersion = Nothing
   , _ioTTopicRuleTopicRulePayloadDescription = Nothing
+  , _ioTTopicRuleTopicRulePayloadErrorAction = Nothing
   , _ioTTopicRuleTopicRulePayloadRuleDisabled = ruleDisabledarg
   , _ioTTopicRuleTopicRulePayloadSql = sqlarg
   }
@@ -68,6 +72,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html#cfn-iot-topicrule-topicrulepayload-description
 ittrtrpDescription :: Lens' IoTTopicRuleTopicRulePayload (Maybe (Val Text))
 ittrtrpDescription = lens _ioTTopicRuleTopicRulePayloadDescription (\s a -> s { _ioTTopicRuleTopicRulePayloadDescription = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html#cfn-iot-topicrule-topicrulepayload-erroraction
+ittrtrpErrorAction :: Lens' IoTTopicRuleTopicRulePayload (Maybe IoTTopicRuleAction)
+ittrtrpErrorAction = lens _ioTTopicRuleTopicRulePayloadErrorAction (\s a -> s { _ioTTopicRuleTopicRulePayloadErrorAction = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html#cfn-iot-topicrule-topicrulepayload-ruledisabled
 ittrtrpRuleDisabled :: Lens' IoTTopicRuleTopicRulePayload (Val Bool)
diff --git a/library-gen/Stratosphere/ResourceProperties/OpsWorksLayerVolumeConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/OpsWorksLayerVolumeConfiguration.hs
--- a/library-gen/Stratosphere/ResourceProperties/OpsWorksLayerVolumeConfiguration.hs
+++ b/library-gen/Stratosphere/ResourceProperties/OpsWorksLayerVolumeConfiguration.hs
@@ -13,7 +13,8 @@
 -- 'opsWorksLayerVolumeConfiguration' for a more convenient constructor.
 data OpsWorksLayerVolumeConfiguration =
   OpsWorksLayerVolumeConfiguration
-  { _opsWorksLayerVolumeConfigurationIops :: Maybe (Val Integer)
+  { _opsWorksLayerVolumeConfigurationEncrypted :: Maybe (Val Bool)
+  , _opsWorksLayerVolumeConfigurationIops :: Maybe (Val Integer)
   , _opsWorksLayerVolumeConfigurationMountPoint :: Maybe (Val Text)
   , _opsWorksLayerVolumeConfigurationNumberOfDisks :: Maybe (Val Integer)
   , _opsWorksLayerVolumeConfigurationRaidLevel :: Maybe (Val Integer)
@@ -25,7 +26,8 @@
   toJSON OpsWorksLayerVolumeConfiguration{..} =
     object $
     catMaybes
-    [ fmap (("Iops",) . toJSON . fmap Integer') _opsWorksLayerVolumeConfigurationIops
+    [ fmap (("Encrypted",) . toJSON . fmap Bool') _opsWorksLayerVolumeConfigurationEncrypted
+    , fmap (("Iops",) . toJSON . fmap Integer') _opsWorksLayerVolumeConfigurationIops
     , fmap (("MountPoint",) . toJSON) _opsWorksLayerVolumeConfigurationMountPoint
     , fmap (("NumberOfDisks",) . toJSON . fmap Integer') _opsWorksLayerVolumeConfigurationNumberOfDisks
     , fmap (("RaidLevel",) . toJSON . fmap Integer') _opsWorksLayerVolumeConfigurationRaidLevel
@@ -36,6 +38,7 @@
 instance FromJSON OpsWorksLayerVolumeConfiguration where
   parseJSON (Object obj) =
     OpsWorksLayerVolumeConfiguration <$>
+      fmap (fmap (fmap unBool')) (obj .:? "Encrypted") <*>
       fmap (fmap (fmap unInteger')) (obj .:? "Iops") <*>
       (obj .:? "MountPoint") <*>
       fmap (fmap (fmap unInteger')) (obj .:? "NumberOfDisks") <*>
@@ -50,13 +53,18 @@
   :: OpsWorksLayerVolumeConfiguration
 opsWorksLayerVolumeConfiguration  =
   OpsWorksLayerVolumeConfiguration
-  { _opsWorksLayerVolumeConfigurationIops = Nothing
+  { _opsWorksLayerVolumeConfigurationEncrypted = Nothing
+  , _opsWorksLayerVolumeConfigurationIops = Nothing
   , _opsWorksLayerVolumeConfigurationMountPoint = Nothing
   , _opsWorksLayerVolumeConfigurationNumberOfDisks = Nothing
   , _opsWorksLayerVolumeConfigurationRaidLevel = Nothing
   , _opsWorksLayerVolumeConfigurationSize = Nothing
   , _opsWorksLayerVolumeConfigurationVolumeType = Nothing
   }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-volumeconfiguration.html#cfn-opsworks-layer-volumeconfiguration-encrypted
+owlvcEncrypted :: Lens' OpsWorksLayerVolumeConfiguration (Maybe (Val Bool))
+owlvcEncrypted = lens _opsWorksLayerVolumeConfigurationEncrypted (\s a -> s { _opsWorksLayerVolumeConfigurationEncrypted = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-volumeconfiguration.html#cfn-opsworks-layer-volconfig-iops
 owlvcIops :: Lens' OpsWorksLayerVolumeConfiguration (Maybe (Val Integer))
diff --git a/library-gen/Stratosphere/ResourceProperties/RDSDBClusterScalingConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/RDSDBClusterScalingConfiguration.hs
--- a/library-gen/Stratosphere/ResourceProperties/RDSDBClusterScalingConfiguration.hs
+++ b/library-gen/Stratosphere/ResourceProperties/RDSDBClusterScalingConfiguration.hs
@@ -16,7 +16,7 @@
   { _rDSDBClusterScalingConfigurationAutoPause :: Maybe (Val Bool)
   , _rDSDBClusterScalingConfigurationMaxCapacity :: Maybe (Val Integer)
   , _rDSDBClusterScalingConfigurationMinCapacity :: Maybe (Val Integer)
-  , _rDSDBClusterScalingConfigurationSecondsBeforeAutoPause :: Maybe (Val Integer)
+  , _rDSDBClusterScalingConfigurationSecondsUntilAutoPause :: Maybe (Val Integer)
   } deriving (Show, Eq)
 
 instance ToJSON RDSDBClusterScalingConfiguration where
@@ -26,7 +26,7 @@
     [ fmap (("AutoPause",) . toJSON . fmap Bool') _rDSDBClusterScalingConfigurationAutoPause
     , fmap (("MaxCapacity",) . toJSON . fmap Integer') _rDSDBClusterScalingConfigurationMaxCapacity
     , fmap (("MinCapacity",) . toJSON . fmap Integer') _rDSDBClusterScalingConfigurationMinCapacity
-    , fmap (("SecondsBeforeAutoPause",) . toJSON . fmap Integer') _rDSDBClusterScalingConfigurationSecondsBeforeAutoPause
+    , fmap (("SecondsUntilAutoPause",) . toJSON . fmap Integer') _rDSDBClusterScalingConfigurationSecondsUntilAutoPause
     ]
 
 instance FromJSON RDSDBClusterScalingConfiguration where
@@ -35,7 +35,7 @@
       fmap (fmap (fmap unBool')) (obj .:? "AutoPause") <*>
       fmap (fmap (fmap unInteger')) (obj .:? "MaxCapacity") <*>
       fmap (fmap (fmap unInteger')) (obj .:? "MinCapacity") <*>
-      fmap (fmap (fmap unInteger')) (obj .:? "SecondsBeforeAutoPause")
+      fmap (fmap (fmap unInteger')) (obj .:? "SecondsUntilAutoPause")
   parseJSON _ = mempty
 
 -- | Constructor for 'RDSDBClusterScalingConfiguration' containing required
@@ -47,7 +47,7 @@
   { _rDSDBClusterScalingConfigurationAutoPause = Nothing
   , _rDSDBClusterScalingConfigurationMaxCapacity = Nothing
   , _rDSDBClusterScalingConfigurationMinCapacity = Nothing
-  , _rDSDBClusterScalingConfigurationSecondsBeforeAutoPause = Nothing
+  , _rDSDBClusterScalingConfigurationSecondsUntilAutoPause = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbcluster-scalingconfiguration.html#cfn-rds-dbcluster-scalingconfiguration-autopause
@@ -62,6 +62,6 @@
 rdsdbcscMinCapacity :: Lens' RDSDBClusterScalingConfiguration (Maybe (Val Integer))
 rdsdbcscMinCapacity = lens _rDSDBClusterScalingConfigurationMinCapacity (\s a -> s { _rDSDBClusterScalingConfigurationMinCapacity = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbcluster-scalingconfiguration.html#cfn-rds-dbcluster-scalingconfiguration-secondsbeforeautopause
-rdsdbcscSecondsBeforeAutoPause :: Lens' RDSDBClusterScalingConfiguration (Maybe (Val Integer))
-rdsdbcscSecondsBeforeAutoPause = lens _rDSDBClusterScalingConfigurationSecondsBeforeAutoPause (\s a -> s { _rDSDBClusterScalingConfigurationSecondsBeforeAutoPause = a })
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbcluster-scalingconfiguration.html#cfn-rds-dbcluster-scalingconfiguration-secondsuntilautopause
+rdsdbcscSecondsUntilAutoPause :: Lens' RDSDBClusterScalingConfiguration (Maybe (Val Integer))
+rdsdbcscSecondsUntilAutoPause = lens _rDSDBClusterScalingConfigurationSecondsUntilAutoPause (\s a -> s { _rDSDBClusterScalingConfigurationSecondsUntilAutoPause = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/RDSDBInstanceProcessorFeature.hs b/library-gen/Stratosphere/ResourceProperties/RDSDBInstanceProcessorFeature.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/RDSDBInstanceProcessorFeature.hs
@@ -0,0 +1,51 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbinstance-processorfeature.html
+
+module Stratosphere.ResourceProperties.RDSDBInstanceProcessorFeature where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for RDSDBInstanceProcessorFeature. See
+-- 'rdsdbInstanceProcessorFeature' for a more convenient constructor.
+data RDSDBInstanceProcessorFeature =
+  RDSDBInstanceProcessorFeature
+  { _rDSDBInstanceProcessorFeatureName :: Maybe (Val Text)
+  , _rDSDBInstanceProcessorFeatureValue :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON RDSDBInstanceProcessorFeature where
+  toJSON RDSDBInstanceProcessorFeature{..} =
+    object $
+    catMaybes
+    [ fmap (("Name",) . toJSON) _rDSDBInstanceProcessorFeatureName
+    , fmap (("Value",) . toJSON) _rDSDBInstanceProcessorFeatureValue
+    ]
+
+instance FromJSON RDSDBInstanceProcessorFeature where
+  parseJSON (Object obj) =
+    RDSDBInstanceProcessorFeature <$>
+      (obj .:? "Name") <*>
+      (obj .:? "Value")
+  parseJSON _ = mempty
+
+-- | Constructor for 'RDSDBInstanceProcessorFeature' containing required
+-- fields as arguments.
+rdsdbInstanceProcessorFeature
+  :: RDSDBInstanceProcessorFeature
+rdsdbInstanceProcessorFeature  =
+  RDSDBInstanceProcessorFeature
+  { _rDSDBInstanceProcessorFeatureName = Nothing
+  , _rDSDBInstanceProcessorFeatureValue = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbinstance-processorfeature.html#cfn-rds-dbinstance-processorfeature-name
+rdsdbipfName :: Lens' RDSDBInstanceProcessorFeature (Maybe (Val Text))
+rdsdbipfName = lens _rDSDBInstanceProcessorFeatureName (\s a -> s { _rDSDBInstanceProcessorFeatureName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbinstance-processorfeature.html#cfn-rds-dbinstance-processorfeature-value
+rdsdbipfValue :: Lens' RDSDBInstanceProcessorFeature (Maybe (Val Text))
+rdsdbipfValue = lens _rDSDBInstanceProcessorFeatureValue (\s a -> s { _rDSDBInstanceProcessorFeatureValue = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/Route53RecordSetGroupRecordSet.hs b/library-gen/Stratosphere/ResourceProperties/Route53RecordSetGroupRecordSet.hs
--- a/library-gen/Stratosphere/ResourceProperties/Route53RecordSetGroupRecordSet.hs
+++ b/library-gen/Stratosphere/ResourceProperties/Route53RecordSetGroupRecordSet.hs
@@ -21,6 +21,7 @@
   , _route53RecordSetGroupRecordSetHealthCheckId :: Maybe (Val Text)
   , _route53RecordSetGroupRecordSetHostedZoneId :: Maybe (Val Text)
   , _route53RecordSetGroupRecordSetHostedZoneName :: Maybe (Val Text)
+  , _route53RecordSetGroupRecordSetMultiValueAnswer :: Maybe (Val Bool)
   , _route53RecordSetGroupRecordSetName :: Val Text
   , _route53RecordSetGroupRecordSetRegion :: Maybe (Val Text)
   , _route53RecordSetGroupRecordSetResourceRecords :: Maybe (ValList Text)
@@ -41,6 +42,7 @@
     , fmap (("HealthCheckId",) . toJSON) _route53RecordSetGroupRecordSetHealthCheckId
     , fmap (("HostedZoneId",) . toJSON) _route53RecordSetGroupRecordSetHostedZoneId
     , fmap (("HostedZoneName",) . toJSON) _route53RecordSetGroupRecordSetHostedZoneName
+    , fmap (("MultiValueAnswer",) . toJSON . fmap Bool') _route53RecordSetGroupRecordSetMultiValueAnswer
     , (Just . ("Name",) . toJSON) _route53RecordSetGroupRecordSetName
     , fmap (("Region",) . toJSON) _route53RecordSetGroupRecordSetRegion
     , fmap (("ResourceRecords",) . toJSON) _route53RecordSetGroupRecordSetResourceRecords
@@ -60,6 +62,7 @@
       (obj .:? "HealthCheckId") <*>
       (obj .:? "HostedZoneId") <*>
       (obj .:? "HostedZoneName") <*>
+      fmap (fmap (fmap unBool')) (obj .:? "MultiValueAnswer") <*>
       (obj .: "Name") <*>
       (obj .:? "Region") <*>
       (obj .:? "ResourceRecords") <*>
@@ -84,6 +87,7 @@
   , _route53RecordSetGroupRecordSetHealthCheckId = Nothing
   , _route53RecordSetGroupRecordSetHostedZoneId = Nothing
   , _route53RecordSetGroupRecordSetHostedZoneName = Nothing
+  , _route53RecordSetGroupRecordSetMultiValueAnswer = Nothing
   , _route53RecordSetGroupRecordSetName = namearg
   , _route53RecordSetGroupRecordSetRegion = Nothing
   , _route53RecordSetGroupRecordSetResourceRecords = Nothing
@@ -120,6 +124,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-hostedzonename
 rrsgrsHostedZoneName :: Lens' Route53RecordSetGroupRecordSet (Maybe (Val Text))
 rrsgrsHostedZoneName = lens _route53RecordSetGroupRecordSetHostedZoneName (\s a -> s { _route53RecordSetGroupRecordSetHostedZoneName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-multivalueanswer
+rrsgrsMultiValueAnswer :: Lens' Route53RecordSetGroupRecordSet (Maybe (Val Bool))
+rrsgrsMultiValueAnswer = lens _route53RecordSetGroupRecordSetMultiValueAnswer (\s a -> s { _route53RecordSetGroupRecordSetMultiValueAnswer = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-name
 rrsgrsName :: Lens' Route53RecordSetGroupRecordSet (Val Text)
diff --git a/library-gen/Stratosphere/ResourceProperties/SecretsManagerRotationScheduleRotationRules.hs b/library-gen/Stratosphere/ResourceProperties/SecretsManagerRotationScheduleRotationRules.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/SecretsManagerRotationScheduleRotationRules.hs
@@ -0,0 +1,45 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-secretsmanager-rotationschedule-rotationrules.html
+
+module Stratosphere.ResourceProperties.SecretsManagerRotationScheduleRotationRules where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- SecretsManagerRotationScheduleRotationRules. See
+-- 'secretsManagerRotationScheduleRotationRules' for a more convenient
+-- constructor.
+data SecretsManagerRotationScheduleRotationRules =
+  SecretsManagerRotationScheduleRotationRules
+  { _secretsManagerRotationScheduleRotationRulesAutomaticallyAfterDays :: Maybe (Val Integer)
+  } deriving (Show, Eq)
+
+instance ToJSON SecretsManagerRotationScheduleRotationRules where
+  toJSON SecretsManagerRotationScheduleRotationRules{..} =
+    object $
+    catMaybes
+    [ fmap (("AutomaticallyAfterDays",) . toJSON . fmap Integer') _secretsManagerRotationScheduleRotationRulesAutomaticallyAfterDays
+    ]
+
+instance FromJSON SecretsManagerRotationScheduleRotationRules where
+  parseJSON (Object obj) =
+    SecretsManagerRotationScheduleRotationRules <$>
+      fmap (fmap (fmap unInteger')) (obj .:? "AutomaticallyAfterDays")
+  parseJSON _ = mempty
+
+-- | Constructor for 'SecretsManagerRotationScheduleRotationRules' containing
+-- required fields as arguments.
+secretsManagerRotationScheduleRotationRules
+  :: SecretsManagerRotationScheduleRotationRules
+secretsManagerRotationScheduleRotationRules  =
+  SecretsManagerRotationScheduleRotationRules
+  { _secretsManagerRotationScheduleRotationRulesAutomaticallyAfterDays = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-secretsmanager-rotationschedule-rotationrules.html#cfn-secretsmanager-rotationschedule-rotationrules-automaticallyafterdays
+smrsrrAutomaticallyAfterDays :: Lens' SecretsManagerRotationScheduleRotationRules (Maybe (Val Integer))
+smrsrrAutomaticallyAfterDays = lens _secretsManagerRotationScheduleRotationRulesAutomaticallyAfterDays (\s a -> s { _secretsManagerRotationScheduleRotationRulesAutomaticallyAfterDays = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/SecretsManagerSecretGenerateSecretString.hs b/library-gen/Stratosphere/ResourceProperties/SecretsManagerSecretGenerateSecretString.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/SecretsManagerSecretGenerateSecretString.hs
@@ -0,0 +1,116 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-secretsmanager-secret-generatesecretstring.html
+
+module Stratosphere.ResourceProperties.SecretsManagerSecretGenerateSecretString where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for SecretsManagerSecretGenerateSecretString.
+-- See 'secretsManagerSecretGenerateSecretString' for a more convenient
+-- constructor.
+data SecretsManagerSecretGenerateSecretString =
+  SecretsManagerSecretGenerateSecretString
+  { _secretsManagerSecretGenerateSecretStringExcludeCharacters :: Maybe (Val Text)
+  , _secretsManagerSecretGenerateSecretStringExcludeLowercase :: Maybe (Val Bool)
+  , _secretsManagerSecretGenerateSecretStringExcludeNumbers :: Maybe (Val Bool)
+  , _secretsManagerSecretGenerateSecretStringExcludePunctuation :: Maybe (Val Bool)
+  , _secretsManagerSecretGenerateSecretStringExcludeUppercase :: Maybe (Val Bool)
+  , _secretsManagerSecretGenerateSecretStringGenerateStringKey :: Maybe (Val Text)
+  , _secretsManagerSecretGenerateSecretStringIncludeSpace :: Maybe (Val Bool)
+  , _secretsManagerSecretGenerateSecretStringPasswordLength :: Maybe (Val Integer)
+  , _secretsManagerSecretGenerateSecretStringRequireEachIncludedType :: Maybe (Val Bool)
+  , _secretsManagerSecretGenerateSecretStringSecretStringTemplate :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON SecretsManagerSecretGenerateSecretString where
+  toJSON SecretsManagerSecretGenerateSecretString{..} =
+    object $
+    catMaybes
+    [ fmap (("ExcludeCharacters",) . toJSON) _secretsManagerSecretGenerateSecretStringExcludeCharacters
+    , fmap (("ExcludeLowercase",) . toJSON . fmap Bool') _secretsManagerSecretGenerateSecretStringExcludeLowercase
+    , fmap (("ExcludeNumbers",) . toJSON . fmap Bool') _secretsManagerSecretGenerateSecretStringExcludeNumbers
+    , fmap (("ExcludePunctuation",) . toJSON . fmap Bool') _secretsManagerSecretGenerateSecretStringExcludePunctuation
+    , fmap (("ExcludeUppercase",) . toJSON . fmap Bool') _secretsManagerSecretGenerateSecretStringExcludeUppercase
+    , fmap (("GenerateStringKey",) . toJSON) _secretsManagerSecretGenerateSecretStringGenerateStringKey
+    , fmap (("IncludeSpace",) . toJSON . fmap Bool') _secretsManagerSecretGenerateSecretStringIncludeSpace
+    , fmap (("PasswordLength",) . toJSON . fmap Integer') _secretsManagerSecretGenerateSecretStringPasswordLength
+    , fmap (("RequireEachIncludedType",) . toJSON . fmap Bool') _secretsManagerSecretGenerateSecretStringRequireEachIncludedType
+    , fmap (("SecretStringTemplate",) . toJSON) _secretsManagerSecretGenerateSecretStringSecretStringTemplate
+    ]
+
+instance FromJSON SecretsManagerSecretGenerateSecretString where
+  parseJSON (Object obj) =
+    SecretsManagerSecretGenerateSecretString <$>
+      (obj .:? "ExcludeCharacters") <*>
+      fmap (fmap (fmap unBool')) (obj .:? "ExcludeLowercase") <*>
+      fmap (fmap (fmap unBool')) (obj .:? "ExcludeNumbers") <*>
+      fmap (fmap (fmap unBool')) (obj .:? "ExcludePunctuation") <*>
+      fmap (fmap (fmap unBool')) (obj .:? "ExcludeUppercase") <*>
+      (obj .:? "GenerateStringKey") <*>
+      fmap (fmap (fmap unBool')) (obj .:? "IncludeSpace") <*>
+      fmap (fmap (fmap unInteger')) (obj .:? "PasswordLength") <*>
+      fmap (fmap (fmap unBool')) (obj .:? "RequireEachIncludedType") <*>
+      (obj .:? "SecretStringTemplate")
+  parseJSON _ = mempty
+
+-- | Constructor for 'SecretsManagerSecretGenerateSecretString' containing
+-- required fields as arguments.
+secretsManagerSecretGenerateSecretString
+  :: SecretsManagerSecretGenerateSecretString
+secretsManagerSecretGenerateSecretString  =
+  SecretsManagerSecretGenerateSecretString
+  { _secretsManagerSecretGenerateSecretStringExcludeCharacters = Nothing
+  , _secretsManagerSecretGenerateSecretStringExcludeLowercase = Nothing
+  , _secretsManagerSecretGenerateSecretStringExcludeNumbers = Nothing
+  , _secretsManagerSecretGenerateSecretStringExcludePunctuation = Nothing
+  , _secretsManagerSecretGenerateSecretStringExcludeUppercase = Nothing
+  , _secretsManagerSecretGenerateSecretStringGenerateStringKey = Nothing
+  , _secretsManagerSecretGenerateSecretStringIncludeSpace = Nothing
+  , _secretsManagerSecretGenerateSecretStringPasswordLength = Nothing
+  , _secretsManagerSecretGenerateSecretStringRequireEachIncludedType = Nothing
+  , _secretsManagerSecretGenerateSecretStringSecretStringTemplate = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-secretsmanager-secret-generatesecretstring.html#cfn-secretsmanager-secret-generatesecretstring-excludecharacters
+smsgssExcludeCharacters :: Lens' SecretsManagerSecretGenerateSecretString (Maybe (Val Text))
+smsgssExcludeCharacters = lens _secretsManagerSecretGenerateSecretStringExcludeCharacters (\s a -> s { _secretsManagerSecretGenerateSecretStringExcludeCharacters = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-secretsmanager-secret-generatesecretstring.html#cfn-secretsmanager-secret-generatesecretstring-excludelowercase
+smsgssExcludeLowercase :: Lens' SecretsManagerSecretGenerateSecretString (Maybe (Val Bool))
+smsgssExcludeLowercase = lens _secretsManagerSecretGenerateSecretStringExcludeLowercase (\s a -> s { _secretsManagerSecretGenerateSecretStringExcludeLowercase = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-secretsmanager-secret-generatesecretstring.html#cfn-secretsmanager-secret-generatesecretstring-excludenumbers
+smsgssExcludeNumbers :: Lens' SecretsManagerSecretGenerateSecretString (Maybe (Val Bool))
+smsgssExcludeNumbers = lens _secretsManagerSecretGenerateSecretStringExcludeNumbers (\s a -> s { _secretsManagerSecretGenerateSecretStringExcludeNumbers = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-secretsmanager-secret-generatesecretstring.html#cfn-secretsmanager-secret-generatesecretstring-excludepunctuation
+smsgssExcludePunctuation :: Lens' SecretsManagerSecretGenerateSecretString (Maybe (Val Bool))
+smsgssExcludePunctuation = lens _secretsManagerSecretGenerateSecretStringExcludePunctuation (\s a -> s { _secretsManagerSecretGenerateSecretStringExcludePunctuation = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-secretsmanager-secret-generatesecretstring.html#cfn-secretsmanager-secret-generatesecretstring-excludeuppercase
+smsgssExcludeUppercase :: Lens' SecretsManagerSecretGenerateSecretString (Maybe (Val Bool))
+smsgssExcludeUppercase = lens _secretsManagerSecretGenerateSecretStringExcludeUppercase (\s a -> s { _secretsManagerSecretGenerateSecretStringExcludeUppercase = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-secretsmanager-secret-generatesecretstring.html#cfn-secretsmanager-secret-generatesecretstring-generatestringkey
+smsgssGenerateStringKey :: Lens' SecretsManagerSecretGenerateSecretString (Maybe (Val Text))
+smsgssGenerateStringKey = lens _secretsManagerSecretGenerateSecretStringGenerateStringKey (\s a -> s { _secretsManagerSecretGenerateSecretStringGenerateStringKey = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-secretsmanager-secret-generatesecretstring.html#cfn-secretsmanager-secret-generatesecretstring-includespace
+smsgssIncludeSpace :: Lens' SecretsManagerSecretGenerateSecretString (Maybe (Val Bool))
+smsgssIncludeSpace = lens _secretsManagerSecretGenerateSecretStringIncludeSpace (\s a -> s { _secretsManagerSecretGenerateSecretStringIncludeSpace = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-secretsmanager-secret-generatesecretstring.html#cfn-secretsmanager-secret-generatesecretstring-passwordlength
+smsgssPasswordLength :: Lens' SecretsManagerSecretGenerateSecretString (Maybe (Val Integer))
+smsgssPasswordLength = lens _secretsManagerSecretGenerateSecretStringPasswordLength (\s a -> s { _secretsManagerSecretGenerateSecretStringPasswordLength = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-secretsmanager-secret-generatesecretstring.html#cfn-secretsmanager-secret-generatesecretstring-requireeachincludedtype
+smsgssRequireEachIncludedType :: Lens' SecretsManagerSecretGenerateSecretString (Maybe (Val Bool))
+smsgssRequireEachIncludedType = lens _secretsManagerSecretGenerateSecretStringRequireEachIncludedType (\s a -> s { _secretsManagerSecretGenerateSecretStringRequireEachIncludedType = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-secretsmanager-secret-generatesecretstring.html#cfn-secretsmanager-secret-generatesecretstring-secretstringtemplate
+smsgssSecretStringTemplate :: Lens' SecretsManagerSecretGenerateSecretString (Maybe (Val Text))
+smsgssSecretStringTemplate = lens _secretsManagerSecretGenerateSecretStringSecretStringTemplate (\s a -> s { _secretsManagerSecretGenerateSecretStringSecretStringTemplate = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/WorkSpacesWorkspaceWorkspaceProperties.hs b/library-gen/Stratosphere/ResourceProperties/WorkSpacesWorkspaceWorkspaceProperties.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/WorkSpacesWorkspaceWorkspaceProperties.hs
@@ -0,0 +1,76 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-workspaces-workspace-workspaceproperties.html
+
+module Stratosphere.ResourceProperties.WorkSpacesWorkspaceWorkspaceProperties where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for WorkSpacesWorkspaceWorkspaceProperties. See
+-- 'workSpacesWorkspaceWorkspaceProperties' for a more convenient
+-- constructor.
+data WorkSpacesWorkspaceWorkspaceProperties =
+  WorkSpacesWorkspaceWorkspaceProperties
+  { _workSpacesWorkspaceWorkspacePropertiesComputeTypeName :: Maybe (Val Text)
+  , _workSpacesWorkspaceWorkspacePropertiesRootVolumeSizeGib :: Maybe (Val Integer)
+  , _workSpacesWorkspaceWorkspacePropertiesRunningMode :: Maybe (Val Text)
+  , _workSpacesWorkspaceWorkspacePropertiesRunningModeAutoStopTimeoutInMinutes :: Maybe (Val Integer)
+  , _workSpacesWorkspaceWorkspacePropertiesUserVolumeSizeGib :: Maybe (Val Integer)
+  } deriving (Show, Eq)
+
+instance ToJSON WorkSpacesWorkspaceWorkspaceProperties where
+  toJSON WorkSpacesWorkspaceWorkspaceProperties{..} =
+    object $
+    catMaybes
+    [ fmap (("ComputeTypeName",) . toJSON) _workSpacesWorkspaceWorkspacePropertiesComputeTypeName
+    , fmap (("RootVolumeSizeGib",) . toJSON . fmap Integer') _workSpacesWorkspaceWorkspacePropertiesRootVolumeSizeGib
+    , fmap (("RunningMode",) . toJSON) _workSpacesWorkspaceWorkspacePropertiesRunningMode
+    , fmap (("RunningModeAutoStopTimeoutInMinutes",) . toJSON . fmap Integer') _workSpacesWorkspaceWorkspacePropertiesRunningModeAutoStopTimeoutInMinutes
+    , fmap (("UserVolumeSizeGib",) . toJSON . fmap Integer') _workSpacesWorkspaceWorkspacePropertiesUserVolumeSizeGib
+    ]
+
+instance FromJSON WorkSpacesWorkspaceWorkspaceProperties where
+  parseJSON (Object obj) =
+    WorkSpacesWorkspaceWorkspaceProperties <$>
+      (obj .:? "ComputeTypeName") <*>
+      fmap (fmap (fmap unInteger')) (obj .:? "RootVolumeSizeGib") <*>
+      (obj .:? "RunningMode") <*>
+      fmap (fmap (fmap unInteger')) (obj .:? "RunningModeAutoStopTimeoutInMinutes") <*>
+      fmap (fmap (fmap unInteger')) (obj .:? "UserVolumeSizeGib")
+  parseJSON _ = mempty
+
+-- | Constructor for 'WorkSpacesWorkspaceWorkspaceProperties' containing
+-- required fields as arguments.
+workSpacesWorkspaceWorkspaceProperties
+  :: WorkSpacesWorkspaceWorkspaceProperties
+workSpacesWorkspaceWorkspaceProperties  =
+  WorkSpacesWorkspaceWorkspaceProperties
+  { _workSpacesWorkspaceWorkspacePropertiesComputeTypeName = Nothing
+  , _workSpacesWorkspaceWorkspacePropertiesRootVolumeSizeGib = Nothing
+  , _workSpacesWorkspaceWorkspacePropertiesRunningMode = Nothing
+  , _workSpacesWorkspaceWorkspacePropertiesRunningModeAutoStopTimeoutInMinutes = Nothing
+  , _workSpacesWorkspaceWorkspacePropertiesUserVolumeSizeGib = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-workspaces-workspace-workspaceproperties.html#cfn-workspaces-workspace-workspaceproperties-computetypename
+wswwpComputeTypeName :: Lens' WorkSpacesWorkspaceWorkspaceProperties (Maybe (Val Text))
+wswwpComputeTypeName = lens _workSpacesWorkspaceWorkspacePropertiesComputeTypeName (\s a -> s { _workSpacesWorkspaceWorkspacePropertiesComputeTypeName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-workspaces-workspace-workspaceproperties.html#cfn-workspaces-workspace-workspaceproperties-rootvolumesizegib
+wswwpRootVolumeSizeGib :: Lens' WorkSpacesWorkspaceWorkspaceProperties (Maybe (Val Integer))
+wswwpRootVolumeSizeGib = lens _workSpacesWorkspaceWorkspacePropertiesRootVolumeSizeGib (\s a -> s { _workSpacesWorkspaceWorkspacePropertiesRootVolumeSizeGib = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-workspaces-workspace-workspaceproperties.html#cfn-workspaces-workspace-workspaceproperties-runningmode
+wswwpRunningMode :: Lens' WorkSpacesWorkspaceWorkspaceProperties (Maybe (Val Text))
+wswwpRunningMode = lens _workSpacesWorkspaceWorkspacePropertiesRunningMode (\s a -> s { _workSpacesWorkspaceWorkspacePropertiesRunningMode = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-workspaces-workspace-workspaceproperties.html#cfn-workspaces-workspace-workspaceproperties-runningmodeautostoptimeoutinminutes
+wswwpRunningModeAutoStopTimeoutInMinutes :: Lens' WorkSpacesWorkspaceWorkspaceProperties (Maybe (Val Integer))
+wswwpRunningModeAutoStopTimeoutInMinutes = lens _workSpacesWorkspaceWorkspacePropertiesRunningModeAutoStopTimeoutInMinutes (\s a -> s { _workSpacesWorkspaceWorkspacePropertiesRunningModeAutoStopTimeoutInMinutes = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-workspaces-workspace-workspaceproperties.html#cfn-workspaces-workspace-workspaceproperties-uservolumesizegib
+wswwpUserVolumeSizeGib :: Lens' WorkSpacesWorkspaceWorkspaceProperties (Maybe (Val Integer))
+wswwpUserVolumeSizeGib = lens _workSpacesWorkspaceWorkspacePropertiesUserVolumeSizeGib (\s a -> s { _workSpacesWorkspaceWorkspacePropertiesUserVolumeSizeGib = 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
@@ -10,7 +10,7 @@
 {-# LANGUAGE TypeFamilies #-}
 
 #if MIN_VERSION_GLASGOW_HASKELL(8,0,1,0)
-{-# OPTIONS_GHC -fmax-pmcheck-iterations=30000000 #-}
+{-# OPTIONS_GHC -fmax-pmcheck-iterations=40000000 #-}
 #endif
 
 -- | See:
@@ -128,6 +128,7 @@
 import Stratosphere.Resources.DAXCluster as X
 import Stratosphere.Resources.DAXParameterGroup as X
 import Stratosphere.Resources.DAXSubnetGroup as X
+import Stratosphere.Resources.DLMLifecyclePolicy as X
 import Stratosphere.Resources.DMSCertificate as X
 import Stratosphere.Resources.DMSEndpoint as X
 import Stratosphere.Resources.DMSEventSubscription as X
@@ -313,6 +314,7 @@
 import Stratosphere.Resources.SQSQueuePolicy as X
 import Stratosphere.Resources.SSMAssociation as X
 import Stratosphere.Resources.SSMDocument as X
+import Stratosphere.Resources.SSMMaintenanceWindow as X
 import Stratosphere.Resources.SSMMaintenanceWindowTask as X
 import Stratosphere.Resources.SSMParameter as X
 import Stratosphere.Resources.SSMPatchBaseline as X
@@ -322,6 +324,10 @@
 import Stratosphere.Resources.SageMakerModel as X
 import Stratosphere.Resources.SageMakerNotebookInstance as X
 import Stratosphere.Resources.SageMakerNotebookInstanceLifecycleConfig as X
+import Stratosphere.Resources.SecretsManagerResourcePolicy as X
+import Stratosphere.Resources.SecretsManagerRotationSchedule as X
+import Stratosphere.Resources.SecretsManagerSecret as X
+import Stratosphere.Resources.SecretsManagerSecretTargetAttachment as X
 import Stratosphere.Resources.ServiceCatalogAcceptedPortfolioShare as X
 import Stratosphere.Resources.ServiceCatalogCloudFormationProduct as X
 import Stratosphere.Resources.ServiceCatalogCloudFormationProvisionedProduct as X
@@ -416,8 +422,10 @@
 import Stratosphere.ResourceProperties.AutoScalingScalingPolicyStepAdjustment as X
 import Stratosphere.ResourceProperties.AutoScalingScalingPolicyTargetTrackingConfiguration as X
 import Stratosphere.ResourceProperties.AutoScalingPlansScalingPlanApplicationSource as X
+import Stratosphere.ResourceProperties.AutoScalingPlansScalingPlanCustomizedLoadMetricSpecification as X
 import Stratosphere.ResourceProperties.AutoScalingPlansScalingPlanCustomizedScalingMetricSpecification as X
 import Stratosphere.ResourceProperties.AutoScalingPlansScalingPlanMetricDimension as X
+import Stratosphere.ResourceProperties.AutoScalingPlansScalingPlanPredefinedLoadMetricSpecification as X
 import Stratosphere.ResourceProperties.AutoScalingPlansScalingPlanPredefinedScalingMetricSpecification as X
 import Stratosphere.ResourceProperties.AutoScalingPlansScalingPlanScalingInstruction as X
 import Stratosphere.ResourceProperties.AutoScalingPlansScalingPlanTagFilter as X
@@ -535,6 +543,10 @@
 import Stratosphere.ResourceProperties.ConfigConfigurationRecorderRecordingGroup as X
 import Stratosphere.ResourceProperties.ConfigDeliveryChannelConfigSnapshotDeliveryProperties as X
 import Stratosphere.ResourceProperties.DAXClusterSSESpecification as X
+import Stratosphere.ResourceProperties.DLMLifecyclePolicyCreateRule as X
+import Stratosphere.ResourceProperties.DLMLifecyclePolicyPolicyDetails as X
+import Stratosphere.ResourceProperties.DLMLifecyclePolicyRetainRule as X
+import Stratosphere.ResourceProperties.DLMLifecyclePolicySchedule as X
 import Stratosphere.ResourceProperties.DMSEndpointDynamoDbSettings as X
 import Stratosphere.ResourceProperties.DMSEndpointMongoDbSettings as X
 import Stratosphere.ResourceProperties.DMSEndpointS3Settings as X
@@ -770,6 +782,7 @@
 import Stratosphere.ResourceProperties.IoTTopicRuleDynamoDBV2Action as X
 import Stratosphere.ResourceProperties.IoTTopicRuleElasticsearchAction as X
 import Stratosphere.ResourceProperties.IoTTopicRuleFirehoseAction as X
+import Stratosphere.ResourceProperties.IoTTopicRuleIotAnalyticsAction as X
 import Stratosphere.ResourceProperties.IoTTopicRuleKinesisAction as X
 import Stratosphere.ResourceProperties.IoTTopicRuleLambdaAction as X
 import Stratosphere.ResourceProperties.IoTTopicRulePutItemInput as X
@@ -777,6 +790,7 @@
 import Stratosphere.ResourceProperties.IoTTopicRuleS3Action as X
 import Stratosphere.ResourceProperties.IoTTopicRuleSnsAction as X
 import Stratosphere.ResourceProperties.IoTTopicRuleSqsAction as X
+import Stratosphere.ResourceProperties.IoTTopicRuleStepFunctionsAction as X
 import Stratosphere.ResourceProperties.IoTTopicRuleTopicRulePayload as X
 import Stratosphere.ResourceProperties.KinesisStreamStreamEncryption as X
 import Stratosphere.ResourceProperties.KinesisAnalyticsApplicationCSVMappingParameters as X
@@ -848,6 +862,7 @@
 import Stratosphere.ResourceProperties.OpsWorksStackSource as X
 import Stratosphere.ResourceProperties.OpsWorksStackStackConfigurationManager as X
 import Stratosphere.ResourceProperties.RDSDBClusterScalingConfiguration as X
+import Stratosphere.ResourceProperties.RDSDBInstanceProcessorFeature as X
 import Stratosphere.ResourceProperties.RDSDBSecurityGroupIngressProperty as X
 import Stratosphere.ResourceProperties.RDSOptionGroupOptionConfiguration as X
 import Stratosphere.ResourceProperties.RDSOptionGroupOptionSetting as X
@@ -942,6 +957,8 @@
 import Stratosphere.ResourceProperties.SageMakerModelContainerDefinition as X
 import Stratosphere.ResourceProperties.SageMakerModelVpcConfig as X
 import Stratosphere.ResourceProperties.SageMakerNotebookInstanceLifecycleConfigNotebookInstanceLifecycleHook as X
+import Stratosphere.ResourceProperties.SecretsManagerRotationScheduleRotationRules as X
+import Stratosphere.ResourceProperties.SecretsManagerSecretGenerateSecretString as X
 import Stratosphere.ResourceProperties.ServiceCatalogCloudFormationProductProvisioningArtifactProperties as X
 import Stratosphere.ResourceProperties.ServiceCatalogCloudFormationProvisionedProductProvisioningParameter as X
 import Stratosphere.ResourceProperties.ServiceDiscoveryServiceDnsConfig as X
@@ -972,6 +989,7 @@
 import Stratosphere.ResourceProperties.WAFRegionalWebACLRule as X
 import Stratosphere.ResourceProperties.WAFRegionalXssMatchSetFieldToMatch as X
 import Stratosphere.ResourceProperties.WAFRegionalXssMatchSetXssMatchTuple as X
+import Stratosphere.ResourceProperties.WorkSpacesWorkspaceWorkspaceProperties as X
 import Stratosphere.ResourceProperties.Tag as X
 
 import Stratosphere.ResourceAttributes.AutoScalingReplacingUpdatePolicy as X
@@ -1065,6 +1083,7 @@
   | DAXClusterProperties DAXCluster
   | DAXParameterGroupProperties DAXParameterGroup
   | DAXSubnetGroupProperties DAXSubnetGroup
+  | DLMLifecyclePolicyProperties DLMLifecyclePolicy
   | DMSCertificateProperties DMSCertificate
   | DMSEndpointProperties DMSEndpoint
   | DMSEventSubscriptionProperties DMSEventSubscription
@@ -1250,6 +1269,7 @@
   | SQSQueuePolicyProperties SQSQueuePolicy
   | SSMAssociationProperties SSMAssociation
   | SSMDocumentProperties SSMDocument
+  | SSMMaintenanceWindowProperties SSMMaintenanceWindow
   | SSMMaintenanceWindowTaskProperties SSMMaintenanceWindowTask
   | SSMParameterProperties SSMParameter
   | SSMPatchBaselineProperties SSMPatchBaseline
@@ -1259,6 +1279,10 @@
   | SageMakerModelProperties SageMakerModel
   | SageMakerNotebookInstanceProperties SageMakerNotebookInstance
   | SageMakerNotebookInstanceLifecycleConfigProperties SageMakerNotebookInstanceLifecycleConfig
+  | SecretsManagerResourcePolicyProperties SecretsManagerResourcePolicy
+  | SecretsManagerRotationScheduleProperties SecretsManagerRotationSchedule
+  | SecretsManagerSecretProperties SecretsManagerSecret
+  | SecretsManagerSecretTargetAttachmentProperties SecretsManagerSecretTargetAttachment
   | ServiceCatalogAcceptedPortfolioShareProperties ServiceCatalogAcceptedPortfolioShare
   | ServiceCatalogCloudFormationProductProperties ServiceCatalogCloudFormationProduct
   | ServiceCatalogCloudFormationProvisionedProductProperties ServiceCatalogCloudFormationProvisionedProduct
@@ -1510,6 +1534,8 @@
   [ "Type" .= ("AWS::DAX::ParameterGroup" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (DAXSubnetGroupProperties x) =
   [ "Type" .= ("AWS::DAX::SubnetGroup" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (DLMLifecyclePolicyProperties x) =
+  [ "Type" .= ("AWS::DLM::LifecyclePolicy" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (DMSCertificateProperties x) =
   [ "Type" .= ("AWS::DMS::Certificate" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (DMSEndpointProperties x) =
@@ -1880,6 +1906,8 @@
   [ "Type" .= ("AWS::SSM::Association" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (SSMDocumentProperties x) =
   [ "Type" .= ("AWS::SSM::Document" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (SSMMaintenanceWindowProperties x) =
+  [ "Type" .= ("AWS::SSM::MaintenanceWindow" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (SSMMaintenanceWindowTaskProperties x) =
   [ "Type" .= ("AWS::SSM::MaintenanceWindowTask" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (SSMParameterProperties x) =
@@ -1898,6 +1926,14 @@
   [ "Type" .= ("AWS::SageMaker::NotebookInstance" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (SageMakerNotebookInstanceLifecycleConfigProperties x) =
   [ "Type" .= ("AWS::SageMaker::NotebookInstanceLifecycleConfig" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (SecretsManagerResourcePolicyProperties x) =
+  [ "Type" .= ("AWS::SecretsManager::ResourcePolicy" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (SecretsManagerRotationScheduleProperties x) =
+  [ "Type" .= ("AWS::SecretsManager::RotationSchedule" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (SecretsManagerSecretProperties x) =
+  [ "Type" .= ("AWS::SecretsManager::Secret" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (SecretsManagerSecretTargetAttachmentProperties x) =
+  [ "Type" .= ("AWS::SecretsManager::SecretTargetAttachment" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (ServiceCatalogAcceptedPortfolioShareProperties x) =
   [ "Type" .= ("AWS::ServiceCatalog::AcceptedPortfolioShare" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (ServiceCatalogCloudFormationProductProperties x) =
@@ -2053,6 +2089,7 @@
          "AWS::DAX::Cluster" -> DAXClusterProperties <$> (o .: "Properties")
          "AWS::DAX::ParameterGroup" -> DAXParameterGroupProperties <$> (o .: "Properties")
          "AWS::DAX::SubnetGroup" -> DAXSubnetGroupProperties <$> (o .: "Properties")
+         "AWS::DLM::LifecyclePolicy" -> DLMLifecyclePolicyProperties <$> (o .: "Properties")
          "AWS::DMS::Certificate" -> DMSCertificateProperties <$> (o .: "Properties")
          "AWS::DMS::Endpoint" -> DMSEndpointProperties <$> (o .: "Properties")
          "AWS::DMS::EventSubscription" -> DMSEventSubscriptionProperties <$> (o .: "Properties")
@@ -2238,6 +2275,7 @@
          "AWS::SQS::QueuePolicy" -> SQSQueuePolicyProperties <$> (o .: "Properties")
          "AWS::SSM::Association" -> SSMAssociationProperties <$> (o .: "Properties")
          "AWS::SSM::Document" -> SSMDocumentProperties <$> (o .: "Properties")
+         "AWS::SSM::MaintenanceWindow" -> SSMMaintenanceWindowProperties <$> (o .: "Properties")
          "AWS::SSM::MaintenanceWindowTask" -> SSMMaintenanceWindowTaskProperties <$> (o .: "Properties")
          "AWS::SSM::Parameter" -> SSMParameterProperties <$> (o .: "Properties")
          "AWS::SSM::PatchBaseline" -> SSMPatchBaselineProperties <$> (o .: "Properties")
@@ -2247,6 +2285,10 @@
          "AWS::SageMaker::Model" -> SageMakerModelProperties <$> (o .: "Properties")
          "AWS::SageMaker::NotebookInstance" -> SageMakerNotebookInstanceProperties <$> (o .: "Properties")
          "AWS::SageMaker::NotebookInstanceLifecycleConfig" -> SageMakerNotebookInstanceLifecycleConfigProperties <$> (o .: "Properties")
+         "AWS::SecretsManager::ResourcePolicy" -> SecretsManagerResourcePolicyProperties <$> (o .: "Properties")
+         "AWS::SecretsManager::RotationSchedule" -> SecretsManagerRotationScheduleProperties <$> (o .: "Properties")
+         "AWS::SecretsManager::Secret" -> SecretsManagerSecretProperties <$> (o .: "Properties")
+         "AWS::SecretsManager::SecretTargetAttachment" -> SecretsManagerSecretTargetAttachmentProperties <$> (o .: "Properties")
          "AWS::ServiceCatalog::AcceptedPortfolioShare" -> ServiceCatalogAcceptedPortfolioShareProperties <$> (o .: "Properties")
          "AWS::ServiceCatalog::CloudFormationProduct" -> ServiceCatalogCloudFormationProductProperties <$> (o .: "Properties")
          "AWS::ServiceCatalog::CloudFormationProvisionedProduct" -> ServiceCatalogCloudFormationProvisionedProductProperties <$> (o .: "Properties")
diff --git a/library-gen/Stratosphere/Resources/ApiGatewayStage.hs b/library-gen/Stratosphere/Resources/ApiGatewayStage.hs
--- a/library-gen/Stratosphere/Resources/ApiGatewayStage.hs
+++ b/library-gen/Stratosphere/Resources/ApiGatewayStage.hs
@@ -26,6 +26,7 @@
   , _apiGatewayStageMethodSettings :: Maybe [ApiGatewayStageMethodSetting]
   , _apiGatewayStageRestApiId :: Val Text
   , _apiGatewayStageStageName :: Maybe (Val Text)
+  , _apiGatewayStageTracingEnabled :: Maybe (Val Bool)
   , _apiGatewayStageVariables :: Maybe Object
   } deriving (Show, Eq)
 
@@ -44,6 +45,7 @@
     , fmap (("MethodSettings",) . toJSON) _apiGatewayStageMethodSettings
     , (Just . ("RestApiId",) . toJSON) _apiGatewayStageRestApiId
     , fmap (("StageName",) . toJSON) _apiGatewayStageStageName
+    , fmap (("TracingEnabled",) . toJSON . fmap Bool') _apiGatewayStageTracingEnabled
     , fmap (("Variables",) . toJSON) _apiGatewayStageVariables
     ]
 
@@ -61,6 +63,7 @@
       (obj .:? "MethodSettings") <*>
       (obj .: "RestApiId") <*>
       (obj .:? "StageName") <*>
+      fmap (fmap (fmap unBool')) (obj .:? "TracingEnabled") <*>
       (obj .:? "Variables")
   parseJSON _ = mempty
 
@@ -82,6 +85,7 @@
   , _apiGatewayStageMethodSettings = Nothing
   , _apiGatewayStageRestApiId = restApiIdarg
   , _apiGatewayStageStageName = Nothing
+  , _apiGatewayStageTracingEnabled = Nothing
   , _apiGatewayStageVariables = Nothing
   }
 
@@ -128,6 +132,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-stagename
 agsStageName :: Lens' ApiGatewayStage (Maybe (Val Text))
 agsStageName = lens _apiGatewayStageStageName (\s a -> s { _apiGatewayStageStageName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-tracingenabled
+agsTracingEnabled :: Lens' ApiGatewayStage (Maybe (Val Bool))
+agsTracingEnabled = lens _apiGatewayStageTracingEnabled (\s a -> s { _apiGatewayStageTracingEnabled = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-variables
 agsVariables :: Lens' ApiGatewayStage (Maybe Object)
diff --git a/library-gen/Stratosphere/Resources/CloudFormationWaitCondition.hs b/library-gen/Stratosphere/Resources/CloudFormationWaitCondition.hs
--- a/library-gen/Stratosphere/Resources/CloudFormationWaitCondition.hs
+++ b/library-gen/Stratosphere/Resources/CloudFormationWaitCondition.hs
@@ -14,8 +14,8 @@
 data CloudFormationWaitCondition =
   CloudFormationWaitCondition
   { _cloudFormationWaitConditionCount :: Maybe (Val Integer)
-  , _cloudFormationWaitConditionHandle :: Val Text
-  , _cloudFormationWaitConditionTimeout :: Val Text
+  , _cloudFormationWaitConditionHandle :: Maybe (Val Text)
+  , _cloudFormationWaitConditionTimeout :: Maybe (Val Text)
   } deriving (Show, Eq)
 
 instance ToJSON CloudFormationWaitCondition where
@@ -23,29 +23,27 @@
     object $
     catMaybes
     [ fmap (("Count",) . toJSON . fmap Integer') _cloudFormationWaitConditionCount
-    , (Just . ("Handle",) . toJSON) _cloudFormationWaitConditionHandle
-    , (Just . ("Timeout",) . toJSON) _cloudFormationWaitConditionTimeout
+    , fmap (("Handle",) . toJSON) _cloudFormationWaitConditionHandle
+    , fmap (("Timeout",) . toJSON) _cloudFormationWaitConditionTimeout
     ]
 
 instance FromJSON CloudFormationWaitCondition where
   parseJSON (Object obj) =
     CloudFormationWaitCondition <$>
       fmap (fmap (fmap unInteger')) (obj .:? "Count") <*>
-      (obj .: "Handle") <*>
-      (obj .: "Timeout")
+      (obj .:? "Handle") <*>
+      (obj .:? "Timeout")
   parseJSON _ = mempty
 
 -- | Constructor for 'CloudFormationWaitCondition' containing required fields
 -- as arguments.
 cloudFormationWaitCondition
-  :: Val Text -- ^ 'cfwcHandle'
-  -> Val Text -- ^ 'cfwcTimeout'
-  -> CloudFormationWaitCondition
-cloudFormationWaitCondition handlearg timeoutarg =
+  :: CloudFormationWaitCondition
+cloudFormationWaitCondition  =
   CloudFormationWaitCondition
   { _cloudFormationWaitConditionCount = Nothing
-  , _cloudFormationWaitConditionHandle = handlearg
-  , _cloudFormationWaitConditionTimeout = timeoutarg
+  , _cloudFormationWaitConditionHandle = Nothing
+  , _cloudFormationWaitConditionTimeout = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitcondition.html#cfn-waitcondition-count
@@ -53,9 +51,9 @@
 cfwcCount = lens _cloudFormationWaitConditionCount (\s a -> s { _cloudFormationWaitConditionCount = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitcondition.html#cfn-waitcondition-handle
-cfwcHandle :: Lens' CloudFormationWaitCondition (Val Text)
+cfwcHandle :: Lens' CloudFormationWaitCondition (Maybe (Val Text))
 cfwcHandle = lens _cloudFormationWaitConditionHandle (\s a -> s { _cloudFormationWaitConditionHandle = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitcondition.html#cfn-waitcondition-timeout
-cfwcTimeout :: Lens' CloudFormationWaitCondition (Val Text)
+cfwcTimeout :: Lens' CloudFormationWaitCondition (Maybe (Val Text))
 cfwcTimeout = lens _cloudFormationWaitConditionTimeout (\s a -> s { _cloudFormationWaitConditionTimeout = a })
diff --git a/library-gen/Stratosphere/Resources/CloudWatchAlarm.hs b/library-gen/Stratosphere/Resources/CloudWatchAlarm.hs
--- a/library-gen/Stratosphere/Resources/CloudWatchAlarm.hs
+++ b/library-gen/Stratosphere/Resources/CloudWatchAlarm.hs
@@ -18,6 +18,7 @@
   , _cloudWatchAlarmAlarmDescription :: Maybe (Val Text)
   , _cloudWatchAlarmAlarmName :: Maybe (Val Text)
   , _cloudWatchAlarmComparisonOperator :: Val Text
+  , _cloudWatchAlarmDatapointsToAlarm :: Maybe (Val Integer)
   , _cloudWatchAlarmDimensions :: Maybe [CloudWatchAlarmDimension]
   , _cloudWatchAlarmEvaluateLowSampleCountPercentile :: Maybe (Val Text)
   , _cloudWatchAlarmEvaluationPeriods :: Val Integer
@@ -42,6 +43,7 @@
     , fmap (("AlarmDescription",) . toJSON) _cloudWatchAlarmAlarmDescription
     , fmap (("AlarmName",) . toJSON) _cloudWatchAlarmAlarmName
     , (Just . ("ComparisonOperator",) . toJSON) _cloudWatchAlarmComparisonOperator
+    , fmap (("DatapointsToAlarm",) . toJSON . fmap Integer') _cloudWatchAlarmDatapointsToAlarm
     , fmap (("Dimensions",) . toJSON) _cloudWatchAlarmDimensions
     , fmap (("EvaluateLowSampleCountPercentile",) . toJSON) _cloudWatchAlarmEvaluateLowSampleCountPercentile
     , (Just . ("EvaluationPeriods",) . toJSON . fmap Integer') _cloudWatchAlarmEvaluationPeriods
@@ -65,6 +67,7 @@
       (obj .:? "AlarmDescription") <*>
       (obj .:? "AlarmName") <*>
       (obj .: "ComparisonOperator") <*>
+      fmap (fmap (fmap unInteger')) (obj .:? "DatapointsToAlarm") <*>
       (obj .:? "Dimensions") <*>
       (obj .:? "EvaluateLowSampleCountPercentile") <*>
       fmap (fmap unInteger') (obj .: "EvaluationPeriods") <*>
@@ -97,6 +100,7 @@
   , _cloudWatchAlarmAlarmDescription = Nothing
   , _cloudWatchAlarmAlarmName = Nothing
   , _cloudWatchAlarmComparisonOperator = comparisonOperatorarg
+  , _cloudWatchAlarmDatapointsToAlarm = Nothing
   , _cloudWatchAlarmDimensions = Nothing
   , _cloudWatchAlarmEvaluateLowSampleCountPercentile = Nothing
   , _cloudWatchAlarmEvaluationPeriods = evaluationPeriodsarg
@@ -131,6 +135,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-comparisonoperator
 cwaComparisonOperator :: Lens' CloudWatchAlarm (Val Text)
 cwaComparisonOperator = lens _cloudWatchAlarmComparisonOperator (\s a -> s { _cloudWatchAlarmComparisonOperator = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarm-datapointstoalarm
+cwaDatapointsToAlarm :: Lens' CloudWatchAlarm (Maybe (Val Integer))
+cwaDatapointsToAlarm = lens _cloudWatchAlarmDatapointsToAlarm (\s a -> s { _cloudWatchAlarmDatapointsToAlarm = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-dimension
 cwaDimensions :: Lens' CloudWatchAlarm (Maybe [CloudWatchAlarmDimension])
diff --git a/library-gen/Stratosphere/Resources/DLMLifecyclePolicy.hs b/library-gen/Stratosphere/Resources/DLMLifecyclePolicy.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/DLMLifecyclePolicy.hs
@@ -0,0 +1,67 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dlm-lifecyclepolicy.html
+
+module Stratosphere.Resources.DLMLifecyclePolicy where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.DLMLifecyclePolicyPolicyDetails
+
+-- | Full data type definition for DLMLifecyclePolicy. See
+-- 'dlmLifecyclePolicy' for a more convenient constructor.
+data DLMLifecyclePolicy =
+  DLMLifecyclePolicy
+  { _dLMLifecyclePolicyDescription :: Maybe (Val Text)
+  , _dLMLifecyclePolicyExecutionRoleArn :: Maybe (Val Text)
+  , _dLMLifecyclePolicyPolicyDetails :: Maybe DLMLifecyclePolicyPolicyDetails
+  , _dLMLifecyclePolicyState :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON DLMLifecyclePolicy where
+  toJSON DLMLifecyclePolicy{..} =
+    object $
+    catMaybes
+    [ fmap (("Description",) . toJSON) _dLMLifecyclePolicyDescription
+    , fmap (("ExecutionRoleArn",) . toJSON) _dLMLifecyclePolicyExecutionRoleArn
+    , fmap (("PolicyDetails",) . toJSON) _dLMLifecyclePolicyPolicyDetails
+    , fmap (("State",) . toJSON) _dLMLifecyclePolicyState
+    ]
+
+instance FromJSON DLMLifecyclePolicy where
+  parseJSON (Object obj) =
+    DLMLifecyclePolicy <$>
+      (obj .:? "Description") <*>
+      (obj .:? "ExecutionRoleArn") <*>
+      (obj .:? "PolicyDetails") <*>
+      (obj .:? "State")
+  parseJSON _ = mempty
+
+-- | Constructor for 'DLMLifecyclePolicy' containing required fields as
+-- arguments.
+dlmLifecyclePolicy
+  :: DLMLifecyclePolicy
+dlmLifecyclePolicy  =
+  DLMLifecyclePolicy
+  { _dLMLifecyclePolicyDescription = Nothing
+  , _dLMLifecyclePolicyExecutionRoleArn = Nothing
+  , _dLMLifecyclePolicyPolicyDetails = Nothing
+  , _dLMLifecyclePolicyState = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dlm-lifecyclepolicy.html#cfn-dlm-lifecyclepolicy-description
+dlmlpDescription :: Lens' DLMLifecyclePolicy (Maybe (Val Text))
+dlmlpDescription = lens _dLMLifecyclePolicyDescription (\s a -> s { _dLMLifecyclePolicyDescription = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dlm-lifecyclepolicy.html#cfn-dlm-lifecyclepolicy-executionrolearn
+dlmlpExecutionRoleArn :: Lens' DLMLifecyclePolicy (Maybe (Val Text))
+dlmlpExecutionRoleArn = lens _dLMLifecyclePolicyExecutionRoleArn (\s a -> s { _dLMLifecyclePolicyExecutionRoleArn = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dlm-lifecyclepolicy.html#cfn-dlm-lifecyclepolicy-policydetails
+dlmlpPolicyDetails :: Lens' DLMLifecyclePolicy (Maybe DLMLifecyclePolicyPolicyDetails)
+dlmlpPolicyDetails = lens _dLMLifecyclePolicyPolicyDetails (\s a -> s { _dLMLifecyclePolicyPolicyDetails = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dlm-lifecyclepolicy.html#cfn-dlm-lifecyclepolicy-state
+dlmlpState :: Lens' DLMLifecyclePolicy (Maybe (Val Text))
+dlmlpState = lens _dLMLifecyclePolicyState (\s a -> s { _dLMLifecyclePolicyState = a })
diff --git a/library-gen/Stratosphere/Resources/EC2SecurityGroupIngress.hs b/library-gen/Stratosphere/Resources/EC2SecurityGroupIngress.hs
--- a/library-gen/Stratosphere/Resources/EC2SecurityGroupIngress.hs
+++ b/library-gen/Stratosphere/Resources/EC2SecurityGroupIngress.hs
@@ -20,6 +20,7 @@
   , _eC2SecurityGroupIngressGroupId :: Maybe (Val Text)
   , _eC2SecurityGroupIngressGroupName :: Maybe (Val Text)
   , _eC2SecurityGroupIngressIpProtocol :: Val Text
+  , _eC2SecurityGroupIngressSourcePrefixListId :: Maybe (Val Text)
   , _eC2SecurityGroupIngressSourceSecurityGroupId :: Maybe (Val Text)
   , _eC2SecurityGroupIngressSourceSecurityGroupName :: Maybe (Val Text)
   , _eC2SecurityGroupIngressSourceSecurityGroupOwnerId :: Maybe (Val Text)
@@ -37,6 +38,7 @@
     , fmap (("GroupId",) . toJSON) _eC2SecurityGroupIngressGroupId
     , fmap (("GroupName",) . toJSON) _eC2SecurityGroupIngressGroupName
     , (Just . ("IpProtocol",) . toJSON) _eC2SecurityGroupIngressIpProtocol
+    , fmap (("SourcePrefixListId",) . toJSON) _eC2SecurityGroupIngressSourcePrefixListId
     , fmap (("SourceSecurityGroupId",) . toJSON) _eC2SecurityGroupIngressSourceSecurityGroupId
     , fmap (("SourceSecurityGroupName",) . toJSON) _eC2SecurityGroupIngressSourceSecurityGroupName
     , fmap (("SourceSecurityGroupOwnerId",) . toJSON) _eC2SecurityGroupIngressSourceSecurityGroupOwnerId
@@ -53,6 +55,7 @@
       (obj .:? "GroupId") <*>
       (obj .:? "GroupName") <*>
       (obj .: "IpProtocol") <*>
+      (obj .:? "SourcePrefixListId") <*>
       (obj .:? "SourceSecurityGroupId") <*>
       (obj .:? "SourceSecurityGroupName") <*>
       (obj .:? "SourceSecurityGroupOwnerId") <*>
@@ -73,6 +76,7 @@
   , _eC2SecurityGroupIngressGroupId = Nothing
   , _eC2SecurityGroupIngressGroupName = Nothing
   , _eC2SecurityGroupIngressIpProtocol = ipProtocolarg
+  , _eC2SecurityGroupIngressSourcePrefixListId = Nothing
   , _eC2SecurityGroupIngressSourceSecurityGroupId = Nothing
   , _eC2SecurityGroupIngressSourceSecurityGroupName = Nothing
   , _eC2SecurityGroupIngressSourceSecurityGroupOwnerId = Nothing
@@ -106,6 +110,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-ingress.html#cfn-ec2-security-group-ingress-ipprotocol
 ecsgiIpProtocol :: Lens' EC2SecurityGroupIngress (Val Text)
 ecsgiIpProtocol = lens _eC2SecurityGroupIngressIpProtocol (\s a -> s { _eC2SecurityGroupIngressIpProtocol = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-ingress.html#cfn-ec2-securitygroupingress-sourceprefixlistid
+ecsgiSourcePrefixListId :: Lens' EC2SecurityGroupIngress (Maybe (Val Text))
+ecsgiSourcePrefixListId = lens _eC2SecurityGroupIngressSourcePrefixListId (\s a -> s { _eC2SecurityGroupIngressSourcePrefixListId = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-ingress.html#cfn-ec2-security-group-ingress-sourcesecuritygroupid
 ecsgiSourceSecurityGroupId :: Lens' EC2SecurityGroupIngress (Maybe (Val Text))
diff --git a/library-gen/Stratosphere/Resources/IAMRole.hs b/library-gen/Stratosphere/Resources/IAMRole.hs
--- a/library-gen/Stratosphere/Resources/IAMRole.hs
+++ b/library-gen/Stratosphere/Resources/IAMRole.hs
@@ -17,6 +17,7 @@
   , _iAMRoleManagedPolicyArns :: Maybe (ValList Text)
   , _iAMRoleMaxSessionDuration :: Maybe (Val Integer)
   , _iAMRolePath :: Maybe (Val Text)
+  , _iAMRolePermissionsBoundary :: Maybe (Val Text)
   , _iAMRolePolicies :: Maybe [IAMRolePolicy]
   , _iAMRoleRoleName :: Maybe (Val Text)
   } deriving (Show, Eq)
@@ -29,6 +30,7 @@
     , fmap (("ManagedPolicyArns",) . toJSON) _iAMRoleManagedPolicyArns
     , fmap (("MaxSessionDuration",) . toJSON . fmap Integer') _iAMRoleMaxSessionDuration
     , fmap (("Path",) . toJSON) _iAMRolePath
+    , fmap (("PermissionsBoundary",) . toJSON) _iAMRolePermissionsBoundary
     , fmap (("Policies",) . toJSON) _iAMRolePolicies
     , fmap (("RoleName",) . toJSON) _iAMRoleRoleName
     ]
@@ -40,6 +42,7 @@
       (obj .:? "ManagedPolicyArns") <*>
       fmap (fmap (fmap unInteger')) (obj .:? "MaxSessionDuration") <*>
       (obj .:? "Path") <*>
+      (obj .:? "PermissionsBoundary") <*>
       (obj .:? "Policies") <*>
       (obj .:? "RoleName")
   parseJSON _ = mempty
@@ -54,6 +57,7 @@
   , _iAMRoleManagedPolicyArns = Nothing
   , _iAMRoleMaxSessionDuration = Nothing
   , _iAMRolePath = Nothing
+  , _iAMRolePermissionsBoundary = Nothing
   , _iAMRolePolicies = Nothing
   , _iAMRoleRoleName = Nothing
   }
@@ -73,6 +77,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-path
 iamrPath :: Lens' IAMRole (Maybe (Val Text))
 iamrPath = lens _iAMRolePath (\s a -> s { _iAMRolePath = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary
+iamrPermissionsBoundary :: Lens' IAMRole (Maybe (Val Text))
+iamrPermissionsBoundary = lens _iAMRolePermissionsBoundary (\s a -> s { _iAMRolePermissionsBoundary = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-policies
 iamrPolicies :: Lens' IAMRole (Maybe [IAMRolePolicy])
diff --git a/library-gen/Stratosphere/Resources/IAMUser.hs b/library-gen/Stratosphere/Resources/IAMUser.hs
--- a/library-gen/Stratosphere/Resources/IAMUser.hs
+++ b/library-gen/Stratosphere/Resources/IAMUser.hs
@@ -18,6 +18,7 @@
   , _iAMUserLoginProfile :: Maybe IAMUserLoginProfile
   , _iAMUserManagedPolicyArns :: Maybe (ValList Text)
   , _iAMUserPath :: Maybe (Val Text)
+  , _iAMUserPermissionsBoundary :: Maybe (Val Text)
   , _iAMUserPolicies :: Maybe [IAMUserPolicy]
   , _iAMUserUserName :: Maybe (Val Text)
   } deriving (Show, Eq)
@@ -30,6 +31,7 @@
     , fmap (("LoginProfile",) . toJSON) _iAMUserLoginProfile
     , fmap (("ManagedPolicyArns",) . toJSON) _iAMUserManagedPolicyArns
     , fmap (("Path",) . toJSON) _iAMUserPath
+    , fmap (("PermissionsBoundary",) . toJSON) _iAMUserPermissionsBoundary
     , fmap (("Policies",) . toJSON) _iAMUserPolicies
     , fmap (("UserName",) . toJSON) _iAMUserUserName
     ]
@@ -41,6 +43,7 @@
       (obj .:? "LoginProfile") <*>
       (obj .:? "ManagedPolicyArns") <*>
       (obj .:? "Path") <*>
+      (obj .:? "PermissionsBoundary") <*>
       (obj .:? "Policies") <*>
       (obj .:? "UserName")
   parseJSON _ = mempty
@@ -54,6 +57,7 @@
   , _iAMUserLoginProfile = Nothing
   , _iAMUserManagedPolicyArns = Nothing
   , _iAMUserPath = Nothing
+  , _iAMUserPermissionsBoundary = Nothing
   , _iAMUserPolicies = Nothing
   , _iAMUserUserName = Nothing
   }
@@ -73,6 +77,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html#cfn-iam-user-path
 iamuPath :: Lens' IAMUser (Maybe (Val Text))
 iamuPath = lens _iAMUserPath (\s a -> s { _iAMUserPath = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html#cfn-iam-user-permissionsboundary
+iamuPermissionsBoundary :: Lens' IAMUser (Maybe (Val Text))
+iamuPermissionsBoundary = lens _iAMUserPermissionsBoundary (\s a -> s { _iAMUserPermissionsBoundary = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html#cfn-iam-user-policies
 iamuPolicies :: Lens' IAMUser (Maybe [IAMUserPolicy])
diff --git a/library-gen/Stratosphere/Resources/KMSKey.hs b/library-gen/Stratosphere/Resources/KMSKey.hs
--- a/library-gen/Stratosphere/Resources/KMSKey.hs
+++ b/library-gen/Stratosphere/Resources/KMSKey.hs
@@ -18,6 +18,7 @@
   , _kMSKeyEnabled :: Maybe (Val Bool)
   , _kMSKeyKeyPolicy :: Object
   , _kMSKeyKeyUsage :: Maybe (Val Text)
+  , _kMSKeyPendingWindowInDays :: Maybe (Val Integer)
   , _kMSKeyTags :: Maybe [Tag]
   } deriving (Show, Eq)
 
@@ -30,6 +31,7 @@
     , fmap (("Enabled",) . toJSON . fmap Bool') _kMSKeyEnabled
     , (Just . ("KeyPolicy",) . toJSON) _kMSKeyKeyPolicy
     , fmap (("KeyUsage",) . toJSON) _kMSKeyKeyUsage
+    , fmap (("PendingWindowInDays",) . toJSON . fmap Integer') _kMSKeyPendingWindowInDays
     , fmap (("Tags",) . toJSON) _kMSKeyTags
     ]
 
@@ -41,6 +43,7 @@
       fmap (fmap (fmap unBool')) (obj .:? "Enabled") <*>
       (obj .: "KeyPolicy") <*>
       (obj .:? "KeyUsage") <*>
+      fmap (fmap (fmap unInteger')) (obj .:? "PendingWindowInDays") <*>
       (obj .:? "Tags")
   parseJSON _ = mempty
 
@@ -55,6 +58,7 @@
   , _kMSKeyEnabled = Nothing
   , _kMSKeyKeyPolicy = keyPolicyarg
   , _kMSKeyKeyUsage = Nothing
+  , _kMSKeyPendingWindowInDays = Nothing
   , _kMSKeyTags = Nothing
   }
 
@@ -77,6 +81,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html#cfn-kms-key-keyusage
 kmskKeyUsage :: Lens' KMSKey (Maybe (Val Text))
 kmskKeyUsage = lens _kMSKeyKeyUsage (\s a -> s { _kMSKeyKeyUsage = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html#cfn-kms-key-pendingwindowindays
+kmskPendingWindowInDays :: Lens' KMSKey (Maybe (Val Integer))
+kmskPendingWindowInDays = lens _kMSKeyPendingWindowInDays (\s a -> s { _kMSKeyPendingWindowInDays = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html#cfn-kms-key-tags
 kmskTags :: Lens' KMSKey (Maybe [Tag])
diff --git a/library-gen/Stratosphere/Resources/RDSDBCluster.hs b/library-gen/Stratosphere/Resources/RDSDBCluster.hs
--- a/library-gen/Stratosphere/Resources/RDSDBCluster.hs
+++ b/library-gen/Stratosphere/Resources/RDSDBCluster.hs
@@ -15,11 +15,14 @@
 data RDSDBCluster =
   RDSDBCluster
   { _rDSDBClusterAvailabilityZones :: Maybe (ValList Text)
+  , _rDSDBClusterBacktrackWindow :: Maybe (Val Integer)
   , _rDSDBClusterBackupRetentionPeriod :: Maybe (Val Integer)
   , _rDSDBClusterDBClusterIdentifier :: Maybe (Val Text)
   , _rDSDBClusterDBClusterParameterGroupName :: Maybe (Val Text)
   , _rDSDBClusterDBSubnetGroupName :: Maybe (Val Text)
   , _rDSDBClusterDatabaseName :: Maybe (Val Text)
+  , _rDSDBClusterEnableCloudwatchLogsExports :: Maybe (ValList Text)
+  , _rDSDBClusterEnableIAMDatabaseAuthentication :: Maybe (Val Bool)
   , _rDSDBClusterEngine :: Val Text
   , _rDSDBClusterEngineMode :: Maybe (Val Text)
   , _rDSDBClusterEngineVersion :: Maybe (Val Text)
@@ -42,11 +45,14 @@
     object $
     catMaybes
     [ fmap (("AvailabilityZones",) . toJSON) _rDSDBClusterAvailabilityZones
+    , fmap (("BacktrackWindow",) . toJSON . fmap Integer') _rDSDBClusterBacktrackWindow
     , fmap (("BackupRetentionPeriod",) . toJSON . fmap Integer') _rDSDBClusterBackupRetentionPeriod
     , fmap (("DBClusterIdentifier",) . toJSON) _rDSDBClusterDBClusterIdentifier
     , fmap (("DBClusterParameterGroupName",) . toJSON) _rDSDBClusterDBClusterParameterGroupName
     , fmap (("DBSubnetGroupName",) . toJSON) _rDSDBClusterDBSubnetGroupName
     , fmap (("DatabaseName",) . toJSON) _rDSDBClusterDatabaseName
+    , fmap (("EnableCloudwatchLogsExports",) . toJSON) _rDSDBClusterEnableCloudwatchLogsExports
+    , fmap (("EnableIAMDatabaseAuthentication",) . toJSON . fmap Bool') _rDSDBClusterEnableIAMDatabaseAuthentication
     , (Just . ("Engine",) . toJSON) _rDSDBClusterEngine
     , fmap (("EngineMode",) . toJSON) _rDSDBClusterEngineMode
     , fmap (("EngineVersion",) . toJSON) _rDSDBClusterEngineVersion
@@ -68,11 +74,14 @@
   parseJSON (Object obj) =
     RDSDBCluster <$>
       (obj .:? "AvailabilityZones") <*>
+      fmap (fmap (fmap unInteger')) (obj .:? "BacktrackWindow") <*>
       fmap (fmap (fmap unInteger')) (obj .:? "BackupRetentionPeriod") <*>
       (obj .:? "DBClusterIdentifier") <*>
       (obj .:? "DBClusterParameterGroupName") <*>
       (obj .:? "DBSubnetGroupName") <*>
       (obj .:? "DatabaseName") <*>
+      (obj .:? "EnableCloudwatchLogsExports") <*>
+      fmap (fmap (fmap unBool')) (obj .:? "EnableIAMDatabaseAuthentication") <*>
       (obj .: "Engine") <*>
       (obj .:? "EngineMode") <*>
       (obj .:? "EngineVersion") <*>
@@ -97,11 +106,14 @@
 rdsdbCluster enginearg =
   RDSDBCluster
   { _rDSDBClusterAvailabilityZones = Nothing
+  , _rDSDBClusterBacktrackWindow = Nothing
   , _rDSDBClusterBackupRetentionPeriod = Nothing
   , _rDSDBClusterDBClusterIdentifier = Nothing
   , _rDSDBClusterDBClusterParameterGroupName = Nothing
   , _rDSDBClusterDBSubnetGroupName = Nothing
   , _rDSDBClusterDatabaseName = Nothing
+  , _rDSDBClusterEnableCloudwatchLogsExports = Nothing
+  , _rDSDBClusterEnableIAMDatabaseAuthentication = Nothing
   , _rDSDBClusterEngine = enginearg
   , _rDSDBClusterEngineMode = Nothing
   , _rDSDBClusterEngineVersion = Nothing
@@ -123,6 +135,10 @@
 rdsdbcAvailabilityZones :: Lens' RDSDBCluster (Maybe (ValList Text))
 rdsdbcAvailabilityZones = lens _rDSDBClusterAvailabilityZones (\s a -> s { _rDSDBClusterAvailabilityZones = a })
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-backtrackwindow
+rdsdbcBacktrackWindow :: Lens' RDSDBCluster (Maybe (Val Integer))
+rdsdbcBacktrackWindow = lens _rDSDBClusterBacktrackWindow (\s a -> s { _rDSDBClusterBacktrackWindow = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-backuprententionperiod
 rdsdbcBackupRetentionPeriod :: Lens' RDSDBCluster (Maybe (Val Integer))
 rdsdbcBackupRetentionPeriod = lens _rDSDBClusterBackupRetentionPeriod (\s a -> s { _rDSDBClusterBackupRetentionPeriod = a })
@@ -142,6 +158,14 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-databasename
 rdsdbcDatabaseName :: Lens' RDSDBCluster (Maybe (Val Text))
 rdsdbcDatabaseName = lens _rDSDBClusterDatabaseName (\s a -> s { _rDSDBClusterDatabaseName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-enablecloudwatchlogsexports
+rdsdbcEnableCloudwatchLogsExports :: Lens' RDSDBCluster (Maybe (ValList Text))
+rdsdbcEnableCloudwatchLogsExports = lens _rDSDBClusterEnableCloudwatchLogsExports (\s a -> s { _rDSDBClusterEnableCloudwatchLogsExports = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-enableiamdatabaseauthentication
+rdsdbcEnableIAMDatabaseAuthentication :: Lens' RDSDBCluster (Maybe (Val Bool))
+rdsdbcEnableIAMDatabaseAuthentication = lens _rDSDBClusterEnableIAMDatabaseAuthentication (\s a -> s { _rDSDBClusterEnableIAMDatabaseAuthentication = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-engine
 rdsdbcEngine :: Lens' RDSDBCluster (Val Text)
diff --git a/library-gen/Stratosphere/Resources/RDSDBInstance.hs b/library-gen/Stratosphere/Resources/RDSDBInstance.hs
--- a/library-gen/Stratosphere/Resources/RDSDBInstance.hs
+++ b/library-gen/Stratosphere/Resources/RDSDBInstance.hs
@@ -7,6 +7,7 @@
 module Stratosphere.Resources.RDSDBInstance where
 
 import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.RDSDBInstanceProcessorFeature
 import Stratosphere.ResourceProperties.Tag
 
 -- | Full data type definition for RDSDBInstance. See 'rdsdbInstance' for a
@@ -30,6 +31,9 @@
   , _rDSDBInstanceDBSubnetGroupName :: Maybe (Val Text)
   , _rDSDBInstanceDomain :: Maybe (Val Text)
   , _rDSDBInstanceDomainIAMRoleName :: Maybe (Val Text)
+  , _rDSDBInstanceEnableCloudwatchLogsExports :: Maybe (ValList Text)
+  , _rDSDBInstanceEnableIAMDatabaseAuthentication :: Maybe (Val Bool)
+  , _rDSDBInstanceEnablePerformanceInsights :: Maybe (Val Bool)
   , _rDSDBInstanceEngine :: Maybe (Val Text)
   , _rDSDBInstanceEngineVersion :: Maybe (Val Text)
   , _rDSDBInstanceIops :: Maybe (Val Integer)
@@ -41,9 +45,13 @@
   , _rDSDBInstanceMonitoringRoleArn :: Maybe (Val Text)
   , _rDSDBInstanceMultiAZ :: Maybe (Val Bool)
   , _rDSDBInstanceOptionGroupName :: Maybe (Val Text)
+  , _rDSDBInstancePerformanceInsightsKMSKeyId :: Maybe (Val Text)
+  , _rDSDBInstancePerformanceInsightsRetentionPeriod :: Maybe (Val Integer)
   , _rDSDBInstancePort :: Maybe (Val Text)
   , _rDSDBInstancePreferredBackupWindow :: Maybe (Val Text)
   , _rDSDBInstancePreferredMaintenanceWindow :: Maybe (Val Text)
+  , _rDSDBInstanceProcessorFeatures :: Maybe [RDSDBInstanceProcessorFeature]
+  , _rDSDBInstancePromotionTier :: Maybe (Val Integer)
   , _rDSDBInstancePubliclyAccessible :: Maybe (Val Bool)
   , _rDSDBInstanceSourceDBInstanceIdentifier :: Maybe (Val Text)
   , _rDSDBInstanceSourceRegion :: Maybe (Val Text)
@@ -75,6 +83,9 @@
     , fmap (("DBSubnetGroupName",) . toJSON) _rDSDBInstanceDBSubnetGroupName
     , fmap (("Domain",) . toJSON) _rDSDBInstanceDomain
     , fmap (("DomainIAMRoleName",) . toJSON) _rDSDBInstanceDomainIAMRoleName
+    , fmap (("EnableCloudwatchLogsExports",) . toJSON) _rDSDBInstanceEnableCloudwatchLogsExports
+    , fmap (("EnableIAMDatabaseAuthentication",) . toJSON . fmap Bool') _rDSDBInstanceEnableIAMDatabaseAuthentication
+    , fmap (("EnablePerformanceInsights",) . toJSON . fmap Bool') _rDSDBInstanceEnablePerformanceInsights
     , fmap (("Engine",) . toJSON) _rDSDBInstanceEngine
     , fmap (("EngineVersion",) . toJSON) _rDSDBInstanceEngineVersion
     , fmap (("Iops",) . toJSON . fmap Integer') _rDSDBInstanceIops
@@ -86,9 +97,13 @@
     , fmap (("MonitoringRoleArn",) . toJSON) _rDSDBInstanceMonitoringRoleArn
     , fmap (("MultiAZ",) . toJSON . fmap Bool') _rDSDBInstanceMultiAZ
     , fmap (("OptionGroupName",) . toJSON) _rDSDBInstanceOptionGroupName
+    , fmap (("PerformanceInsightsKMSKeyId",) . toJSON) _rDSDBInstancePerformanceInsightsKMSKeyId
+    , fmap (("PerformanceInsightsRetentionPeriod",) . toJSON . fmap Integer') _rDSDBInstancePerformanceInsightsRetentionPeriod
     , fmap (("Port",) . toJSON) _rDSDBInstancePort
     , fmap (("PreferredBackupWindow",) . toJSON) _rDSDBInstancePreferredBackupWindow
     , fmap (("PreferredMaintenanceWindow",) . toJSON) _rDSDBInstancePreferredMaintenanceWindow
+    , fmap (("ProcessorFeatures",) . toJSON) _rDSDBInstanceProcessorFeatures
+    , fmap (("PromotionTier",) . toJSON . fmap Integer') _rDSDBInstancePromotionTier
     , fmap (("PubliclyAccessible",) . toJSON . fmap Bool') _rDSDBInstancePubliclyAccessible
     , fmap (("SourceDBInstanceIdentifier",) . toJSON) _rDSDBInstanceSourceDBInstanceIdentifier
     , fmap (("SourceRegion",) . toJSON) _rDSDBInstanceSourceRegion
@@ -119,6 +134,9 @@
       (obj .:? "DBSubnetGroupName") <*>
       (obj .:? "Domain") <*>
       (obj .:? "DomainIAMRoleName") <*>
+      (obj .:? "EnableCloudwatchLogsExports") <*>
+      fmap (fmap (fmap unBool')) (obj .:? "EnableIAMDatabaseAuthentication") <*>
+      fmap (fmap (fmap unBool')) (obj .:? "EnablePerformanceInsights") <*>
       (obj .:? "Engine") <*>
       (obj .:? "EngineVersion") <*>
       fmap (fmap (fmap unInteger')) (obj .:? "Iops") <*>
@@ -130,9 +148,13 @@
       (obj .:? "MonitoringRoleArn") <*>
       fmap (fmap (fmap unBool')) (obj .:? "MultiAZ") <*>
       (obj .:? "OptionGroupName") <*>
+      (obj .:? "PerformanceInsightsKMSKeyId") <*>
+      fmap (fmap (fmap unInteger')) (obj .:? "PerformanceInsightsRetentionPeriod") <*>
       (obj .:? "Port") <*>
       (obj .:? "PreferredBackupWindow") <*>
       (obj .:? "PreferredMaintenanceWindow") <*>
+      (obj .:? "ProcessorFeatures") <*>
+      fmap (fmap (fmap unInteger')) (obj .:? "PromotionTier") <*>
       fmap (fmap (fmap unBool')) (obj .:? "PubliclyAccessible") <*>
       (obj .:? "SourceDBInstanceIdentifier") <*>
       (obj .:? "SourceRegion") <*>
@@ -166,6 +188,9 @@
   , _rDSDBInstanceDBSubnetGroupName = Nothing
   , _rDSDBInstanceDomain = Nothing
   , _rDSDBInstanceDomainIAMRoleName = Nothing
+  , _rDSDBInstanceEnableCloudwatchLogsExports = Nothing
+  , _rDSDBInstanceEnableIAMDatabaseAuthentication = Nothing
+  , _rDSDBInstanceEnablePerformanceInsights = Nothing
   , _rDSDBInstanceEngine = Nothing
   , _rDSDBInstanceEngineVersion = Nothing
   , _rDSDBInstanceIops = Nothing
@@ -177,9 +202,13 @@
   , _rDSDBInstanceMonitoringRoleArn = Nothing
   , _rDSDBInstanceMultiAZ = Nothing
   , _rDSDBInstanceOptionGroupName = Nothing
+  , _rDSDBInstancePerformanceInsightsKMSKeyId = Nothing
+  , _rDSDBInstancePerformanceInsightsRetentionPeriod = Nothing
   , _rDSDBInstancePort = Nothing
   , _rDSDBInstancePreferredBackupWindow = Nothing
   , _rDSDBInstancePreferredMaintenanceWindow = Nothing
+  , _rDSDBInstanceProcessorFeatures = Nothing
+  , _rDSDBInstancePromotionTier = Nothing
   , _rDSDBInstancePubliclyAccessible = Nothing
   , _rDSDBInstanceSourceDBInstanceIdentifier = Nothing
   , _rDSDBInstanceSourceRegion = Nothing
@@ -258,6 +287,18 @@
 rdsdbiDomainIAMRoleName :: Lens' RDSDBInstance (Maybe (Val Text))
 rdsdbiDomainIAMRoleName = lens _rDSDBInstanceDomainIAMRoleName (\s a -> s { _rDSDBInstanceDomainIAMRoleName = a })
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-enablecloudwatchlogsexports
+rdsdbiEnableCloudwatchLogsExports :: Lens' RDSDBInstance (Maybe (ValList Text))
+rdsdbiEnableCloudwatchLogsExports = lens _rDSDBInstanceEnableCloudwatchLogsExports (\s a -> s { _rDSDBInstanceEnableCloudwatchLogsExports = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-enableiamdatabaseauthentication
+rdsdbiEnableIAMDatabaseAuthentication :: Lens' RDSDBInstance (Maybe (Val Bool))
+rdsdbiEnableIAMDatabaseAuthentication = lens _rDSDBInstanceEnableIAMDatabaseAuthentication (\s a -> s { _rDSDBInstanceEnableIAMDatabaseAuthentication = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-enableperformanceinsights
+rdsdbiEnablePerformanceInsights :: Lens' RDSDBInstance (Maybe (Val Bool))
+rdsdbiEnablePerformanceInsights = lens _rDSDBInstanceEnablePerformanceInsights (\s a -> s { _rDSDBInstanceEnablePerformanceInsights = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-engine
 rdsdbiEngine :: Lens' RDSDBInstance (Maybe (Val Text))
 rdsdbiEngine = lens _rDSDBInstanceEngine (\s a -> s { _rDSDBInstanceEngine = a })
@@ -302,6 +343,14 @@
 rdsdbiOptionGroupName :: Lens' RDSDBInstance (Maybe (Val Text))
 rdsdbiOptionGroupName = lens _rDSDBInstanceOptionGroupName (\s a -> s { _rDSDBInstanceOptionGroupName = a })
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-performanceinsightskmskeyid
+rdsdbiPerformanceInsightsKMSKeyId :: Lens' RDSDBInstance (Maybe (Val Text))
+rdsdbiPerformanceInsightsKMSKeyId = lens _rDSDBInstancePerformanceInsightsKMSKeyId (\s a -> s { _rDSDBInstancePerformanceInsightsKMSKeyId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-performanceinsightsretentionperiod
+rdsdbiPerformanceInsightsRetentionPeriod :: Lens' RDSDBInstance (Maybe (Val Integer))
+rdsdbiPerformanceInsightsRetentionPeriod = lens _rDSDBInstancePerformanceInsightsRetentionPeriod (\s a -> s { _rDSDBInstancePerformanceInsightsRetentionPeriod = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-port
 rdsdbiPort :: Lens' RDSDBInstance (Maybe (Val Text))
 rdsdbiPort = lens _rDSDBInstancePort (\s a -> s { _rDSDBInstancePort = a })
@@ -313,6 +362,14 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-preferredmaintenancewindow
 rdsdbiPreferredMaintenanceWindow :: Lens' RDSDBInstance (Maybe (Val Text))
 rdsdbiPreferredMaintenanceWindow = lens _rDSDBInstancePreferredMaintenanceWindow (\s a -> s { _rDSDBInstancePreferredMaintenanceWindow = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-processorfeatures
+rdsdbiProcessorFeatures :: Lens' RDSDBInstance (Maybe [RDSDBInstanceProcessorFeature])
+rdsdbiProcessorFeatures = lens _rDSDBInstanceProcessorFeatures (\s a -> s { _rDSDBInstanceProcessorFeatures = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-promotiontier
+rdsdbiPromotionTier :: Lens' RDSDBInstance (Maybe (Val Integer))
+rdsdbiPromotionTier = lens _rDSDBInstancePromotionTier (\s a -> s { _rDSDBInstancePromotionTier = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-publiclyaccessible
 rdsdbiPubliclyAccessible :: Lens' RDSDBInstance (Maybe (Val Bool))
diff --git a/library-gen/Stratosphere/Resources/Route53RecordSet.hs b/library-gen/Stratosphere/Resources/Route53RecordSet.hs
--- a/library-gen/Stratosphere/Resources/Route53RecordSet.hs
+++ b/library-gen/Stratosphere/Resources/Route53RecordSet.hs
@@ -21,6 +21,7 @@
   , _route53RecordSetHealthCheckId :: Maybe (Val Text)
   , _route53RecordSetHostedZoneId :: Maybe (Val Text)
   , _route53RecordSetHostedZoneName :: Maybe (Val Text)
+  , _route53RecordSetMultiValueAnswer :: Maybe (Val Bool)
   , _route53RecordSetName :: Val Text
   , _route53RecordSetRegion :: Maybe (Val Text)
   , _route53RecordSetResourceRecords :: Maybe (ValList Text)
@@ -41,6 +42,7 @@
     , fmap (("HealthCheckId",) . toJSON) _route53RecordSetHealthCheckId
     , fmap (("HostedZoneId",) . toJSON) _route53RecordSetHostedZoneId
     , fmap (("HostedZoneName",) . toJSON) _route53RecordSetHostedZoneName
+    , fmap (("MultiValueAnswer",) . toJSON . fmap Bool') _route53RecordSetMultiValueAnswer
     , (Just . ("Name",) . toJSON) _route53RecordSetName
     , fmap (("Region",) . toJSON) _route53RecordSetRegion
     , fmap (("ResourceRecords",) . toJSON) _route53RecordSetResourceRecords
@@ -60,6 +62,7 @@
       (obj .:? "HealthCheckId") <*>
       (obj .:? "HostedZoneId") <*>
       (obj .:? "HostedZoneName") <*>
+      fmap (fmap (fmap unBool')) (obj .:? "MultiValueAnswer") <*>
       (obj .: "Name") <*>
       (obj .:? "Region") <*>
       (obj .:? "ResourceRecords") <*>
@@ -84,6 +87,7 @@
   , _route53RecordSetHealthCheckId = Nothing
   , _route53RecordSetHostedZoneId = Nothing
   , _route53RecordSetHostedZoneName = Nothing
+  , _route53RecordSetMultiValueAnswer = Nothing
   , _route53RecordSetName = namearg
   , _route53RecordSetRegion = Nothing
   , _route53RecordSetResourceRecords = Nothing
@@ -120,6 +124,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-hostedzonename
 rrsHostedZoneName :: Lens' Route53RecordSet (Maybe (Val Text))
 rrsHostedZoneName = lens _route53RecordSetHostedZoneName (\s a -> s { _route53RecordSetHostedZoneName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-multivalueanswer
+rrsMultiValueAnswer :: Lens' Route53RecordSet (Maybe (Val Bool))
+rrsMultiValueAnswer = lens _route53RecordSetMultiValueAnswer (\s a -> s { _route53RecordSetMultiValueAnswer = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-name
 rrsName :: Lens' Route53RecordSet (Val Text)
diff --git a/library-gen/Stratosphere/Resources/SSMMaintenanceWindow.hs b/library-gen/Stratosphere/Resources/SSMMaintenanceWindow.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/SSMMaintenanceWindow.hs
@@ -0,0 +1,112 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html
+
+module Stratosphere.Resources.SSMMaintenanceWindow where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for SSMMaintenanceWindow. See
+-- 'ssmMaintenanceWindow' for a more convenient constructor.
+data SSMMaintenanceWindow =
+  SSMMaintenanceWindow
+  { _sSMMaintenanceWindowAllowUnassociatedTargets :: Val Bool
+  , _sSMMaintenanceWindowCutoff :: Val Integer
+  , _sSMMaintenanceWindowDescription :: Maybe (Val Text)
+  , _sSMMaintenanceWindowDuration :: Val Integer
+  , _sSMMaintenanceWindowEndDate :: Maybe (Val Text)
+  , _sSMMaintenanceWindowName :: Val Text
+  , _sSMMaintenanceWindowSchedule :: Val Text
+  , _sSMMaintenanceWindowScheduleTimezone :: Maybe (Val Text)
+  , _sSMMaintenanceWindowStartDate :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON SSMMaintenanceWindow where
+  toJSON SSMMaintenanceWindow{..} =
+    object $
+    catMaybes
+    [ (Just . ("AllowUnassociatedTargets",) . toJSON . fmap Bool') _sSMMaintenanceWindowAllowUnassociatedTargets
+    , (Just . ("Cutoff",) . toJSON . fmap Integer') _sSMMaintenanceWindowCutoff
+    , fmap (("Description",) . toJSON) _sSMMaintenanceWindowDescription
+    , (Just . ("Duration",) . toJSON . fmap Integer') _sSMMaintenanceWindowDuration
+    , fmap (("EndDate",) . toJSON) _sSMMaintenanceWindowEndDate
+    , (Just . ("Name",) . toJSON) _sSMMaintenanceWindowName
+    , (Just . ("Schedule",) . toJSON) _sSMMaintenanceWindowSchedule
+    , fmap (("ScheduleTimezone",) . toJSON) _sSMMaintenanceWindowScheduleTimezone
+    , fmap (("StartDate",) . toJSON) _sSMMaintenanceWindowStartDate
+    ]
+
+instance FromJSON SSMMaintenanceWindow where
+  parseJSON (Object obj) =
+    SSMMaintenanceWindow <$>
+      fmap (fmap unBool') (obj .: "AllowUnassociatedTargets") <*>
+      fmap (fmap unInteger') (obj .: "Cutoff") <*>
+      (obj .:? "Description") <*>
+      fmap (fmap unInteger') (obj .: "Duration") <*>
+      (obj .:? "EndDate") <*>
+      (obj .: "Name") <*>
+      (obj .: "Schedule") <*>
+      (obj .:? "ScheduleTimezone") <*>
+      (obj .:? "StartDate")
+  parseJSON _ = mempty
+
+-- | Constructor for 'SSMMaintenanceWindow' containing required fields as
+-- arguments.
+ssmMaintenanceWindow
+  :: Val Bool -- ^ 'ssmmwAllowUnassociatedTargets'
+  -> Val Integer -- ^ 'ssmmwCutoff'
+  -> Val Integer -- ^ 'ssmmwDuration'
+  -> Val Text -- ^ 'ssmmwName'
+  -> Val Text -- ^ 'ssmmwSchedule'
+  -> SSMMaintenanceWindow
+ssmMaintenanceWindow allowUnassociatedTargetsarg cutoffarg durationarg namearg schedulearg =
+  SSMMaintenanceWindow
+  { _sSMMaintenanceWindowAllowUnassociatedTargets = allowUnassociatedTargetsarg
+  , _sSMMaintenanceWindowCutoff = cutoffarg
+  , _sSMMaintenanceWindowDescription = Nothing
+  , _sSMMaintenanceWindowDuration = durationarg
+  , _sSMMaintenanceWindowEndDate = Nothing
+  , _sSMMaintenanceWindowName = namearg
+  , _sSMMaintenanceWindowSchedule = schedulearg
+  , _sSMMaintenanceWindowScheduleTimezone = Nothing
+  , _sSMMaintenanceWindowStartDate = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-allowunassociatedtargets
+ssmmwAllowUnassociatedTargets :: Lens' SSMMaintenanceWindow (Val Bool)
+ssmmwAllowUnassociatedTargets = lens _sSMMaintenanceWindowAllowUnassociatedTargets (\s a -> s { _sSMMaintenanceWindowAllowUnassociatedTargets = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-cutoff
+ssmmwCutoff :: Lens' SSMMaintenanceWindow (Val Integer)
+ssmmwCutoff = lens _sSMMaintenanceWindowCutoff (\s a -> s { _sSMMaintenanceWindowCutoff = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-description
+ssmmwDescription :: Lens' SSMMaintenanceWindow (Maybe (Val Text))
+ssmmwDescription = lens _sSMMaintenanceWindowDescription (\s a -> s { _sSMMaintenanceWindowDescription = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-duration
+ssmmwDuration :: Lens' SSMMaintenanceWindow (Val Integer)
+ssmmwDuration = lens _sSMMaintenanceWindowDuration (\s a -> s { _sSMMaintenanceWindowDuration = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-enddate
+ssmmwEndDate :: Lens' SSMMaintenanceWindow (Maybe (Val Text))
+ssmmwEndDate = lens _sSMMaintenanceWindowEndDate (\s a -> s { _sSMMaintenanceWindowEndDate = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-name
+ssmmwName :: Lens' SSMMaintenanceWindow (Val Text)
+ssmmwName = lens _sSMMaintenanceWindowName (\s a -> s { _sSMMaintenanceWindowName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-schedule
+ssmmwSchedule :: Lens' SSMMaintenanceWindow (Val Text)
+ssmmwSchedule = lens _sSMMaintenanceWindowSchedule (\s a -> s { _sSMMaintenanceWindowSchedule = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-scheduletimezone
+ssmmwScheduleTimezone :: Lens' SSMMaintenanceWindow (Maybe (Val Text))
+ssmmwScheduleTimezone = lens _sSMMaintenanceWindowScheduleTimezone (\s a -> s { _sSMMaintenanceWindowScheduleTimezone = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-startdate
+ssmmwStartDate :: Lens' SSMMaintenanceWindow (Maybe (Val Text))
+ssmmwStartDate = lens _sSMMaintenanceWindowStartDate (\s a -> s { _sSMMaintenanceWindowStartDate = a })
diff --git a/library-gen/Stratosphere/Resources/SageMakerNotebookInstance.hs b/library-gen/Stratosphere/Resources/SageMakerNotebookInstance.hs
--- a/library-gen/Stratosphere/Resources/SageMakerNotebookInstance.hs
+++ b/library-gen/Stratosphere/Resources/SageMakerNotebookInstance.hs
@@ -22,6 +22,7 @@
   , _sageMakerNotebookInstanceSecurityGroupIds :: Maybe (ValList Text)
   , _sageMakerNotebookInstanceSubnetId :: Maybe (Val Text)
   , _sageMakerNotebookInstanceTags :: Maybe [Tag]
+  , _sageMakerNotebookInstanceVolumeSizeInGB :: Maybe (Val Integer)
   } deriving (Show, Eq)
 
 instance ToJSON SageMakerNotebookInstance where
@@ -37,6 +38,7 @@
     , fmap (("SecurityGroupIds",) . toJSON) _sageMakerNotebookInstanceSecurityGroupIds
     , fmap (("SubnetId",) . toJSON) _sageMakerNotebookInstanceSubnetId
     , fmap (("Tags",) . toJSON) _sageMakerNotebookInstanceTags
+    , fmap (("VolumeSizeInGB",) . toJSON . fmap Integer') _sageMakerNotebookInstanceVolumeSizeInGB
     ]
 
 instance FromJSON SageMakerNotebookInstance where
@@ -50,7 +52,8 @@
       (obj .: "RoleArn") <*>
       (obj .:? "SecurityGroupIds") <*>
       (obj .:? "SubnetId") <*>
-      (obj .:? "Tags")
+      (obj .:? "Tags") <*>
+      fmap (fmap (fmap unInteger')) (obj .:? "VolumeSizeInGB")
   parseJSON _ = mempty
 
 -- | Constructor for 'SageMakerNotebookInstance' containing required fields as
@@ -70,6 +73,7 @@
   , _sageMakerNotebookInstanceSecurityGroupIds = Nothing
   , _sageMakerNotebookInstanceSubnetId = Nothing
   , _sageMakerNotebookInstanceTags = Nothing
+  , _sageMakerNotebookInstanceVolumeSizeInGB = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-notebookinstance.html#cfn-sagemaker-notebookinstance-directinternetaccess
@@ -107,3 +111,7 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-notebookinstance.html#cfn-sagemaker-notebookinstance-tags
 smniTags :: Lens' SageMakerNotebookInstance (Maybe [Tag])
 smniTags = lens _sageMakerNotebookInstanceTags (\s a -> s { _sageMakerNotebookInstanceTags = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-notebookinstance.html#cfn-sagemaker-notebookinstance-volumesizeingb
+smniVolumeSizeInGB :: Lens' SageMakerNotebookInstance (Maybe (Val Integer))
+smniVolumeSizeInGB = lens _sageMakerNotebookInstanceVolumeSizeInGB (\s a -> s { _sageMakerNotebookInstanceVolumeSizeInGB = a })
diff --git a/library-gen/Stratosphere/Resources/SecretsManagerResourcePolicy.hs b/library-gen/Stratosphere/Resources/SecretsManagerResourcePolicy.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/SecretsManagerResourcePolicy.hs
@@ -0,0 +1,53 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-resourcepolicy.html
+
+module Stratosphere.Resources.SecretsManagerResourcePolicy where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for SecretsManagerResourcePolicy. See
+-- 'secretsManagerResourcePolicy' for a more convenient constructor.
+data SecretsManagerResourcePolicy =
+  SecretsManagerResourcePolicy
+  { _secretsManagerResourcePolicyResourcePolicy :: Object
+  , _secretsManagerResourcePolicySecretId :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON SecretsManagerResourcePolicy where
+  toJSON SecretsManagerResourcePolicy{..} =
+    object $
+    catMaybes
+    [ (Just . ("ResourcePolicy",) . toJSON) _secretsManagerResourcePolicyResourcePolicy
+    , (Just . ("SecretId",) . toJSON) _secretsManagerResourcePolicySecretId
+    ]
+
+instance FromJSON SecretsManagerResourcePolicy where
+  parseJSON (Object obj) =
+    SecretsManagerResourcePolicy <$>
+      (obj .: "ResourcePolicy") <*>
+      (obj .: "SecretId")
+  parseJSON _ = mempty
+
+-- | Constructor for 'SecretsManagerResourcePolicy' containing required fields
+-- as arguments.
+secretsManagerResourcePolicy
+  :: Object -- ^ 'smrpResourcePolicy'
+  -> Val Text -- ^ 'smrpSecretId'
+  -> SecretsManagerResourcePolicy
+secretsManagerResourcePolicy resourcePolicyarg secretIdarg =
+  SecretsManagerResourcePolicy
+  { _secretsManagerResourcePolicyResourcePolicy = resourcePolicyarg
+  , _secretsManagerResourcePolicySecretId = secretIdarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-resourcepolicy.html#cfn-secretsmanager-resourcepolicy-resourcepolicy
+smrpResourcePolicy :: Lens' SecretsManagerResourcePolicy Object
+smrpResourcePolicy = lens _secretsManagerResourcePolicyResourcePolicy (\s a -> s { _secretsManagerResourcePolicyResourcePolicy = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-resourcepolicy.html#cfn-secretsmanager-resourcepolicy-secretid
+smrpSecretId :: Lens' SecretsManagerResourcePolicy (Val Text)
+smrpSecretId = lens _secretsManagerResourcePolicySecretId (\s a -> s { _secretsManagerResourcePolicySecretId = a })
diff --git a/library-gen/Stratosphere/Resources/SecretsManagerRotationSchedule.hs b/library-gen/Stratosphere/Resources/SecretsManagerRotationSchedule.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/SecretsManagerRotationSchedule.hs
@@ -0,0 +1,60 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-rotationschedule.html
+
+module Stratosphere.Resources.SecretsManagerRotationSchedule where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.SecretsManagerRotationScheduleRotationRules
+
+-- | Full data type definition for SecretsManagerRotationSchedule. See
+-- 'secretsManagerRotationSchedule' for a more convenient constructor.
+data SecretsManagerRotationSchedule =
+  SecretsManagerRotationSchedule
+  { _secretsManagerRotationScheduleRotationLambdaARN :: Maybe (Val Text)
+  , _secretsManagerRotationScheduleRotationRules :: Maybe SecretsManagerRotationScheduleRotationRules
+  , _secretsManagerRotationScheduleSecretId :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON SecretsManagerRotationSchedule where
+  toJSON SecretsManagerRotationSchedule{..} =
+    object $
+    catMaybes
+    [ fmap (("RotationLambdaARN",) . toJSON) _secretsManagerRotationScheduleRotationLambdaARN
+    , fmap (("RotationRules",) . toJSON) _secretsManagerRotationScheduleRotationRules
+    , (Just . ("SecretId",) . toJSON) _secretsManagerRotationScheduleSecretId
+    ]
+
+instance FromJSON SecretsManagerRotationSchedule where
+  parseJSON (Object obj) =
+    SecretsManagerRotationSchedule <$>
+      (obj .:? "RotationLambdaARN") <*>
+      (obj .:? "RotationRules") <*>
+      (obj .: "SecretId")
+  parseJSON _ = mempty
+
+-- | Constructor for 'SecretsManagerRotationSchedule' containing required
+-- fields as arguments.
+secretsManagerRotationSchedule
+  :: Val Text -- ^ 'smrsSecretId'
+  -> SecretsManagerRotationSchedule
+secretsManagerRotationSchedule secretIdarg =
+  SecretsManagerRotationSchedule
+  { _secretsManagerRotationScheduleRotationLambdaARN = Nothing
+  , _secretsManagerRotationScheduleRotationRules = Nothing
+  , _secretsManagerRotationScheduleSecretId = secretIdarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-rotationschedule.html#cfn-secretsmanager-rotationschedule-rotationlambdaarn
+smrsRotationLambdaARN :: Lens' SecretsManagerRotationSchedule (Maybe (Val Text))
+smrsRotationLambdaARN = lens _secretsManagerRotationScheduleRotationLambdaARN (\s a -> s { _secretsManagerRotationScheduleRotationLambdaARN = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-rotationschedule.html#cfn-secretsmanager-rotationschedule-rotationrules
+smrsRotationRules :: Lens' SecretsManagerRotationSchedule (Maybe SecretsManagerRotationScheduleRotationRules)
+smrsRotationRules = lens _secretsManagerRotationScheduleRotationRules (\s a -> s { _secretsManagerRotationScheduleRotationRules = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-rotationschedule.html#cfn-secretsmanager-rotationschedule-secretid
+smrsSecretId :: Lens' SecretsManagerRotationSchedule (Val Text)
+smrsSecretId = lens _secretsManagerRotationScheduleSecretId (\s a -> s { _secretsManagerRotationScheduleSecretId = a })
diff --git a/library-gen/Stratosphere/Resources/SecretsManagerSecret.hs b/library-gen/Stratosphere/Resources/SecretsManagerSecret.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/SecretsManagerSecret.hs
@@ -0,0 +1,84 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-secret.html
+
+module Stratosphere.Resources.SecretsManagerSecret where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.SecretsManagerSecretGenerateSecretString
+import Stratosphere.ResourceProperties.Tag
+
+-- | Full data type definition for SecretsManagerSecret. See
+-- 'secretsManagerSecret' for a more convenient constructor.
+data SecretsManagerSecret =
+  SecretsManagerSecret
+  { _secretsManagerSecretDescription :: Maybe (Val Text)
+  , _secretsManagerSecretGenerateSecretString :: Maybe SecretsManagerSecretGenerateSecretString
+  , _secretsManagerSecretKmsKeyId :: Maybe (Val Text)
+  , _secretsManagerSecretName :: Maybe (Val Text)
+  , _secretsManagerSecretSecretString :: Maybe (Val Text)
+  , _secretsManagerSecretTags :: Maybe [Tag]
+  } deriving (Show, Eq)
+
+instance ToJSON SecretsManagerSecret where
+  toJSON SecretsManagerSecret{..} =
+    object $
+    catMaybes
+    [ fmap (("Description",) . toJSON) _secretsManagerSecretDescription
+    , fmap (("GenerateSecretString",) . toJSON) _secretsManagerSecretGenerateSecretString
+    , fmap (("KmsKeyId",) . toJSON) _secretsManagerSecretKmsKeyId
+    , fmap (("Name",) . toJSON) _secretsManagerSecretName
+    , fmap (("SecretString",) . toJSON) _secretsManagerSecretSecretString
+    , fmap (("Tags",) . toJSON) _secretsManagerSecretTags
+    ]
+
+instance FromJSON SecretsManagerSecret where
+  parseJSON (Object obj) =
+    SecretsManagerSecret <$>
+      (obj .:? "Description") <*>
+      (obj .:? "GenerateSecretString") <*>
+      (obj .:? "KmsKeyId") <*>
+      (obj .:? "Name") <*>
+      (obj .:? "SecretString") <*>
+      (obj .:? "Tags")
+  parseJSON _ = mempty
+
+-- | Constructor for 'SecretsManagerSecret' containing required fields as
+-- arguments.
+secretsManagerSecret
+  :: SecretsManagerSecret
+secretsManagerSecret  =
+  SecretsManagerSecret
+  { _secretsManagerSecretDescription = Nothing
+  , _secretsManagerSecretGenerateSecretString = Nothing
+  , _secretsManagerSecretKmsKeyId = Nothing
+  , _secretsManagerSecretName = Nothing
+  , _secretsManagerSecretSecretString = Nothing
+  , _secretsManagerSecretTags = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-secret.html#cfn-secretsmanager-secret-description
+smsDescription :: Lens' SecretsManagerSecret (Maybe (Val Text))
+smsDescription = lens _secretsManagerSecretDescription (\s a -> s { _secretsManagerSecretDescription = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-secret.html#cfn-secretsmanager-secret-generatesecretstring
+smsGenerateSecretString :: Lens' SecretsManagerSecret (Maybe SecretsManagerSecretGenerateSecretString)
+smsGenerateSecretString = lens _secretsManagerSecretGenerateSecretString (\s a -> s { _secretsManagerSecretGenerateSecretString = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-secret.html#cfn-secretsmanager-secret-kmskeyid
+smsKmsKeyId :: Lens' SecretsManagerSecret (Maybe (Val Text))
+smsKmsKeyId = lens _secretsManagerSecretKmsKeyId (\s a -> s { _secretsManagerSecretKmsKeyId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-secret.html#cfn-secretsmanager-secret-name
+smsName :: Lens' SecretsManagerSecret (Maybe (Val Text))
+smsName = lens _secretsManagerSecretName (\s a -> s { _secretsManagerSecretName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-secret.html#cfn-secretsmanager-secret-secretstring
+smsSecretString :: Lens' SecretsManagerSecret (Maybe (Val Text))
+smsSecretString = lens _secretsManagerSecretSecretString (\s a -> s { _secretsManagerSecretSecretString = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-secret.html#cfn-secretsmanager-secret-tags
+smsTags :: Lens' SecretsManagerSecret (Maybe [Tag])
+smsTags = lens _secretsManagerSecretTags (\s a -> s { _secretsManagerSecretTags = a })
diff --git a/library-gen/Stratosphere/Resources/SecretsManagerSecretTargetAttachment.hs b/library-gen/Stratosphere/Resources/SecretsManagerSecretTargetAttachment.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/SecretsManagerSecretTargetAttachment.hs
@@ -0,0 +1,62 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-secrettargetattachment.html
+
+module Stratosphere.Resources.SecretsManagerSecretTargetAttachment where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for SecretsManagerSecretTargetAttachment. See
+-- 'secretsManagerSecretTargetAttachment' for a more convenient constructor.
+data SecretsManagerSecretTargetAttachment =
+  SecretsManagerSecretTargetAttachment
+  { _secretsManagerSecretTargetAttachmentSecretId :: Val Text
+  , _secretsManagerSecretTargetAttachmentTargetId :: Val Text
+  , _secretsManagerSecretTargetAttachmentTargetType :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON SecretsManagerSecretTargetAttachment where
+  toJSON SecretsManagerSecretTargetAttachment{..} =
+    object $
+    catMaybes
+    [ (Just . ("SecretId",) . toJSON) _secretsManagerSecretTargetAttachmentSecretId
+    , (Just . ("TargetId",) . toJSON) _secretsManagerSecretTargetAttachmentTargetId
+    , (Just . ("TargetType",) . toJSON) _secretsManagerSecretTargetAttachmentTargetType
+    ]
+
+instance FromJSON SecretsManagerSecretTargetAttachment where
+  parseJSON (Object obj) =
+    SecretsManagerSecretTargetAttachment <$>
+      (obj .: "SecretId") <*>
+      (obj .: "TargetId") <*>
+      (obj .: "TargetType")
+  parseJSON _ = mempty
+
+-- | Constructor for 'SecretsManagerSecretTargetAttachment' containing
+-- required fields as arguments.
+secretsManagerSecretTargetAttachment
+  :: Val Text -- ^ 'smstaSecretId'
+  -> Val Text -- ^ 'smstaTargetId'
+  -> Val Text -- ^ 'smstaTargetType'
+  -> SecretsManagerSecretTargetAttachment
+secretsManagerSecretTargetAttachment secretIdarg targetIdarg targetTypearg =
+  SecretsManagerSecretTargetAttachment
+  { _secretsManagerSecretTargetAttachmentSecretId = secretIdarg
+  , _secretsManagerSecretTargetAttachmentTargetId = targetIdarg
+  , _secretsManagerSecretTargetAttachmentTargetType = targetTypearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-secrettargetattachment.html#cfn-secretsmanager-secrettargetattachment-secretid
+smstaSecretId :: Lens' SecretsManagerSecretTargetAttachment (Val Text)
+smstaSecretId = lens _secretsManagerSecretTargetAttachmentSecretId (\s a -> s { _secretsManagerSecretTargetAttachmentSecretId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-secrettargetattachment.html#cfn-secretsmanager-secrettargetattachment-targetid
+smstaTargetId :: Lens' SecretsManagerSecretTargetAttachment (Val Text)
+smstaTargetId = lens _secretsManagerSecretTargetAttachmentTargetId (\s a -> s { _secretsManagerSecretTargetAttachmentTargetId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-secrettargetattachment.html#cfn-secretsmanager-secrettargetattachment-targettype
+smstaTargetType :: Lens' SecretsManagerSecretTargetAttachment (Val Text)
+smstaTargetType = lens _secretsManagerSecretTargetAttachmentTargetType (\s a -> s { _secretsManagerSecretTargetAttachmentTargetType = a })
diff --git a/library-gen/Stratosphere/Resources/WorkSpacesWorkspace.hs b/library-gen/Stratosphere/Resources/WorkSpacesWorkspace.hs
--- a/library-gen/Stratosphere/Resources/WorkSpacesWorkspace.hs
+++ b/library-gen/Stratosphere/Resources/WorkSpacesWorkspace.hs
@@ -7,7 +7,8 @@
 module Stratosphere.Resources.WorkSpacesWorkspace where
 
 import Stratosphere.ResourceImports
-
+import Stratosphere.ResourceProperties.Tag
+import Stratosphere.ResourceProperties.WorkSpacesWorkspaceWorkspaceProperties
 
 -- | Full data type definition for WorkSpacesWorkspace. See
 -- 'workSpacesWorkspace' for a more convenient constructor.
@@ -16,9 +17,11 @@
   { _workSpacesWorkspaceBundleId :: Val Text
   , _workSpacesWorkspaceDirectoryId :: Val Text
   , _workSpacesWorkspaceRootVolumeEncryptionEnabled :: Maybe (Val Bool)
+  , _workSpacesWorkspaceTags :: Maybe [Tag]
   , _workSpacesWorkspaceUserName :: Val Text
   , _workSpacesWorkspaceUserVolumeEncryptionEnabled :: Maybe (Val Bool)
   , _workSpacesWorkspaceVolumeEncryptionKey :: Maybe (Val Text)
+  , _workSpacesWorkspaceWorkspaceProperties :: Maybe WorkSpacesWorkspaceWorkspaceProperties
   } deriving (Show, Eq)
 
 instance ToJSON WorkSpacesWorkspace where
@@ -28,9 +31,11 @@
     [ (Just . ("BundleId",) . toJSON) _workSpacesWorkspaceBundleId
     , (Just . ("DirectoryId",) . toJSON) _workSpacesWorkspaceDirectoryId
     , fmap (("RootVolumeEncryptionEnabled",) . toJSON . fmap Bool') _workSpacesWorkspaceRootVolumeEncryptionEnabled
+    , fmap (("Tags",) . toJSON) _workSpacesWorkspaceTags
     , (Just . ("UserName",) . toJSON) _workSpacesWorkspaceUserName
     , fmap (("UserVolumeEncryptionEnabled",) . toJSON . fmap Bool') _workSpacesWorkspaceUserVolumeEncryptionEnabled
     , fmap (("VolumeEncryptionKey",) . toJSON) _workSpacesWorkspaceVolumeEncryptionKey
+    , fmap (("WorkspaceProperties",) . toJSON) _workSpacesWorkspaceWorkspaceProperties
     ]
 
 instance FromJSON WorkSpacesWorkspace where
@@ -39,9 +44,11 @@
       (obj .: "BundleId") <*>
       (obj .: "DirectoryId") <*>
       fmap (fmap (fmap unBool')) (obj .:? "RootVolumeEncryptionEnabled") <*>
+      (obj .:? "Tags") <*>
       (obj .: "UserName") <*>
       fmap (fmap (fmap unBool')) (obj .:? "UserVolumeEncryptionEnabled") <*>
-      (obj .:? "VolumeEncryptionKey")
+      (obj .:? "VolumeEncryptionKey") <*>
+      (obj .:? "WorkspaceProperties")
   parseJSON _ = mempty
 
 -- | Constructor for 'WorkSpacesWorkspace' containing required fields as
@@ -56,9 +63,11 @@
   { _workSpacesWorkspaceBundleId = bundleIdarg
   , _workSpacesWorkspaceDirectoryId = directoryIdarg
   , _workSpacesWorkspaceRootVolumeEncryptionEnabled = Nothing
+  , _workSpacesWorkspaceTags = Nothing
   , _workSpacesWorkspaceUserName = userNamearg
   , _workSpacesWorkspaceUserVolumeEncryptionEnabled = Nothing
   , _workSpacesWorkspaceVolumeEncryptionKey = Nothing
+  , _workSpacesWorkspaceWorkspaceProperties = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspaces-workspace.html#cfn-workspaces-workspace-bundleid
@@ -73,6 +82,10 @@
 wswRootVolumeEncryptionEnabled :: Lens' WorkSpacesWorkspace (Maybe (Val Bool))
 wswRootVolumeEncryptionEnabled = lens _workSpacesWorkspaceRootVolumeEncryptionEnabled (\s a -> s { _workSpacesWorkspaceRootVolumeEncryptionEnabled = a })
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspaces-workspace.html#cfn-workspaces-workspace-tags
+wswTags :: Lens' WorkSpacesWorkspace (Maybe [Tag])
+wswTags = lens _workSpacesWorkspaceTags (\s a -> s { _workSpacesWorkspaceTags = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspaces-workspace.html#cfn-workspaces-workspace-username
 wswUserName :: Lens' WorkSpacesWorkspace (Val Text)
 wswUserName = lens _workSpacesWorkspaceUserName (\s a -> s { _workSpacesWorkspaceUserName = a })
@@ -84,3 +97,7 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspaces-workspace.html#cfn-workspaces-workspace-volumeencryptionkey
 wswVolumeEncryptionKey :: Lens' WorkSpacesWorkspace (Maybe (Val Text))
 wswVolumeEncryptionKey = lens _workSpacesWorkspaceVolumeEncryptionKey (\s a -> s { _workSpacesWorkspaceVolumeEncryptionKey = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspaces-workspace.html#cfn-workspaces-workspace-workspaceproperties
+wswWorkspaceProperties :: Lens' WorkSpacesWorkspace (Maybe WorkSpacesWorkspaceWorkspaceProperties)
+wswWorkspaceProperties = lens _workSpacesWorkspaceWorkspaceProperties (\s a -> s { _workSpacesWorkspaceWorkspaceProperties = a })
diff --git a/stratosphere.cabal b/stratosphere.cabal
--- a/stratosphere.cabal
+++ b/stratosphere.cabal
@@ -1,11 +1,13 @@
--- This file has been generated from package.yaml by hpack version 0.28.2.
+cabal-version: 1.12
+
+-- This file has been generated from package.yaml by hpack version 0.31.0.
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: e322b34ff8eb22429d5d71e02048122ef8a857182b1ea5f17cc4d29d7409e165
+-- hash: 92866fa270bc8da0e6aa6c55a2cc38a2ba968df82449cb833cdf7a795b14b6e7
 
 name:           stratosphere
-version:        0.26.2
+version:        0.27.0
 synopsis:       EDSL for AWS CloudFormation
 description:    EDSL for AWS CloudFormation
 category:       AWS, Cloud
@@ -16,7 +18,6 @@
 license:        MIT
 license-file:   LICENSE.md
 build-type:     Simple
-cabal-version:  >= 1.10
 extra-source-files:
     CHANGELOG.md
     README.md
@@ -102,8 +103,10 @@
       Stratosphere.ResourceProperties.AutoScalingLaunchConfigurationBlockDevice
       Stratosphere.ResourceProperties.AutoScalingLaunchConfigurationBlockDeviceMapping
       Stratosphere.ResourceProperties.AutoScalingPlansScalingPlanApplicationSource
+      Stratosphere.ResourceProperties.AutoScalingPlansScalingPlanCustomizedLoadMetricSpecification
       Stratosphere.ResourceProperties.AutoScalingPlansScalingPlanCustomizedScalingMetricSpecification
       Stratosphere.ResourceProperties.AutoScalingPlansScalingPlanMetricDimension
+      Stratosphere.ResourceProperties.AutoScalingPlansScalingPlanPredefinedLoadMetricSpecification
       Stratosphere.ResourceProperties.AutoScalingPlansScalingPlanPredefinedScalingMetricSpecification
       Stratosphere.ResourceProperties.AutoScalingPlansScalingPlanScalingInstruction
       Stratosphere.ResourceProperties.AutoScalingPlansScalingPlanTagFilter
@@ -234,6 +237,10 @@
       Stratosphere.ResourceProperties.DAXClusterSSESpecification
       Stratosphere.ResourceProperties.DirectoryServiceMicrosoftADVpcSettings
       Stratosphere.ResourceProperties.DirectoryServiceSimpleADVpcSettings
+      Stratosphere.ResourceProperties.DLMLifecyclePolicyCreateRule
+      Stratosphere.ResourceProperties.DLMLifecyclePolicyPolicyDetails
+      Stratosphere.ResourceProperties.DLMLifecyclePolicyRetainRule
+      Stratosphere.ResourceProperties.DLMLifecyclePolicySchedule
       Stratosphere.ResourceProperties.DMSEndpointDynamoDbSettings
       Stratosphere.ResourceProperties.DMSEndpointMongoDbSettings
       Stratosphere.ResourceProperties.DMSEndpointS3Settings
@@ -461,6 +468,7 @@
       Stratosphere.ResourceProperties.IoTTopicRuleDynamoDBV2Action
       Stratosphere.ResourceProperties.IoTTopicRuleElasticsearchAction
       Stratosphere.ResourceProperties.IoTTopicRuleFirehoseAction
+      Stratosphere.ResourceProperties.IoTTopicRuleIotAnalyticsAction
       Stratosphere.ResourceProperties.IoTTopicRuleKinesisAction
       Stratosphere.ResourceProperties.IoTTopicRuleLambdaAction
       Stratosphere.ResourceProperties.IoTTopicRulePutItemInput
@@ -468,6 +476,7 @@
       Stratosphere.ResourceProperties.IoTTopicRuleS3Action
       Stratosphere.ResourceProperties.IoTTopicRuleSnsAction
       Stratosphere.ResourceProperties.IoTTopicRuleSqsAction
+      Stratosphere.ResourceProperties.IoTTopicRuleStepFunctionsAction
       Stratosphere.ResourceProperties.IoTTopicRuleTopicRulePayload
       Stratosphere.ResourceProperties.KinesisAnalyticsApplicationCSVMappingParameters
       Stratosphere.ResourceProperties.KinesisAnalyticsApplicationInput
@@ -539,6 +548,7 @@
       Stratosphere.ResourceProperties.OpsWorksStackSource
       Stratosphere.ResourceProperties.OpsWorksStackStackConfigurationManager
       Stratosphere.ResourceProperties.RDSDBClusterScalingConfiguration
+      Stratosphere.ResourceProperties.RDSDBInstanceProcessorFeature
       Stratosphere.ResourceProperties.RDSDBSecurityGroupIngressProperty
       Stratosphere.ResourceProperties.RDSOptionGroupOptionConfiguration
       Stratosphere.ResourceProperties.RDSOptionGroupOptionSetting
@@ -599,6 +609,8 @@
       Stratosphere.ResourceProperties.SageMakerModelContainerDefinition
       Stratosphere.ResourceProperties.SageMakerModelVpcConfig
       Stratosphere.ResourceProperties.SageMakerNotebookInstanceLifecycleConfigNotebookInstanceLifecycleHook
+      Stratosphere.ResourceProperties.SecretsManagerRotationScheduleRotationRules
+      Stratosphere.ResourceProperties.SecretsManagerSecretGenerateSecretString
       Stratosphere.ResourceProperties.ServiceCatalogCloudFormationProductProvisioningArtifactProperties
       Stratosphere.ResourceProperties.ServiceCatalogCloudFormationProvisionedProductProvisioningParameter
       Stratosphere.ResourceProperties.ServiceDiscoveryServiceDnsConfig
@@ -664,6 +676,7 @@
       Stratosphere.ResourceProperties.WAFWebACLWafAction
       Stratosphere.ResourceProperties.WAFXssMatchSetFieldToMatch
       Stratosphere.ResourceProperties.WAFXssMatchSetXssMatchTuple
+      Stratosphere.ResourceProperties.WorkSpacesWorkspaceWorkspaceProperties
       Stratosphere.Resources
       Stratosphere.Resources.AmazonMQBroker
       Stratosphere.Resources.AmazonMQConfiguration
@@ -749,6 +762,7 @@
       Stratosphere.Resources.DAXSubnetGroup
       Stratosphere.Resources.DirectoryServiceMicrosoftAD
       Stratosphere.Resources.DirectoryServiceSimpleAD
+      Stratosphere.Resources.DLMLifecyclePolicy
       Stratosphere.Resources.DMSCertificate
       Stratosphere.Resources.DMSEndpoint
       Stratosphere.Resources.DMSEventSubscription
@@ -923,6 +937,10 @@
       Stratosphere.Resources.SageMakerNotebookInstance
       Stratosphere.Resources.SageMakerNotebookInstanceLifecycleConfig
       Stratosphere.Resources.SDBDomain
+      Stratosphere.Resources.SecretsManagerResourcePolicy
+      Stratosphere.Resources.SecretsManagerRotationSchedule
+      Stratosphere.Resources.SecretsManagerSecret
+      Stratosphere.Resources.SecretsManagerSecretTargetAttachment
       Stratosphere.Resources.ServiceCatalogAcceptedPortfolioShare
       Stratosphere.Resources.ServiceCatalogCloudFormationProduct
       Stratosphere.Resources.ServiceCatalogCloudFormationProvisionedProduct
@@ -952,6 +970,7 @@
       Stratosphere.Resources.SQSQueuePolicy
       Stratosphere.Resources.SSMAssociation
       Stratosphere.Resources.SSMDocument
+      Stratosphere.Resources.SSMMaintenanceWindow
       Stratosphere.Resources.SSMMaintenanceWindowTask
       Stratosphere.Resources.SSMParameter
       Stratosphere.Resources.SSMPatchBaseline
