diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,10 @@
 # Change Log
 
+## 0.18.0
+
+* Update resource specification document to version 2.0.0
+* Fix missing `AWS::ElasticLoadBalancingV2::ListenerCertificate` resource
+
 ## 0.17.0
 
 * Fix JSON instances for non-codegen code.
diff --git a/library-gen/Stratosphere/ResourceProperties/ApplicationAutoScalingScalingPolicyTargetTrackingScalingPolicyConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/ApplicationAutoScalingScalingPolicyTargetTrackingScalingPolicyConfiguration.hs
--- a/library-gen/Stratosphere/ResourceProperties/ApplicationAutoScalingScalingPolicyTargetTrackingScalingPolicyConfiguration.hs
+++ b/library-gen/Stratosphere/ResourceProperties/ApplicationAutoScalingScalingPolicyTargetTrackingScalingPolicyConfiguration.hs
@@ -18,6 +18,7 @@
 data ApplicationAutoScalingScalingPolicyTargetTrackingScalingPolicyConfiguration =
   ApplicationAutoScalingScalingPolicyTargetTrackingScalingPolicyConfiguration
   { _applicationAutoScalingScalingPolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecification :: Maybe ApplicationAutoScalingScalingPolicyCustomizedMetricSpecification
+  , _applicationAutoScalingScalingPolicyTargetTrackingScalingPolicyConfigurationDisableScaleIn :: Maybe (Val Bool)
   , _applicationAutoScalingScalingPolicyTargetTrackingScalingPolicyConfigurationPredefinedMetricSpecification :: Maybe ApplicationAutoScalingScalingPolicyPredefinedMetricSpecification
   , _applicationAutoScalingScalingPolicyTargetTrackingScalingPolicyConfigurationScaleInCooldown :: Maybe (Val Integer)
   , _applicationAutoScalingScalingPolicyTargetTrackingScalingPolicyConfigurationScaleOutCooldown :: Maybe (Val Integer)
@@ -29,6 +30,7 @@
     object $
     catMaybes
     [ fmap (("CustomizedMetricSpecification",) . toJSON) _applicationAutoScalingScalingPolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecification
+    , fmap (("DisableScaleIn",) . toJSON . fmap Bool') _applicationAutoScalingScalingPolicyTargetTrackingScalingPolicyConfigurationDisableScaleIn
     , fmap (("PredefinedMetricSpecification",) . toJSON) _applicationAutoScalingScalingPolicyTargetTrackingScalingPolicyConfigurationPredefinedMetricSpecification
     , fmap (("ScaleInCooldown",) . toJSON . fmap Integer') _applicationAutoScalingScalingPolicyTargetTrackingScalingPolicyConfigurationScaleInCooldown
     , fmap (("ScaleOutCooldown",) . toJSON . fmap Integer') _applicationAutoScalingScalingPolicyTargetTrackingScalingPolicyConfigurationScaleOutCooldown
@@ -39,6 +41,7 @@
   parseJSON (Object obj) =
     ApplicationAutoScalingScalingPolicyTargetTrackingScalingPolicyConfiguration <$>
       (obj .:? "CustomizedMetricSpecification") <*>
+      fmap (fmap (fmap unBool')) (obj .:? "DisableScaleIn") <*>
       (obj .:? "PredefinedMetricSpecification") <*>
       fmap (fmap (fmap unInteger')) (obj .:? "ScaleInCooldown") <*>
       fmap (fmap (fmap unInteger')) (obj .:? "ScaleOutCooldown") <*>
@@ -54,6 +57,7 @@
 applicationAutoScalingScalingPolicyTargetTrackingScalingPolicyConfiguration targetValuearg =
   ApplicationAutoScalingScalingPolicyTargetTrackingScalingPolicyConfiguration
   { _applicationAutoScalingScalingPolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecification = Nothing
+  , _applicationAutoScalingScalingPolicyTargetTrackingScalingPolicyConfigurationDisableScaleIn = Nothing
   , _applicationAutoScalingScalingPolicyTargetTrackingScalingPolicyConfigurationPredefinedMetricSpecification = Nothing
   , _applicationAutoScalingScalingPolicyTargetTrackingScalingPolicyConfigurationScaleInCooldown = Nothing
   , _applicationAutoScalingScalingPolicyTargetTrackingScalingPolicyConfigurationScaleOutCooldown = Nothing
@@ -63,6 +67,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration-customizedmetricspecification
 aasspttspcCustomizedMetricSpecification :: Lens' ApplicationAutoScalingScalingPolicyTargetTrackingScalingPolicyConfiguration (Maybe ApplicationAutoScalingScalingPolicyCustomizedMetricSpecification)
 aasspttspcCustomizedMetricSpecification = lens _applicationAutoScalingScalingPolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecification (\s a -> s { _applicationAutoScalingScalingPolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecification = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration-disablescalein
+aasspttspcDisableScaleIn :: Lens' ApplicationAutoScalingScalingPolicyTargetTrackingScalingPolicyConfiguration (Maybe (Val Bool))
+aasspttspcDisableScaleIn = lens _applicationAutoScalingScalingPolicyTargetTrackingScalingPolicyConfigurationDisableScaleIn (\s a -> s { _applicationAutoScalingScalingPolicyTargetTrackingScalingPolicyConfigurationDisableScaleIn = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration-predefinedmetricspecification
 aasspttspcPredefinedMetricSpecification :: Lens' ApplicationAutoScalingScalingPolicyTargetTrackingScalingPolicyConfiguration (Maybe ApplicationAutoScalingScalingPolicyPredefinedMetricSpecification)
diff --git a/library-gen/Stratosphere/ResourceProperties/CodePipelinePipelineActionDeclaration.hs b/library-gen/Stratosphere/ResourceProperties/CodePipelinePipelineActionDeclaration.hs
--- a/library-gen/Stratosphere/ResourceProperties/CodePipelinePipelineActionDeclaration.hs
+++ b/library-gen/Stratosphere/ResourceProperties/CodePipelinePipelineActionDeclaration.hs
@@ -2,7 +2,7 @@
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE TupleSections #-}
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-actiondeclaration.html
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions.html
 
 module Stratosphere.ResourceProperties.CodePipelinePipelineActionDeclaration where
 
@@ -67,30 +67,30 @@
   , _codePipelinePipelineActionDeclarationRunOrder = Nothing
   }
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-actiondeclaration.html#cfn-codepipeline-pipeline-actiondeclaration-actiontypeid
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions.html#cfn-codepipeline-pipeline-stages-actions-actiontypeid
 cppadActionTypeId :: Lens' CodePipelinePipelineActionDeclaration CodePipelinePipelineActionTypeId
 cppadActionTypeId = lens _codePipelinePipelineActionDeclarationActionTypeId (\s a -> s { _codePipelinePipelineActionDeclarationActionTypeId = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-actiondeclaration.html#cfn-codepipeline-pipeline-actiondeclaration-configuration
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions.html#cfn-codepipeline-pipeline-stages-actions-configuration
 cppadConfiguration :: Lens' CodePipelinePipelineActionDeclaration (Maybe Object)
 cppadConfiguration = lens _codePipelinePipelineActionDeclarationConfiguration (\s a -> s { _codePipelinePipelineActionDeclarationConfiguration = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-actiondeclaration.html#cfn-codepipeline-pipeline-actiondeclaration-inputartifacts
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions.html#cfn-codepipeline-pipeline-stages-actions-inputartifacts
 cppadInputArtifacts :: Lens' CodePipelinePipelineActionDeclaration (Maybe [CodePipelinePipelineInputArtifact])
 cppadInputArtifacts = lens _codePipelinePipelineActionDeclarationInputArtifacts (\s a -> s { _codePipelinePipelineActionDeclarationInputArtifacts = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-actiondeclaration.html#cfn-codepipeline-pipeline-actiondeclaration-name
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions.html#cfn-codepipeline-pipeline-stages-actions-name
 cppadName :: Lens' CodePipelinePipelineActionDeclaration (Val Text)
 cppadName = lens _codePipelinePipelineActionDeclarationName (\s a -> s { _codePipelinePipelineActionDeclarationName = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-actiondeclaration.html#cfn-codepipeline-pipeline-actiondeclaration-outputartifacts
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions.html#cfn-codepipeline-pipeline-stages-actions-outputartifacts
 cppadOutputArtifacts :: Lens' CodePipelinePipelineActionDeclaration (Maybe [CodePipelinePipelineOutputArtifact])
 cppadOutputArtifacts = lens _codePipelinePipelineActionDeclarationOutputArtifacts (\s a -> s { _codePipelinePipelineActionDeclarationOutputArtifacts = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-actiondeclaration.html#cfn-codepipeline-pipeline-actiondeclaration-rolearn
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions.html#cfn-codepipeline-pipeline-stages-actions-rolearn
 cppadRoleArn :: Lens' CodePipelinePipelineActionDeclaration (Maybe (Val Text))
 cppadRoleArn = lens _codePipelinePipelineActionDeclarationRoleArn (\s a -> s { _codePipelinePipelineActionDeclarationRoleArn = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-actiondeclaration.html#cfn-codepipeline-pipeline-actiondeclaration-runorder
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions.html#cfn-codepipeline-pipeline-stages-actions-runorder
 cppadRunOrder :: Lens' CodePipelinePipelineActionDeclaration (Maybe (Val Integer))
 cppadRunOrder = lens _codePipelinePipelineActionDeclarationRunOrder (\s a -> s { _codePipelinePipelineActionDeclarationRunOrder = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/CodePipelinePipelineActionTypeId.hs b/library-gen/Stratosphere/ResourceProperties/CodePipelinePipelineActionTypeId.hs
--- a/library-gen/Stratosphere/ResourceProperties/CodePipelinePipelineActionTypeId.hs
+++ b/library-gen/Stratosphere/ResourceProperties/CodePipelinePipelineActionTypeId.hs
@@ -2,7 +2,7 @@
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE TupleSections #-}
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-actiontypeid.html
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-actiontypeid.html
 
 module Stratosphere.ResourceProperties.CodePipelinePipelineActionTypeId where
 
@@ -54,18 +54,18 @@
   , _codePipelinePipelineActionTypeIdVersion = versionarg
   }
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-actiontypeid.html#cfn-codepipeline-pipeline-actiontypeid-category
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-actiontypeid.html#cfn-codepipeline-pipeline-stages-actions-actiontypeid-category
 cppatiCategory :: Lens' CodePipelinePipelineActionTypeId (Val Text)
 cppatiCategory = lens _codePipelinePipelineActionTypeIdCategory (\s a -> s { _codePipelinePipelineActionTypeIdCategory = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-actiontypeid.html#cfn-codepipeline-pipeline-actiontypeid-owner
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-actiontypeid.html#cfn-codepipeline-pipeline-stages-actions-actiontypeid-owner
 cppatiOwner :: Lens' CodePipelinePipelineActionTypeId (Val Text)
 cppatiOwner = lens _codePipelinePipelineActionTypeIdOwner (\s a -> s { _codePipelinePipelineActionTypeIdOwner = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-actiontypeid.html#cfn-codepipeline-pipeline-actiontypeid-provider
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-actiontypeid.html#cfn-codepipeline-pipeline-stages-actions-actiontypeid-provider
 cppatiProvider :: Lens' CodePipelinePipelineActionTypeId (Val Text)
 cppatiProvider = lens _codePipelinePipelineActionTypeIdProvider (\s a -> s { _codePipelinePipelineActionTypeIdProvider = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-actiontypeid.html#cfn-codepipeline-pipeline-actiontypeid-version
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-actiontypeid.html#cfn-codepipeline-pipeline-stages-actions-actiontypeid-version
 cppatiVersion :: Lens' CodePipelinePipelineActionTypeId (Val Text)
 cppatiVersion = lens _codePipelinePipelineActionTypeIdVersion (\s a -> s { _codePipelinePipelineActionTypeIdVersion = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/CodePipelinePipelineBlockerDeclaration.hs b/library-gen/Stratosphere/ResourceProperties/CodePipelinePipelineBlockerDeclaration.hs
--- a/library-gen/Stratosphere/ResourceProperties/CodePipelinePipelineBlockerDeclaration.hs
+++ b/library-gen/Stratosphere/ResourceProperties/CodePipelinePipelineBlockerDeclaration.hs
@@ -2,7 +2,7 @@
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE TupleSections #-}
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-blockerdeclaration.html
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-blockers.html
 
 module Stratosphere.ResourceProperties.CodePipelinePipelineBlockerDeclaration where
 
@@ -45,10 +45,10 @@
   , _codePipelinePipelineBlockerDeclarationType = typearg
   }
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-blockerdeclaration.html#cfn-codepipeline-pipeline-blockerdeclaration-name
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-blockers.html#cfn-codepipeline-pipeline-stages-blockers-name
 cppbdName :: Lens' CodePipelinePipelineBlockerDeclaration (Val Text)
 cppbdName = lens _codePipelinePipelineBlockerDeclarationName (\s a -> s { _codePipelinePipelineBlockerDeclarationName = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-blockerdeclaration.html#cfn-codepipeline-pipeline-blockerdeclaration-type
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-blockers.html#cfn-codepipeline-pipeline-stages-blockers-type
 cppbdType :: Lens' CodePipelinePipelineBlockerDeclaration (Val Text)
 cppbdType = lens _codePipelinePipelineBlockerDeclarationType (\s a -> s { _codePipelinePipelineBlockerDeclarationType = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/CodePipelinePipelineEncryptionKey.hs b/library-gen/Stratosphere/ResourceProperties/CodePipelinePipelineEncryptionKey.hs
--- a/library-gen/Stratosphere/ResourceProperties/CodePipelinePipelineEncryptionKey.hs
+++ b/library-gen/Stratosphere/ResourceProperties/CodePipelinePipelineEncryptionKey.hs
@@ -2,7 +2,7 @@
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE TupleSections #-}
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-encryptionkey.html
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstore-encryptionkey.html
 
 module Stratosphere.ResourceProperties.CodePipelinePipelineEncryptionKey where
 
@@ -44,10 +44,10 @@
   , _codePipelinePipelineEncryptionKeyType = typearg
   }
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-encryptionkey.html#cfn-codepipeline-pipeline-encryptionkey-id
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstore-encryptionkey.html#cfn-codepipeline-pipeline-artifactstore-encryptionkey-id
 cppekId :: Lens' CodePipelinePipelineEncryptionKey (Val Text)
 cppekId = lens _codePipelinePipelineEncryptionKeyId (\s a -> s { _codePipelinePipelineEncryptionKeyId = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-encryptionkey.html#cfn-codepipeline-pipeline-encryptionkey-type
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstore-encryptionkey.html#cfn-codepipeline-pipeline-artifactstore-encryptionkey-type
 cppekType :: Lens' CodePipelinePipelineEncryptionKey (Val Text)
 cppekType = lens _codePipelinePipelineEncryptionKeyType (\s a -> s { _codePipelinePipelineEncryptionKeyType = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/CodePipelinePipelineInputArtifact.hs b/library-gen/Stratosphere/ResourceProperties/CodePipelinePipelineInputArtifact.hs
--- a/library-gen/Stratosphere/ResourceProperties/CodePipelinePipelineInputArtifact.hs
+++ b/library-gen/Stratosphere/ResourceProperties/CodePipelinePipelineInputArtifact.hs
@@ -2,7 +2,7 @@
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE TupleSections #-}
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-inputartifact.html
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-inputartifacts.html
 
 module Stratosphere.ResourceProperties.CodePipelinePipelineInputArtifact where
 
@@ -39,6 +39,6 @@
   { _codePipelinePipelineInputArtifactName = namearg
   }
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-inputartifact.html#cfn-codepipeline-pipeline-inputartifact-name
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-inputartifacts.html#cfn-codepipeline-pipeline-stages-actions-inputartifacts-name
 cppiaName :: Lens' CodePipelinePipelineInputArtifact (Val Text)
 cppiaName = lens _codePipelinePipelineInputArtifactName (\s a -> s { _codePipelinePipelineInputArtifactName = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/CodePipelinePipelineOutputArtifact.hs b/library-gen/Stratosphere/ResourceProperties/CodePipelinePipelineOutputArtifact.hs
--- a/library-gen/Stratosphere/ResourceProperties/CodePipelinePipelineOutputArtifact.hs
+++ b/library-gen/Stratosphere/ResourceProperties/CodePipelinePipelineOutputArtifact.hs
@@ -2,7 +2,7 @@
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE TupleSections #-}
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-outputartifact.html
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-outputartifacts.html
 
 module Stratosphere.ResourceProperties.CodePipelinePipelineOutputArtifact where
 
@@ -39,6 +39,6 @@
   { _codePipelinePipelineOutputArtifactName = namearg
   }
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-outputartifact.html#cfn-codepipeline-pipeline-outputartifact-name
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-outputartifacts.html#cfn-codepipeline-pipeline-stages-actions-outputartifacts-name
 cppoaName :: Lens' CodePipelinePipelineOutputArtifact (Val Text)
 cppoaName = lens _codePipelinePipelineOutputArtifactName (\s a -> s { _codePipelinePipelineOutputArtifactName = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/CodePipelinePipelineStageDeclaration.hs b/library-gen/Stratosphere/ResourceProperties/CodePipelinePipelineStageDeclaration.hs
--- a/library-gen/Stratosphere/ResourceProperties/CodePipelinePipelineStageDeclaration.hs
+++ b/library-gen/Stratosphere/ResourceProperties/CodePipelinePipelineStageDeclaration.hs
@@ -2,7 +2,7 @@
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE TupleSections #-}
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stagedeclaration.html
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages.html
 
 module Stratosphere.ResourceProperties.CodePipelinePipelineStageDeclaration where
 
@@ -49,14 +49,14 @@
   , _codePipelinePipelineStageDeclarationName = namearg
   }
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stagedeclaration.html#cfn-codepipeline-pipeline-stagedeclaration-actions
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages.html#cfn-codepipeline-pipeline-stages-actions
 cppsdActions :: Lens' CodePipelinePipelineStageDeclaration [CodePipelinePipelineActionDeclaration]
 cppsdActions = lens _codePipelinePipelineStageDeclarationActions (\s a -> s { _codePipelinePipelineStageDeclarationActions = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stagedeclaration.html#cfn-codepipeline-pipeline-stagedeclaration-blockers
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages.html#cfn-codepipeline-pipeline-stages-blockers
 cppsdBlockers :: Lens' CodePipelinePipelineStageDeclaration (Maybe [CodePipelinePipelineBlockerDeclaration])
 cppsdBlockers = lens _codePipelinePipelineStageDeclarationBlockers (\s a -> s { _codePipelinePipelineStageDeclarationBlockers = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stagedeclaration.html#cfn-codepipeline-pipeline-stagedeclaration-name
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages.html#cfn-codepipeline-pipeline-stages-name
 cppsdName :: Lens' CodePipelinePipelineStageDeclaration (Val Text)
 cppsdName = lens _codePipelinePipelineStageDeclarationName (\s a -> s { _codePipelinePipelineStageDeclarationName = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/CodePipelinePipelineStageTransition.hs b/library-gen/Stratosphere/ResourceProperties/CodePipelinePipelineStageTransition.hs
--- a/library-gen/Stratosphere/ResourceProperties/CodePipelinePipelineStageTransition.hs
+++ b/library-gen/Stratosphere/ResourceProperties/CodePipelinePipelineStageTransition.hs
@@ -2,7 +2,7 @@
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE TupleSections #-}
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stagetransition.html
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-disableinboundstagetransitions.html
 
 module Stratosphere.ResourceProperties.CodePipelinePipelineStageTransition where
 
@@ -44,10 +44,10 @@
   , _codePipelinePipelineStageTransitionStageName = stageNamearg
   }
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stagetransition.html#cfn-codepipeline-pipeline-stagetransition-reason
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-disableinboundstagetransitions.html#cfn-codepipeline-pipeline-disableinboundstagetransitions-reason
 cppstReason :: Lens' CodePipelinePipelineStageTransition (Val Text)
 cppstReason = lens _codePipelinePipelineStageTransitionReason (\s a -> s { _codePipelinePipelineStageTransitionReason = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stagetransition.html#cfn-codepipeline-pipeline-stagetransition-stagename
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-disableinboundstagetransitions.html#cfn-codepipeline-pipeline-disableinboundstagetransitions-stagename
 cppstStageName :: Lens' CodePipelinePipelineStageTransition (Val Text)
 cppstStageName = lens _codePipelinePipelineStageTransitionStageName (\s a -> s { _codePipelinePipelineStageTransitionStageName = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/EC2SpotFleetSpotFleetLaunchSpecification.hs b/library-gen/Stratosphere/ResourceProperties/EC2SpotFleetSpotFleetLaunchSpecification.hs
--- a/library-gen/Stratosphere/ResourceProperties/EC2SpotFleetSpotFleetLaunchSpecification.hs
+++ b/library-gen/Stratosphere/ResourceProperties/EC2SpotFleetSpotFleetLaunchSpecification.hs
@@ -13,6 +13,7 @@
 import Stratosphere.ResourceProperties.EC2SpotFleetInstanceNetworkInterfaceSpecification
 import Stratosphere.ResourceProperties.EC2SpotFleetSpotPlacement
 import Stratosphere.ResourceProperties.EC2SpotFleetGroupIdentifier
+import Stratosphere.ResourceProperties.EC2SpotFleetSpotFleetTagSpecification
 
 -- | Full data type definition for EC2SpotFleetSpotFleetLaunchSpecification.
 -- See 'ec2SpotFleetSpotFleetLaunchSpecification' for a more convenient
@@ -33,6 +34,7 @@
   , _eC2SpotFleetSpotFleetLaunchSpecificationSecurityGroups :: Maybe [EC2SpotFleetGroupIdentifier]
   , _eC2SpotFleetSpotFleetLaunchSpecificationSpotPrice :: Maybe (Val Text)
   , _eC2SpotFleetSpotFleetLaunchSpecificationSubnetId :: Maybe (Val Text)
+  , _eC2SpotFleetSpotFleetLaunchSpecificationTagSpecifications :: Maybe [EC2SpotFleetSpotFleetTagSpecification]
   , _eC2SpotFleetSpotFleetLaunchSpecificationUserData :: Maybe (Val Text)
   , _eC2SpotFleetSpotFleetLaunchSpecificationWeightedCapacity :: Maybe (Val Double)
   } deriving (Show, Eq)
@@ -55,6 +57,7 @@
     , fmap (("SecurityGroups",) . toJSON) _eC2SpotFleetSpotFleetLaunchSpecificationSecurityGroups
     , fmap (("SpotPrice",) . toJSON) _eC2SpotFleetSpotFleetLaunchSpecificationSpotPrice
     , fmap (("SubnetId",) . toJSON) _eC2SpotFleetSpotFleetLaunchSpecificationSubnetId
+    , fmap (("TagSpecifications",) . toJSON) _eC2SpotFleetSpotFleetLaunchSpecificationTagSpecifications
     , fmap (("UserData",) . toJSON) _eC2SpotFleetSpotFleetLaunchSpecificationUserData
     , fmap (("WeightedCapacity",) . toJSON . fmap Double') _eC2SpotFleetSpotFleetLaunchSpecificationWeightedCapacity
     ]
@@ -76,6 +79,7 @@
       (obj .:? "SecurityGroups") <*>
       (obj .:? "SpotPrice") <*>
       (obj .:? "SubnetId") <*>
+      (obj .:? "TagSpecifications") <*>
       (obj .:? "UserData") <*>
       fmap (fmap (fmap unDouble')) (obj .:? "WeightedCapacity")
   parseJSON _ = mempty
@@ -102,6 +106,7 @@
   , _eC2SpotFleetSpotFleetLaunchSpecificationSecurityGroups = Nothing
   , _eC2SpotFleetSpotFleetLaunchSpecificationSpotPrice = Nothing
   , _eC2SpotFleetSpotFleetLaunchSpecificationSubnetId = Nothing
+  , _eC2SpotFleetSpotFleetLaunchSpecificationTagSpecifications = Nothing
   , _eC2SpotFleetSpotFleetLaunchSpecificationUserData = Nothing
   , _eC2SpotFleetSpotFleetLaunchSpecificationWeightedCapacity = Nothing
   }
@@ -161,6 +166,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-subnetid
 ecsfsflsSubnetId :: Lens' EC2SpotFleetSpotFleetLaunchSpecification (Maybe (Val Text))
 ecsfsflsSubnetId = lens _eC2SpotFleetSpotFleetLaunchSpecificationSubnetId (\s a -> s { _eC2SpotFleetSpotFleetLaunchSpecificationSubnetId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-tagspecifications
+ecsfsflsTagSpecifications :: Lens' EC2SpotFleetSpotFleetLaunchSpecification (Maybe [EC2SpotFleetSpotFleetTagSpecification])
+ecsfsflsTagSpecifications = lens _eC2SpotFleetSpotFleetLaunchSpecificationTagSpecifications (\s a -> s { _eC2SpotFleetSpotFleetLaunchSpecificationTagSpecifications = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-userdata
 ecsfsflsUserData :: Lens' EC2SpotFleetSpotFleetLaunchSpecification (Maybe (Val Text))
diff --git a/library-gen/Stratosphere/ResourceProperties/EC2SpotFleetSpotFleetTagSpecification.hs b/library-gen/Stratosphere/ResourceProperties/EC2SpotFleetSpotFleetTagSpecification.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/EC2SpotFleetSpotFleetTagSpecification.hs
@@ -0,0 +1,44 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-tagspecifications.html
+
+module Stratosphere.ResourceProperties.EC2SpotFleetSpotFleetTagSpecification where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for EC2SpotFleetSpotFleetTagSpecification. See
+-- 'ec2SpotFleetSpotFleetTagSpecification' for a more convenient
+-- constructor.
+data EC2SpotFleetSpotFleetTagSpecification =
+  EC2SpotFleetSpotFleetTagSpecification
+  { _eC2SpotFleetSpotFleetTagSpecificationResourceType :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON EC2SpotFleetSpotFleetTagSpecification where
+  toJSON EC2SpotFleetSpotFleetTagSpecification{..} =
+    object $
+    catMaybes
+    [ fmap (("ResourceType",) . toJSON) _eC2SpotFleetSpotFleetTagSpecificationResourceType
+    ]
+
+instance FromJSON EC2SpotFleetSpotFleetTagSpecification where
+  parseJSON (Object obj) =
+    EC2SpotFleetSpotFleetTagSpecification <$>
+      (obj .:? "ResourceType")
+  parseJSON _ = mempty
+
+-- | Constructor for 'EC2SpotFleetSpotFleetTagSpecification' containing
+-- required fields as arguments.
+ec2SpotFleetSpotFleetTagSpecification
+  :: EC2SpotFleetSpotFleetTagSpecification
+ec2SpotFleetSpotFleetTagSpecification  =
+  EC2SpotFleetSpotFleetTagSpecification
+  { _eC2SpotFleetSpotFleetTagSpecificationResourceType = 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 })
diff --git a/library-gen/Stratosphere/ResourceProperties/Route53HealthCheckHealthCheckConfig.hs b/library-gen/Stratosphere/ResourceProperties/Route53HealthCheckHealthCheckConfig.hs
--- a/library-gen/Stratosphere/ResourceProperties/Route53HealthCheckHealthCheckConfig.hs
+++ b/library-gen/Stratosphere/ResourceProperties/Route53HealthCheckHealthCheckConfig.hs
@@ -24,6 +24,7 @@
   , _route53HealthCheckHealthCheckConfigInverted :: Maybe (Val Bool)
   , _route53HealthCheckHealthCheckConfigMeasureLatency :: Maybe (Val Bool)
   , _route53HealthCheckHealthCheckConfigPort :: Maybe (Val Integer)
+  , _route53HealthCheckHealthCheckConfigRegions :: Maybe (ValList Text)
   , _route53HealthCheckHealthCheckConfigRequestInterval :: Maybe (Val Integer)
   , _route53HealthCheckHealthCheckConfigResourcePath :: Maybe (Val Text)
   , _route53HealthCheckHealthCheckConfigSearchString :: Maybe (Val Text)
@@ -45,6 +46,7 @@
     , fmap (("Inverted",) . toJSON . fmap Bool') _route53HealthCheckHealthCheckConfigInverted
     , fmap (("MeasureLatency",) . toJSON . fmap Bool') _route53HealthCheckHealthCheckConfigMeasureLatency
     , fmap (("Port",) . toJSON . fmap Integer') _route53HealthCheckHealthCheckConfigPort
+    , fmap (("Regions",) . toJSON) _route53HealthCheckHealthCheckConfigRegions
     , fmap (("RequestInterval",) . toJSON . fmap Integer') _route53HealthCheckHealthCheckConfigRequestInterval
     , fmap (("ResourcePath",) . toJSON) _route53HealthCheckHealthCheckConfigResourcePath
     , fmap (("SearchString",) . toJSON) _route53HealthCheckHealthCheckConfigSearchString
@@ -65,6 +67,7 @@
       fmap (fmap (fmap unBool')) (obj .:? "Inverted") <*>
       fmap (fmap (fmap unBool')) (obj .:? "MeasureLatency") <*>
       fmap (fmap (fmap unInteger')) (obj .:? "Port") <*>
+      (obj .:? "Regions") <*>
       fmap (fmap (fmap unInteger')) (obj .:? "RequestInterval") <*>
       (obj .:? "ResourcePath") <*>
       (obj .:? "SearchString") <*>
@@ -89,6 +92,7 @@
   , _route53HealthCheckHealthCheckConfigInverted = Nothing
   , _route53HealthCheckHealthCheckConfigMeasureLatency = Nothing
   , _route53HealthCheckHealthCheckConfigPort = Nothing
+  , _route53HealthCheckHealthCheckConfigRegions = Nothing
   , _route53HealthCheckHealthCheckConfigRequestInterval = Nothing
   , _route53HealthCheckHealthCheckConfigResourcePath = Nothing
   , _route53HealthCheckHealthCheckConfigSearchString = Nothing
@@ -138,6 +142,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthcheckconfig.html#cfn-route53-healthcheck-healthcheckconfig-port
 rhchccPort :: Lens' Route53HealthCheckHealthCheckConfig (Maybe (Val Integer))
 rhchccPort = lens _route53HealthCheckHealthCheckConfigPort (\s a -> s { _route53HealthCheckHealthCheckConfigPort = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthcheckconfig.html#cfn-route53-healthcheck-healthcheckconfig-regions
+rhchccRegions :: Lens' Route53HealthCheckHealthCheckConfig (Maybe (ValList Text))
+rhchccRegions = lens _route53HealthCheckHealthCheckConfigRegions (\s a -> s { _route53HealthCheckHealthCheckConfigRegions = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthcheckconfig.html#cfn-route53-healthcheck-healthcheckconfig-requestinterval
 rhchccRequestInterval :: Lens' Route53HealthCheckHealthCheckConfig (Maybe (Val Integer))
diff --git a/library-gen/Stratosphere/ResourceProperties/SESConfigurationSetEventDestinationCloudWatchDestination.hs b/library-gen/Stratosphere/ResourceProperties/SESConfigurationSetEventDestinationCloudWatchDestination.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/SESConfigurationSetEventDestinationCloudWatchDestination.hs
@@ -0,0 +1,46 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-cloudwatchdestination.html
+
+module Stratosphere.ResourceProperties.SESConfigurationSetEventDestinationCloudWatchDestination where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.SESConfigurationSetEventDestinationDimensionConfiguration
+
+-- | Full data type definition for
+-- SESConfigurationSetEventDestinationCloudWatchDestination. See
+-- 'sesConfigurationSetEventDestinationCloudWatchDestination' for a more
+-- convenient constructor.
+data SESConfigurationSetEventDestinationCloudWatchDestination =
+  SESConfigurationSetEventDestinationCloudWatchDestination
+  { _sESConfigurationSetEventDestinationCloudWatchDestinationDimensionConfigurations :: Maybe [SESConfigurationSetEventDestinationDimensionConfiguration]
+  } deriving (Show, Eq)
+
+instance ToJSON SESConfigurationSetEventDestinationCloudWatchDestination where
+  toJSON SESConfigurationSetEventDestinationCloudWatchDestination{..} =
+    object $
+    catMaybes
+    [ fmap (("DimensionConfigurations",) . toJSON) _sESConfigurationSetEventDestinationCloudWatchDestinationDimensionConfigurations
+    ]
+
+instance FromJSON SESConfigurationSetEventDestinationCloudWatchDestination where
+  parseJSON (Object obj) =
+    SESConfigurationSetEventDestinationCloudWatchDestination <$>
+      (obj .:? "DimensionConfigurations")
+  parseJSON _ = mempty
+
+-- | Constructor for
+-- 'SESConfigurationSetEventDestinationCloudWatchDestination' containing
+-- required fields as arguments.
+sesConfigurationSetEventDestinationCloudWatchDestination
+  :: SESConfigurationSetEventDestinationCloudWatchDestination
+sesConfigurationSetEventDestinationCloudWatchDestination  =
+  SESConfigurationSetEventDestinationCloudWatchDestination
+  { _sESConfigurationSetEventDestinationCloudWatchDestinationDimensionConfigurations = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-cloudwatchdestination.html#cfn-ses-configurationseteventdestination-cloudwatchdestination-dimensionconfigurations
+sescsedcwdDimensionConfigurations :: Lens' SESConfigurationSetEventDestinationCloudWatchDestination (Maybe [SESConfigurationSetEventDestinationDimensionConfiguration])
+sescsedcwdDimensionConfigurations = lens _sESConfigurationSetEventDestinationCloudWatchDestinationDimensionConfigurations (\s a -> s { _sESConfigurationSetEventDestinationCloudWatchDestinationDimensionConfigurations = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/SESConfigurationSetEventDestinationDimensionConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/SESConfigurationSetEventDestinationDimensionConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/SESConfigurationSetEventDestinationDimensionConfiguration.hs
@@ -0,0 +1,65 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-dimensionconfiguration.html
+
+module Stratosphere.ResourceProperties.SESConfigurationSetEventDestinationDimensionConfiguration where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- SESConfigurationSetEventDestinationDimensionConfiguration. See
+-- 'sesConfigurationSetEventDestinationDimensionConfiguration' for a more
+-- convenient constructor.
+data SESConfigurationSetEventDestinationDimensionConfiguration =
+  SESConfigurationSetEventDestinationDimensionConfiguration
+  { _sESConfigurationSetEventDestinationDimensionConfigurationDefaultDimensionValue :: Val Text
+  , _sESConfigurationSetEventDestinationDimensionConfigurationDimensionName :: Val Text
+  , _sESConfigurationSetEventDestinationDimensionConfigurationDimensionValueSource :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON SESConfigurationSetEventDestinationDimensionConfiguration where
+  toJSON SESConfigurationSetEventDestinationDimensionConfiguration{..} =
+    object $
+    catMaybes
+    [ (Just . ("DefaultDimensionValue",) . toJSON) _sESConfigurationSetEventDestinationDimensionConfigurationDefaultDimensionValue
+    , (Just . ("DimensionName",) . toJSON) _sESConfigurationSetEventDestinationDimensionConfigurationDimensionName
+    , (Just . ("DimensionValueSource",) . toJSON) _sESConfigurationSetEventDestinationDimensionConfigurationDimensionValueSource
+    ]
+
+instance FromJSON SESConfigurationSetEventDestinationDimensionConfiguration where
+  parseJSON (Object obj) =
+    SESConfigurationSetEventDestinationDimensionConfiguration <$>
+      (obj .: "DefaultDimensionValue") <*>
+      (obj .: "DimensionName") <*>
+      (obj .: "DimensionValueSource")
+  parseJSON _ = mempty
+
+-- | Constructor for
+-- 'SESConfigurationSetEventDestinationDimensionConfiguration' containing
+-- required fields as arguments.
+sesConfigurationSetEventDestinationDimensionConfiguration
+  :: Val Text -- ^ 'sescseddcDefaultDimensionValue'
+  -> Val Text -- ^ 'sescseddcDimensionName'
+  -> Val Text -- ^ 'sescseddcDimensionValueSource'
+  -> SESConfigurationSetEventDestinationDimensionConfiguration
+sesConfigurationSetEventDestinationDimensionConfiguration defaultDimensionValuearg dimensionNamearg dimensionValueSourcearg =
+  SESConfigurationSetEventDestinationDimensionConfiguration
+  { _sESConfigurationSetEventDestinationDimensionConfigurationDefaultDimensionValue = defaultDimensionValuearg
+  , _sESConfigurationSetEventDestinationDimensionConfigurationDimensionName = dimensionNamearg
+  , _sESConfigurationSetEventDestinationDimensionConfigurationDimensionValueSource = dimensionValueSourcearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-dimensionconfiguration.html#cfn-ses-configurationseteventdestination-dimensionconfiguration-defaultdimensionvalue
+sescseddcDefaultDimensionValue :: Lens' SESConfigurationSetEventDestinationDimensionConfiguration (Val Text)
+sescseddcDefaultDimensionValue = lens _sESConfigurationSetEventDestinationDimensionConfigurationDefaultDimensionValue (\s a -> s { _sESConfigurationSetEventDestinationDimensionConfigurationDefaultDimensionValue = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-dimensionconfiguration.html#cfn-ses-configurationseteventdestination-dimensionconfiguration-dimensionname
+sescseddcDimensionName :: Lens' SESConfigurationSetEventDestinationDimensionConfiguration (Val Text)
+sescseddcDimensionName = lens _sESConfigurationSetEventDestinationDimensionConfigurationDimensionName (\s a -> s { _sESConfigurationSetEventDestinationDimensionConfigurationDimensionName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-dimensionconfiguration.html#cfn-ses-configurationseteventdestination-dimensionconfiguration-dimensionvaluesource
+sescseddcDimensionValueSource :: Lens' SESConfigurationSetEventDestinationDimensionConfiguration (Val Text)
+sescseddcDimensionValueSource = lens _sESConfigurationSetEventDestinationDimensionConfigurationDimensionValueSource (\s a -> s { _sESConfigurationSetEventDestinationDimensionConfigurationDimensionValueSource = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/SESConfigurationSetEventDestinationEventDestination.hs b/library-gen/Stratosphere/ResourceProperties/SESConfigurationSetEventDestinationEventDestination.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/SESConfigurationSetEventDestinationEventDestination.hs
@@ -0,0 +1,79 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-eventdestination.html
+
+module Stratosphere.ResourceProperties.SESConfigurationSetEventDestinationEventDestination where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.SESConfigurationSetEventDestinationCloudWatchDestination
+import Stratosphere.ResourceProperties.SESConfigurationSetEventDestinationKinesisFirehoseDestination
+
+-- | Full data type definition for
+-- SESConfigurationSetEventDestinationEventDestination. See
+-- 'sesConfigurationSetEventDestinationEventDestination' for a more
+-- convenient constructor.
+data SESConfigurationSetEventDestinationEventDestination =
+  SESConfigurationSetEventDestinationEventDestination
+  { _sESConfigurationSetEventDestinationEventDestinationCloudWatchDestination :: Maybe SESConfigurationSetEventDestinationCloudWatchDestination
+  , _sESConfigurationSetEventDestinationEventDestinationEnabled :: Maybe (Val Bool)
+  , _sESConfigurationSetEventDestinationEventDestinationKinesisFirehoseDestination :: Maybe SESConfigurationSetEventDestinationKinesisFirehoseDestination
+  , _sESConfigurationSetEventDestinationEventDestinationMatchingEventTypes :: ValList Text
+  , _sESConfigurationSetEventDestinationEventDestinationName :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON SESConfigurationSetEventDestinationEventDestination where
+  toJSON SESConfigurationSetEventDestinationEventDestination{..} =
+    object $
+    catMaybes
+    [ fmap (("CloudWatchDestination",) . toJSON) _sESConfigurationSetEventDestinationEventDestinationCloudWatchDestination
+    , fmap (("Enabled",) . toJSON . fmap Bool') _sESConfigurationSetEventDestinationEventDestinationEnabled
+    , fmap (("KinesisFirehoseDestination",) . toJSON) _sESConfigurationSetEventDestinationEventDestinationKinesisFirehoseDestination
+    , (Just . ("MatchingEventTypes",) . toJSON) _sESConfigurationSetEventDestinationEventDestinationMatchingEventTypes
+    , fmap (("Name",) . toJSON) _sESConfigurationSetEventDestinationEventDestinationName
+    ]
+
+instance FromJSON SESConfigurationSetEventDestinationEventDestination where
+  parseJSON (Object obj) =
+    SESConfigurationSetEventDestinationEventDestination <$>
+      (obj .:? "CloudWatchDestination") <*>
+      fmap (fmap (fmap unBool')) (obj .:? "Enabled") <*>
+      (obj .:? "KinesisFirehoseDestination") <*>
+      (obj .: "MatchingEventTypes") <*>
+      (obj .:? "Name")
+  parseJSON _ = mempty
+
+-- | Constructor for 'SESConfigurationSetEventDestinationEventDestination'
+-- containing required fields as arguments.
+sesConfigurationSetEventDestinationEventDestination
+  :: ValList Text -- ^ 'sescsededMatchingEventTypes'
+  -> SESConfigurationSetEventDestinationEventDestination
+sesConfigurationSetEventDestinationEventDestination matchingEventTypesarg =
+  SESConfigurationSetEventDestinationEventDestination
+  { _sESConfigurationSetEventDestinationEventDestinationCloudWatchDestination = Nothing
+  , _sESConfigurationSetEventDestinationEventDestinationEnabled = Nothing
+  , _sESConfigurationSetEventDestinationEventDestinationKinesisFirehoseDestination = Nothing
+  , _sESConfigurationSetEventDestinationEventDestinationMatchingEventTypes = matchingEventTypesarg
+  , _sESConfigurationSetEventDestinationEventDestinationName = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-eventdestination.html#cfn-ses-configurationseteventdestination-eventdestination-cloudwatchdestination
+sescsededCloudWatchDestination :: Lens' SESConfigurationSetEventDestinationEventDestination (Maybe SESConfigurationSetEventDestinationCloudWatchDestination)
+sescsededCloudWatchDestination = lens _sESConfigurationSetEventDestinationEventDestinationCloudWatchDestination (\s a -> s { _sESConfigurationSetEventDestinationEventDestinationCloudWatchDestination = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-eventdestination.html#cfn-ses-configurationseteventdestination-eventdestination-enabled
+sescsededEnabled :: Lens' SESConfigurationSetEventDestinationEventDestination (Maybe (Val Bool))
+sescsededEnabled = lens _sESConfigurationSetEventDestinationEventDestinationEnabled (\s a -> s { _sESConfigurationSetEventDestinationEventDestinationEnabled = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-eventdestination.html#cfn-ses-configurationseteventdestination-eventdestination-kinesisfirehosedestination
+sescsededKinesisFirehoseDestination :: Lens' SESConfigurationSetEventDestinationEventDestination (Maybe SESConfigurationSetEventDestinationKinesisFirehoseDestination)
+sescsededKinesisFirehoseDestination = lens _sESConfigurationSetEventDestinationEventDestinationKinesisFirehoseDestination (\s a -> s { _sESConfigurationSetEventDestinationEventDestinationKinesisFirehoseDestination = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-eventdestination.html#cfn-ses-configurationseteventdestination-eventdestination-matchingeventtypes
+sescsededMatchingEventTypes :: Lens' SESConfigurationSetEventDestinationEventDestination (ValList Text)
+sescsededMatchingEventTypes = lens _sESConfigurationSetEventDestinationEventDestinationMatchingEventTypes (\s a -> s { _sESConfigurationSetEventDestinationEventDestinationMatchingEventTypes = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-eventdestination.html#cfn-ses-configurationseteventdestination-eventdestination-name
+sescsededName :: Lens' SESConfigurationSetEventDestinationEventDestination (Maybe (Val Text))
+sescsededName = lens _sESConfigurationSetEventDestinationEventDestinationName (\s a -> s { _sESConfigurationSetEventDestinationEventDestinationName = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/SESConfigurationSetEventDestinationKinesisFirehoseDestination.hs b/library-gen/Stratosphere/ResourceProperties/SESConfigurationSetEventDestinationKinesisFirehoseDestination.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/SESConfigurationSetEventDestinationKinesisFirehoseDestination.hs
@@ -0,0 +1,56 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-kinesisfirehosedestination.html
+
+module Stratosphere.ResourceProperties.SESConfigurationSetEventDestinationKinesisFirehoseDestination where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- SESConfigurationSetEventDestinationKinesisFirehoseDestination. See
+-- 'sesConfigurationSetEventDestinationKinesisFirehoseDestination' for a
+-- more convenient constructor.
+data SESConfigurationSetEventDestinationKinesisFirehoseDestination =
+  SESConfigurationSetEventDestinationKinesisFirehoseDestination
+  { _sESConfigurationSetEventDestinationKinesisFirehoseDestinationDeliveryStreamARN :: Val Text
+  , _sESConfigurationSetEventDestinationKinesisFirehoseDestinationIAMRoleARN :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON SESConfigurationSetEventDestinationKinesisFirehoseDestination where
+  toJSON SESConfigurationSetEventDestinationKinesisFirehoseDestination{..} =
+    object $
+    catMaybes
+    [ (Just . ("DeliveryStreamARN",) . toJSON) _sESConfigurationSetEventDestinationKinesisFirehoseDestinationDeliveryStreamARN
+    , (Just . ("IAMRoleARN",) . toJSON) _sESConfigurationSetEventDestinationKinesisFirehoseDestinationIAMRoleARN
+    ]
+
+instance FromJSON SESConfigurationSetEventDestinationKinesisFirehoseDestination where
+  parseJSON (Object obj) =
+    SESConfigurationSetEventDestinationKinesisFirehoseDestination <$>
+      (obj .: "DeliveryStreamARN") <*>
+      (obj .: "IAMRoleARN")
+  parseJSON _ = mempty
+
+-- | Constructor for
+-- 'SESConfigurationSetEventDestinationKinesisFirehoseDestination'
+-- containing required fields as arguments.
+sesConfigurationSetEventDestinationKinesisFirehoseDestination
+  :: Val Text -- ^ 'sescsedkfdDeliveryStreamARN'
+  -> Val Text -- ^ 'sescsedkfdIAMRoleARN'
+  -> SESConfigurationSetEventDestinationKinesisFirehoseDestination
+sesConfigurationSetEventDestinationKinesisFirehoseDestination deliveryStreamARNarg iAMRoleARNarg =
+  SESConfigurationSetEventDestinationKinesisFirehoseDestination
+  { _sESConfigurationSetEventDestinationKinesisFirehoseDestinationDeliveryStreamARN = deliveryStreamARNarg
+  , _sESConfigurationSetEventDestinationKinesisFirehoseDestinationIAMRoleARN = iAMRoleARNarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-kinesisfirehosedestination.html#cfn-ses-configurationseteventdestination-kinesisfirehosedestination-deliverystreamarn
+sescsedkfdDeliveryStreamARN :: Lens' SESConfigurationSetEventDestinationKinesisFirehoseDestination (Val Text)
+sescsedkfdDeliveryStreamARN = lens _sESConfigurationSetEventDestinationKinesisFirehoseDestinationDeliveryStreamARN (\s a -> s { _sESConfigurationSetEventDestinationKinesisFirehoseDestinationDeliveryStreamARN = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-kinesisfirehosedestination.html#cfn-ses-configurationseteventdestination-kinesisfirehosedestination-iamrolearn
+sescsedkfdIAMRoleARN :: Lens' SESConfigurationSetEventDestinationKinesisFirehoseDestination (Val Text)
+sescsedkfdIAMRoleARN = lens _sESConfigurationSetEventDestinationKinesisFirehoseDestinationIAMRoleARN (\s a -> s { _sESConfigurationSetEventDestinationKinesisFirehoseDestinationIAMRoleARN = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/SESReceiptFilterFilter.hs b/library-gen/Stratosphere/ResourceProperties/SESReceiptFilterFilter.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/SESReceiptFilterFilter.hs
@@ -0,0 +1,52 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptfilter-filter.html
+
+module Stratosphere.ResourceProperties.SESReceiptFilterFilter where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.SESReceiptFilterIpFilter
+
+-- | Full data type definition for SESReceiptFilterFilter. See
+-- 'sesReceiptFilterFilter' for a more convenient constructor.
+data SESReceiptFilterFilter =
+  SESReceiptFilterFilter
+  { _sESReceiptFilterFilterIpFilter :: SESReceiptFilterIpFilter
+  , _sESReceiptFilterFilterName :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON SESReceiptFilterFilter where
+  toJSON SESReceiptFilterFilter{..} =
+    object $
+    catMaybes
+    [ (Just . ("IpFilter",) . toJSON) _sESReceiptFilterFilterIpFilter
+    , fmap (("Name",) . toJSON) _sESReceiptFilterFilterName
+    ]
+
+instance FromJSON SESReceiptFilterFilter where
+  parseJSON (Object obj) =
+    SESReceiptFilterFilter <$>
+      (obj .: "IpFilter") <*>
+      (obj .:? "Name")
+  parseJSON _ = mempty
+
+-- | Constructor for 'SESReceiptFilterFilter' containing required fields as
+-- arguments.
+sesReceiptFilterFilter
+  :: SESReceiptFilterIpFilter -- ^ 'sesrffIpFilter'
+  -> SESReceiptFilterFilter
+sesReceiptFilterFilter ipFilterarg =
+  SESReceiptFilterFilter
+  { _sESReceiptFilterFilterIpFilter = ipFilterarg
+  , _sESReceiptFilterFilterName = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptfilter-filter.html#cfn-ses-receiptfilter-filter-ipfilter
+sesrffIpFilter :: Lens' SESReceiptFilterFilter SESReceiptFilterIpFilter
+sesrffIpFilter = lens _sESReceiptFilterFilterIpFilter (\s a -> s { _sESReceiptFilterFilterIpFilter = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptfilter-filter.html#cfn-ses-receiptfilter-filter-name
+sesrffName :: Lens' SESReceiptFilterFilter (Maybe (Val Text))
+sesrffName = lens _sESReceiptFilterFilterName (\s a -> s { _sESReceiptFilterFilterName = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/SESReceiptFilterIpFilter.hs b/library-gen/Stratosphere/ResourceProperties/SESReceiptFilterIpFilter.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/SESReceiptFilterIpFilter.hs
@@ -0,0 +1,53 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptfilter-ipfilter.html
+
+module Stratosphere.ResourceProperties.SESReceiptFilterIpFilter where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for SESReceiptFilterIpFilter. See
+-- 'sesReceiptFilterIpFilter' for a more convenient constructor.
+data SESReceiptFilterIpFilter =
+  SESReceiptFilterIpFilter
+  { _sESReceiptFilterIpFilterCidr :: Val Text
+  , _sESReceiptFilterIpFilterPolicy :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON SESReceiptFilterIpFilter where
+  toJSON SESReceiptFilterIpFilter{..} =
+    object $
+    catMaybes
+    [ (Just . ("Cidr",) . toJSON) _sESReceiptFilterIpFilterCidr
+    , (Just . ("Policy",) . toJSON) _sESReceiptFilterIpFilterPolicy
+    ]
+
+instance FromJSON SESReceiptFilterIpFilter where
+  parseJSON (Object obj) =
+    SESReceiptFilterIpFilter <$>
+      (obj .: "Cidr") <*>
+      (obj .: "Policy")
+  parseJSON _ = mempty
+
+-- | Constructor for 'SESReceiptFilterIpFilter' containing required fields as
+-- arguments.
+sesReceiptFilterIpFilter
+  :: Val Text -- ^ 'sesrfifCidr'
+  -> Val Text -- ^ 'sesrfifPolicy'
+  -> SESReceiptFilterIpFilter
+sesReceiptFilterIpFilter cidrarg policyarg =
+  SESReceiptFilterIpFilter
+  { _sESReceiptFilterIpFilterCidr = cidrarg
+  , _sESReceiptFilterIpFilterPolicy = policyarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptfilter-ipfilter.html#cfn-ses-receiptfilter-ipfilter-cidr
+sesrfifCidr :: Lens' SESReceiptFilterIpFilter (Val Text)
+sesrfifCidr = lens _sESReceiptFilterIpFilterCidr (\s a -> s { _sESReceiptFilterIpFilterCidr = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptfilter-ipfilter.html#cfn-ses-receiptfilter-ipfilter-policy
+sesrfifPolicy :: Lens' SESReceiptFilterIpFilter (Val Text)
+sesrfifPolicy = lens _sESReceiptFilterIpFilterPolicy (\s a -> s { _sESReceiptFilterIpFilterPolicy = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/SESReceiptRuleAction.hs b/library-gen/Stratosphere/ResourceProperties/SESReceiptRuleAction.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/SESReceiptRuleAction.hs
@@ -0,0 +1,97 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-action.html
+
+module Stratosphere.ResourceProperties.SESReceiptRuleAction where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.SESReceiptRuleAddHeaderAction
+import Stratosphere.ResourceProperties.SESReceiptRuleBounceAction
+import Stratosphere.ResourceProperties.SESReceiptRuleLambdaAction
+import Stratosphere.ResourceProperties.SESReceiptRuleS3Action
+import Stratosphere.ResourceProperties.SESReceiptRuleSNSAction
+import Stratosphere.ResourceProperties.SESReceiptRuleStopAction
+import Stratosphere.ResourceProperties.SESReceiptRuleWorkmailAction
+
+-- | Full data type definition for SESReceiptRuleAction. See
+-- 'sesReceiptRuleAction' for a more convenient constructor.
+data SESReceiptRuleAction =
+  SESReceiptRuleAction
+  { _sESReceiptRuleActionAddHeaderAction :: Maybe SESReceiptRuleAddHeaderAction
+  , _sESReceiptRuleActionBounceAction :: Maybe SESReceiptRuleBounceAction
+  , _sESReceiptRuleActionLambdaAction :: Maybe SESReceiptRuleLambdaAction
+  , _sESReceiptRuleActionS3Action :: Maybe SESReceiptRuleS3Action
+  , _sESReceiptRuleActionSNSAction :: Maybe SESReceiptRuleSNSAction
+  , _sESReceiptRuleActionStopAction :: Maybe SESReceiptRuleStopAction
+  , _sESReceiptRuleActionWorkmailAction :: Maybe SESReceiptRuleWorkmailAction
+  } deriving (Show, Eq)
+
+instance ToJSON SESReceiptRuleAction where
+  toJSON SESReceiptRuleAction{..} =
+    object $
+    catMaybes
+    [ fmap (("AddHeaderAction",) . toJSON) _sESReceiptRuleActionAddHeaderAction
+    , fmap (("BounceAction",) . toJSON) _sESReceiptRuleActionBounceAction
+    , fmap (("LambdaAction",) . toJSON) _sESReceiptRuleActionLambdaAction
+    , fmap (("S3Action",) . toJSON) _sESReceiptRuleActionS3Action
+    , fmap (("SNSAction",) . toJSON) _sESReceiptRuleActionSNSAction
+    , fmap (("StopAction",) . toJSON) _sESReceiptRuleActionStopAction
+    , fmap (("WorkmailAction",) . toJSON) _sESReceiptRuleActionWorkmailAction
+    ]
+
+instance FromJSON SESReceiptRuleAction where
+  parseJSON (Object obj) =
+    SESReceiptRuleAction <$>
+      (obj .:? "AddHeaderAction") <*>
+      (obj .:? "BounceAction") <*>
+      (obj .:? "LambdaAction") <*>
+      (obj .:? "S3Action") <*>
+      (obj .:? "SNSAction") <*>
+      (obj .:? "StopAction") <*>
+      (obj .:? "WorkmailAction")
+  parseJSON _ = mempty
+
+-- | Constructor for 'SESReceiptRuleAction' containing required fields as
+-- arguments.
+sesReceiptRuleAction
+  :: SESReceiptRuleAction
+sesReceiptRuleAction  =
+  SESReceiptRuleAction
+  { _sESReceiptRuleActionAddHeaderAction = Nothing
+  , _sESReceiptRuleActionBounceAction = Nothing
+  , _sESReceiptRuleActionLambdaAction = Nothing
+  , _sESReceiptRuleActionS3Action = Nothing
+  , _sESReceiptRuleActionSNSAction = Nothing
+  , _sESReceiptRuleActionStopAction = Nothing
+  , _sESReceiptRuleActionWorkmailAction = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-action.html#cfn-ses-receiptrule-action-addheaderaction
+sesrraAddHeaderAction :: Lens' SESReceiptRuleAction (Maybe SESReceiptRuleAddHeaderAction)
+sesrraAddHeaderAction = lens _sESReceiptRuleActionAddHeaderAction (\s a -> s { _sESReceiptRuleActionAddHeaderAction = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-action.html#cfn-ses-receiptrule-action-bounceaction
+sesrraBounceAction :: Lens' SESReceiptRuleAction (Maybe SESReceiptRuleBounceAction)
+sesrraBounceAction = lens _sESReceiptRuleActionBounceAction (\s a -> s { _sESReceiptRuleActionBounceAction = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-action.html#cfn-ses-receiptrule-action-lambdaaction
+sesrraLambdaAction :: Lens' SESReceiptRuleAction (Maybe SESReceiptRuleLambdaAction)
+sesrraLambdaAction = lens _sESReceiptRuleActionLambdaAction (\s a -> s { _sESReceiptRuleActionLambdaAction = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-action.html#cfn-ses-receiptrule-action-s3action
+sesrraS3Action :: Lens' SESReceiptRuleAction (Maybe SESReceiptRuleS3Action)
+sesrraS3Action = lens _sESReceiptRuleActionS3Action (\s a -> s { _sESReceiptRuleActionS3Action = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-action.html#cfn-ses-receiptrule-action-snsaction
+sesrraSNSAction :: Lens' SESReceiptRuleAction (Maybe SESReceiptRuleSNSAction)
+sesrraSNSAction = lens _sESReceiptRuleActionSNSAction (\s a -> s { _sESReceiptRuleActionSNSAction = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-action.html#cfn-ses-receiptrule-action-stopaction
+sesrraStopAction :: Lens' SESReceiptRuleAction (Maybe SESReceiptRuleStopAction)
+sesrraStopAction = lens _sESReceiptRuleActionStopAction (\s a -> s { _sESReceiptRuleActionStopAction = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-action.html#cfn-ses-receiptrule-action-workmailaction
+sesrraWorkmailAction :: Lens' SESReceiptRuleAction (Maybe SESReceiptRuleWorkmailAction)
+sesrraWorkmailAction = lens _sESReceiptRuleActionWorkmailAction (\s a -> s { _sESReceiptRuleActionWorkmailAction = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/SESReceiptRuleAddHeaderAction.hs b/library-gen/Stratosphere/ResourceProperties/SESReceiptRuleAddHeaderAction.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/SESReceiptRuleAddHeaderAction.hs
@@ -0,0 +1,53 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-addheaderaction.html
+
+module Stratosphere.ResourceProperties.SESReceiptRuleAddHeaderAction where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for SESReceiptRuleAddHeaderAction. See
+-- 'sesReceiptRuleAddHeaderAction' for a more convenient constructor.
+data SESReceiptRuleAddHeaderAction =
+  SESReceiptRuleAddHeaderAction
+  { _sESReceiptRuleAddHeaderActionHeaderName :: Val Text
+  , _sESReceiptRuleAddHeaderActionHeaderValue :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON SESReceiptRuleAddHeaderAction where
+  toJSON SESReceiptRuleAddHeaderAction{..} =
+    object $
+    catMaybes
+    [ (Just . ("HeaderName",) . toJSON) _sESReceiptRuleAddHeaderActionHeaderName
+    , (Just . ("HeaderValue",) . toJSON) _sESReceiptRuleAddHeaderActionHeaderValue
+    ]
+
+instance FromJSON SESReceiptRuleAddHeaderAction where
+  parseJSON (Object obj) =
+    SESReceiptRuleAddHeaderAction <$>
+      (obj .: "HeaderName") <*>
+      (obj .: "HeaderValue")
+  parseJSON _ = mempty
+
+-- | Constructor for 'SESReceiptRuleAddHeaderAction' containing required
+-- fields as arguments.
+sesReceiptRuleAddHeaderAction
+  :: Val Text -- ^ 'sesrrahaHeaderName'
+  -> Val Text -- ^ 'sesrrahaHeaderValue'
+  -> SESReceiptRuleAddHeaderAction
+sesReceiptRuleAddHeaderAction headerNamearg headerValuearg =
+  SESReceiptRuleAddHeaderAction
+  { _sESReceiptRuleAddHeaderActionHeaderName = headerNamearg
+  , _sESReceiptRuleAddHeaderActionHeaderValue = headerValuearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-addheaderaction.html#cfn-ses-receiptrule-addheaderaction-headername
+sesrrahaHeaderName :: Lens' SESReceiptRuleAddHeaderAction (Val Text)
+sesrrahaHeaderName = lens _sESReceiptRuleAddHeaderActionHeaderName (\s a -> s { _sESReceiptRuleAddHeaderActionHeaderName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-addheaderaction.html#cfn-ses-receiptrule-addheaderaction-headervalue
+sesrrahaHeaderValue :: Lens' SESReceiptRuleAddHeaderAction (Val Text)
+sesrrahaHeaderValue = lens _sESReceiptRuleAddHeaderActionHeaderValue (\s a -> s { _sESReceiptRuleAddHeaderActionHeaderValue = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/SESReceiptRuleBounceAction.hs b/library-gen/Stratosphere/ResourceProperties/SESReceiptRuleBounceAction.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/SESReceiptRuleBounceAction.hs
@@ -0,0 +1,78 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-bounceaction.html
+
+module Stratosphere.ResourceProperties.SESReceiptRuleBounceAction where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for SESReceiptRuleBounceAction. See
+-- 'sesReceiptRuleBounceAction' for a more convenient constructor.
+data SESReceiptRuleBounceAction =
+  SESReceiptRuleBounceAction
+  { _sESReceiptRuleBounceActionMessage :: Val Text
+  , _sESReceiptRuleBounceActionSender :: Val Text
+  , _sESReceiptRuleBounceActionSmtpReplyCode :: Val Text
+  , _sESReceiptRuleBounceActionStatusCode :: Maybe (Val Text)
+  , _sESReceiptRuleBounceActionTopicArn :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON SESReceiptRuleBounceAction where
+  toJSON SESReceiptRuleBounceAction{..} =
+    object $
+    catMaybes
+    [ (Just . ("Message",) . toJSON) _sESReceiptRuleBounceActionMessage
+    , (Just . ("Sender",) . toJSON) _sESReceiptRuleBounceActionSender
+    , (Just . ("SmtpReplyCode",) . toJSON) _sESReceiptRuleBounceActionSmtpReplyCode
+    , fmap (("StatusCode",) . toJSON) _sESReceiptRuleBounceActionStatusCode
+    , fmap (("TopicArn",) . toJSON) _sESReceiptRuleBounceActionTopicArn
+    ]
+
+instance FromJSON SESReceiptRuleBounceAction where
+  parseJSON (Object obj) =
+    SESReceiptRuleBounceAction <$>
+      (obj .: "Message") <*>
+      (obj .: "Sender") <*>
+      (obj .: "SmtpReplyCode") <*>
+      (obj .:? "StatusCode") <*>
+      (obj .:? "TopicArn")
+  parseJSON _ = mempty
+
+-- | Constructor for 'SESReceiptRuleBounceAction' containing required fields
+-- as arguments.
+sesReceiptRuleBounceAction
+  :: Val Text -- ^ 'sesrrbaMessage'
+  -> Val Text -- ^ 'sesrrbaSender'
+  -> Val Text -- ^ 'sesrrbaSmtpReplyCode'
+  -> SESReceiptRuleBounceAction
+sesReceiptRuleBounceAction messagearg senderarg smtpReplyCodearg =
+  SESReceiptRuleBounceAction
+  { _sESReceiptRuleBounceActionMessage = messagearg
+  , _sESReceiptRuleBounceActionSender = senderarg
+  , _sESReceiptRuleBounceActionSmtpReplyCode = smtpReplyCodearg
+  , _sESReceiptRuleBounceActionStatusCode = Nothing
+  , _sESReceiptRuleBounceActionTopicArn = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-bounceaction.html#cfn-ses-receiptrule-bounceaction-message
+sesrrbaMessage :: Lens' SESReceiptRuleBounceAction (Val Text)
+sesrrbaMessage = lens _sESReceiptRuleBounceActionMessage (\s a -> s { _sESReceiptRuleBounceActionMessage = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-bounceaction.html#cfn-ses-receiptrule-bounceaction-sender
+sesrrbaSender :: Lens' SESReceiptRuleBounceAction (Val Text)
+sesrrbaSender = lens _sESReceiptRuleBounceActionSender (\s a -> s { _sESReceiptRuleBounceActionSender = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-bounceaction.html#cfn-ses-receiptrule-bounceaction-smtpreplycode
+sesrrbaSmtpReplyCode :: Lens' SESReceiptRuleBounceAction (Val Text)
+sesrrbaSmtpReplyCode = lens _sESReceiptRuleBounceActionSmtpReplyCode (\s a -> s { _sESReceiptRuleBounceActionSmtpReplyCode = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-bounceaction.html#cfn-ses-receiptrule-bounceaction-statuscode
+sesrrbaStatusCode :: Lens' SESReceiptRuleBounceAction (Maybe (Val Text))
+sesrrbaStatusCode = lens _sESReceiptRuleBounceActionStatusCode (\s a -> s { _sESReceiptRuleBounceActionStatusCode = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-bounceaction.html#cfn-ses-receiptrule-bounceaction-topicarn
+sesrrbaTopicArn :: Lens' SESReceiptRuleBounceAction (Maybe (Val Text))
+sesrrbaTopicArn = lens _sESReceiptRuleBounceActionTopicArn (\s a -> s { _sESReceiptRuleBounceActionTopicArn = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/SESReceiptRuleLambdaAction.hs b/library-gen/Stratosphere/ResourceProperties/SESReceiptRuleLambdaAction.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/SESReceiptRuleLambdaAction.hs
@@ -0,0 +1,60 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-lambdaaction.html
+
+module Stratosphere.ResourceProperties.SESReceiptRuleLambdaAction where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for SESReceiptRuleLambdaAction. See
+-- 'sesReceiptRuleLambdaAction' for a more convenient constructor.
+data SESReceiptRuleLambdaAction =
+  SESReceiptRuleLambdaAction
+  { _sESReceiptRuleLambdaActionFunctionArn :: Val Text
+  , _sESReceiptRuleLambdaActionInvocationType :: Maybe (Val Text)
+  , _sESReceiptRuleLambdaActionTopicArn :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON SESReceiptRuleLambdaAction where
+  toJSON SESReceiptRuleLambdaAction{..} =
+    object $
+    catMaybes
+    [ (Just . ("FunctionArn",) . toJSON) _sESReceiptRuleLambdaActionFunctionArn
+    , fmap (("InvocationType",) . toJSON) _sESReceiptRuleLambdaActionInvocationType
+    , fmap (("TopicArn",) . toJSON) _sESReceiptRuleLambdaActionTopicArn
+    ]
+
+instance FromJSON SESReceiptRuleLambdaAction where
+  parseJSON (Object obj) =
+    SESReceiptRuleLambdaAction <$>
+      (obj .: "FunctionArn") <*>
+      (obj .:? "InvocationType") <*>
+      (obj .:? "TopicArn")
+  parseJSON _ = mempty
+
+-- | Constructor for 'SESReceiptRuleLambdaAction' containing required fields
+-- as arguments.
+sesReceiptRuleLambdaAction
+  :: Val Text -- ^ 'sesrrlaFunctionArn'
+  -> SESReceiptRuleLambdaAction
+sesReceiptRuleLambdaAction functionArnarg =
+  SESReceiptRuleLambdaAction
+  { _sESReceiptRuleLambdaActionFunctionArn = functionArnarg
+  , _sESReceiptRuleLambdaActionInvocationType = Nothing
+  , _sESReceiptRuleLambdaActionTopicArn = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-lambdaaction.html#cfn-ses-receiptrule-lambdaaction-functionarn
+sesrrlaFunctionArn :: Lens' SESReceiptRuleLambdaAction (Val Text)
+sesrrlaFunctionArn = lens _sESReceiptRuleLambdaActionFunctionArn (\s a -> s { _sESReceiptRuleLambdaActionFunctionArn = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-lambdaaction.html#cfn-ses-receiptrule-lambdaaction-invocationtype
+sesrrlaInvocationType :: Lens' SESReceiptRuleLambdaAction (Maybe (Val Text))
+sesrrlaInvocationType = lens _sESReceiptRuleLambdaActionInvocationType (\s a -> s { _sESReceiptRuleLambdaActionInvocationType = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-lambdaaction.html#cfn-ses-receiptrule-lambdaaction-topicarn
+sesrrlaTopicArn :: Lens' SESReceiptRuleLambdaAction (Maybe (Val Text))
+sesrrlaTopicArn = lens _sESReceiptRuleLambdaActionTopicArn (\s a -> s { _sESReceiptRuleLambdaActionTopicArn = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/SESReceiptRuleRule.hs b/library-gen/Stratosphere/ResourceProperties/SESReceiptRuleRule.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/SESReceiptRuleRule.hs
@@ -0,0 +1,83 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-rule.html
+
+module Stratosphere.ResourceProperties.SESReceiptRuleRule where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.SESReceiptRuleAction
+
+-- | Full data type definition for SESReceiptRuleRule. See
+-- 'sesReceiptRuleRule' for a more convenient constructor.
+data SESReceiptRuleRule =
+  SESReceiptRuleRule
+  { _sESReceiptRuleRuleActions :: Maybe [SESReceiptRuleAction]
+  , _sESReceiptRuleRuleEnabled :: Maybe (Val Bool)
+  , _sESReceiptRuleRuleName :: Maybe (Val Text)
+  , _sESReceiptRuleRuleRecipients :: Maybe (ValList Text)
+  , _sESReceiptRuleRuleScanEnabled :: Maybe (Val Bool)
+  , _sESReceiptRuleRuleTlsPolicy :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON SESReceiptRuleRule where
+  toJSON SESReceiptRuleRule{..} =
+    object $
+    catMaybes
+    [ fmap (("Actions",) . toJSON) _sESReceiptRuleRuleActions
+    , fmap (("Enabled",) . toJSON . fmap Bool') _sESReceiptRuleRuleEnabled
+    , fmap (("Name",) . toJSON) _sESReceiptRuleRuleName
+    , fmap (("Recipients",) . toJSON) _sESReceiptRuleRuleRecipients
+    , fmap (("ScanEnabled",) . toJSON . fmap Bool') _sESReceiptRuleRuleScanEnabled
+    , fmap (("TlsPolicy",) . toJSON) _sESReceiptRuleRuleTlsPolicy
+    ]
+
+instance FromJSON SESReceiptRuleRule where
+  parseJSON (Object obj) =
+    SESReceiptRuleRule <$>
+      (obj .:? "Actions") <*>
+      fmap (fmap (fmap unBool')) (obj .:? "Enabled") <*>
+      (obj .:? "Name") <*>
+      (obj .:? "Recipients") <*>
+      fmap (fmap (fmap unBool')) (obj .:? "ScanEnabled") <*>
+      (obj .:? "TlsPolicy")
+  parseJSON _ = mempty
+
+-- | Constructor for 'SESReceiptRuleRule' containing required fields as
+-- arguments.
+sesReceiptRuleRule
+  :: SESReceiptRuleRule
+sesReceiptRuleRule  =
+  SESReceiptRuleRule
+  { _sESReceiptRuleRuleActions = Nothing
+  , _sESReceiptRuleRuleEnabled = Nothing
+  , _sESReceiptRuleRuleName = Nothing
+  , _sESReceiptRuleRuleRecipients = Nothing
+  , _sESReceiptRuleRuleScanEnabled = Nothing
+  , _sESReceiptRuleRuleTlsPolicy = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-rule.html#cfn-ses-receiptrule-rule-actions
+sesrrrActions :: Lens' SESReceiptRuleRule (Maybe [SESReceiptRuleAction])
+sesrrrActions = lens _sESReceiptRuleRuleActions (\s a -> s { _sESReceiptRuleRuleActions = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-rule.html#cfn-ses-receiptrule-rule-enabled
+sesrrrEnabled :: Lens' SESReceiptRuleRule (Maybe (Val Bool))
+sesrrrEnabled = lens _sESReceiptRuleRuleEnabled (\s a -> s { _sESReceiptRuleRuleEnabled = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-rule.html#cfn-ses-receiptrule-rule-name
+sesrrrName :: Lens' SESReceiptRuleRule (Maybe (Val Text))
+sesrrrName = lens _sESReceiptRuleRuleName (\s a -> s { _sESReceiptRuleRuleName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-rule.html#cfn-ses-receiptrule-rule-recipients
+sesrrrRecipients :: Lens' SESReceiptRuleRule (Maybe (ValList Text))
+sesrrrRecipients = lens _sESReceiptRuleRuleRecipients (\s a -> s { _sESReceiptRuleRuleRecipients = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-rule.html#cfn-ses-receiptrule-rule-scanenabled
+sesrrrScanEnabled :: Lens' SESReceiptRuleRule (Maybe (Val Bool))
+sesrrrScanEnabled = lens _sESReceiptRuleRuleScanEnabled (\s a -> s { _sESReceiptRuleRuleScanEnabled = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-rule.html#cfn-ses-receiptrule-rule-tlspolicy
+sesrrrTlsPolicy :: Lens' SESReceiptRuleRule (Maybe (Val Text))
+sesrrrTlsPolicy = lens _sESReceiptRuleRuleTlsPolicy (\s a -> s { _sESReceiptRuleRuleTlsPolicy = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/SESReceiptRuleS3Action.hs b/library-gen/Stratosphere/ResourceProperties/SESReceiptRuleS3Action.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/SESReceiptRuleS3Action.hs
@@ -0,0 +1,68 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-s3action.html
+
+module Stratosphere.ResourceProperties.SESReceiptRuleS3Action where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for SESReceiptRuleS3Action. See
+-- 'sesReceiptRuleS3Action' for a more convenient constructor.
+data SESReceiptRuleS3Action =
+  SESReceiptRuleS3Action
+  { _sESReceiptRuleS3ActionBucketName :: Val Text
+  , _sESReceiptRuleS3ActionKmsKeyArn :: Maybe (Val Text)
+  , _sESReceiptRuleS3ActionObjectKeyPrefix :: Maybe (Val Text)
+  , _sESReceiptRuleS3ActionTopicArn :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON SESReceiptRuleS3Action where
+  toJSON SESReceiptRuleS3Action{..} =
+    object $
+    catMaybes
+    [ (Just . ("BucketName",) . toJSON) _sESReceiptRuleS3ActionBucketName
+    , fmap (("KmsKeyArn",) . toJSON) _sESReceiptRuleS3ActionKmsKeyArn
+    , fmap (("ObjectKeyPrefix",) . toJSON) _sESReceiptRuleS3ActionObjectKeyPrefix
+    , fmap (("TopicArn",) . toJSON) _sESReceiptRuleS3ActionTopicArn
+    ]
+
+instance FromJSON SESReceiptRuleS3Action where
+  parseJSON (Object obj) =
+    SESReceiptRuleS3Action <$>
+      (obj .: "BucketName") <*>
+      (obj .:? "KmsKeyArn") <*>
+      (obj .:? "ObjectKeyPrefix") <*>
+      (obj .:? "TopicArn")
+  parseJSON _ = mempty
+
+-- | Constructor for 'SESReceiptRuleS3Action' containing required fields as
+-- arguments.
+sesReceiptRuleS3Action
+  :: Val Text -- ^ 'sesrrsaBucketName'
+  -> SESReceiptRuleS3Action
+sesReceiptRuleS3Action bucketNamearg =
+  SESReceiptRuleS3Action
+  { _sESReceiptRuleS3ActionBucketName = bucketNamearg
+  , _sESReceiptRuleS3ActionKmsKeyArn = Nothing
+  , _sESReceiptRuleS3ActionObjectKeyPrefix = Nothing
+  , _sESReceiptRuleS3ActionTopicArn = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-s3action.html#cfn-ses-receiptrule-s3action-bucketname
+sesrrsaBucketName :: Lens' SESReceiptRuleS3Action (Val Text)
+sesrrsaBucketName = lens _sESReceiptRuleS3ActionBucketName (\s a -> s { _sESReceiptRuleS3ActionBucketName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-s3action.html#cfn-ses-receiptrule-s3action-kmskeyarn
+sesrrsaKmsKeyArn :: Lens' SESReceiptRuleS3Action (Maybe (Val Text))
+sesrrsaKmsKeyArn = lens _sESReceiptRuleS3ActionKmsKeyArn (\s a -> s { _sESReceiptRuleS3ActionKmsKeyArn = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-s3action.html#cfn-ses-receiptrule-s3action-objectkeyprefix
+sesrrsaObjectKeyPrefix :: Lens' SESReceiptRuleS3Action (Maybe (Val Text))
+sesrrsaObjectKeyPrefix = lens _sESReceiptRuleS3ActionObjectKeyPrefix (\s a -> s { _sESReceiptRuleS3ActionObjectKeyPrefix = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-s3action.html#cfn-ses-receiptrule-s3action-topicarn
+sesrrsaTopicArn :: Lens' SESReceiptRuleS3Action (Maybe (Val Text))
+sesrrsaTopicArn = lens _sESReceiptRuleS3ActionTopicArn (\s a -> s { _sESReceiptRuleS3ActionTopicArn = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/SESReceiptRuleSNSAction.hs b/library-gen/Stratosphere/ResourceProperties/SESReceiptRuleSNSAction.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/SESReceiptRuleSNSAction.hs
@@ -0,0 +1,51 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-snsaction.html
+
+module Stratosphere.ResourceProperties.SESReceiptRuleSNSAction where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for SESReceiptRuleSNSAction. See
+-- 'sesReceiptRuleSNSAction' for a more convenient constructor.
+data SESReceiptRuleSNSAction =
+  SESReceiptRuleSNSAction
+  { _sESReceiptRuleSNSActionEncoding :: Maybe (Val Text)
+  , _sESReceiptRuleSNSActionTopicArn :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON SESReceiptRuleSNSAction where
+  toJSON SESReceiptRuleSNSAction{..} =
+    object $
+    catMaybes
+    [ fmap (("Encoding",) . toJSON) _sESReceiptRuleSNSActionEncoding
+    , fmap (("TopicArn",) . toJSON) _sESReceiptRuleSNSActionTopicArn
+    ]
+
+instance FromJSON SESReceiptRuleSNSAction where
+  parseJSON (Object obj) =
+    SESReceiptRuleSNSAction <$>
+      (obj .:? "Encoding") <*>
+      (obj .:? "TopicArn")
+  parseJSON _ = mempty
+
+-- | Constructor for 'SESReceiptRuleSNSAction' containing required fields as
+-- arguments.
+sesReceiptRuleSNSAction
+  :: SESReceiptRuleSNSAction
+sesReceiptRuleSNSAction  =
+  SESReceiptRuleSNSAction
+  { _sESReceiptRuleSNSActionEncoding = Nothing
+  , _sESReceiptRuleSNSActionTopicArn = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-snsaction.html#cfn-ses-receiptrule-snsaction-encoding
+sesrrsnsaEncoding :: Lens' SESReceiptRuleSNSAction (Maybe (Val Text))
+sesrrsnsaEncoding = lens _sESReceiptRuleSNSActionEncoding (\s a -> s { _sESReceiptRuleSNSActionEncoding = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-snsaction.html#cfn-ses-receiptrule-snsaction-topicarn
+sesrrsnsaTopicArn :: Lens' SESReceiptRuleSNSAction (Maybe (Val Text))
+sesrrsnsaTopicArn = lens _sESReceiptRuleSNSActionTopicArn (\s a -> s { _sESReceiptRuleSNSActionTopicArn = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/SESReceiptRuleStopAction.hs b/library-gen/Stratosphere/ResourceProperties/SESReceiptRuleStopAction.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/SESReceiptRuleStopAction.hs
@@ -0,0 +1,52 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-stopaction.html
+
+module Stratosphere.ResourceProperties.SESReceiptRuleStopAction where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for SESReceiptRuleStopAction. See
+-- 'sesReceiptRuleStopAction' for a more convenient constructor.
+data SESReceiptRuleStopAction =
+  SESReceiptRuleStopAction
+  { _sESReceiptRuleStopActionScope :: Val Text
+  , _sESReceiptRuleStopActionTopicArn :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON SESReceiptRuleStopAction where
+  toJSON SESReceiptRuleStopAction{..} =
+    object $
+    catMaybes
+    [ (Just . ("Scope",) . toJSON) _sESReceiptRuleStopActionScope
+    , fmap (("TopicArn",) . toJSON) _sESReceiptRuleStopActionTopicArn
+    ]
+
+instance FromJSON SESReceiptRuleStopAction where
+  parseJSON (Object obj) =
+    SESReceiptRuleStopAction <$>
+      (obj .: "Scope") <*>
+      (obj .:? "TopicArn")
+  parseJSON _ = mempty
+
+-- | Constructor for 'SESReceiptRuleStopAction' containing required fields as
+-- arguments.
+sesReceiptRuleStopAction
+  :: Val Text -- ^ 'sesrrstaScope'
+  -> SESReceiptRuleStopAction
+sesReceiptRuleStopAction scopearg =
+  SESReceiptRuleStopAction
+  { _sESReceiptRuleStopActionScope = scopearg
+  , _sESReceiptRuleStopActionTopicArn = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-stopaction.html#cfn-ses-receiptrule-stopaction-scope
+sesrrstaScope :: Lens' SESReceiptRuleStopAction (Val Text)
+sesrrstaScope = lens _sESReceiptRuleStopActionScope (\s a -> s { _sESReceiptRuleStopActionScope = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-stopaction.html#cfn-ses-receiptrule-stopaction-topicarn
+sesrrstaTopicArn :: Lens' SESReceiptRuleStopAction (Maybe (Val Text))
+sesrrstaTopicArn = lens _sESReceiptRuleStopActionTopicArn (\s a -> s { _sESReceiptRuleStopActionTopicArn = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/SESReceiptRuleWorkmailAction.hs b/library-gen/Stratosphere/ResourceProperties/SESReceiptRuleWorkmailAction.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/SESReceiptRuleWorkmailAction.hs
@@ -0,0 +1,52 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-workmailaction.html
+
+module Stratosphere.ResourceProperties.SESReceiptRuleWorkmailAction where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for SESReceiptRuleWorkmailAction. See
+-- 'sesReceiptRuleWorkmailAction' for a more convenient constructor.
+data SESReceiptRuleWorkmailAction =
+  SESReceiptRuleWorkmailAction
+  { _sESReceiptRuleWorkmailActionOrganizationArn :: Val Text
+  , _sESReceiptRuleWorkmailActionTopicArn :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON SESReceiptRuleWorkmailAction where
+  toJSON SESReceiptRuleWorkmailAction{..} =
+    object $
+    catMaybes
+    [ (Just . ("OrganizationArn",) . toJSON) _sESReceiptRuleWorkmailActionOrganizationArn
+    , fmap (("TopicArn",) . toJSON) _sESReceiptRuleWorkmailActionTopicArn
+    ]
+
+instance FromJSON SESReceiptRuleWorkmailAction where
+  parseJSON (Object obj) =
+    SESReceiptRuleWorkmailAction <$>
+      (obj .: "OrganizationArn") <*>
+      (obj .:? "TopicArn")
+  parseJSON _ = mempty
+
+-- | Constructor for 'SESReceiptRuleWorkmailAction' containing required fields
+-- as arguments.
+sesReceiptRuleWorkmailAction
+  :: Val Text -- ^ 'sesrrwaOrganizationArn'
+  -> SESReceiptRuleWorkmailAction
+sesReceiptRuleWorkmailAction organizationArnarg =
+  SESReceiptRuleWorkmailAction
+  { _sESReceiptRuleWorkmailActionOrganizationArn = organizationArnarg
+  , _sESReceiptRuleWorkmailActionTopicArn = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-workmailaction.html#cfn-ses-receiptrule-workmailaction-organizationarn
+sesrrwaOrganizationArn :: Lens' SESReceiptRuleWorkmailAction (Val Text)
+sesrrwaOrganizationArn = lens _sESReceiptRuleWorkmailActionOrganizationArn (\s a -> s { _sESReceiptRuleWorkmailActionOrganizationArn = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-workmailaction.html#cfn-ses-receiptrule-workmailaction-topicarn
+sesrrwaTopicArn :: Lens' SESReceiptRuleWorkmailAction (Maybe (Val Text))
+sesrrwaTopicArn = lens _sESReceiptRuleWorkmailActionTopicArn (\s a -> s { _sESReceiptRuleWorkmailActionTopicArn = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/SESTemplateTemplate.hs b/library-gen/Stratosphere/ResourceProperties/SESTemplateTemplate.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/SESTemplateTemplate.hs
@@ -0,0 +1,67 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-template-template.html
+
+module Stratosphere.ResourceProperties.SESTemplateTemplate where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for SESTemplateTemplate. See
+-- 'sesTemplateTemplate' for a more convenient constructor.
+data SESTemplateTemplate =
+  SESTemplateTemplate
+  { _sESTemplateTemplateHtmlPart :: Maybe (Val Text)
+  , _sESTemplateTemplateSubjectPart :: Maybe (Val Text)
+  , _sESTemplateTemplateTemplateName :: Maybe (Val Text)
+  , _sESTemplateTemplateTextPart :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON SESTemplateTemplate where
+  toJSON SESTemplateTemplate{..} =
+    object $
+    catMaybes
+    [ fmap (("HtmlPart",) . toJSON) _sESTemplateTemplateHtmlPart
+    , fmap (("SubjectPart",) . toJSON) _sESTemplateTemplateSubjectPart
+    , fmap (("TemplateName",) . toJSON) _sESTemplateTemplateTemplateName
+    , fmap (("TextPart",) . toJSON) _sESTemplateTemplateTextPart
+    ]
+
+instance FromJSON SESTemplateTemplate where
+  parseJSON (Object obj) =
+    SESTemplateTemplate <$>
+      (obj .:? "HtmlPart") <*>
+      (obj .:? "SubjectPart") <*>
+      (obj .:? "TemplateName") <*>
+      (obj .:? "TextPart")
+  parseJSON _ = mempty
+
+-- | Constructor for 'SESTemplateTemplate' containing required fields as
+-- arguments.
+sesTemplateTemplate
+  :: SESTemplateTemplate
+sesTemplateTemplate  =
+  SESTemplateTemplate
+  { _sESTemplateTemplateHtmlPart = Nothing
+  , _sESTemplateTemplateSubjectPart = Nothing
+  , _sESTemplateTemplateTemplateName = Nothing
+  , _sESTemplateTemplateTextPart = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-template-template.html#cfn-ses-template-template-htmlpart
+sesttHtmlPart :: Lens' SESTemplateTemplate (Maybe (Val Text))
+sesttHtmlPart = lens _sESTemplateTemplateHtmlPart (\s a -> s { _sESTemplateTemplateHtmlPart = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-template-template.html#cfn-ses-template-template-subjectpart
+sesttSubjectPart :: Lens' SESTemplateTemplate (Maybe (Val Text))
+sesttSubjectPart = lens _sESTemplateTemplateSubjectPart (\s a -> s { _sESTemplateTemplateSubjectPart = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-template-template.html#cfn-ses-template-template-templatename
+sesttTemplateName :: Lens' SESTemplateTemplate (Maybe (Val Text))
+sesttTemplateName = lens _sESTemplateTemplateTemplateName (\s a -> s { _sESTemplateTemplateTemplateName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-template-template.html#cfn-ses-template-template-textpart
+sesttTextPart :: Lens' SESTemplateTemplate (Maybe (Val Text))
+sesttTextPart = lens _sESTemplateTemplateTextPart (\s a -> s { _sESTemplateTemplateTextPart = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/SSMPatchBaselinePatchSource.hs b/library-gen/Stratosphere/ResourceProperties/SSMPatchBaselinePatchSource.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/SSMPatchBaselinePatchSource.hs
@@ -0,0 +1,59 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-patchsource.html
+
+module Stratosphere.ResourceProperties.SSMPatchBaselinePatchSource where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for SSMPatchBaselinePatchSource. See
+-- 'ssmPatchBaselinePatchSource' for a more convenient constructor.
+data SSMPatchBaselinePatchSource =
+  SSMPatchBaselinePatchSource
+  { _sSMPatchBaselinePatchSourceConfiguration :: Maybe (Val Text)
+  , _sSMPatchBaselinePatchSourceName :: Maybe (Val Text)
+  , _sSMPatchBaselinePatchSourceProducts :: Maybe (ValList Text)
+  } deriving (Show, Eq)
+
+instance ToJSON SSMPatchBaselinePatchSource where
+  toJSON SSMPatchBaselinePatchSource{..} =
+    object $
+    catMaybes
+    [ fmap (("Configuration",) . toJSON) _sSMPatchBaselinePatchSourceConfiguration
+    , fmap (("Name",) . toJSON) _sSMPatchBaselinePatchSourceName
+    , fmap (("Products",) . toJSON) _sSMPatchBaselinePatchSourceProducts
+    ]
+
+instance FromJSON SSMPatchBaselinePatchSource where
+  parseJSON (Object obj) =
+    SSMPatchBaselinePatchSource <$>
+      (obj .:? "Configuration") <*>
+      (obj .:? "Name") <*>
+      (obj .:? "Products")
+  parseJSON _ = mempty
+
+-- | Constructor for 'SSMPatchBaselinePatchSource' containing required fields
+-- as arguments.
+ssmPatchBaselinePatchSource
+  :: SSMPatchBaselinePatchSource
+ssmPatchBaselinePatchSource  =
+  SSMPatchBaselinePatchSource
+  { _sSMPatchBaselinePatchSourceConfiguration = Nothing
+  , _sSMPatchBaselinePatchSourceName = Nothing
+  , _sSMPatchBaselinePatchSourceProducts = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-patchsource.html#cfn-ssm-patchbaseline-patchsource-configuration
+ssmpbpsConfiguration :: Lens' SSMPatchBaselinePatchSource (Maybe (Val Text))
+ssmpbpsConfiguration = lens _sSMPatchBaselinePatchSourceConfiguration (\s a -> s { _sSMPatchBaselinePatchSourceConfiguration = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-patchsource.html#cfn-ssm-patchbaseline-patchsource-name
+ssmpbpsName :: Lens' SSMPatchBaselinePatchSource (Maybe (Val Text))
+ssmpbpsName = lens _sSMPatchBaselinePatchSourceName (\s a -> s { _sSMPatchBaselinePatchSourceName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-patchsource.html#cfn-ssm-patchbaseline-patchsource-products
+ssmpbpsProducts :: Lens' SSMPatchBaselinePatchSource (Maybe (ValList Text))
+ssmpbpsProducts = lens _sSMPatchBaselinePatchSourceProducts (\s a -> s { _sSMPatchBaselinePatchSourceProducts = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/SSMPatchBaselineRule.hs b/library-gen/Stratosphere/ResourceProperties/SSMPatchBaselineRule.hs
--- a/library-gen/Stratosphere/ResourceProperties/SSMPatchBaselineRule.hs
+++ b/library-gen/Stratosphere/ResourceProperties/SSMPatchBaselineRule.hs
@@ -15,6 +15,7 @@
   SSMPatchBaselineRule
   { _sSMPatchBaselineRuleApproveAfterDays :: Maybe (Val Integer)
   , _sSMPatchBaselineRuleComplianceLevel :: Maybe (Val Text)
+  , _sSMPatchBaselineRuleEnableNonSecurity :: Maybe (Val Bool)
   , _sSMPatchBaselineRulePatchFilterGroup :: Maybe SSMPatchBaselinePatchFilterGroup
   } deriving (Show, Eq)
 
@@ -24,6 +25,7 @@
     catMaybes
     [ fmap (("ApproveAfterDays",) . toJSON . fmap Integer') _sSMPatchBaselineRuleApproveAfterDays
     , fmap (("ComplianceLevel",) . toJSON) _sSMPatchBaselineRuleComplianceLevel
+    , fmap (("EnableNonSecurity",) . toJSON . fmap Bool') _sSMPatchBaselineRuleEnableNonSecurity
     , fmap (("PatchFilterGroup",) . toJSON) _sSMPatchBaselineRulePatchFilterGroup
     ]
 
@@ -32,6 +34,7 @@
     SSMPatchBaselineRule <$>
       fmap (fmap (fmap unInteger')) (obj .:? "ApproveAfterDays") <*>
       (obj .:? "ComplianceLevel") <*>
+      fmap (fmap (fmap unBool')) (obj .:? "EnableNonSecurity") <*>
       (obj .:? "PatchFilterGroup")
   parseJSON _ = mempty
 
@@ -43,6 +46,7 @@
   SSMPatchBaselineRule
   { _sSMPatchBaselineRuleApproveAfterDays = Nothing
   , _sSMPatchBaselineRuleComplianceLevel = Nothing
+  , _sSMPatchBaselineRuleEnableNonSecurity = Nothing
   , _sSMPatchBaselineRulePatchFilterGroup = Nothing
   }
 
@@ -53,6 +57,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-rule.html#cfn-ssm-patchbaseline-rule-compliancelevel
 ssmpbrComplianceLevel :: Lens' SSMPatchBaselineRule (Maybe (Val Text))
 ssmpbrComplianceLevel = lens _sSMPatchBaselineRuleComplianceLevel (\s a -> s { _sSMPatchBaselineRuleComplianceLevel = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-rule.html#cfn-ssm-patchbaseline-rule-enablenonsecurity
+ssmpbrEnableNonSecurity :: Lens' SSMPatchBaselineRule (Maybe (Val Bool))
+ssmpbrEnableNonSecurity = lens _sSMPatchBaselineRuleEnableNonSecurity (\s a -> s { _sSMPatchBaselineRuleEnableNonSecurity = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-rule.html#cfn-ssm-patchbaseline-rule-patchfiltergroup
 ssmpbrPatchFilterGroup :: Lens' SSMPatchBaselineRule (Maybe SSMPatchBaselinePatchFilterGroup)
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=20000000 #-}
+{-# OPTIONS_GHC -fmax-pmcheck-iterations=30000000 #-}
 #endif
 
 -- | See:
@@ -63,6 +63,7 @@
 import Stratosphere.Resources.ApiGatewayStage as X
 import Stratosphere.Resources.ApiGatewayUsagePlan as X
 import Stratosphere.Resources.ApiGatewayUsagePlanKey as X
+import Stratosphere.Resources.ApiGatewayVpcLink as X
 import Stratosphere.Resources.ApplicationAutoScalingScalableTarget as X
 import Stratosphere.Resources.ApplicationAutoScalingScalingPolicy as X
 import Stratosphere.Resources.AthenaNamedQuery as X
@@ -178,6 +179,7 @@
 import Stratosphere.Resources.ElasticBeanstalkEnvironment as X
 import Stratosphere.Resources.ElasticLoadBalancingLoadBalancer as X
 import Stratosphere.Resources.ElasticLoadBalancingV2Listener as X
+import Stratosphere.Resources.ElasticLoadBalancingV2ListenerCertificateResource as X
 import Stratosphere.Resources.ElasticLoadBalancingV2ListenerRule as X
 import Stratosphere.Resources.ElasticLoadBalancingV2LoadBalancer as X
 import Stratosphere.Resources.ElasticLoadBalancingV2TargetGroup as X
@@ -197,6 +199,8 @@
 import Stratosphere.Resources.GlueTrigger as X
 import Stratosphere.Resources.GuardDutyDetector as X
 import Stratosphere.Resources.GuardDutyIPSet as X
+import Stratosphere.Resources.GuardDutyMaster as X
+import Stratosphere.Resources.GuardDutyMember as X
 import Stratosphere.Resources.GuardDutyThreatIntelSet as X
 import Stratosphere.Resources.IAMAccessKey as X
 import Stratosphere.Resources.IAMGroup as X
@@ -260,6 +264,12 @@
 import Stratosphere.Resources.S3Bucket as X
 import Stratosphere.Resources.S3BucketPolicy as X
 import Stratosphere.Resources.SDBDomain as X
+import Stratosphere.Resources.SESConfigurationSet as X
+import Stratosphere.Resources.SESConfigurationSetEventDestination as X
+import Stratosphere.Resources.SESReceiptFilter as X
+import Stratosphere.Resources.SESReceiptRule as X
+import Stratosphere.Resources.SESReceiptRuleSet as X
+import Stratosphere.Resources.SESTemplate as X
 import Stratosphere.Resources.SNSSubscription as X
 import Stratosphere.Resources.SNSTopic as X
 import Stratosphere.Resources.SNSTopicPolicy as X
@@ -465,6 +475,7 @@
 import Stratosphere.ResourceProperties.EC2SpotFleetSpotFleetLaunchSpecification as X
 import Stratosphere.ResourceProperties.EC2SpotFleetSpotFleetMonitoring as X
 import Stratosphere.ResourceProperties.EC2SpotFleetSpotFleetRequestConfigData as X
+import Stratosphere.ResourceProperties.EC2SpotFleetSpotFleetTagSpecification as X
 import Stratosphere.ResourceProperties.EC2SpotFleetSpotPlacement as X
 import Stratosphere.ResourceProperties.EC2VPNConnectionVpnTunnelOptionsSpecification as X
 import Stratosphere.ResourceProperties.ECRRepositoryLifecyclePolicy as X
@@ -743,6 +754,22 @@
 import Stratosphere.ResourceProperties.S3BucketTransition as X
 import Stratosphere.ResourceProperties.S3BucketVersioningConfiguration as X
 import Stratosphere.ResourceProperties.S3BucketWebsiteConfiguration as X
+import Stratosphere.ResourceProperties.SESConfigurationSetEventDestinationCloudWatchDestination as X
+import Stratosphere.ResourceProperties.SESConfigurationSetEventDestinationDimensionConfiguration as X
+import Stratosphere.ResourceProperties.SESConfigurationSetEventDestinationEventDestination as X
+import Stratosphere.ResourceProperties.SESConfigurationSetEventDestinationKinesisFirehoseDestination as X
+import Stratosphere.ResourceProperties.SESReceiptFilterFilter as X
+import Stratosphere.ResourceProperties.SESReceiptFilterIpFilter as X
+import Stratosphere.ResourceProperties.SESReceiptRuleAction as X
+import Stratosphere.ResourceProperties.SESReceiptRuleAddHeaderAction as X
+import Stratosphere.ResourceProperties.SESReceiptRuleBounceAction as X
+import Stratosphere.ResourceProperties.SESReceiptRuleLambdaAction as X
+import Stratosphere.ResourceProperties.SESReceiptRuleRule as X
+import Stratosphere.ResourceProperties.SESReceiptRuleS3Action as X
+import Stratosphere.ResourceProperties.SESReceiptRuleSNSAction as X
+import Stratosphere.ResourceProperties.SESReceiptRuleStopAction as X
+import Stratosphere.ResourceProperties.SESReceiptRuleWorkmailAction as X
+import Stratosphere.ResourceProperties.SESTemplateTemplate as X
 import Stratosphere.ResourceProperties.SNSTopicSubscription as X
 import Stratosphere.ResourceProperties.SSMAssociationParameterValues as X
 import Stratosphere.ResourceProperties.SSMAssociationTarget as X
@@ -756,6 +783,7 @@
 import Stratosphere.ResourceProperties.SSMMaintenanceWindowTaskTaskInvocationParameters as X
 import Stratosphere.ResourceProperties.SSMPatchBaselinePatchFilter as X
 import Stratosphere.ResourceProperties.SSMPatchBaselinePatchFilterGroup as X
+import Stratosphere.ResourceProperties.SSMPatchBaselinePatchSource as X
 import Stratosphere.ResourceProperties.SSMPatchBaselineRule as X
 import Stratosphere.ResourceProperties.SSMPatchBaselineRuleGroup as X
 import Stratosphere.ResourceProperties.ServiceDiscoveryServiceDnsConfig as X
@@ -815,6 +843,7 @@
   | ApiGatewayStageProperties ApiGatewayStage
   | ApiGatewayUsagePlanProperties ApiGatewayUsagePlan
   | ApiGatewayUsagePlanKeyProperties ApiGatewayUsagePlanKey
+  | ApiGatewayVpcLinkProperties ApiGatewayVpcLink
   | ApplicationAutoScalingScalableTargetProperties ApplicationAutoScalingScalableTarget
   | ApplicationAutoScalingScalingPolicyProperties ApplicationAutoScalingScalingPolicy
   | AthenaNamedQueryProperties AthenaNamedQuery
@@ -930,6 +959,7 @@
   | ElasticBeanstalkEnvironmentProperties ElasticBeanstalkEnvironment
   | ElasticLoadBalancingLoadBalancerProperties ElasticLoadBalancingLoadBalancer
   | ElasticLoadBalancingV2ListenerProperties ElasticLoadBalancingV2Listener
+  | ElasticLoadBalancingV2ListenerCertificateResourceProperties ElasticLoadBalancingV2ListenerCertificateResource
   | ElasticLoadBalancingV2ListenerRuleProperties ElasticLoadBalancingV2ListenerRule
   | ElasticLoadBalancingV2LoadBalancerProperties ElasticLoadBalancingV2LoadBalancer
   | ElasticLoadBalancingV2TargetGroupProperties ElasticLoadBalancingV2TargetGroup
@@ -949,6 +979,8 @@
   | GlueTriggerProperties GlueTrigger
   | GuardDutyDetectorProperties GuardDutyDetector
   | GuardDutyIPSetProperties GuardDutyIPSet
+  | GuardDutyMasterProperties GuardDutyMaster
+  | GuardDutyMemberProperties GuardDutyMember
   | GuardDutyThreatIntelSetProperties GuardDutyThreatIntelSet
   | IAMAccessKeyProperties IAMAccessKey
   | IAMGroupProperties IAMGroup
@@ -1012,6 +1044,12 @@
   | S3BucketProperties S3Bucket
   | S3BucketPolicyProperties S3BucketPolicy
   | SDBDomainProperties SDBDomain
+  | SESConfigurationSetProperties SESConfigurationSet
+  | SESConfigurationSetEventDestinationProperties SESConfigurationSetEventDestination
+  | SESReceiptFilterProperties SESReceiptFilter
+  | SESReceiptRuleProperties SESReceiptRule
+  | SESReceiptRuleSetProperties SESReceiptRuleSet
+  | SESTemplateProperties SESTemplate
   | SNSSubscriptionProperties SNSSubscription
   | SNSTopicProperties SNSTopic
   | SNSTopicPolicyProperties SNSTopicPolicy
@@ -1132,6 +1170,8 @@
   [ "Type" .= ("AWS::ApiGateway::UsagePlan" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (ApiGatewayUsagePlanKeyProperties x) =
   [ "Type" .= ("AWS::ApiGateway::UsagePlanKey" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (ApiGatewayVpcLinkProperties x) =
+  [ "Type" .= ("AWS::ApiGateway::VpcLink" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (ApplicationAutoScalingScalableTargetProperties x) =
   [ "Type" .= ("AWS::ApplicationAutoScaling::ScalableTarget" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (ApplicationAutoScalingScalingPolicyProperties x) =
@@ -1362,6 +1402,8 @@
   [ "Type" .= ("AWS::ElasticLoadBalancing::LoadBalancer" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (ElasticLoadBalancingV2ListenerProperties x) =
   [ "Type" .= ("AWS::ElasticLoadBalancingV2::Listener" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (ElasticLoadBalancingV2ListenerCertificateResourceProperties x) =
+  [ "Type" .= ("AWS::ElasticLoadBalancingV2::ListenerCertificate" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (ElasticLoadBalancingV2ListenerRuleProperties x) =
   [ "Type" .= ("AWS::ElasticLoadBalancingV2::ListenerRule" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (ElasticLoadBalancingV2LoadBalancerProperties x) =
@@ -1400,6 +1442,10 @@
   [ "Type" .= ("AWS::GuardDuty::Detector" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (GuardDutyIPSetProperties x) =
   [ "Type" .= ("AWS::GuardDuty::IPSet" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (GuardDutyMasterProperties x) =
+  [ "Type" .= ("AWS::GuardDuty::Master" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (GuardDutyMemberProperties x) =
+  [ "Type" .= ("AWS::GuardDuty::Member" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (GuardDutyThreatIntelSetProperties x) =
   [ "Type" .= ("AWS::GuardDuty::ThreatIntelSet" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (IAMAccessKeyProperties x) =
@@ -1526,6 +1572,18 @@
   [ "Type" .= ("AWS::S3::BucketPolicy" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (SDBDomainProperties x) =
   [ "Type" .= ("AWS::SDB::Domain" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (SESConfigurationSetProperties x) =
+  [ "Type" .= ("AWS::SES::ConfigurationSet" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (SESConfigurationSetEventDestinationProperties x) =
+  [ "Type" .= ("AWS::SES::ConfigurationSetEventDestination" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (SESReceiptFilterProperties x) =
+  [ "Type" .= ("AWS::SES::ReceiptFilter" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (SESReceiptRuleProperties x) =
+  [ "Type" .= ("AWS::SES::ReceiptRule" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (SESReceiptRuleSetProperties x) =
+  [ "Type" .= ("AWS::SES::ReceiptRuleSet" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (SESTemplateProperties x) =
+  [ "Type" .= ("AWS::SES::Template" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (SNSSubscriptionProperties x) =
   [ "Type" .= ("AWS::SNS::Subscription" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (SNSTopicProperties x) =
@@ -1614,6 +1672,7 @@
          "AWS::ApiGateway::Stage" -> ApiGatewayStageProperties <$> (o .: "Properties")
          "AWS::ApiGateway::UsagePlan" -> ApiGatewayUsagePlanProperties <$> (o .: "Properties")
          "AWS::ApiGateway::UsagePlanKey" -> ApiGatewayUsagePlanKeyProperties <$> (o .: "Properties")
+         "AWS::ApiGateway::VpcLink" -> ApiGatewayVpcLinkProperties <$> (o .: "Properties")
          "AWS::ApplicationAutoScaling::ScalableTarget" -> ApplicationAutoScalingScalableTargetProperties <$> (o .: "Properties")
          "AWS::ApplicationAutoScaling::ScalingPolicy" -> ApplicationAutoScalingScalingPolicyProperties <$> (o .: "Properties")
          "AWS::Athena::NamedQuery" -> AthenaNamedQueryProperties <$> (o .: "Properties")
@@ -1729,6 +1788,7 @@
          "AWS::ElasticBeanstalk::Environment" -> ElasticBeanstalkEnvironmentProperties <$> (o .: "Properties")
          "AWS::ElasticLoadBalancing::LoadBalancer" -> ElasticLoadBalancingLoadBalancerProperties <$> (o .: "Properties")
          "AWS::ElasticLoadBalancingV2::Listener" -> ElasticLoadBalancingV2ListenerProperties <$> (o .: "Properties")
+         "AWS::ElasticLoadBalancingV2::ListenerCertificate" -> ElasticLoadBalancingV2ListenerCertificateResourceProperties <$> (o .: "Properties")
          "AWS::ElasticLoadBalancingV2::ListenerRule" -> ElasticLoadBalancingV2ListenerRuleProperties <$> (o .: "Properties")
          "AWS::ElasticLoadBalancingV2::LoadBalancer" -> ElasticLoadBalancingV2LoadBalancerProperties <$> (o .: "Properties")
          "AWS::ElasticLoadBalancingV2::TargetGroup" -> ElasticLoadBalancingV2TargetGroupProperties <$> (o .: "Properties")
@@ -1748,6 +1808,8 @@
          "AWS::Glue::Trigger" -> GlueTriggerProperties <$> (o .: "Properties")
          "AWS::GuardDuty::Detector" -> GuardDutyDetectorProperties <$> (o .: "Properties")
          "AWS::GuardDuty::IPSet" -> GuardDutyIPSetProperties <$> (o .: "Properties")
+         "AWS::GuardDuty::Master" -> GuardDutyMasterProperties <$> (o .: "Properties")
+         "AWS::GuardDuty::Member" -> GuardDutyMemberProperties <$> (o .: "Properties")
          "AWS::GuardDuty::ThreatIntelSet" -> GuardDutyThreatIntelSetProperties <$> (o .: "Properties")
          "AWS::IAM::AccessKey" -> IAMAccessKeyProperties <$> (o .: "Properties")
          "AWS::IAM::Group" -> IAMGroupProperties <$> (o .: "Properties")
@@ -1811,6 +1873,12 @@
          "AWS::S3::Bucket" -> S3BucketProperties <$> (o .: "Properties")
          "AWS::S3::BucketPolicy" -> S3BucketPolicyProperties <$> (o .: "Properties")
          "AWS::SDB::Domain" -> SDBDomainProperties <$> (o .: "Properties")
+         "AWS::SES::ConfigurationSet" -> SESConfigurationSetProperties <$> (o .: "Properties")
+         "AWS::SES::ConfigurationSetEventDestination" -> SESConfigurationSetEventDestinationProperties <$> (o .: "Properties")
+         "AWS::SES::ReceiptFilter" -> SESReceiptFilterProperties <$> (o .: "Properties")
+         "AWS::SES::ReceiptRule" -> SESReceiptRuleProperties <$> (o .: "Properties")
+         "AWS::SES::ReceiptRuleSet" -> SESReceiptRuleSetProperties <$> (o .: "Properties")
+         "AWS::SES::Template" -> SESTemplateProperties <$> (o .: "Properties")
          "AWS::SNS::Subscription" -> SNSSubscriptionProperties <$> (o .: "Properties")
          "AWS::SNS::Topic" -> SNSTopicProperties <$> (o .: "Properties")
          "AWS::SNS::TopicPolicy" -> SNSTopicPolicyProperties <$> (o .: "Properties")
diff --git a/library-gen/Stratosphere/Resources/ApiGatewayRestApi.hs b/library-gen/Stratosphere/Resources/ApiGatewayRestApi.hs
--- a/library-gen/Stratosphere/Resources/ApiGatewayRestApi.hs
+++ b/library-gen/Stratosphere/Resources/ApiGatewayRestApi.hs
@@ -14,14 +14,15 @@
 -- for a more convenient constructor.
 data ApiGatewayRestApi =
   ApiGatewayRestApi
-  { _apiGatewayRestApiBinaryMediaTypes :: Maybe (ValList Text)
+  { _apiGatewayRestApiApiKeySourceType :: Maybe (Val Text)
+  , _apiGatewayRestApiBinaryMediaTypes :: Maybe (ValList Text)
   , _apiGatewayRestApiBody :: Maybe Object
   , _apiGatewayRestApiBodyS3Location :: Maybe ApiGatewayRestApiS3Location
   , _apiGatewayRestApiCloneFrom :: Maybe (Val Text)
   , _apiGatewayRestApiDescription :: Maybe (Val Text)
   , _apiGatewayRestApiEndpointConfiguration :: Maybe ApiGatewayRestApiEndpointConfiguration
   , _apiGatewayRestApiFailOnWarnings :: Maybe (Val Bool)
-  , _apiGatewayRestApiMode :: Maybe (Val Text)
+  , _apiGatewayRestApiMinimumCompressionSize :: Maybe (Val Integer)
   , _apiGatewayRestApiName :: Maybe (Val Text)
   , _apiGatewayRestApiParameters :: Maybe Object
   } deriving (Show, Eq)
@@ -30,14 +31,15 @@
   toJSON ApiGatewayRestApi{..} =
     object $
     catMaybes
-    [ fmap (("BinaryMediaTypes",) . toJSON) _apiGatewayRestApiBinaryMediaTypes
+    [ fmap (("ApiKeySourceType",) . toJSON) _apiGatewayRestApiApiKeySourceType
+    , fmap (("BinaryMediaTypes",) . toJSON) _apiGatewayRestApiBinaryMediaTypes
     , fmap (("Body",) . toJSON) _apiGatewayRestApiBody
     , fmap (("BodyS3Location",) . toJSON) _apiGatewayRestApiBodyS3Location
     , fmap (("CloneFrom",) . toJSON) _apiGatewayRestApiCloneFrom
     , fmap (("Description",) . toJSON) _apiGatewayRestApiDescription
     , fmap (("EndpointConfiguration",) . toJSON) _apiGatewayRestApiEndpointConfiguration
     , fmap (("FailOnWarnings",) . toJSON . fmap Bool') _apiGatewayRestApiFailOnWarnings
-    , fmap (("Mode",) . toJSON) _apiGatewayRestApiMode
+    , fmap (("MinimumCompressionSize",) . toJSON . fmap Integer') _apiGatewayRestApiMinimumCompressionSize
     , fmap (("Name",) . toJSON) _apiGatewayRestApiName
     , fmap (("Parameters",) . toJSON) _apiGatewayRestApiParameters
     ]
@@ -45,6 +47,7 @@
 instance FromJSON ApiGatewayRestApi where
   parseJSON (Object obj) =
     ApiGatewayRestApi <$>
+      (obj .:? "ApiKeySourceType") <*>
       (obj .:? "BinaryMediaTypes") <*>
       (obj .:? "Body") <*>
       (obj .:? "BodyS3Location") <*>
@@ -52,7 +55,7 @@
       (obj .:? "Description") <*>
       (obj .:? "EndpointConfiguration") <*>
       fmap (fmap (fmap unBool')) (obj .:? "FailOnWarnings") <*>
-      (obj .:? "Mode") <*>
+      fmap (fmap (fmap unInteger')) (obj .:? "MinimumCompressionSize") <*>
       (obj .:? "Name") <*>
       (obj .:? "Parameters")
   parseJSON _ = mempty
@@ -63,18 +66,23 @@
   :: ApiGatewayRestApi
 apiGatewayRestApi  =
   ApiGatewayRestApi
-  { _apiGatewayRestApiBinaryMediaTypes = Nothing
+  { _apiGatewayRestApiApiKeySourceType = Nothing
+  , _apiGatewayRestApiBinaryMediaTypes = Nothing
   , _apiGatewayRestApiBody = Nothing
   , _apiGatewayRestApiBodyS3Location = Nothing
   , _apiGatewayRestApiCloneFrom = Nothing
   , _apiGatewayRestApiDescription = Nothing
   , _apiGatewayRestApiEndpointConfiguration = Nothing
   , _apiGatewayRestApiFailOnWarnings = Nothing
-  , _apiGatewayRestApiMode = Nothing
+  , _apiGatewayRestApiMinimumCompressionSize = Nothing
   , _apiGatewayRestApiName = Nothing
   , _apiGatewayRestApiParameters = Nothing
   }
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-apikeysourcetype
+agraApiKeySourceType :: Lens' ApiGatewayRestApi (Maybe (Val Text))
+agraApiKeySourceType = lens _apiGatewayRestApiApiKeySourceType (\s a -> s { _apiGatewayRestApiApiKeySourceType = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-binarymediatypes
 agraBinaryMediaTypes :: Lens' ApiGatewayRestApi (Maybe (ValList Text))
 agraBinaryMediaTypes = lens _apiGatewayRestApiBinaryMediaTypes (\s a -> s { _apiGatewayRestApiBinaryMediaTypes = a })
@@ -103,9 +111,9 @@
 agraFailOnWarnings :: Lens' ApiGatewayRestApi (Maybe (Val Bool))
 agraFailOnWarnings = lens _apiGatewayRestApiFailOnWarnings (\s a -> s { _apiGatewayRestApiFailOnWarnings = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-mode
-agraMode :: Lens' ApiGatewayRestApi (Maybe (Val Text))
-agraMode = lens _apiGatewayRestApiMode (\s a -> s { _apiGatewayRestApiMode = a })
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-minimumcompressionsize
+agraMinimumCompressionSize :: Lens' ApiGatewayRestApi (Maybe (Val Integer))
+agraMinimumCompressionSize = lens _apiGatewayRestApiMinimumCompressionSize (\s a -> s { _apiGatewayRestApiMinimumCompressionSize = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-name
 agraName :: Lens' ApiGatewayRestApi (Maybe (Val Text))
diff --git a/library-gen/Stratosphere/Resources/ApiGatewayVpcLink.hs b/library-gen/Stratosphere/Resources/ApiGatewayVpcLink.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/ApiGatewayVpcLink.hs
@@ -0,0 +1,61 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-vpclink.html
+
+module Stratosphere.Resources.ApiGatewayVpcLink where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for ApiGatewayVpcLink. See 'apiGatewayVpcLink'
+-- for a more convenient constructor.
+data ApiGatewayVpcLink =
+  ApiGatewayVpcLink
+  { _apiGatewayVpcLinkDescription :: Maybe (Val Text)
+  , _apiGatewayVpcLinkName :: Val Text
+  , _apiGatewayVpcLinkTargetArns :: ValList Text
+  } deriving (Show, Eq)
+
+instance ToJSON ApiGatewayVpcLink where
+  toJSON ApiGatewayVpcLink{..} =
+    object $
+    catMaybes
+    [ fmap (("Description",) . toJSON) _apiGatewayVpcLinkDescription
+    , (Just . ("Name",) . toJSON) _apiGatewayVpcLinkName
+    , (Just . ("TargetArns",) . toJSON) _apiGatewayVpcLinkTargetArns
+    ]
+
+instance FromJSON ApiGatewayVpcLink where
+  parseJSON (Object obj) =
+    ApiGatewayVpcLink <$>
+      (obj .:? "Description") <*>
+      (obj .: "Name") <*>
+      (obj .: "TargetArns")
+  parseJSON _ = mempty
+
+-- | Constructor for 'ApiGatewayVpcLink' containing required fields as
+-- arguments.
+apiGatewayVpcLink
+  :: Val Text -- ^ 'agvlName'
+  -> ValList Text -- ^ 'agvlTargetArns'
+  -> ApiGatewayVpcLink
+apiGatewayVpcLink namearg targetArnsarg =
+  ApiGatewayVpcLink
+  { _apiGatewayVpcLinkDescription = Nothing
+  , _apiGatewayVpcLinkName = namearg
+  , _apiGatewayVpcLinkTargetArns = targetArnsarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-vpclink.html#cfn-apigateway-vpclink-description
+agvlDescription :: Lens' ApiGatewayVpcLink (Maybe (Val Text))
+agvlDescription = lens _apiGatewayVpcLinkDescription (\s a -> s { _apiGatewayVpcLinkDescription = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-vpclink.html#cfn-apigateway-vpclink-name
+agvlName :: Lens' ApiGatewayVpcLink (Val Text)
+agvlName = lens _apiGatewayVpcLinkName (\s a -> s { _apiGatewayVpcLinkName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-vpclink.html#cfn-apigateway-vpclink-targetarns
+agvlTargetArns :: Lens' ApiGatewayVpcLink (ValList Text)
+agvlTargetArns = lens _apiGatewayVpcLinkTargetArns (\s a -> s { _apiGatewayVpcLinkTargetArns = a })
diff --git a/library-gen/Stratosphere/Resources/AutoScalingAutoScalingGroup.hs b/library-gen/Stratosphere/Resources/AutoScalingAutoScalingGroup.hs
--- a/library-gen/Stratosphere/Resources/AutoScalingAutoScalingGroup.hs
+++ b/library-gen/Stratosphere/Resources/AutoScalingAutoScalingGroup.hs
@@ -16,7 +16,8 @@
 -- 'autoScalingAutoScalingGroup' for a more convenient constructor.
 data AutoScalingAutoScalingGroup =
   AutoScalingAutoScalingGroup
-  { _autoScalingAutoScalingGroupAvailabilityZones :: Maybe (ValList Text)
+  { _autoScalingAutoScalingGroupAutoScalingGroupName :: Maybe (Val Text)
+  , _autoScalingAutoScalingGroupAvailabilityZones :: Maybe (ValList Text)
   , _autoScalingAutoScalingGroupCooldown :: Maybe (Val Text)
   , _autoScalingAutoScalingGroupDesiredCapacity :: Maybe (Val Text)
   , _autoScalingAutoScalingGroupHealthCheckGracePeriod :: Maybe (Val Integer)
@@ -40,7 +41,8 @@
   toJSON AutoScalingAutoScalingGroup{..} =
     object $
     catMaybes
-    [ fmap (("AvailabilityZones",) . toJSON) _autoScalingAutoScalingGroupAvailabilityZones
+    [ fmap (("AutoScalingGroupName",) . toJSON) _autoScalingAutoScalingGroupAutoScalingGroupName
+    , fmap (("AvailabilityZones",) . toJSON) _autoScalingAutoScalingGroupAvailabilityZones
     , fmap (("Cooldown",) . toJSON) _autoScalingAutoScalingGroupCooldown
     , fmap (("DesiredCapacity",) . toJSON) _autoScalingAutoScalingGroupDesiredCapacity
     , fmap (("HealthCheckGracePeriod",) . toJSON . fmap Integer') _autoScalingAutoScalingGroupHealthCheckGracePeriod
@@ -63,6 +65,7 @@
 instance FromJSON AutoScalingAutoScalingGroup where
   parseJSON (Object obj) =
     AutoScalingAutoScalingGroup <$>
+      (obj .:? "AutoScalingGroupName") <*>
       (obj .:? "AvailabilityZones") <*>
       (obj .:? "Cooldown") <*>
       (obj .:? "DesiredCapacity") <*>
@@ -91,7 +94,8 @@
   -> AutoScalingAutoScalingGroup
 autoScalingAutoScalingGroup maxSizearg minSizearg =
   AutoScalingAutoScalingGroup
-  { _autoScalingAutoScalingGroupAvailabilityZones = Nothing
+  { _autoScalingAutoScalingGroupAutoScalingGroupName = Nothing
+  , _autoScalingAutoScalingGroupAvailabilityZones = Nothing
   , _autoScalingAutoScalingGroupCooldown = Nothing
   , _autoScalingAutoScalingGroupDesiredCapacity = Nothing
   , _autoScalingAutoScalingGroupHealthCheckGracePeriod = Nothing
@@ -110,6 +114,10 @@
   , _autoScalingAutoScalingGroupTerminationPolicies = Nothing
   , _autoScalingAutoScalingGroupVPCZoneIdentifier = Nothing
   }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-autoscaling-autoscalinggroup-autoscalinggroupname
+asasgAutoScalingGroupName :: Lens' AutoScalingAutoScalingGroup (Maybe (Val Text))
+asasgAutoScalingGroupName = lens _autoScalingAutoScalingGroupAutoScalingGroupName (\s a -> s { _autoScalingAutoScalingGroupAutoScalingGroupName = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-availabilityzones
 asasgAvailabilityZones :: Lens' AutoScalingAutoScalingGroup (Maybe (ValList Text))
diff --git a/library-gen/Stratosphere/Resources/ElasticLoadBalancingV2ListenerCertificateResource.hs b/library-gen/Stratosphere/Resources/ElasticLoadBalancingV2ListenerCertificateResource.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/ElasticLoadBalancingV2ListenerCertificateResource.hs
@@ -0,0 +1,55 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenercertificate.html
+
+module Stratosphere.Resources.ElasticLoadBalancingV2ListenerCertificateResource where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.ElasticLoadBalancingV2ListenerCertificateCertificate
+
+-- | Full data type definition for
+-- ElasticLoadBalancingV2ListenerCertificateResource. See
+-- 'elasticLoadBalancingV2ListenerCertificateResource' for a more convenient
+-- constructor.
+data ElasticLoadBalancingV2ListenerCertificateResource =
+  ElasticLoadBalancingV2ListenerCertificateResource
+  { _elasticLoadBalancingV2ListenerCertificateResourceCertificates :: [ElasticLoadBalancingV2ListenerCertificateCertificate]
+  , _elasticLoadBalancingV2ListenerCertificateResourceListenerArn :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON ElasticLoadBalancingV2ListenerCertificateResource where
+  toJSON ElasticLoadBalancingV2ListenerCertificateResource{..} =
+    object $
+    catMaybes
+    [ (Just . ("Certificates",) . toJSON) _elasticLoadBalancingV2ListenerCertificateResourceCertificates
+    , (Just . ("ListenerArn",) . toJSON) _elasticLoadBalancingV2ListenerCertificateResourceListenerArn
+    ]
+
+instance FromJSON ElasticLoadBalancingV2ListenerCertificateResource where
+  parseJSON (Object obj) =
+    ElasticLoadBalancingV2ListenerCertificateResource <$>
+      (obj .: "Certificates") <*>
+      (obj .: "ListenerArn")
+  parseJSON _ = mempty
+
+-- | Constructor for 'ElasticLoadBalancingV2ListenerCertificateResource'
+-- containing required fields as arguments.
+elasticLoadBalancingV2ListenerCertificateResource
+  :: [ElasticLoadBalancingV2ListenerCertificateCertificate] -- ^ 'elbvlcrCertificates'
+  -> Val Text -- ^ 'elbvlcrListenerArn'
+  -> ElasticLoadBalancingV2ListenerCertificateResource
+elasticLoadBalancingV2ListenerCertificateResource certificatesarg listenerArnarg =
+  ElasticLoadBalancingV2ListenerCertificateResource
+  { _elasticLoadBalancingV2ListenerCertificateResourceCertificates = certificatesarg
+  , _elasticLoadBalancingV2ListenerCertificateResourceListenerArn = listenerArnarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenercertificate.html#cfn-elasticloadbalancingv2-listenercertificate-certificates
+elbvlcrCertificates :: Lens' ElasticLoadBalancingV2ListenerCertificateResource [ElasticLoadBalancingV2ListenerCertificateCertificate]
+elbvlcrCertificates = lens _elasticLoadBalancingV2ListenerCertificateResourceCertificates (\s a -> s { _elasticLoadBalancingV2ListenerCertificateResourceCertificates = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenercertificate.html#cfn-elasticloadbalancingv2-listenercertificate-listenerarn
+elbvlcrListenerArn :: Lens' ElasticLoadBalancingV2ListenerCertificateResource (Val Text)
+elbvlcrListenerArn = lens _elasticLoadBalancingV2ListenerCertificateResourceListenerArn (\s a -> s { _elasticLoadBalancingV2ListenerCertificateResourceListenerArn = a })
diff --git a/library-gen/Stratosphere/Resources/GuardDutyMaster.hs b/library-gen/Stratosphere/Resources/GuardDutyMaster.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/GuardDutyMaster.hs
@@ -0,0 +1,62 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-master.html
+
+module Stratosphere.Resources.GuardDutyMaster where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for GuardDutyMaster. See 'guardDutyMaster' for
+-- a more convenient constructor.
+data GuardDutyMaster =
+  GuardDutyMaster
+  { _guardDutyMasterDetectorId :: Val Text
+  , _guardDutyMasterInvitationId :: Val Text
+  , _guardDutyMasterMasterId :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON GuardDutyMaster where
+  toJSON GuardDutyMaster{..} =
+    object $
+    catMaybes
+    [ (Just . ("DetectorId",) . toJSON) _guardDutyMasterDetectorId
+    , (Just . ("InvitationId",) . toJSON) _guardDutyMasterInvitationId
+    , (Just . ("MasterId",) . toJSON) _guardDutyMasterMasterId
+    ]
+
+instance FromJSON GuardDutyMaster where
+  parseJSON (Object obj) =
+    GuardDutyMaster <$>
+      (obj .: "DetectorId") <*>
+      (obj .: "InvitationId") <*>
+      (obj .: "MasterId")
+  parseJSON _ = mempty
+
+-- | Constructor for 'GuardDutyMaster' containing required fields as
+-- arguments.
+guardDutyMaster
+  :: Val Text -- ^ 'gdmaDetectorId'
+  -> Val Text -- ^ 'gdmaInvitationId'
+  -> Val Text -- ^ 'gdmaMasterId'
+  -> GuardDutyMaster
+guardDutyMaster detectorIdarg invitationIdarg masterIdarg =
+  GuardDutyMaster
+  { _guardDutyMasterDetectorId = detectorIdarg
+  , _guardDutyMasterInvitationId = invitationIdarg
+  , _guardDutyMasterMasterId = masterIdarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-master.html#cfn-guardduty-master-detectorid
+gdmaDetectorId :: Lens' GuardDutyMaster (Val Text)
+gdmaDetectorId = lens _guardDutyMasterDetectorId (\s a -> s { _guardDutyMasterDetectorId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-master.html#cfn-guardduty-master-invitationid
+gdmaInvitationId :: Lens' GuardDutyMaster (Val Text)
+gdmaInvitationId = lens _guardDutyMasterInvitationId (\s a -> s { _guardDutyMasterInvitationId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-master.html#cfn-guardduty-master-masterid
+gdmaMasterId :: Lens' GuardDutyMaster (Val Text)
+gdmaMasterId = lens _guardDutyMasterMasterId (\s a -> s { _guardDutyMasterMasterId = a })
diff --git a/library-gen/Stratosphere/Resources/GuardDutyMember.hs b/library-gen/Stratosphere/Resources/GuardDutyMember.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/GuardDutyMember.hs
@@ -0,0 +1,78 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-member.html
+
+module Stratosphere.Resources.GuardDutyMember where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for GuardDutyMember. See 'guardDutyMember' for
+-- a more convenient constructor.
+data GuardDutyMember =
+  GuardDutyMember
+  { _guardDutyMemberDetectorId :: Val Text
+  , _guardDutyMemberEmail :: Val Text
+  , _guardDutyMemberMemberId :: Val Text
+  , _guardDutyMemberMessage :: Maybe (Val Text)
+  , _guardDutyMemberStatus :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON GuardDutyMember where
+  toJSON GuardDutyMember{..} =
+    object $
+    catMaybes
+    [ (Just . ("DetectorId",) . toJSON) _guardDutyMemberDetectorId
+    , (Just . ("Email",) . toJSON) _guardDutyMemberEmail
+    , (Just . ("MemberId",) . toJSON) _guardDutyMemberMemberId
+    , fmap (("Message",) . toJSON) _guardDutyMemberMessage
+    , fmap (("Status",) . toJSON) _guardDutyMemberStatus
+    ]
+
+instance FromJSON GuardDutyMember where
+  parseJSON (Object obj) =
+    GuardDutyMember <$>
+      (obj .: "DetectorId") <*>
+      (obj .: "Email") <*>
+      (obj .: "MemberId") <*>
+      (obj .:? "Message") <*>
+      (obj .:? "Status")
+  parseJSON _ = mempty
+
+-- | Constructor for 'GuardDutyMember' containing required fields as
+-- arguments.
+guardDutyMember
+  :: Val Text -- ^ 'gdmeDetectorId'
+  -> Val Text -- ^ 'gdmeEmail'
+  -> Val Text -- ^ 'gdmeMemberId'
+  -> GuardDutyMember
+guardDutyMember detectorIdarg emailarg memberIdarg =
+  GuardDutyMember
+  { _guardDutyMemberDetectorId = detectorIdarg
+  , _guardDutyMemberEmail = emailarg
+  , _guardDutyMemberMemberId = memberIdarg
+  , _guardDutyMemberMessage = Nothing
+  , _guardDutyMemberStatus = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-member.html#cfn-guardduty-member-detectorid
+gdmeDetectorId :: Lens' GuardDutyMember (Val Text)
+gdmeDetectorId = lens _guardDutyMemberDetectorId (\s a -> s { _guardDutyMemberDetectorId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-member.html#cfn-guardduty-member-email
+gdmeEmail :: Lens' GuardDutyMember (Val Text)
+gdmeEmail = lens _guardDutyMemberEmail (\s a -> s { _guardDutyMemberEmail = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-member.html#cfn-guardduty-member-memberid
+gdmeMemberId :: Lens' GuardDutyMember (Val Text)
+gdmeMemberId = lens _guardDutyMemberMemberId (\s a -> s { _guardDutyMemberMemberId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-member.html#cfn-guardduty-member-message
+gdmeMessage :: Lens' GuardDutyMember (Maybe (Val Text))
+gdmeMessage = lens _guardDutyMemberMessage (\s a -> s { _guardDutyMemberMessage = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-member.html#cfn-guardduty-member-status
+gdmeStatus :: Lens' GuardDutyMember (Maybe (Val Text))
+gdmeStatus = lens _guardDutyMemberStatus (\s a -> s { _guardDutyMemberStatus = a })
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,6 +15,7 @@
   RDSDBCluster
   { _rDSDBClusterAvailabilityZones :: Maybe (ValList Text)
   , _rDSDBClusterBackupRetentionPeriod :: Maybe (Val Integer)
+  , _rDSDBClusterDBClusterIdentifier :: Maybe (Val Text)
   , _rDSDBClusterDBClusterParameterGroupName :: Maybe (Val Text)
   , _rDSDBClusterDBSubnetGroupName :: Maybe (Val Text)
   , _rDSDBClusterDatabaseName :: Maybe (Val Text)
@@ -39,6 +40,7 @@
     catMaybes
     [ fmap (("AvailabilityZones",) . toJSON) _rDSDBClusterAvailabilityZones
     , fmap (("BackupRetentionPeriod",) . toJSON . fmap Integer') _rDSDBClusterBackupRetentionPeriod
+    , fmap (("DBClusterIdentifier",) . toJSON) _rDSDBClusterDBClusterIdentifier
     , fmap (("DBClusterParameterGroupName",) . toJSON) _rDSDBClusterDBClusterParameterGroupName
     , fmap (("DBSubnetGroupName",) . toJSON) _rDSDBClusterDBSubnetGroupName
     , fmap (("DatabaseName",) . toJSON) _rDSDBClusterDatabaseName
@@ -62,6 +64,7 @@
     RDSDBCluster <$>
       (obj .:? "AvailabilityZones") <*>
       fmap (fmap (fmap unInteger')) (obj .:? "BackupRetentionPeriod") <*>
+      (obj .:? "DBClusterIdentifier") <*>
       (obj .:? "DBClusterParameterGroupName") <*>
       (obj .:? "DBSubnetGroupName") <*>
       (obj .:? "DatabaseName") <*>
@@ -88,6 +91,7 @@
   RDSDBCluster
   { _rDSDBClusterAvailabilityZones = Nothing
   , _rDSDBClusterBackupRetentionPeriod = Nothing
+  , _rDSDBClusterDBClusterIdentifier = Nothing
   , _rDSDBClusterDBClusterParameterGroupName = Nothing
   , _rDSDBClusterDBSubnetGroupName = Nothing
   , _rDSDBClusterDatabaseName = Nothing
@@ -113,6 +117,10 @@
 -- | 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 })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-dbclusteridentifier
+rdsdbcDBClusterIdentifier :: Lens' RDSDBCluster (Maybe (Val Text))
+rdsdbcDBClusterIdentifier = lens _rDSDBClusterDBClusterIdentifier (\s a -> s { _rDSDBClusterDBClusterIdentifier = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-dbclusterparametergroupname
 rdsdbcDBClusterParameterGroupName :: Lens' RDSDBCluster (Maybe (Val Text))
diff --git a/library-gen/Stratosphere/Resources/RedshiftCluster.hs b/library-gen/Stratosphere/Resources/RedshiftCluster.hs
--- a/library-gen/Stratosphere/Resources/RedshiftCluster.hs
+++ b/library-gen/Stratosphere/Resources/RedshiftCluster.hs
@@ -17,6 +17,7 @@
   { _redshiftClusterAllowVersionUpgrade :: Maybe (Val Bool)
   , _redshiftClusterAutomatedSnapshotRetentionPeriod :: Maybe (Val Integer)
   , _redshiftClusterAvailabilityZone :: Maybe (Val Text)
+  , _redshiftClusterClusterIdentifier :: Maybe (Val Text)
   , _redshiftClusterClusterParameterGroupName :: Maybe (Val Text)
   , _redshiftClusterClusterSecurityGroups :: Maybe (ValList Text)
   , _redshiftClusterClusterSubnetGroupName :: Maybe (Val Text)
@@ -51,6 +52,7 @@
     [ fmap (("AllowVersionUpgrade",) . toJSON . fmap Bool') _redshiftClusterAllowVersionUpgrade
     , fmap (("AutomatedSnapshotRetentionPeriod",) . toJSON . fmap Integer') _redshiftClusterAutomatedSnapshotRetentionPeriod
     , fmap (("AvailabilityZone",) . toJSON) _redshiftClusterAvailabilityZone
+    , fmap (("ClusterIdentifier",) . toJSON) _redshiftClusterClusterIdentifier
     , fmap (("ClusterParameterGroupName",) . toJSON) _redshiftClusterClusterParameterGroupName
     , fmap (("ClusterSecurityGroups",) . toJSON) _redshiftClusterClusterSecurityGroups
     , fmap (("ClusterSubnetGroupName",) . toJSON) _redshiftClusterClusterSubnetGroupName
@@ -84,6 +86,7 @@
       fmap (fmap (fmap unBool')) (obj .:? "AllowVersionUpgrade") <*>
       fmap (fmap (fmap unInteger')) (obj .:? "AutomatedSnapshotRetentionPeriod") <*>
       (obj .:? "AvailabilityZone") <*>
+      (obj .:? "ClusterIdentifier") <*>
       (obj .:? "ClusterParameterGroupName") <*>
       (obj .:? "ClusterSecurityGroups") <*>
       (obj .:? "ClusterSubnetGroupName") <*>
@@ -125,6 +128,7 @@
   { _redshiftClusterAllowVersionUpgrade = Nothing
   , _redshiftClusterAutomatedSnapshotRetentionPeriod = Nothing
   , _redshiftClusterAvailabilityZone = Nothing
+  , _redshiftClusterClusterIdentifier = Nothing
   , _redshiftClusterClusterParameterGroupName = Nothing
   , _redshiftClusterClusterSecurityGroups = Nothing
   , _redshiftClusterClusterSubnetGroupName = Nothing
@@ -163,6 +167,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-availabilityzone
 rcAvailabilityZone :: Lens' RedshiftCluster (Maybe (Val Text))
 rcAvailabilityZone = lens _redshiftClusterAvailabilityZone (\s a -> s { _redshiftClusterAvailabilityZone = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-clusteridentifier
+rcClusterIdentifier :: Lens' RedshiftCluster (Maybe (Val Text))
+rcClusterIdentifier = lens _redshiftClusterClusterIdentifier (\s a -> s { _redshiftClusterClusterIdentifier = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-clusterparametergroupname
 rcClusterParameterGroupName :: Lens' RedshiftCluster (Maybe (Val Text))
diff --git a/library-gen/Stratosphere/Resources/SESConfigurationSet.hs b/library-gen/Stratosphere/Resources/SESConfigurationSet.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/SESConfigurationSet.hs
@@ -0,0 +1,43 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-configurationset.html
+
+module Stratosphere.Resources.SESConfigurationSet where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for SESConfigurationSet. See
+-- 'sesConfigurationSet' for a more convenient constructor.
+data SESConfigurationSet =
+  SESConfigurationSet
+  { _sESConfigurationSetName :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON SESConfigurationSet where
+  toJSON SESConfigurationSet{..} =
+    object $
+    catMaybes
+    [ fmap (("Name",) . toJSON) _sESConfigurationSetName
+    ]
+
+instance FromJSON SESConfigurationSet where
+  parseJSON (Object obj) =
+    SESConfigurationSet <$>
+      (obj .:? "Name")
+  parseJSON _ = mempty
+
+-- | Constructor for 'SESConfigurationSet' containing required fields as
+-- arguments.
+sesConfigurationSet
+  :: SESConfigurationSet
+sesConfigurationSet  =
+  SESConfigurationSet
+  { _sESConfigurationSetName = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-configurationset.html#cfn-ses-configurationset-name
+sescsName :: Lens' SESConfigurationSet (Maybe (Val Text))
+sescsName = lens _sESConfigurationSetName (\s a -> s { _sESConfigurationSetName = a })
diff --git a/library-gen/Stratosphere/Resources/SESConfigurationSetEventDestination.hs b/library-gen/Stratosphere/Resources/SESConfigurationSetEventDestination.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/SESConfigurationSetEventDestination.hs
@@ -0,0 +1,53 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-configurationseteventdestination.html
+
+module Stratosphere.Resources.SESConfigurationSetEventDestination where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.SESConfigurationSetEventDestinationEventDestination
+
+-- | Full data type definition for SESConfigurationSetEventDestination. See
+-- 'sesConfigurationSetEventDestination' for a more convenient constructor.
+data SESConfigurationSetEventDestination =
+  SESConfigurationSetEventDestination
+  { _sESConfigurationSetEventDestinationConfigurationSetName :: Val Text
+  , _sESConfigurationSetEventDestinationEventDestination :: SESConfigurationSetEventDestinationEventDestination
+  } deriving (Show, Eq)
+
+instance ToJSON SESConfigurationSetEventDestination where
+  toJSON SESConfigurationSetEventDestination{..} =
+    object $
+    catMaybes
+    [ (Just . ("ConfigurationSetName",) . toJSON) _sESConfigurationSetEventDestinationConfigurationSetName
+    , (Just . ("EventDestination",) . toJSON) _sESConfigurationSetEventDestinationEventDestination
+    ]
+
+instance FromJSON SESConfigurationSetEventDestination where
+  parseJSON (Object obj) =
+    SESConfigurationSetEventDestination <$>
+      (obj .: "ConfigurationSetName") <*>
+      (obj .: "EventDestination")
+  parseJSON _ = mempty
+
+-- | Constructor for 'SESConfigurationSetEventDestination' containing required
+-- fields as arguments.
+sesConfigurationSetEventDestination
+  :: Val Text -- ^ 'sescsedConfigurationSetName'
+  -> SESConfigurationSetEventDestinationEventDestination -- ^ 'sescsedEventDestination'
+  -> SESConfigurationSetEventDestination
+sesConfigurationSetEventDestination configurationSetNamearg eventDestinationarg =
+  SESConfigurationSetEventDestination
+  { _sESConfigurationSetEventDestinationConfigurationSetName = configurationSetNamearg
+  , _sESConfigurationSetEventDestinationEventDestination = eventDestinationarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-configurationseteventdestination.html#cfn-ses-configurationseteventdestination-configurationsetname
+sescsedConfigurationSetName :: Lens' SESConfigurationSetEventDestination (Val Text)
+sescsedConfigurationSetName = lens _sESConfigurationSetEventDestinationConfigurationSetName (\s a -> s { _sESConfigurationSetEventDestinationConfigurationSetName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-configurationseteventdestination.html#cfn-ses-configurationseteventdestination-eventdestination
+sescsedEventDestination :: Lens' SESConfigurationSetEventDestination SESConfigurationSetEventDestinationEventDestination
+sescsedEventDestination = lens _sESConfigurationSetEventDestinationEventDestination (\s a -> s { _sESConfigurationSetEventDestinationEventDestination = a })
diff --git a/library-gen/Stratosphere/Resources/SESReceiptFilter.hs b/library-gen/Stratosphere/Resources/SESReceiptFilter.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/SESReceiptFilter.hs
@@ -0,0 +1,44 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-receiptfilter.html
+
+module Stratosphere.Resources.SESReceiptFilter where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.SESReceiptFilterFilter
+
+-- | Full data type definition for SESReceiptFilter. See 'sesReceiptFilter'
+-- for a more convenient constructor.
+data SESReceiptFilter =
+  SESReceiptFilter
+  { _sESReceiptFilterFilter :: SESReceiptFilterFilter
+  } deriving (Show, Eq)
+
+instance ToJSON SESReceiptFilter where
+  toJSON SESReceiptFilter{..} =
+    object $
+    catMaybes
+    [ (Just . ("Filter",) . toJSON) _sESReceiptFilterFilter
+    ]
+
+instance FromJSON SESReceiptFilter where
+  parseJSON (Object obj) =
+    SESReceiptFilter <$>
+      (obj .: "Filter")
+  parseJSON _ = mempty
+
+-- | Constructor for 'SESReceiptFilter' containing required fields as
+-- arguments.
+sesReceiptFilter
+  :: SESReceiptFilterFilter -- ^ 'sesrfFilter'
+  -> SESReceiptFilter
+sesReceiptFilter filterarg =
+  SESReceiptFilter
+  { _sESReceiptFilterFilter = filterarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-receiptfilter.html#cfn-ses-receiptfilter-filter
+sesrfFilter :: Lens' SESReceiptFilter SESReceiptFilterFilter
+sesrfFilter = lens _sESReceiptFilterFilter (\s a -> s { _sESReceiptFilterFilter = a })
diff --git a/library-gen/Stratosphere/Resources/SESReceiptRule.hs b/library-gen/Stratosphere/Resources/SESReceiptRule.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/SESReceiptRule.hs
@@ -0,0 +1,60 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-receiptrule.html
+
+module Stratosphere.Resources.SESReceiptRule where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.SESReceiptRuleRule
+
+-- | Full data type definition for SESReceiptRule. See 'sesReceiptRule' for a
+-- more convenient constructor.
+data SESReceiptRule =
+  SESReceiptRule
+  { _sESReceiptRuleAfter :: Maybe (Val Text)
+  , _sESReceiptRuleRule :: SESReceiptRuleRule
+  , _sESReceiptRuleRuleSetName :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON SESReceiptRule where
+  toJSON SESReceiptRule{..} =
+    object $
+    catMaybes
+    [ fmap (("After",) . toJSON) _sESReceiptRuleAfter
+    , (Just . ("Rule",) . toJSON) _sESReceiptRuleRule
+    , (Just . ("RuleSetName",) . toJSON) _sESReceiptRuleRuleSetName
+    ]
+
+instance FromJSON SESReceiptRule where
+  parseJSON (Object obj) =
+    SESReceiptRule <$>
+      (obj .:? "After") <*>
+      (obj .: "Rule") <*>
+      (obj .: "RuleSetName")
+  parseJSON _ = mempty
+
+-- | Constructor for 'SESReceiptRule' containing required fields as arguments.
+sesReceiptRule
+  :: SESReceiptRuleRule -- ^ 'sesrrRule'
+  -> Val Text -- ^ 'sesrrRuleSetName'
+  -> SESReceiptRule
+sesReceiptRule rulearg ruleSetNamearg =
+  SESReceiptRule
+  { _sESReceiptRuleAfter = Nothing
+  , _sESReceiptRuleRule = rulearg
+  , _sESReceiptRuleRuleSetName = ruleSetNamearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-receiptrule.html#cfn-ses-receiptrule-after
+sesrrAfter :: Lens' SESReceiptRule (Maybe (Val Text))
+sesrrAfter = lens _sESReceiptRuleAfter (\s a -> s { _sESReceiptRuleAfter = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-receiptrule.html#cfn-ses-receiptrule-rule
+sesrrRule :: Lens' SESReceiptRule SESReceiptRuleRule
+sesrrRule = lens _sESReceiptRuleRule (\s a -> s { _sESReceiptRuleRule = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-receiptrule.html#cfn-ses-receiptrule-rulesetname
+sesrrRuleSetName :: Lens' SESReceiptRule (Val Text)
+sesrrRuleSetName = lens _sESReceiptRuleRuleSetName (\s a -> s { _sESReceiptRuleRuleSetName = a })
diff --git a/library-gen/Stratosphere/Resources/SESReceiptRuleSet.hs b/library-gen/Stratosphere/Resources/SESReceiptRuleSet.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/SESReceiptRuleSet.hs
@@ -0,0 +1,43 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-receiptruleset.html
+
+module Stratosphere.Resources.SESReceiptRuleSet where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for SESReceiptRuleSet. See 'sesReceiptRuleSet'
+-- for a more convenient constructor.
+data SESReceiptRuleSet =
+  SESReceiptRuleSet
+  { _sESReceiptRuleSetRuleSetName :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON SESReceiptRuleSet where
+  toJSON SESReceiptRuleSet{..} =
+    object $
+    catMaybes
+    [ fmap (("RuleSetName",) . toJSON) _sESReceiptRuleSetRuleSetName
+    ]
+
+instance FromJSON SESReceiptRuleSet where
+  parseJSON (Object obj) =
+    SESReceiptRuleSet <$>
+      (obj .:? "RuleSetName")
+  parseJSON _ = mempty
+
+-- | Constructor for 'SESReceiptRuleSet' containing required fields as
+-- arguments.
+sesReceiptRuleSet
+  :: SESReceiptRuleSet
+sesReceiptRuleSet  =
+  SESReceiptRuleSet
+  { _sESReceiptRuleSetRuleSetName = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-receiptruleset.html#cfn-ses-receiptruleset-rulesetname
+sesrrsRuleSetName :: Lens' SESReceiptRuleSet (Maybe (Val Text))
+sesrrsRuleSetName = lens _sESReceiptRuleSetRuleSetName (\s a -> s { _sESReceiptRuleSetRuleSetName = a })
diff --git a/library-gen/Stratosphere/Resources/SESTemplate.hs b/library-gen/Stratosphere/Resources/SESTemplate.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/SESTemplate.hs
@@ -0,0 +1,42 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-template.html
+
+module Stratosphere.Resources.SESTemplate where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.SESTemplateTemplate
+
+-- | Full data type definition for SESTemplate. See 'sesTemplate' for a more
+-- convenient constructor.
+data SESTemplate =
+  SESTemplate
+  { _sESTemplateTemplate :: Maybe SESTemplateTemplate
+  } deriving (Show, Eq)
+
+instance ToJSON SESTemplate where
+  toJSON SESTemplate{..} =
+    object $
+    catMaybes
+    [ fmap (("Template",) . toJSON) _sESTemplateTemplate
+    ]
+
+instance FromJSON SESTemplate where
+  parseJSON (Object obj) =
+    SESTemplate <$>
+      (obj .:? "Template")
+  parseJSON _ = mempty
+
+-- | Constructor for 'SESTemplate' containing required fields as arguments.
+sesTemplate
+  :: SESTemplate
+sesTemplate  =
+  SESTemplate
+  { _sESTemplateTemplate = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-template.html#cfn-ses-template-template
+sestTemplate :: Lens' SESTemplate (Maybe SESTemplateTemplate)
+sestTemplate = lens _sESTemplateTemplate (\s a -> s { _sESTemplateTemplate = a })
diff --git a/library-gen/Stratosphere/Resources/SSMDocument.hs b/library-gen/Stratosphere/Resources/SSMDocument.hs
--- a/library-gen/Stratosphere/Resources/SSMDocument.hs
+++ b/library-gen/Stratosphere/Resources/SSMDocument.hs
@@ -7,7 +7,7 @@
 module Stratosphere.Resources.SSMDocument where
 
 import Stratosphere.ResourceImports
-
+import Stratosphere.ResourceProperties.Tag
 
 -- | Full data type definition for SSMDocument. See 'ssmDocument' for a more
 -- convenient constructor.
@@ -15,6 +15,7 @@
   SSMDocument
   { _sSMDocumentContent :: Object
   , _sSMDocumentDocumentType :: Maybe (Val Text)
+  , _sSMDocumentTags :: Maybe [Tag]
   } deriving (Show, Eq)
 
 instance ToJSON SSMDocument where
@@ -23,13 +24,15 @@
     catMaybes
     [ (Just . ("Content",) . toJSON) _sSMDocumentContent
     , fmap (("DocumentType",) . toJSON) _sSMDocumentDocumentType
+    , fmap (("Tags",) . toJSON) _sSMDocumentTags
     ]
 
 instance FromJSON SSMDocument where
   parseJSON (Object obj) =
     SSMDocument <$>
       (obj .: "Content") <*>
-      (obj .:? "DocumentType")
+      (obj .:? "DocumentType") <*>
+      (obj .:? "Tags")
   parseJSON _ = mempty
 
 -- | Constructor for 'SSMDocument' containing required fields as arguments.
@@ -40,6 +43,7 @@
   SSMDocument
   { _sSMDocumentContent = contentarg
   , _sSMDocumentDocumentType = Nothing
+  , _sSMDocumentTags = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-document.html#cfn-ssm-document-content
@@ -49,3 +53,7 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-document.html#cfn-ssm-document-documenttype
 ssmdDocumentType :: Lens' SSMDocument (Maybe (Val Text))
 ssmdDocumentType = lens _sSMDocumentDocumentType (\s a -> s { _sSMDocumentDocumentType = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-document.html#cfn-ssm-document-tags
+ssmdTags :: Lens' SSMDocument (Maybe [Tag])
+ssmdTags = lens _sSMDocumentTags (\s a -> s { _sSMDocumentTags = a })
diff --git a/library-gen/Stratosphere/Resources/SSMPatchBaseline.hs b/library-gen/Stratosphere/Resources/SSMPatchBaseline.hs
--- a/library-gen/Stratosphere/Resources/SSMPatchBaseline.hs
+++ b/library-gen/Stratosphere/Resources/SSMPatchBaseline.hs
@@ -9,6 +9,7 @@
 import Stratosphere.ResourceImports
 import Stratosphere.ResourceProperties.SSMPatchBaselineRuleGroup
 import Stratosphere.ResourceProperties.SSMPatchBaselinePatchFilterGroup
+import Stratosphere.ResourceProperties.SSMPatchBaselinePatchSource
 
 -- | Full data type definition for SSMPatchBaseline. See 'ssmPatchBaseline'
 -- for a more convenient constructor.
@@ -17,12 +18,14 @@
   { _sSMPatchBaselineApprovalRules :: Maybe SSMPatchBaselineRuleGroup
   , _sSMPatchBaselineApprovedPatches :: Maybe (ValList Text)
   , _sSMPatchBaselineApprovedPatchesComplianceLevel :: Maybe (Val Text)
+  , _sSMPatchBaselineApprovedPatchesEnableNonSecurity :: Maybe (Val Bool)
   , _sSMPatchBaselineDescription :: Maybe (Val Text)
   , _sSMPatchBaselineGlobalFilters :: Maybe SSMPatchBaselinePatchFilterGroup
   , _sSMPatchBaselineName :: Val Text
   , _sSMPatchBaselineOperatingSystem :: Maybe (Val Text)
   , _sSMPatchBaselinePatchGroups :: Maybe (ValList Text)
   , _sSMPatchBaselineRejectedPatches :: Maybe (ValList Text)
+  , _sSMPatchBaselineSources :: Maybe [SSMPatchBaselinePatchSource]
   } deriving (Show, Eq)
 
 instance ToJSON SSMPatchBaseline where
@@ -32,12 +35,14 @@
     [ fmap (("ApprovalRules",) . toJSON) _sSMPatchBaselineApprovalRules
     , fmap (("ApprovedPatches",) . toJSON) _sSMPatchBaselineApprovedPatches
     , fmap (("ApprovedPatchesComplianceLevel",) . toJSON) _sSMPatchBaselineApprovedPatchesComplianceLevel
+    , fmap (("ApprovedPatchesEnableNonSecurity",) . toJSON . fmap Bool') _sSMPatchBaselineApprovedPatchesEnableNonSecurity
     , fmap (("Description",) . toJSON) _sSMPatchBaselineDescription
     , fmap (("GlobalFilters",) . toJSON) _sSMPatchBaselineGlobalFilters
     , (Just . ("Name",) . toJSON) _sSMPatchBaselineName
     , fmap (("OperatingSystem",) . toJSON) _sSMPatchBaselineOperatingSystem
     , fmap (("PatchGroups",) . toJSON) _sSMPatchBaselinePatchGroups
     , fmap (("RejectedPatches",) . toJSON) _sSMPatchBaselineRejectedPatches
+    , fmap (("Sources",) . toJSON) _sSMPatchBaselineSources
     ]
 
 instance FromJSON SSMPatchBaseline where
@@ -46,12 +51,14 @@
       (obj .:? "ApprovalRules") <*>
       (obj .:? "ApprovedPatches") <*>
       (obj .:? "ApprovedPatchesComplianceLevel") <*>
+      fmap (fmap (fmap unBool')) (obj .:? "ApprovedPatchesEnableNonSecurity") <*>
       (obj .:? "Description") <*>
       (obj .:? "GlobalFilters") <*>
       (obj .: "Name") <*>
       (obj .:? "OperatingSystem") <*>
       (obj .:? "PatchGroups") <*>
-      (obj .:? "RejectedPatches")
+      (obj .:? "RejectedPatches") <*>
+      (obj .:? "Sources")
   parseJSON _ = mempty
 
 -- | Constructor for 'SSMPatchBaseline' containing required fields as
@@ -64,12 +71,14 @@
   { _sSMPatchBaselineApprovalRules = Nothing
   , _sSMPatchBaselineApprovedPatches = Nothing
   , _sSMPatchBaselineApprovedPatchesComplianceLevel = Nothing
+  , _sSMPatchBaselineApprovedPatchesEnableNonSecurity = Nothing
   , _sSMPatchBaselineDescription = Nothing
   , _sSMPatchBaselineGlobalFilters = Nothing
   , _sSMPatchBaselineName = namearg
   , _sSMPatchBaselineOperatingSystem = Nothing
   , _sSMPatchBaselinePatchGroups = Nothing
   , _sSMPatchBaselineRejectedPatches = Nothing
+  , _sSMPatchBaselineSources = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-patchbaseline.html#cfn-ssm-patchbaseline-approvalrules
@@ -84,6 +93,10 @@
 ssmpbApprovedPatchesComplianceLevel :: Lens' SSMPatchBaseline (Maybe (Val Text))
 ssmpbApprovedPatchesComplianceLevel = lens _sSMPatchBaselineApprovedPatchesComplianceLevel (\s a -> s { _sSMPatchBaselineApprovedPatchesComplianceLevel = a })
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-patchbaseline.html#cfn-ssm-patchbaseline-approvedpatchesenablenonsecurity
+ssmpbApprovedPatchesEnableNonSecurity :: Lens' SSMPatchBaseline (Maybe (Val Bool))
+ssmpbApprovedPatchesEnableNonSecurity = lens _sSMPatchBaselineApprovedPatchesEnableNonSecurity (\s a -> s { _sSMPatchBaselineApprovedPatchesEnableNonSecurity = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-patchbaseline.html#cfn-ssm-patchbaseline-description
 ssmpbDescription :: Lens' SSMPatchBaseline (Maybe (Val Text))
 ssmpbDescription = lens _sSMPatchBaselineDescription (\s a -> s { _sSMPatchBaselineDescription = a })
@@ -107,3 +120,7 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-patchbaseline.html#cfn-ssm-patchbaseline-rejectedpatches
 ssmpbRejectedPatches :: Lens' SSMPatchBaseline (Maybe (ValList Text))
 ssmpbRejectedPatches = lens _sSMPatchBaselineRejectedPatches (\s a -> s { _sSMPatchBaselineRejectedPatches = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-patchbaseline.html#cfn-ssm-patchbaseline-sources
+ssmpbSources :: Lens' SSMPatchBaseline (Maybe [SSMPatchBaselinePatchSource])
+ssmpbSources = lens _sSMPatchBaselineSources (\s a -> s { _sSMPatchBaselineSources = a })
diff --git a/stratosphere.cabal b/stratosphere.cabal
--- a/stratosphere.cabal
+++ b/stratosphere.cabal
@@ -2,10 +2,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: b0fa589c66137f3d3ff2b85a4acb18660d78ce0c2ea15ddd72e07d85c8633fe1
+-- hash: 114b5d0163580877c3ed207ba283b8d1fe2e14c76ff53f37a76ae031c6862eaa
 
 name:           stratosphere
-version:        0.17.0
+version:        0.18.0
 synopsis:       EDSL for AWS CloudFormation
 description:    EDSL for AWS CloudFormation
 category:       AWS, Cloud
@@ -236,6 +236,7 @@
       Stratosphere.ResourceProperties.EC2SpotFleetSpotFleetLaunchSpecification
       Stratosphere.ResourceProperties.EC2SpotFleetSpotFleetMonitoring
       Stratosphere.ResourceProperties.EC2SpotFleetSpotFleetRequestConfigData
+      Stratosphere.ResourceProperties.EC2SpotFleetSpotFleetTagSpecification
       Stratosphere.ResourceProperties.EC2SpotFleetSpotPlacement
       Stratosphere.ResourceProperties.EC2VPNConnectionVpnTunnelOptionsSpecification
       Stratosphere.ResourceProperties.ECRRepositoryLifecyclePolicy
@@ -517,6 +518,22 @@
       Stratosphere.ResourceProperties.ServiceDiscoveryServiceDnsConfig
       Stratosphere.ResourceProperties.ServiceDiscoveryServiceDnsRecord
       Stratosphere.ResourceProperties.ServiceDiscoveryServiceHealthCheckConfig
+      Stratosphere.ResourceProperties.SESConfigurationSetEventDestinationCloudWatchDestination
+      Stratosphere.ResourceProperties.SESConfigurationSetEventDestinationDimensionConfiguration
+      Stratosphere.ResourceProperties.SESConfigurationSetEventDestinationEventDestination
+      Stratosphere.ResourceProperties.SESConfigurationSetEventDestinationKinesisFirehoseDestination
+      Stratosphere.ResourceProperties.SESReceiptFilterFilter
+      Stratosphere.ResourceProperties.SESReceiptFilterIpFilter
+      Stratosphere.ResourceProperties.SESReceiptRuleAction
+      Stratosphere.ResourceProperties.SESReceiptRuleAddHeaderAction
+      Stratosphere.ResourceProperties.SESReceiptRuleBounceAction
+      Stratosphere.ResourceProperties.SESReceiptRuleLambdaAction
+      Stratosphere.ResourceProperties.SESReceiptRuleRule
+      Stratosphere.ResourceProperties.SESReceiptRuleS3Action
+      Stratosphere.ResourceProperties.SESReceiptRuleSNSAction
+      Stratosphere.ResourceProperties.SESReceiptRuleStopAction
+      Stratosphere.ResourceProperties.SESReceiptRuleWorkmailAction
+      Stratosphere.ResourceProperties.SESTemplateTemplate
       Stratosphere.ResourceProperties.SNSTopicSubscription
       Stratosphere.ResourceProperties.SSMAssociationParameterValues
       Stratosphere.ResourceProperties.SSMAssociationTarget
@@ -530,6 +547,7 @@
       Stratosphere.ResourceProperties.SSMMaintenanceWindowTaskTaskInvocationParameters
       Stratosphere.ResourceProperties.SSMPatchBaselinePatchFilter
       Stratosphere.ResourceProperties.SSMPatchBaselinePatchFilterGroup
+      Stratosphere.ResourceProperties.SSMPatchBaselinePatchSource
       Stratosphere.ResourceProperties.SSMPatchBaselineRule
       Stratosphere.ResourceProperties.SSMPatchBaselineRuleGroup
       Stratosphere.ResourceProperties.Tag
@@ -576,6 +594,7 @@
       Stratosphere.Resources.ApiGatewayStage
       Stratosphere.Resources.ApiGatewayUsagePlan
       Stratosphere.Resources.ApiGatewayUsagePlanKey
+      Stratosphere.Resources.ApiGatewayVpcLink
       Stratosphere.Resources.ApplicationAutoScalingScalableTarget
       Stratosphere.Resources.ApplicationAutoScalingScalingPolicy
       Stratosphere.Resources.AthenaNamedQuery
@@ -686,6 +705,7 @@
       Stratosphere.Resources.ElasticBeanstalkEnvironment
       Stratosphere.Resources.ElasticLoadBalancingLoadBalancer
       Stratosphere.Resources.ElasticLoadBalancingV2Listener
+      Stratosphere.Resources.ElasticLoadBalancingV2ListenerCertificateResource
       Stratosphere.Resources.ElasticLoadBalancingV2ListenerRule
       Stratosphere.Resources.ElasticLoadBalancingV2LoadBalancer
       Stratosphere.Resources.ElasticLoadBalancingV2TargetGroup
@@ -710,6 +730,8 @@
       Stratosphere.Resources.GlueTrigger
       Stratosphere.Resources.GuardDutyDetector
       Stratosphere.Resources.GuardDutyIPSet
+      Stratosphere.Resources.GuardDutyMaster
+      Stratosphere.Resources.GuardDutyMember
       Stratosphere.Resources.GuardDutyThreatIntelSet
       Stratosphere.Resources.IAMAccessKey
       Stratosphere.Resources.IAMGroup
@@ -777,6 +799,12 @@
       Stratosphere.Resources.ServiceDiscoveryPrivateDnsNamespace
       Stratosphere.Resources.ServiceDiscoveryPublicDnsNamespace
       Stratosphere.Resources.ServiceDiscoveryService
+      Stratosphere.Resources.SESConfigurationSet
+      Stratosphere.Resources.SESConfigurationSetEventDestination
+      Stratosphere.Resources.SESReceiptFilter
+      Stratosphere.Resources.SESReceiptRule
+      Stratosphere.Resources.SESReceiptRuleSet
+      Stratosphere.Resources.SESTemplate
       Stratosphere.Resources.SNSSubscription
       Stratosphere.Resources.SNSTopic
       Stratosphere.Resources.SNSTopicPolicy
