diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Change Log
 
+## 0.30.0
+
+* Update resource specification document to version 2.19.0
+
 ## 0.29.1
 
 * Update resource specification document to version 2.18.1
diff --git a/library-gen/Stratosphere/ResourceProperties/DMSEndpointElasticsearchSettings.hs b/library-gen/Stratosphere/ResourceProperties/DMSEndpointElasticsearchSettings.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/DMSEndpointElasticsearchSettings.hs
@@ -0,0 +1,67 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-elasticsearchsettings.html
+
+module Stratosphere.ResourceProperties.DMSEndpointElasticsearchSettings where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for DMSEndpointElasticsearchSettings. See
+-- 'dmsEndpointElasticsearchSettings' for a more convenient constructor.
+data DMSEndpointElasticsearchSettings =
+  DMSEndpointElasticsearchSettings
+  { _dMSEndpointElasticsearchSettingsEndpointUri :: Maybe (Val Text)
+  , _dMSEndpointElasticsearchSettingsErrorRetryDuration :: Maybe (Val Integer)
+  , _dMSEndpointElasticsearchSettingsFullLoadErrorPercentage :: Maybe (Val Integer)
+  , _dMSEndpointElasticsearchSettingsServiceAccessRoleArn :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON DMSEndpointElasticsearchSettings where
+  toJSON DMSEndpointElasticsearchSettings{..} =
+    object $
+    catMaybes
+    [ fmap (("EndpointUri",) . toJSON) _dMSEndpointElasticsearchSettingsEndpointUri
+    , fmap (("ErrorRetryDuration",) . toJSON . fmap Integer') _dMSEndpointElasticsearchSettingsErrorRetryDuration
+    , fmap (("FullLoadErrorPercentage",) . toJSON . fmap Integer') _dMSEndpointElasticsearchSettingsFullLoadErrorPercentage
+    , fmap (("ServiceAccessRoleArn",) . toJSON) _dMSEndpointElasticsearchSettingsServiceAccessRoleArn
+    ]
+
+instance FromJSON DMSEndpointElasticsearchSettings where
+  parseJSON (Object obj) =
+    DMSEndpointElasticsearchSettings <$>
+      (obj .:? "EndpointUri") <*>
+      fmap (fmap (fmap unInteger')) (obj .:? "ErrorRetryDuration") <*>
+      fmap (fmap (fmap unInteger')) (obj .:? "FullLoadErrorPercentage") <*>
+      (obj .:? "ServiceAccessRoleArn")
+  parseJSON _ = mempty
+
+-- | Constructor for 'DMSEndpointElasticsearchSettings' containing required
+-- fields as arguments.
+dmsEndpointElasticsearchSettings
+  :: DMSEndpointElasticsearchSettings
+dmsEndpointElasticsearchSettings  =
+  DMSEndpointElasticsearchSettings
+  { _dMSEndpointElasticsearchSettingsEndpointUri = Nothing
+  , _dMSEndpointElasticsearchSettingsErrorRetryDuration = Nothing
+  , _dMSEndpointElasticsearchSettingsFullLoadErrorPercentage = Nothing
+  , _dMSEndpointElasticsearchSettingsServiceAccessRoleArn = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-elasticsearchsettings.html#cfn-dms-endpoint-elasticsearchsettings-endpointuri
+dmseesEndpointUri :: Lens' DMSEndpointElasticsearchSettings (Maybe (Val Text))
+dmseesEndpointUri = lens _dMSEndpointElasticsearchSettingsEndpointUri (\s a -> s { _dMSEndpointElasticsearchSettingsEndpointUri = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-elasticsearchsettings.html#cfn-dms-endpoint-elasticsearchsettings-errorretryduration
+dmseesErrorRetryDuration :: Lens' DMSEndpointElasticsearchSettings (Maybe (Val Integer))
+dmseesErrorRetryDuration = lens _dMSEndpointElasticsearchSettingsErrorRetryDuration (\s a -> s { _dMSEndpointElasticsearchSettingsErrorRetryDuration = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-elasticsearchsettings.html#cfn-dms-endpoint-elasticsearchsettings-fullloaderrorpercentage
+dmseesFullLoadErrorPercentage :: Lens' DMSEndpointElasticsearchSettings (Maybe (Val Integer))
+dmseesFullLoadErrorPercentage = lens _dMSEndpointElasticsearchSettingsFullLoadErrorPercentage (\s a -> s { _dMSEndpointElasticsearchSettingsFullLoadErrorPercentage = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-elasticsearchsettings.html#cfn-dms-endpoint-elasticsearchsettings-serviceaccessrolearn
+dmseesServiceAccessRoleArn :: Lens' DMSEndpointElasticsearchSettings (Maybe (Val Text))
+dmseesServiceAccessRoleArn = lens _dMSEndpointElasticsearchSettingsServiceAccessRoleArn (\s a -> s { _dMSEndpointElasticsearchSettingsServiceAccessRoleArn = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/DMSEndpointKinesisSettings.hs b/library-gen/Stratosphere/ResourceProperties/DMSEndpointKinesisSettings.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/DMSEndpointKinesisSettings.hs
@@ -0,0 +1,59 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html
+
+module Stratosphere.ResourceProperties.DMSEndpointKinesisSettings where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for DMSEndpointKinesisSettings. See
+-- 'dmsEndpointKinesisSettings' for a more convenient constructor.
+data DMSEndpointKinesisSettings =
+  DMSEndpointKinesisSettings
+  { _dMSEndpointKinesisSettingsMessageFormat :: Maybe (Val Text)
+  , _dMSEndpointKinesisSettingsServiceAccessRoleArn :: Maybe (Val Text)
+  , _dMSEndpointKinesisSettingsStreamArn :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON DMSEndpointKinesisSettings where
+  toJSON DMSEndpointKinesisSettings{..} =
+    object $
+    catMaybes
+    [ fmap (("MessageFormat",) . toJSON) _dMSEndpointKinesisSettingsMessageFormat
+    , fmap (("ServiceAccessRoleArn",) . toJSON) _dMSEndpointKinesisSettingsServiceAccessRoleArn
+    , fmap (("StreamArn",) . toJSON) _dMSEndpointKinesisSettingsStreamArn
+    ]
+
+instance FromJSON DMSEndpointKinesisSettings where
+  parseJSON (Object obj) =
+    DMSEndpointKinesisSettings <$>
+      (obj .:? "MessageFormat") <*>
+      (obj .:? "ServiceAccessRoleArn") <*>
+      (obj .:? "StreamArn")
+  parseJSON _ = mempty
+
+-- | Constructor for 'DMSEndpointKinesisSettings' containing required fields
+-- as arguments.
+dmsEndpointKinesisSettings
+  :: DMSEndpointKinesisSettings
+dmsEndpointKinesisSettings  =
+  DMSEndpointKinesisSettings
+  { _dMSEndpointKinesisSettingsMessageFormat = Nothing
+  , _dMSEndpointKinesisSettingsServiceAccessRoleArn = Nothing
+  , _dMSEndpointKinesisSettingsStreamArn = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html#cfn-dms-endpoint-kinesissettings-messageformat
+dmseksMessageFormat :: Lens' DMSEndpointKinesisSettings (Maybe (Val Text))
+dmseksMessageFormat = lens _dMSEndpointKinesisSettingsMessageFormat (\s a -> s { _dMSEndpointKinesisSettingsMessageFormat = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html#cfn-dms-endpoint-kinesissettings-serviceaccessrolearn
+dmseksServiceAccessRoleArn :: Lens' DMSEndpointKinesisSettings (Maybe (Val Text))
+dmseksServiceAccessRoleArn = lens _dMSEndpointKinesisSettingsServiceAccessRoleArn (\s a -> s { _dMSEndpointKinesisSettingsServiceAccessRoleArn = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html#cfn-dms-endpoint-kinesissettings-streamarn
+dmseksStreamArn :: Lens' DMSEndpointKinesisSettings (Maybe (Val Text))
+dmseksStreamArn = lens _dMSEndpointKinesisSettingsStreamArn (\s a -> s { _dMSEndpointKinesisSettingsStreamArn = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/ElasticsearchDomainNodeToNodeEncryptionOptions.hs b/library-gen/Stratosphere/ResourceProperties/ElasticsearchDomainNodeToNodeEncryptionOptions.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/ElasticsearchDomainNodeToNodeEncryptionOptions.hs
@@ -0,0 +1,45 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-nodetonodeencryptionoptions.html
+
+module Stratosphere.ResourceProperties.ElasticsearchDomainNodeToNodeEncryptionOptions where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- ElasticsearchDomainNodeToNodeEncryptionOptions. See
+-- 'elasticsearchDomainNodeToNodeEncryptionOptions' for a more convenient
+-- constructor.
+data ElasticsearchDomainNodeToNodeEncryptionOptions =
+  ElasticsearchDomainNodeToNodeEncryptionOptions
+  { _elasticsearchDomainNodeToNodeEncryptionOptionsEnabled :: Maybe (Val Bool)
+  } deriving (Show, Eq)
+
+instance ToJSON ElasticsearchDomainNodeToNodeEncryptionOptions where
+  toJSON ElasticsearchDomainNodeToNodeEncryptionOptions{..} =
+    object $
+    catMaybes
+    [ fmap (("Enabled",) . toJSON . fmap Bool') _elasticsearchDomainNodeToNodeEncryptionOptionsEnabled
+    ]
+
+instance FromJSON ElasticsearchDomainNodeToNodeEncryptionOptions where
+  parseJSON (Object obj) =
+    ElasticsearchDomainNodeToNodeEncryptionOptions <$>
+      fmap (fmap (fmap unBool')) (obj .:? "Enabled")
+  parseJSON _ = mempty
+
+-- | Constructor for 'ElasticsearchDomainNodeToNodeEncryptionOptions'
+-- containing required fields as arguments.
+elasticsearchDomainNodeToNodeEncryptionOptions
+  :: ElasticsearchDomainNodeToNodeEncryptionOptions
+elasticsearchDomainNodeToNodeEncryptionOptions  =
+  ElasticsearchDomainNodeToNodeEncryptionOptions
+  { _elasticsearchDomainNodeToNodeEncryptionOptionsEnabled = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-nodetonodeencryptionoptions.html#cfn-elasticsearch-domain-nodetonodeencryptionoptions-enabled
+edntneoEnabled :: Lens' ElasticsearchDomainNodeToNodeEncryptionOptions (Maybe (Val Bool))
+edntneoEnabled = lens _elasticsearchDomainNodeToNodeEncryptionOptionsEnabled (\s a -> s { _elasticsearchDomainNodeToNodeEncryptionOptionsEnabled = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/LambdaLayerVersionContent.hs b/library-gen/Stratosphere/ResourceProperties/LambdaLayerVersionContent.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/LambdaLayerVersionContent.hs
@@ -0,0 +1,61 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-layerversion-content.html
+
+module Stratosphere.ResourceProperties.LambdaLayerVersionContent where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for LambdaLayerVersionContent. See
+-- 'lambdaLayerVersionContent' for a more convenient constructor.
+data LambdaLayerVersionContent =
+  LambdaLayerVersionContent
+  { _lambdaLayerVersionContentS3Bucket :: Val Text
+  , _lambdaLayerVersionContentS3Key :: Val Text
+  , _lambdaLayerVersionContentS3ObjectVersion :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON LambdaLayerVersionContent where
+  toJSON LambdaLayerVersionContent{..} =
+    object $
+    catMaybes
+    [ (Just . ("S3Bucket",) . toJSON) _lambdaLayerVersionContentS3Bucket
+    , (Just . ("S3Key",) . toJSON) _lambdaLayerVersionContentS3Key
+    , fmap (("S3ObjectVersion",) . toJSON) _lambdaLayerVersionContentS3ObjectVersion
+    ]
+
+instance FromJSON LambdaLayerVersionContent where
+  parseJSON (Object obj) =
+    LambdaLayerVersionContent <$>
+      (obj .: "S3Bucket") <*>
+      (obj .: "S3Key") <*>
+      (obj .:? "S3ObjectVersion")
+  parseJSON _ = mempty
+
+-- | Constructor for 'LambdaLayerVersionContent' containing required fields as
+-- arguments.
+lambdaLayerVersionContent
+  :: Val Text -- ^ 'llvcS3Bucket'
+  -> Val Text -- ^ 'llvcS3Key'
+  -> LambdaLayerVersionContent
+lambdaLayerVersionContent s3Bucketarg s3Keyarg =
+  LambdaLayerVersionContent
+  { _lambdaLayerVersionContentS3Bucket = s3Bucketarg
+  , _lambdaLayerVersionContentS3Key = s3Keyarg
+  , _lambdaLayerVersionContentS3ObjectVersion = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-layerversion-content.html#cfn-lambda-layerversion-content-s3bucket
+llvcS3Bucket :: Lens' LambdaLayerVersionContent (Val Text)
+llvcS3Bucket = lens _lambdaLayerVersionContentS3Bucket (\s a -> s { _lambdaLayerVersionContentS3Bucket = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-layerversion-content.html#cfn-lambda-layerversion-content-s3key
+llvcS3Key :: Lens' LambdaLayerVersionContent (Val Text)
+llvcS3Key = lens _lambdaLayerVersionContentS3Key (\s a -> s { _lambdaLayerVersionContentS3Key = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-layerversion-content.html#cfn-lambda-layerversion-content-s3objectversion
+llvcS3ObjectVersion :: Lens' LambdaLayerVersionContent (Maybe (Val Text))
+llvcS3ObjectVersion = lens _lambdaLayerVersionContentS3ObjectVersion (\s a -> s { _lambdaLayerVersionContentS3ObjectVersion = a })
diff --git a/library-gen/Stratosphere/Resources.hs b/library-gen/Stratosphere/Resources.hs
--- a/library-gen/Stratosphere/Resources.hs
+++ b/library-gen/Stratosphere/Resources.hs
@@ -141,6 +141,10 @@
 import Stratosphere.Resources.DataPipelinePipeline as X
 import Stratosphere.Resources.DirectoryServiceMicrosoftAD as X
 import Stratosphere.Resources.DirectoryServiceSimpleAD as X
+import Stratosphere.Resources.DocDBDBCluster as X
+import Stratosphere.Resources.DocDBDBClusterParameterGroup as X
+import Stratosphere.Resources.DocDBDBInstance as X
+import Stratosphere.Resources.DocDBDBSubnetGroup as X
 import Stratosphere.Resources.DynamoDBTable as X
 import Stratosphere.Resources.EC2CustomerGateway as X
 import Stratosphere.Resources.EC2DHCPOptions as X
@@ -276,6 +280,7 @@
 import Stratosphere.Resources.LambdaAlias as X
 import Stratosphere.Resources.LambdaEventSourceMapping as X
 import Stratosphere.Resources.LambdaFunction as X
+import Stratosphere.Resources.LambdaLayerVersion as X
 import Stratosphere.Resources.LambdaPermission as X
 import Stratosphere.Resources.LambdaVersion as X
 import Stratosphere.Resources.LogsDestination as X
@@ -584,6 +589,8 @@
 import Stratosphere.ResourceProperties.DLMLifecyclePolicyRetainRule as X
 import Stratosphere.ResourceProperties.DLMLifecyclePolicySchedule as X
 import Stratosphere.ResourceProperties.DMSEndpointDynamoDbSettings as X
+import Stratosphere.ResourceProperties.DMSEndpointElasticsearchSettings as X
+import Stratosphere.ResourceProperties.DMSEndpointKinesisSettings as X
 import Stratosphere.ResourceProperties.DMSEndpointMongoDbSettings as X
 import Stratosphere.ResourceProperties.DMSEndpointS3Settings as X
 import Stratosphere.ResourceProperties.DataPipelinePipelineField as X
@@ -781,6 +788,7 @@
 import Stratosphere.ResourceProperties.ElasticsearchDomainEBSOptions as X
 import Stratosphere.ResourceProperties.ElasticsearchDomainElasticsearchClusterConfig as X
 import Stratosphere.ResourceProperties.ElasticsearchDomainEncryptionAtRestOptions as X
+import Stratosphere.ResourceProperties.ElasticsearchDomainNodeToNodeEncryptionOptions as X
 import Stratosphere.ResourceProperties.ElasticsearchDomainSnapshotOptions as X
 import Stratosphere.ResourceProperties.ElasticsearchDomainVPCOptions as X
 import Stratosphere.ResourceProperties.EventsEventBusPolicyCondition as X
@@ -925,6 +933,7 @@
 import Stratosphere.ResourceProperties.LambdaFunctionEnvironment as X
 import Stratosphere.ResourceProperties.LambdaFunctionTracingConfig as X
 import Stratosphere.ResourceProperties.LambdaFunctionVpcConfig as X
+import Stratosphere.ResourceProperties.LambdaLayerVersionContent as X
 import Stratosphere.ResourceProperties.LogsMetricFilterMetricTransformation as X
 import Stratosphere.ResourceProperties.OpsWorksAppDataSource as X
 import Stratosphere.ResourceProperties.OpsWorksAppEnvironmentVariable as X
@@ -1185,6 +1194,10 @@
   | DataPipelinePipelineProperties DataPipelinePipeline
   | DirectoryServiceMicrosoftADProperties DirectoryServiceMicrosoftAD
   | DirectoryServiceSimpleADProperties DirectoryServiceSimpleAD
+  | DocDBDBClusterProperties DocDBDBCluster
+  | DocDBDBClusterParameterGroupProperties DocDBDBClusterParameterGroup
+  | DocDBDBInstanceProperties DocDBDBInstance
+  | DocDBDBSubnetGroupProperties DocDBDBSubnetGroup
   | DynamoDBTableProperties DynamoDBTable
   | EC2CustomerGatewayProperties EC2CustomerGateway
   | EC2DHCPOptionsProperties EC2DHCPOptions
@@ -1320,6 +1333,7 @@
   | LambdaAliasProperties LambdaAlias
   | LambdaEventSourceMappingProperties LambdaEventSourceMapping
   | LambdaFunctionProperties LambdaFunction
+  | LambdaLayerVersionProperties LambdaLayerVersion
   | LambdaPermissionProperties LambdaPermission
   | LambdaVersionProperties LambdaVersion
   | LogsDestinationProperties LogsDestination
@@ -1669,6 +1683,14 @@
   [ "Type" .= ("AWS::DirectoryService::MicrosoftAD" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (DirectoryServiceSimpleADProperties x) =
   [ "Type" .= ("AWS::DirectoryService::SimpleAD" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (DocDBDBClusterProperties x) =
+  [ "Type" .= ("AWS::DocDB::DBCluster" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (DocDBDBClusterParameterGroupProperties x) =
+  [ "Type" .= ("AWS::DocDB::DBClusterParameterGroup" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (DocDBDBInstanceProperties x) =
+  [ "Type" .= ("AWS::DocDB::DBInstance" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (DocDBDBSubnetGroupProperties x) =
+  [ "Type" .= ("AWS::DocDB::DBSubnetGroup" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (DynamoDBTableProperties x) =
   [ "Type" .= ("AWS::DynamoDB::Table" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (EC2CustomerGatewayProperties x) =
@@ -1939,6 +1961,8 @@
   [ "Type" .= ("AWS::Lambda::EventSourceMapping" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (LambdaFunctionProperties x) =
   [ "Type" .= ("AWS::Lambda::Function" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (LambdaLayerVersionProperties x) =
+  [ "Type" .= ("AWS::Lambda::LayerVersion" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (LambdaPermissionProperties x) =
   [ "Type" .= ("AWS::Lambda::Permission" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (LambdaVersionProperties x) =
@@ -2251,6 +2275,10 @@
          "AWS::DataPipeline::Pipeline" -> DataPipelinePipelineProperties <$> (o .: "Properties")
          "AWS::DirectoryService::MicrosoftAD" -> DirectoryServiceMicrosoftADProperties <$> (o .: "Properties")
          "AWS::DirectoryService::SimpleAD" -> DirectoryServiceSimpleADProperties <$> (o .: "Properties")
+         "AWS::DocDB::DBCluster" -> DocDBDBClusterProperties <$> (o .: "Properties")
+         "AWS::DocDB::DBClusterParameterGroup" -> DocDBDBClusterParameterGroupProperties <$> (o .: "Properties")
+         "AWS::DocDB::DBInstance" -> DocDBDBInstanceProperties <$> (o .: "Properties")
+         "AWS::DocDB::DBSubnetGroup" -> DocDBDBSubnetGroupProperties <$> (o .: "Properties")
          "AWS::DynamoDB::Table" -> DynamoDBTableProperties <$> (o .: "Properties")
          "AWS::EC2::CustomerGateway" -> EC2CustomerGatewayProperties <$> (o .: "Properties")
          "AWS::EC2::DHCPOptions" -> EC2DHCPOptionsProperties <$> (o .: "Properties")
@@ -2386,6 +2414,7 @@
          "AWS::Lambda::Alias" -> LambdaAliasProperties <$> (o .: "Properties")
          "AWS::Lambda::EventSourceMapping" -> LambdaEventSourceMappingProperties <$> (o .: "Properties")
          "AWS::Lambda::Function" -> LambdaFunctionProperties <$> (o .: "Properties")
+         "AWS::Lambda::LayerVersion" -> LambdaLayerVersionProperties <$> (o .: "Properties")
          "AWS::Lambda::Permission" -> LambdaPermissionProperties <$> (o .: "Properties")
          "AWS::Lambda::Version" -> LambdaVersionProperties <$> (o .: "Properties")
          "AWS::Logs::Destination" -> LogsDestinationProperties <$> (o .: "Properties")
diff --git a/library-gen/Stratosphere/Resources/ApiGatewayApiKey.hs b/library-gen/Stratosphere/Resources/ApiGatewayApiKey.hs
--- a/library-gen/Stratosphere/Resources/ApiGatewayApiKey.hs
+++ b/library-gen/Stratosphere/Resources/ApiGatewayApiKey.hs
@@ -19,6 +19,7 @@
   , _apiGatewayApiKeyGenerateDistinctId :: Maybe (Val Bool)
   , _apiGatewayApiKeyName :: Maybe (Val Text)
   , _apiGatewayApiKeyStageKeys :: Maybe [ApiGatewayApiKeyStageKey]
+  , _apiGatewayApiKeyValue :: Maybe (Val Text)
   } deriving (Show, Eq)
 
 instance ToJSON ApiGatewayApiKey where
@@ -31,6 +32,7 @@
     , fmap (("GenerateDistinctId",) . toJSON . fmap Bool') _apiGatewayApiKeyGenerateDistinctId
     , fmap (("Name",) . toJSON) _apiGatewayApiKeyName
     , fmap (("StageKeys",) . toJSON) _apiGatewayApiKeyStageKeys
+    , fmap (("Value",) . toJSON) _apiGatewayApiKeyValue
     ]
 
 instance FromJSON ApiGatewayApiKey where
@@ -41,7 +43,8 @@
       fmap (fmap (fmap unBool')) (obj .:? "Enabled") <*>
       fmap (fmap (fmap unBool')) (obj .:? "GenerateDistinctId") <*>
       (obj .:? "Name") <*>
-      (obj .:? "StageKeys")
+      (obj .:? "StageKeys") <*>
+      (obj .:? "Value")
   parseJSON _ = mempty
 
 -- | Constructor for 'ApiGatewayApiKey' containing required fields as
@@ -56,6 +59,7 @@
   , _apiGatewayApiKeyGenerateDistinctId = Nothing
   , _apiGatewayApiKeyName = Nothing
   , _apiGatewayApiKeyStageKeys = Nothing
+  , _apiGatewayApiKeyValue = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html#cfn-apigateway-apikey-customerid
@@ -81,3 +85,7 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html#cfn-apigateway-apikey-stagekeys
 agakStageKeys :: Lens' ApiGatewayApiKey (Maybe [ApiGatewayApiKeyStageKey])
 agakStageKeys = lens _apiGatewayApiKeyStageKeys (\s a -> s { _apiGatewayApiKeyStageKeys = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html#cfn-apigateway-apikey-value
+agakValue :: Lens' ApiGatewayApiKey (Maybe (Val Text))
+agakValue = lens _apiGatewayApiKeyValue (\s a -> s { _apiGatewayApiKeyValue = a })
diff --git a/library-gen/Stratosphere/Resources/DMSEndpoint.hs b/library-gen/Stratosphere/Resources/DMSEndpoint.hs
--- a/library-gen/Stratosphere/Resources/DMSEndpoint.hs
+++ b/library-gen/Stratosphere/Resources/DMSEndpoint.hs
@@ -8,6 +8,8 @@
 
 import Stratosphere.ResourceImports
 import Stratosphere.ResourceProperties.DMSEndpointDynamoDbSettings
+import Stratosphere.ResourceProperties.DMSEndpointElasticsearchSettings
+import Stratosphere.ResourceProperties.DMSEndpointKinesisSettings
 import Stratosphere.ResourceProperties.DMSEndpointMongoDbSettings
 import Stratosphere.ResourceProperties.DMSEndpointS3Settings
 import Stratosphere.ResourceProperties.Tag
@@ -19,10 +21,12 @@
   { _dMSEndpointCertificateArn :: Maybe (Val Text)
   , _dMSEndpointDatabaseName :: Maybe (Val Text)
   , _dMSEndpointDynamoDbSettings :: Maybe DMSEndpointDynamoDbSettings
+  , _dMSEndpointElasticsearchSettings :: Maybe DMSEndpointElasticsearchSettings
   , _dMSEndpointEndpointIdentifier :: Maybe (Val Text)
   , _dMSEndpointEndpointType :: Val Text
   , _dMSEndpointEngineName :: Val Text
   , _dMSEndpointExtraConnectionAttributes :: Maybe (Val Text)
+  , _dMSEndpointKinesisSettings :: Maybe DMSEndpointKinesisSettings
   , _dMSEndpointKmsKeyId :: Maybe (Val Text)
   , _dMSEndpointMongoDbSettings :: Maybe DMSEndpointMongoDbSettings
   , _dMSEndpointPassword :: Maybe (Val Text)
@@ -41,10 +45,12 @@
     [ fmap (("CertificateArn",) . toJSON) _dMSEndpointCertificateArn
     , fmap (("DatabaseName",) . toJSON) _dMSEndpointDatabaseName
     , fmap (("DynamoDbSettings",) . toJSON) _dMSEndpointDynamoDbSettings
+    , fmap (("ElasticsearchSettings",) . toJSON) _dMSEndpointElasticsearchSettings
     , fmap (("EndpointIdentifier",) . toJSON) _dMSEndpointEndpointIdentifier
     , (Just . ("EndpointType",) . toJSON) _dMSEndpointEndpointType
     , (Just . ("EngineName",) . toJSON) _dMSEndpointEngineName
     , fmap (("ExtraConnectionAttributes",) . toJSON) _dMSEndpointExtraConnectionAttributes
+    , fmap (("KinesisSettings",) . toJSON) _dMSEndpointKinesisSettings
     , fmap (("KmsKeyId",) . toJSON) _dMSEndpointKmsKeyId
     , fmap (("MongoDbSettings",) . toJSON) _dMSEndpointMongoDbSettings
     , fmap (("Password",) . toJSON) _dMSEndpointPassword
@@ -62,10 +68,12 @@
       (obj .:? "CertificateArn") <*>
       (obj .:? "DatabaseName") <*>
       (obj .:? "DynamoDbSettings") <*>
+      (obj .:? "ElasticsearchSettings") <*>
       (obj .:? "EndpointIdentifier") <*>
       (obj .: "EndpointType") <*>
       (obj .: "EngineName") <*>
       (obj .:? "ExtraConnectionAttributes") <*>
+      (obj .:? "KinesisSettings") <*>
       (obj .:? "KmsKeyId") <*>
       (obj .:? "MongoDbSettings") <*>
       (obj .:? "Password") <*>
@@ -87,10 +95,12 @@
   { _dMSEndpointCertificateArn = Nothing
   , _dMSEndpointDatabaseName = Nothing
   , _dMSEndpointDynamoDbSettings = Nothing
+  , _dMSEndpointElasticsearchSettings = Nothing
   , _dMSEndpointEndpointIdentifier = Nothing
   , _dMSEndpointEndpointType = endpointTypearg
   , _dMSEndpointEngineName = engineNamearg
   , _dMSEndpointExtraConnectionAttributes = Nothing
+  , _dMSEndpointKinesisSettings = Nothing
   , _dMSEndpointKmsKeyId = Nothing
   , _dMSEndpointMongoDbSettings = Nothing
   , _dMSEndpointPassword = Nothing
@@ -114,6 +124,10 @@
 dmseDynamoDbSettings :: Lens' DMSEndpoint (Maybe DMSEndpointDynamoDbSettings)
 dmseDynamoDbSettings = lens _dMSEndpointDynamoDbSettings (\s a -> s { _dMSEndpointDynamoDbSettings = a })
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-elasticsearchsettings
+dmseElasticsearchSettings :: Lens' DMSEndpoint (Maybe DMSEndpointElasticsearchSettings)
+dmseElasticsearchSettings = lens _dMSEndpointElasticsearchSettings (\s a -> s { _dMSEndpointElasticsearchSettings = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-endpointidentifier
 dmseEndpointIdentifier :: Lens' DMSEndpoint (Maybe (Val Text))
 dmseEndpointIdentifier = lens _dMSEndpointEndpointIdentifier (\s a -> s { _dMSEndpointEndpointIdentifier = a })
@@ -129,6 +143,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-extraconnectionattributes
 dmseExtraConnectionAttributes :: Lens' DMSEndpoint (Maybe (Val Text))
 dmseExtraConnectionAttributes = lens _dMSEndpointExtraConnectionAttributes (\s a -> s { _dMSEndpointExtraConnectionAttributes = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-kinesissettings
+dmseKinesisSettings :: Lens' DMSEndpoint (Maybe DMSEndpointKinesisSettings)
+dmseKinesisSettings = lens _dMSEndpointKinesisSettings (\s a -> s { _dMSEndpointKinesisSettings = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-kmskeyid
 dmseKmsKeyId :: Lens' DMSEndpoint (Maybe (Val Text))
diff --git a/library-gen/Stratosphere/Resources/DocDBDBCluster.hs b/library-gen/Stratosphere/Resources/DocDBDBCluster.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/DocDBDBCluster.hs
@@ -0,0 +1,162 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html
+
+module Stratosphere.Resources.DocDBDBCluster where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.Tag
+
+-- | Full data type definition for DocDBDBCluster. See 'docDBDBCluster' for a
+-- more convenient constructor.
+data DocDBDBCluster =
+  DocDBDBCluster
+  { _docDBDBClusterAvailabilityZones :: Maybe (ValList Text)
+  , _docDBDBClusterBackupRetentionPeriod :: Maybe (Val Integer)
+  , _docDBDBClusterDBClusterIdentifier :: Maybe (Val Text)
+  , _docDBDBClusterDBClusterParameterGroupName :: Maybe (Val Text)
+  , _docDBDBClusterDBSubnetGroupName :: Maybe (Val Text)
+  , _docDBDBClusterEngineVersion :: Maybe (Val Text)
+  , _docDBDBClusterKmsKeyId :: Maybe (Val Text)
+  , _docDBDBClusterMasterUserPassword :: Maybe (Val Text)
+  , _docDBDBClusterMasterUsername :: Maybe (Val Text)
+  , _docDBDBClusterPort :: Maybe (Val Integer)
+  , _docDBDBClusterPreferredBackupWindow :: Maybe (Val Text)
+  , _docDBDBClusterPreferredMaintenanceWindow :: Maybe (Val Text)
+  , _docDBDBClusterSnapshotIdentifier :: Maybe (Val Text)
+  , _docDBDBClusterStorageEncrypted :: Maybe (Val Bool)
+  , _docDBDBClusterTags :: Maybe [Tag]
+  , _docDBDBClusterVpcSecurityGroupIds :: Maybe (ValList Text)
+  } deriving (Show, Eq)
+
+instance ToJSON DocDBDBCluster where
+  toJSON DocDBDBCluster{..} =
+    object $
+    catMaybes
+    [ fmap (("AvailabilityZones",) . toJSON) _docDBDBClusterAvailabilityZones
+    , fmap (("BackupRetentionPeriod",) . toJSON . fmap Integer') _docDBDBClusterBackupRetentionPeriod
+    , fmap (("DBClusterIdentifier",) . toJSON) _docDBDBClusterDBClusterIdentifier
+    , fmap (("DBClusterParameterGroupName",) . toJSON) _docDBDBClusterDBClusterParameterGroupName
+    , fmap (("DBSubnetGroupName",) . toJSON) _docDBDBClusterDBSubnetGroupName
+    , fmap (("EngineVersion",) . toJSON) _docDBDBClusterEngineVersion
+    , fmap (("KmsKeyId",) . toJSON) _docDBDBClusterKmsKeyId
+    , fmap (("MasterUserPassword",) . toJSON) _docDBDBClusterMasterUserPassword
+    , fmap (("MasterUsername",) . toJSON) _docDBDBClusterMasterUsername
+    , fmap (("Port",) . toJSON . fmap Integer') _docDBDBClusterPort
+    , fmap (("PreferredBackupWindow",) . toJSON) _docDBDBClusterPreferredBackupWindow
+    , fmap (("PreferredMaintenanceWindow",) . toJSON) _docDBDBClusterPreferredMaintenanceWindow
+    , fmap (("SnapshotIdentifier",) . toJSON) _docDBDBClusterSnapshotIdentifier
+    , fmap (("StorageEncrypted",) . toJSON . fmap Bool') _docDBDBClusterStorageEncrypted
+    , fmap (("Tags",) . toJSON) _docDBDBClusterTags
+    , fmap (("VpcSecurityGroupIds",) . toJSON) _docDBDBClusterVpcSecurityGroupIds
+    ]
+
+instance FromJSON DocDBDBCluster where
+  parseJSON (Object obj) =
+    DocDBDBCluster <$>
+      (obj .:? "AvailabilityZones") <*>
+      fmap (fmap (fmap unInteger')) (obj .:? "BackupRetentionPeriod") <*>
+      (obj .:? "DBClusterIdentifier") <*>
+      (obj .:? "DBClusterParameterGroupName") <*>
+      (obj .:? "DBSubnetGroupName") <*>
+      (obj .:? "EngineVersion") <*>
+      (obj .:? "KmsKeyId") <*>
+      (obj .:? "MasterUserPassword") <*>
+      (obj .:? "MasterUsername") <*>
+      fmap (fmap (fmap unInteger')) (obj .:? "Port") <*>
+      (obj .:? "PreferredBackupWindow") <*>
+      (obj .:? "PreferredMaintenanceWindow") <*>
+      (obj .:? "SnapshotIdentifier") <*>
+      fmap (fmap (fmap unBool')) (obj .:? "StorageEncrypted") <*>
+      (obj .:? "Tags") <*>
+      (obj .:? "VpcSecurityGroupIds")
+  parseJSON _ = mempty
+
+-- | Constructor for 'DocDBDBCluster' containing required fields as arguments.
+docDBDBCluster
+  :: DocDBDBCluster
+docDBDBCluster  =
+  DocDBDBCluster
+  { _docDBDBClusterAvailabilityZones = Nothing
+  , _docDBDBClusterBackupRetentionPeriod = Nothing
+  , _docDBDBClusterDBClusterIdentifier = Nothing
+  , _docDBDBClusterDBClusterParameterGroupName = Nothing
+  , _docDBDBClusterDBSubnetGroupName = Nothing
+  , _docDBDBClusterEngineVersion = Nothing
+  , _docDBDBClusterKmsKeyId = Nothing
+  , _docDBDBClusterMasterUserPassword = Nothing
+  , _docDBDBClusterMasterUsername = Nothing
+  , _docDBDBClusterPort = Nothing
+  , _docDBDBClusterPreferredBackupWindow = Nothing
+  , _docDBDBClusterPreferredMaintenanceWindow = Nothing
+  , _docDBDBClusterSnapshotIdentifier = Nothing
+  , _docDBDBClusterStorageEncrypted = Nothing
+  , _docDBDBClusterTags = Nothing
+  , _docDBDBClusterVpcSecurityGroupIds = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-availabilityzones
+ddbdbcAvailabilityZones :: Lens' DocDBDBCluster (Maybe (ValList Text))
+ddbdbcAvailabilityZones = lens _docDBDBClusterAvailabilityZones (\s a -> s { _docDBDBClusterAvailabilityZones = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-backupretentionperiod
+ddbdbcBackupRetentionPeriod :: Lens' DocDBDBCluster (Maybe (Val Integer))
+ddbdbcBackupRetentionPeriod = lens _docDBDBClusterBackupRetentionPeriod (\s a -> s { _docDBDBClusterBackupRetentionPeriod = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-dbclusteridentifier
+ddbdbcDBClusterIdentifier :: Lens' DocDBDBCluster (Maybe (Val Text))
+ddbdbcDBClusterIdentifier = lens _docDBDBClusterDBClusterIdentifier (\s a -> s { _docDBDBClusterDBClusterIdentifier = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-dbclusterparametergroupname
+ddbdbcDBClusterParameterGroupName :: Lens' DocDBDBCluster (Maybe (Val Text))
+ddbdbcDBClusterParameterGroupName = lens _docDBDBClusterDBClusterParameterGroupName (\s a -> s { _docDBDBClusterDBClusterParameterGroupName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-dbsubnetgroupname
+ddbdbcDBSubnetGroupName :: Lens' DocDBDBCluster (Maybe (Val Text))
+ddbdbcDBSubnetGroupName = lens _docDBDBClusterDBSubnetGroupName (\s a -> s { _docDBDBClusterDBSubnetGroupName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-engineversion
+ddbdbcEngineVersion :: Lens' DocDBDBCluster (Maybe (Val Text))
+ddbdbcEngineVersion = lens _docDBDBClusterEngineVersion (\s a -> s { _docDBDBClusterEngineVersion = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-kmskeyid
+ddbdbcKmsKeyId :: Lens' DocDBDBCluster (Maybe (Val Text))
+ddbdbcKmsKeyId = lens _docDBDBClusterKmsKeyId (\s a -> s { _docDBDBClusterKmsKeyId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-masteruserpassword
+ddbdbcMasterUserPassword :: Lens' DocDBDBCluster (Maybe (Val Text))
+ddbdbcMasterUserPassword = lens _docDBDBClusterMasterUserPassword (\s a -> s { _docDBDBClusterMasterUserPassword = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-masterusername
+ddbdbcMasterUsername :: Lens' DocDBDBCluster (Maybe (Val Text))
+ddbdbcMasterUsername = lens _docDBDBClusterMasterUsername (\s a -> s { _docDBDBClusterMasterUsername = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-port
+ddbdbcPort :: Lens' DocDBDBCluster (Maybe (Val Integer))
+ddbdbcPort = lens _docDBDBClusterPort (\s a -> s { _docDBDBClusterPort = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-preferredbackupwindow
+ddbdbcPreferredBackupWindow :: Lens' DocDBDBCluster (Maybe (Val Text))
+ddbdbcPreferredBackupWindow = lens _docDBDBClusterPreferredBackupWindow (\s a -> s { _docDBDBClusterPreferredBackupWindow = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-preferredmaintenancewindow
+ddbdbcPreferredMaintenanceWindow :: Lens' DocDBDBCluster (Maybe (Val Text))
+ddbdbcPreferredMaintenanceWindow = lens _docDBDBClusterPreferredMaintenanceWindow (\s a -> s { _docDBDBClusterPreferredMaintenanceWindow = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-snapshotidentifier
+ddbdbcSnapshotIdentifier :: Lens' DocDBDBCluster (Maybe (Val Text))
+ddbdbcSnapshotIdentifier = lens _docDBDBClusterSnapshotIdentifier (\s a -> s { _docDBDBClusterSnapshotIdentifier = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-storageencrypted
+ddbdbcStorageEncrypted :: Lens' DocDBDBCluster (Maybe (Val Bool))
+ddbdbcStorageEncrypted = lens _docDBDBClusterStorageEncrypted (\s a -> s { _docDBDBClusterStorageEncrypted = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-tags
+ddbdbcTags :: Lens' DocDBDBCluster (Maybe [Tag])
+ddbdbcTags = lens _docDBDBClusterTags (\s a -> s { _docDBDBClusterTags = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-vpcsecuritygroupids
+ddbdbcVpcSecurityGroupIds :: Lens' DocDBDBCluster (Maybe (ValList Text))
+ddbdbcVpcSecurityGroupIds = lens _docDBDBClusterVpcSecurityGroupIds (\s a -> s { _docDBDBClusterVpcSecurityGroupIds = a })
diff --git a/library-gen/Stratosphere/Resources/DocDBDBClusterParameterGroup.hs b/library-gen/Stratosphere/Resources/DocDBDBClusterParameterGroup.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/DocDBDBClusterParameterGroup.hs
@@ -0,0 +1,78 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbclusterparametergroup.html
+
+module Stratosphere.Resources.DocDBDBClusterParameterGroup where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.Tag
+
+-- | Full data type definition for DocDBDBClusterParameterGroup. See
+-- 'docDBDBClusterParameterGroup' for a more convenient constructor.
+data DocDBDBClusterParameterGroup =
+  DocDBDBClusterParameterGroup
+  { _docDBDBClusterParameterGroupDescription :: Val Text
+  , _docDBDBClusterParameterGroupFamily :: Val Text
+  , _docDBDBClusterParameterGroupName :: Maybe (Val Text)
+  , _docDBDBClusterParameterGroupParameters :: Object
+  , _docDBDBClusterParameterGroupTags :: Maybe [Tag]
+  } deriving (Show, Eq)
+
+instance ToJSON DocDBDBClusterParameterGroup where
+  toJSON DocDBDBClusterParameterGroup{..} =
+    object $
+    catMaybes
+    [ (Just . ("Description",) . toJSON) _docDBDBClusterParameterGroupDescription
+    , (Just . ("Family",) . toJSON) _docDBDBClusterParameterGroupFamily
+    , fmap (("Name",) . toJSON) _docDBDBClusterParameterGroupName
+    , (Just . ("Parameters",) . toJSON) _docDBDBClusterParameterGroupParameters
+    , fmap (("Tags",) . toJSON) _docDBDBClusterParameterGroupTags
+    ]
+
+instance FromJSON DocDBDBClusterParameterGroup where
+  parseJSON (Object obj) =
+    DocDBDBClusterParameterGroup <$>
+      (obj .: "Description") <*>
+      (obj .: "Family") <*>
+      (obj .:? "Name") <*>
+      (obj .: "Parameters") <*>
+      (obj .:? "Tags")
+  parseJSON _ = mempty
+
+-- | Constructor for 'DocDBDBClusterParameterGroup' containing required fields
+-- as arguments.
+docDBDBClusterParameterGroup
+  :: Val Text -- ^ 'ddbdbcpgDescription'
+  -> Val Text -- ^ 'ddbdbcpgFamily'
+  -> Object -- ^ 'ddbdbcpgParameters'
+  -> DocDBDBClusterParameterGroup
+docDBDBClusterParameterGroup descriptionarg familyarg parametersarg =
+  DocDBDBClusterParameterGroup
+  { _docDBDBClusterParameterGroupDescription = descriptionarg
+  , _docDBDBClusterParameterGroupFamily = familyarg
+  , _docDBDBClusterParameterGroupName = Nothing
+  , _docDBDBClusterParameterGroupParameters = parametersarg
+  , _docDBDBClusterParameterGroupTags = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbclusterparametergroup.html#cfn-docdb-dbclusterparametergroup-description
+ddbdbcpgDescription :: Lens' DocDBDBClusterParameterGroup (Val Text)
+ddbdbcpgDescription = lens _docDBDBClusterParameterGroupDescription (\s a -> s { _docDBDBClusterParameterGroupDescription = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbclusterparametergroup.html#cfn-docdb-dbclusterparametergroup-family
+ddbdbcpgFamily :: Lens' DocDBDBClusterParameterGroup (Val Text)
+ddbdbcpgFamily = lens _docDBDBClusterParameterGroupFamily (\s a -> s { _docDBDBClusterParameterGroupFamily = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbclusterparametergroup.html#cfn-docdb-dbclusterparametergroup-name
+ddbdbcpgName :: Lens' DocDBDBClusterParameterGroup (Maybe (Val Text))
+ddbdbcpgName = lens _docDBDBClusterParameterGroupName (\s a -> s { _docDBDBClusterParameterGroupName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbclusterparametergroup.html#cfn-docdb-dbclusterparametergroup-parameters
+ddbdbcpgParameters :: Lens' DocDBDBClusterParameterGroup Object
+ddbdbcpgParameters = lens _docDBDBClusterParameterGroupParameters (\s a -> s { _docDBDBClusterParameterGroupParameters = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbclusterparametergroup.html#cfn-docdb-dbclusterparametergroup-tags
+ddbdbcpgTags :: Lens' DocDBDBClusterParameterGroup (Maybe [Tag])
+ddbdbcpgTags = lens _docDBDBClusterParameterGroupTags (\s a -> s { _docDBDBClusterParameterGroupTags = a })
diff --git a/library-gen/Stratosphere/Resources/DocDBDBInstance.hs b/library-gen/Stratosphere/Resources/DocDBDBInstance.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/DocDBDBInstance.hs
@@ -0,0 +1,93 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbinstance.html
+
+module Stratosphere.Resources.DocDBDBInstance where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.Tag
+
+-- | Full data type definition for DocDBDBInstance. See 'docDBDBInstance' for
+-- a more convenient constructor.
+data DocDBDBInstance =
+  DocDBDBInstance
+  { _docDBDBInstanceAutoMinorVersionUpgrade :: Maybe (Val Bool)
+  , _docDBDBInstanceAvailabilityZone :: Maybe (Val Text)
+  , _docDBDBInstanceDBClusterIdentifier :: Val Text
+  , _docDBDBInstanceDBInstanceClass :: Val Text
+  , _docDBDBInstanceDBInstanceIdentifier :: Maybe (Val Text)
+  , _docDBDBInstancePreferredMaintenanceWindow :: Maybe (Val Text)
+  , _docDBDBInstanceTags :: Maybe [Tag]
+  } deriving (Show, Eq)
+
+instance ToJSON DocDBDBInstance where
+  toJSON DocDBDBInstance{..} =
+    object $
+    catMaybes
+    [ fmap (("AutoMinorVersionUpgrade",) . toJSON . fmap Bool') _docDBDBInstanceAutoMinorVersionUpgrade
+    , fmap (("AvailabilityZone",) . toJSON) _docDBDBInstanceAvailabilityZone
+    , (Just . ("DBClusterIdentifier",) . toJSON) _docDBDBInstanceDBClusterIdentifier
+    , (Just . ("DBInstanceClass",) . toJSON) _docDBDBInstanceDBInstanceClass
+    , fmap (("DBInstanceIdentifier",) . toJSON) _docDBDBInstanceDBInstanceIdentifier
+    , fmap (("PreferredMaintenanceWindow",) . toJSON) _docDBDBInstancePreferredMaintenanceWindow
+    , fmap (("Tags",) . toJSON) _docDBDBInstanceTags
+    ]
+
+instance FromJSON DocDBDBInstance where
+  parseJSON (Object obj) =
+    DocDBDBInstance <$>
+      fmap (fmap (fmap unBool')) (obj .:? "AutoMinorVersionUpgrade") <*>
+      (obj .:? "AvailabilityZone") <*>
+      (obj .: "DBClusterIdentifier") <*>
+      (obj .: "DBInstanceClass") <*>
+      (obj .:? "DBInstanceIdentifier") <*>
+      (obj .:? "PreferredMaintenanceWindow") <*>
+      (obj .:? "Tags")
+  parseJSON _ = mempty
+
+-- | Constructor for 'DocDBDBInstance' containing required fields as
+-- arguments.
+docDBDBInstance
+  :: Val Text -- ^ 'ddbdbiDBClusterIdentifier'
+  -> Val Text -- ^ 'ddbdbiDBInstanceClass'
+  -> DocDBDBInstance
+docDBDBInstance dBClusterIdentifierarg dBInstanceClassarg =
+  DocDBDBInstance
+  { _docDBDBInstanceAutoMinorVersionUpgrade = Nothing
+  , _docDBDBInstanceAvailabilityZone = Nothing
+  , _docDBDBInstanceDBClusterIdentifier = dBClusterIdentifierarg
+  , _docDBDBInstanceDBInstanceClass = dBInstanceClassarg
+  , _docDBDBInstanceDBInstanceIdentifier = Nothing
+  , _docDBDBInstancePreferredMaintenanceWindow = Nothing
+  , _docDBDBInstanceTags = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbinstance.html#cfn-docdb-dbinstance-autominorversionupgrade
+ddbdbiAutoMinorVersionUpgrade :: Lens' DocDBDBInstance (Maybe (Val Bool))
+ddbdbiAutoMinorVersionUpgrade = lens _docDBDBInstanceAutoMinorVersionUpgrade (\s a -> s { _docDBDBInstanceAutoMinorVersionUpgrade = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbinstance.html#cfn-docdb-dbinstance-availabilityzone
+ddbdbiAvailabilityZone :: Lens' DocDBDBInstance (Maybe (Val Text))
+ddbdbiAvailabilityZone = lens _docDBDBInstanceAvailabilityZone (\s a -> s { _docDBDBInstanceAvailabilityZone = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbinstance.html#cfn-docdb-dbinstance-dbclusteridentifier
+ddbdbiDBClusterIdentifier :: Lens' DocDBDBInstance (Val Text)
+ddbdbiDBClusterIdentifier = lens _docDBDBInstanceDBClusterIdentifier (\s a -> s { _docDBDBInstanceDBClusterIdentifier = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbinstance.html#cfn-docdb-dbinstance-dbinstanceclass
+ddbdbiDBInstanceClass :: Lens' DocDBDBInstance (Val Text)
+ddbdbiDBInstanceClass = lens _docDBDBInstanceDBInstanceClass (\s a -> s { _docDBDBInstanceDBInstanceClass = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbinstance.html#cfn-docdb-dbinstance-dbinstanceidentifier
+ddbdbiDBInstanceIdentifier :: Lens' DocDBDBInstance (Maybe (Val Text))
+ddbdbiDBInstanceIdentifier = lens _docDBDBInstanceDBInstanceIdentifier (\s a -> s { _docDBDBInstanceDBInstanceIdentifier = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbinstance.html#cfn-docdb-dbinstance-preferredmaintenancewindow
+ddbdbiPreferredMaintenanceWindow :: Lens' DocDBDBInstance (Maybe (Val Text))
+ddbdbiPreferredMaintenanceWindow = lens _docDBDBInstancePreferredMaintenanceWindow (\s a -> s { _docDBDBInstancePreferredMaintenanceWindow = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbinstance.html#cfn-docdb-dbinstance-tags
+ddbdbiTags :: Lens' DocDBDBInstance (Maybe [Tag])
+ddbdbiTags = lens _docDBDBInstanceTags (\s a -> s { _docDBDBInstanceTags = a })
diff --git a/library-gen/Stratosphere/Resources/DocDBDBSubnetGroup.hs b/library-gen/Stratosphere/Resources/DocDBDBSubnetGroup.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/DocDBDBSubnetGroup.hs
@@ -0,0 +1,69 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbsubnetgroup.html
+
+module Stratosphere.Resources.DocDBDBSubnetGroup where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.Tag
+
+-- | Full data type definition for DocDBDBSubnetGroup. See
+-- 'docDBDBSubnetGroup' for a more convenient constructor.
+data DocDBDBSubnetGroup =
+  DocDBDBSubnetGroup
+  { _docDBDBSubnetGroupDBSubnetGroupDescription :: Val Text
+  , _docDBDBSubnetGroupDBSubnetGroupName :: Maybe (Val Text)
+  , _docDBDBSubnetGroupSubnetIds :: ValList Text
+  , _docDBDBSubnetGroupTags :: Maybe [Tag]
+  } deriving (Show, Eq)
+
+instance ToJSON DocDBDBSubnetGroup where
+  toJSON DocDBDBSubnetGroup{..} =
+    object $
+    catMaybes
+    [ (Just . ("DBSubnetGroupDescription",) . toJSON) _docDBDBSubnetGroupDBSubnetGroupDescription
+    , fmap (("DBSubnetGroupName",) . toJSON) _docDBDBSubnetGroupDBSubnetGroupName
+    , (Just . ("SubnetIds",) . toJSON) _docDBDBSubnetGroupSubnetIds
+    , fmap (("Tags",) . toJSON) _docDBDBSubnetGroupTags
+    ]
+
+instance FromJSON DocDBDBSubnetGroup where
+  parseJSON (Object obj) =
+    DocDBDBSubnetGroup <$>
+      (obj .: "DBSubnetGroupDescription") <*>
+      (obj .:? "DBSubnetGroupName") <*>
+      (obj .: "SubnetIds") <*>
+      (obj .:? "Tags")
+  parseJSON _ = mempty
+
+-- | Constructor for 'DocDBDBSubnetGroup' containing required fields as
+-- arguments.
+docDBDBSubnetGroup
+  :: Val Text -- ^ 'ddbdbsgDBSubnetGroupDescription'
+  -> ValList Text -- ^ 'ddbdbsgSubnetIds'
+  -> DocDBDBSubnetGroup
+docDBDBSubnetGroup dBSubnetGroupDescriptionarg subnetIdsarg =
+  DocDBDBSubnetGroup
+  { _docDBDBSubnetGroupDBSubnetGroupDescription = dBSubnetGroupDescriptionarg
+  , _docDBDBSubnetGroupDBSubnetGroupName = Nothing
+  , _docDBDBSubnetGroupSubnetIds = subnetIdsarg
+  , _docDBDBSubnetGroupTags = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbsubnetgroup.html#cfn-docdb-dbsubnetgroup-dbsubnetgroupdescription
+ddbdbsgDBSubnetGroupDescription :: Lens' DocDBDBSubnetGroup (Val Text)
+ddbdbsgDBSubnetGroupDescription = lens _docDBDBSubnetGroupDBSubnetGroupDescription (\s a -> s { _docDBDBSubnetGroupDBSubnetGroupDescription = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbsubnetgroup.html#cfn-docdb-dbsubnetgroup-dbsubnetgroupname
+ddbdbsgDBSubnetGroupName :: Lens' DocDBDBSubnetGroup (Maybe (Val Text))
+ddbdbsgDBSubnetGroupName = lens _docDBDBSubnetGroupDBSubnetGroupName (\s a -> s { _docDBDBSubnetGroupDBSubnetGroupName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbsubnetgroup.html#cfn-docdb-dbsubnetgroup-subnetids
+ddbdbsgSubnetIds :: Lens' DocDBDBSubnetGroup (ValList Text)
+ddbdbsgSubnetIds = lens _docDBDBSubnetGroupSubnetIds (\s a -> s { _docDBDBSubnetGroupSubnetIds = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbsubnetgroup.html#cfn-docdb-dbsubnetgroup-tags
+ddbdbsgTags :: Lens' DocDBDBSubnetGroup (Maybe [Tag])
+ddbdbsgTags = lens _docDBDBSubnetGroupTags (\s a -> s { _docDBDBSubnetGroupTags = a })
diff --git a/library-gen/Stratosphere/Resources/EC2EC2Fleet.hs b/library-gen/Stratosphere/Resources/EC2EC2Fleet.hs
--- a/library-gen/Stratosphere/Resources/EC2EC2Fleet.hs
+++ b/library-gen/Stratosphere/Resources/EC2EC2Fleet.hs
@@ -26,8 +26,8 @@
   , _eC2EC2FleetTargetCapacitySpecification :: EC2EC2FleetTargetCapacitySpecificationRequest
   , _eC2EC2FleetTerminateInstancesWithExpiration :: Maybe (Val Bool)
   , _eC2EC2FleetType :: Maybe (Val Text)
-  , _eC2EC2FleetValidFrom :: Maybe (Val Integer)
-  , _eC2EC2FleetValidUntil :: Maybe (Val Integer)
+  , _eC2EC2FleetValidFrom :: Maybe (Val Text)
+  , _eC2EC2FleetValidUntil :: Maybe (Val Text)
   } deriving (Show, Eq)
 
 instance ToJSON EC2EC2Fleet where
@@ -43,8 +43,8 @@
     , (Just . ("TargetCapacitySpecification",) . toJSON) _eC2EC2FleetTargetCapacitySpecification
     , fmap (("TerminateInstancesWithExpiration",) . toJSON . fmap Bool') _eC2EC2FleetTerminateInstancesWithExpiration
     , fmap (("Type",) . toJSON) _eC2EC2FleetType
-    , fmap (("ValidFrom",) . toJSON . fmap Integer') _eC2EC2FleetValidFrom
-    , fmap (("ValidUntil",) . toJSON . fmap Integer') _eC2EC2FleetValidUntil
+    , fmap (("ValidFrom",) . toJSON) _eC2EC2FleetValidFrom
+    , fmap (("ValidUntil",) . toJSON) _eC2EC2FleetValidUntil
     ]
 
 instance FromJSON EC2EC2Fleet where
@@ -59,8 +59,8 @@
       (obj .: "TargetCapacitySpecification") <*>
       fmap (fmap (fmap unBool')) (obj .:? "TerminateInstancesWithExpiration") <*>
       (obj .:? "Type") <*>
-      fmap (fmap (fmap unInteger')) (obj .:? "ValidFrom") <*>
-      fmap (fmap (fmap unInteger')) (obj .:? "ValidUntil")
+      (obj .:? "ValidFrom") <*>
+      (obj .:? "ValidUntil")
   parseJSON _ = mempty
 
 -- | Constructor for 'EC2EC2Fleet' containing required fields as arguments.
@@ -120,9 +120,9 @@
 ececfType = lens _eC2EC2FleetType (\s a -> s { _eC2EC2FleetType = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ec2fleet.html#cfn-ec2-ec2fleet-validfrom
-ececfValidFrom :: Lens' EC2EC2Fleet (Maybe (Val Integer))
+ececfValidFrom :: Lens' EC2EC2Fleet (Maybe (Val Text))
 ececfValidFrom = lens _eC2EC2FleetValidFrom (\s a -> s { _eC2EC2FleetValidFrom = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ec2fleet.html#cfn-ec2-ec2fleet-validuntil
-ececfValidUntil :: Lens' EC2EC2Fleet (Maybe (Val Integer))
+ececfValidUntil :: Lens' EC2EC2Fleet (Maybe (Val Text))
 ececfValidUntil = lens _eC2EC2FleetValidUntil (\s a -> s { _eC2EC2FleetValidUntil = a })
diff --git a/library-gen/Stratosphere/Resources/ECSCluster.hs b/library-gen/Stratosphere/Resources/ECSCluster.hs
--- a/library-gen/Stratosphere/Resources/ECSCluster.hs
+++ b/library-gen/Stratosphere/Resources/ECSCluster.hs
@@ -7,13 +7,14 @@
 module Stratosphere.Resources.ECSCluster where
 
 import Stratosphere.ResourceImports
-
+import Stratosphere.ResourceProperties.Tag
 
 -- | Full data type definition for ECSCluster. See 'ecsCluster' for a more
 -- convenient constructor.
 data ECSCluster =
   ECSCluster
   { _eCSClusterClusterName :: Maybe (Val Text)
+  , _eCSClusterTags :: Maybe [Tag]
   } deriving (Show, Eq)
 
 instance ToJSON ECSCluster where
@@ -21,12 +22,14 @@
     object $
     catMaybes
     [ fmap (("ClusterName",) . toJSON) _eCSClusterClusterName
+    , fmap (("Tags",) . toJSON) _eCSClusterTags
     ]
 
 instance FromJSON ECSCluster where
   parseJSON (Object obj) =
     ECSCluster <$>
-      (obj .:? "ClusterName")
+      (obj .:? "ClusterName") <*>
+      (obj .:? "Tags")
   parseJSON _ = mempty
 
 -- | Constructor for 'ECSCluster' containing required fields as arguments.
@@ -35,8 +38,13 @@
 ecsCluster  =
   ECSCluster
   { _eCSClusterClusterName = Nothing
+  , _eCSClusterTags = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-cluster.html#cfn-ecs-cluster-clustername
 ecscClusterName :: Lens' ECSCluster (Maybe (Val Text))
 ecscClusterName = lens _eCSClusterClusterName (\s a -> s { _eCSClusterClusterName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-cluster.html#cfn-ecs-cluster-tags
+ecscTags :: Lens' ECSCluster (Maybe [Tag])
+ecscTags = lens _eCSClusterTags (\s a -> s { _eCSClusterTags = a })
diff --git a/library-gen/Stratosphere/Resources/ECSService.hs b/library-gen/Stratosphere/Resources/ECSService.hs
--- a/library-gen/Stratosphere/Resources/ECSService.hs
+++ b/library-gen/Stratosphere/Resources/ECSService.hs
@@ -13,6 +13,7 @@
 import Stratosphere.ResourceProperties.ECSServicePlacementConstraint
 import Stratosphere.ResourceProperties.ECSServicePlacementStrategy
 import Stratosphere.ResourceProperties.ECSServiceServiceRegistry
+import Stratosphere.ResourceProperties.Tag
 
 -- | Full data type definition for ECSService. See 'ecsService' for a more
 -- convenient constructor.
@@ -32,6 +33,7 @@
   , _eCSServiceSchedulingStrategy :: Maybe (Val Text)
   , _eCSServiceServiceName :: Maybe (Val Text)
   , _eCSServiceServiceRegistries :: Maybe [ECSServiceServiceRegistry]
+  , _eCSServiceTags :: Maybe [Tag]
   , _eCSServiceTaskDefinition :: Val Text
   } deriving (Show, Eq)
 
@@ -53,6 +55,7 @@
     , fmap (("SchedulingStrategy",) . toJSON) _eCSServiceSchedulingStrategy
     , fmap (("ServiceName",) . toJSON) _eCSServiceServiceName
     , fmap (("ServiceRegistries",) . toJSON) _eCSServiceServiceRegistries
+    , fmap (("Tags",) . toJSON) _eCSServiceTags
     , (Just . ("TaskDefinition",) . toJSON) _eCSServiceTaskDefinition
     ]
 
@@ -73,6 +76,7 @@
       (obj .:? "SchedulingStrategy") <*>
       (obj .:? "ServiceName") <*>
       (obj .:? "ServiceRegistries") <*>
+      (obj .:? "Tags") <*>
       (obj .: "TaskDefinition")
   parseJSON _ = mempty
 
@@ -96,6 +100,7 @@
   , _eCSServiceSchedulingStrategy = Nothing
   , _eCSServiceServiceName = Nothing
   , _eCSServiceServiceRegistries = Nothing
+  , _eCSServiceTags = Nothing
   , _eCSServiceTaskDefinition = taskDefinitionarg
   }
 
@@ -154,6 +159,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-serviceregistries
 ecssServiceRegistries :: Lens' ECSService (Maybe [ECSServiceServiceRegistry])
 ecssServiceRegistries = lens _eCSServiceServiceRegistries (\s a -> s { _eCSServiceServiceRegistries = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-tags
+ecssTags :: Lens' ECSService (Maybe [Tag])
+ecssTags = lens _eCSServiceTags (\s a -> s { _eCSServiceTags = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-taskdefinition
 ecssTaskDefinition :: Lens' ECSService (Val Text)
diff --git a/library-gen/Stratosphere/Resources/ECSTaskDefinition.hs b/library-gen/Stratosphere/Resources/ECSTaskDefinition.hs
--- a/library-gen/Stratosphere/Resources/ECSTaskDefinition.hs
+++ b/library-gen/Stratosphere/Resources/ECSTaskDefinition.hs
@@ -9,6 +9,7 @@
 import Stratosphere.ResourceImports
 import Stratosphere.ResourceProperties.ECSTaskDefinitionContainerDefinition
 import Stratosphere.ResourceProperties.ECSTaskDefinitionTaskDefinitionPlacementConstraint
+import Stratosphere.ResourceProperties.Tag
 import Stratosphere.ResourceProperties.ECSTaskDefinitionVolume
 
 -- | Full data type definition for ECSTaskDefinition. See 'ecsTaskDefinition'
@@ -23,6 +24,7 @@
   , _eCSTaskDefinitionNetworkMode :: Maybe (Val Text)
   , _eCSTaskDefinitionPlacementConstraints :: Maybe [ECSTaskDefinitionTaskDefinitionPlacementConstraint]
   , _eCSTaskDefinitionRequiresCompatibilities :: Maybe (ValList Text)
+  , _eCSTaskDefinitionTags :: Maybe [Tag]
   , _eCSTaskDefinitionTaskRoleArn :: Maybe (Val Text)
   , _eCSTaskDefinitionVolumes :: Maybe [ECSTaskDefinitionVolume]
   } deriving (Show, Eq)
@@ -39,6 +41,7 @@
     , fmap (("NetworkMode",) . toJSON) _eCSTaskDefinitionNetworkMode
     , fmap (("PlacementConstraints",) . toJSON) _eCSTaskDefinitionPlacementConstraints
     , fmap (("RequiresCompatibilities",) . toJSON) _eCSTaskDefinitionRequiresCompatibilities
+    , fmap (("Tags",) . toJSON) _eCSTaskDefinitionTags
     , fmap (("TaskRoleArn",) . toJSON) _eCSTaskDefinitionTaskRoleArn
     , fmap (("Volumes",) . toJSON) _eCSTaskDefinitionVolumes
     ]
@@ -54,6 +57,7 @@
       (obj .:? "NetworkMode") <*>
       (obj .:? "PlacementConstraints") <*>
       (obj .:? "RequiresCompatibilities") <*>
+      (obj .:? "Tags") <*>
       (obj .:? "TaskRoleArn") <*>
       (obj .:? "Volumes")
   parseJSON _ = mempty
@@ -72,6 +76,7 @@
   , _eCSTaskDefinitionNetworkMode = Nothing
   , _eCSTaskDefinitionPlacementConstraints = Nothing
   , _eCSTaskDefinitionRequiresCompatibilities = Nothing
+  , _eCSTaskDefinitionTags = Nothing
   , _eCSTaskDefinitionTaskRoleArn = Nothing
   , _eCSTaskDefinitionVolumes = Nothing
   }
@@ -107,6 +112,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-requirescompatibilities
 ecstdRequiresCompatibilities :: Lens' ECSTaskDefinition (Maybe (ValList Text))
 ecstdRequiresCompatibilities = lens _eCSTaskDefinitionRequiresCompatibilities (\s a -> s { _eCSTaskDefinitionRequiresCompatibilities = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-tags
+ecstdTags :: Lens' ECSTaskDefinition (Maybe [Tag])
+ecstdTags = lens _eCSTaskDefinitionTags (\s a -> s { _eCSTaskDefinitionTags = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-taskrolearn
 ecstdTaskRoleArn :: Lens' ECSTaskDefinition (Maybe (Val Text))
diff --git a/library-gen/Stratosphere/Resources/ElasticsearchDomain.hs b/library-gen/Stratosphere/Resources/ElasticsearchDomain.hs
--- a/library-gen/Stratosphere/Resources/ElasticsearchDomain.hs
+++ b/library-gen/Stratosphere/Resources/ElasticsearchDomain.hs
@@ -10,6 +10,7 @@
 import Stratosphere.ResourceProperties.ElasticsearchDomainEBSOptions
 import Stratosphere.ResourceProperties.ElasticsearchDomainElasticsearchClusterConfig
 import Stratosphere.ResourceProperties.ElasticsearchDomainEncryptionAtRestOptions
+import Stratosphere.ResourceProperties.ElasticsearchDomainNodeToNodeEncryptionOptions
 import Stratosphere.ResourceProperties.ElasticsearchDomainSnapshotOptions
 import Stratosphere.ResourceProperties.Tag
 import Stratosphere.ResourceProperties.ElasticsearchDomainVPCOptions
@@ -25,6 +26,7 @@
   , _elasticsearchDomainElasticsearchClusterConfig :: Maybe ElasticsearchDomainElasticsearchClusterConfig
   , _elasticsearchDomainElasticsearchVersion :: Maybe (Val Text)
   , _elasticsearchDomainEncryptionAtRestOptions :: Maybe ElasticsearchDomainEncryptionAtRestOptions
+  , _elasticsearchDomainNodeToNodeEncryptionOptions :: Maybe ElasticsearchDomainNodeToNodeEncryptionOptions
   , _elasticsearchDomainSnapshotOptions :: Maybe ElasticsearchDomainSnapshotOptions
   , _elasticsearchDomainTags :: Maybe [Tag]
   , _elasticsearchDomainVPCOptions :: Maybe ElasticsearchDomainVPCOptions
@@ -41,6 +43,7 @@
     , fmap (("ElasticsearchClusterConfig",) . toJSON) _elasticsearchDomainElasticsearchClusterConfig
     , fmap (("ElasticsearchVersion",) . toJSON) _elasticsearchDomainElasticsearchVersion
     , fmap (("EncryptionAtRestOptions",) . toJSON) _elasticsearchDomainEncryptionAtRestOptions
+    , fmap (("NodeToNodeEncryptionOptions",) . toJSON) _elasticsearchDomainNodeToNodeEncryptionOptions
     , fmap (("SnapshotOptions",) . toJSON) _elasticsearchDomainSnapshotOptions
     , fmap (("Tags",) . toJSON) _elasticsearchDomainTags
     , fmap (("VPCOptions",) . toJSON) _elasticsearchDomainVPCOptions
@@ -56,6 +59,7 @@
       (obj .:? "ElasticsearchClusterConfig") <*>
       (obj .:? "ElasticsearchVersion") <*>
       (obj .:? "EncryptionAtRestOptions") <*>
+      (obj .:? "NodeToNodeEncryptionOptions") <*>
       (obj .:? "SnapshotOptions") <*>
       (obj .:? "Tags") <*>
       (obj .:? "VPCOptions")
@@ -74,6 +78,7 @@
   , _elasticsearchDomainElasticsearchClusterConfig = Nothing
   , _elasticsearchDomainElasticsearchVersion = Nothing
   , _elasticsearchDomainEncryptionAtRestOptions = Nothing
+  , _elasticsearchDomainNodeToNodeEncryptionOptions = Nothing
   , _elasticsearchDomainSnapshotOptions = Nothing
   , _elasticsearchDomainTags = Nothing
   , _elasticsearchDomainVPCOptions = Nothing
@@ -106,6 +111,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-encryptionatrestoptions
 edEncryptionAtRestOptions :: Lens' ElasticsearchDomain (Maybe ElasticsearchDomainEncryptionAtRestOptions)
 edEncryptionAtRestOptions = lens _elasticsearchDomainEncryptionAtRestOptions (\s a -> s { _elasticsearchDomainEncryptionAtRestOptions = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-nodetonodeencryptionoptions
+edNodeToNodeEncryptionOptions :: Lens' ElasticsearchDomain (Maybe ElasticsearchDomainNodeToNodeEncryptionOptions)
+edNodeToNodeEncryptionOptions = lens _elasticsearchDomainNodeToNodeEncryptionOptions (\s a -> s { _elasticsearchDomainNodeToNodeEncryptionOptions = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-snapshotoptions
 edSnapshotOptions :: Lens' ElasticsearchDomain (Maybe ElasticsearchDomainSnapshotOptions)
diff --git a/library-gen/Stratosphere/Resources/InspectorAssessmentTarget.hs b/library-gen/Stratosphere/Resources/InspectorAssessmentTarget.hs
--- a/library-gen/Stratosphere/Resources/InspectorAssessmentTarget.hs
+++ b/library-gen/Stratosphere/Resources/InspectorAssessmentTarget.hs
@@ -14,7 +14,7 @@
 data InspectorAssessmentTarget =
   InspectorAssessmentTarget
   { _inspectorAssessmentTargetAssessmentTargetName :: Maybe (Val Text)
-  , _inspectorAssessmentTargetResourceGroupArn :: Val Text
+  , _inspectorAssessmentTargetResourceGroupArn :: Maybe (Val Text)
   } deriving (Show, Eq)
 
 instance ToJSON InspectorAssessmentTarget where
@@ -22,25 +22,24 @@
     object $
     catMaybes
     [ fmap (("AssessmentTargetName",) . toJSON) _inspectorAssessmentTargetAssessmentTargetName
-    , (Just . ("ResourceGroupArn",) . toJSON) _inspectorAssessmentTargetResourceGroupArn
+    , fmap (("ResourceGroupArn",) . toJSON) _inspectorAssessmentTargetResourceGroupArn
     ]
 
 instance FromJSON InspectorAssessmentTarget where
   parseJSON (Object obj) =
     InspectorAssessmentTarget <$>
       (obj .:? "AssessmentTargetName") <*>
-      (obj .: "ResourceGroupArn")
+      (obj .:? "ResourceGroupArn")
   parseJSON _ = mempty
 
 -- | Constructor for 'InspectorAssessmentTarget' containing required fields as
 -- arguments.
 inspectorAssessmentTarget
-  :: Val Text -- ^ 'iatResourceGroupArn'
-  -> InspectorAssessmentTarget
-inspectorAssessmentTarget resourceGroupArnarg =
+  :: InspectorAssessmentTarget
+inspectorAssessmentTarget  =
   InspectorAssessmentTarget
   { _inspectorAssessmentTargetAssessmentTargetName = Nothing
-  , _inspectorAssessmentTargetResourceGroupArn = resourceGroupArnarg
+  , _inspectorAssessmentTargetResourceGroupArn = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttarget.html#cfn-inspector-assessmenttarget-assessmenttargetname
@@ -48,5 +47,5 @@
 iatAssessmentTargetName = lens _inspectorAssessmentTargetAssessmentTargetName (\s a -> s { _inspectorAssessmentTargetAssessmentTargetName = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttarget.html#cfn-inspector-assessmenttarget-resourcegrouparn
-iatResourceGroupArn :: Lens' InspectorAssessmentTarget (Val Text)
+iatResourceGroupArn :: Lens' InspectorAssessmentTarget (Maybe (Val Text))
 iatResourceGroupArn = lens _inspectorAssessmentTargetResourceGroupArn (\s a -> s { _inspectorAssessmentTargetResourceGroupArn = a })
diff --git a/library-gen/Stratosphere/Resources/LambdaLayerVersion.hs b/library-gen/Stratosphere/Resources/LambdaLayerVersion.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/LambdaLayerVersion.hs
@@ -0,0 +1,76 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html
+
+module Stratosphere.Resources.LambdaLayerVersion where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.LambdaLayerVersionContent
+
+-- | Full data type definition for LambdaLayerVersion. See
+-- 'lambdaLayerVersion' for a more convenient constructor.
+data LambdaLayerVersion =
+  LambdaLayerVersion
+  { _lambdaLayerVersionCompatibleRuntimes :: Maybe (ValList Text)
+  , _lambdaLayerVersionContent :: LambdaLayerVersionContent
+  , _lambdaLayerVersionDescription :: Maybe (Val Text)
+  , _lambdaLayerVersionLayerName :: Maybe (Val Text)
+  , _lambdaLayerVersionLicenseInfo :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON LambdaLayerVersion where
+  toJSON LambdaLayerVersion{..} =
+    object $
+    catMaybes
+    [ fmap (("CompatibleRuntimes",) . toJSON) _lambdaLayerVersionCompatibleRuntimes
+    , (Just . ("Content",) . toJSON) _lambdaLayerVersionContent
+    , fmap (("Description",) . toJSON) _lambdaLayerVersionDescription
+    , fmap (("LayerName",) . toJSON) _lambdaLayerVersionLayerName
+    , fmap (("LicenseInfo",) . toJSON) _lambdaLayerVersionLicenseInfo
+    ]
+
+instance FromJSON LambdaLayerVersion where
+  parseJSON (Object obj) =
+    LambdaLayerVersion <$>
+      (obj .:? "CompatibleRuntimes") <*>
+      (obj .: "Content") <*>
+      (obj .:? "Description") <*>
+      (obj .:? "LayerName") <*>
+      (obj .:? "LicenseInfo")
+  parseJSON _ = mempty
+
+-- | Constructor for 'LambdaLayerVersion' containing required fields as
+-- arguments.
+lambdaLayerVersion
+  :: LambdaLayerVersionContent -- ^ 'llvContent'
+  -> LambdaLayerVersion
+lambdaLayerVersion contentarg =
+  LambdaLayerVersion
+  { _lambdaLayerVersionCompatibleRuntimes = Nothing
+  , _lambdaLayerVersionContent = contentarg
+  , _lambdaLayerVersionDescription = Nothing
+  , _lambdaLayerVersionLayerName = Nothing
+  , _lambdaLayerVersionLicenseInfo = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-compatibleruntimes
+llvCompatibleRuntimes :: Lens' LambdaLayerVersion (Maybe (ValList Text))
+llvCompatibleRuntimes = lens _lambdaLayerVersionCompatibleRuntimes (\s a -> s { _lambdaLayerVersionCompatibleRuntimes = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-content
+llvContent :: Lens' LambdaLayerVersion LambdaLayerVersionContent
+llvContent = lens _lambdaLayerVersionContent (\s a -> s { _lambdaLayerVersionContent = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-description
+llvDescription :: Lens' LambdaLayerVersion (Maybe (Val Text))
+llvDescription = lens _lambdaLayerVersionDescription (\s a -> s { _lambdaLayerVersionDescription = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-layername
+llvLayerName :: Lens' LambdaLayerVersion (Maybe (Val Text))
+llvLayerName = lens _lambdaLayerVersionLayerName (\s a -> s { _lambdaLayerVersionLayerName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-licenseinfo
+llvLicenseInfo :: Lens' LambdaLayerVersion (Maybe (Val Text))
+llvLicenseInfo = lens _lambdaLayerVersionLicenseInfo (\s a -> s { _lambdaLayerVersionLicenseInfo = 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
@@ -36,6 +36,7 @@
   , _rDSDBClusterReplicationSourceIdentifier :: Maybe (Val Text)
   , _rDSDBClusterScalingConfiguration :: Maybe RDSDBClusterScalingConfiguration
   , _rDSDBClusterSnapshotIdentifier :: Maybe (Val Text)
+  , _rDSDBClusterSourceRegion :: Maybe (Val Text)
   , _rDSDBClusterStorageEncrypted :: Maybe (Val Bool)
   , _rDSDBClusterTags :: Maybe [Tag]
   , _rDSDBClusterVpcSecurityGroupIds :: Maybe (ValList Text)
@@ -67,6 +68,7 @@
     , fmap (("ReplicationSourceIdentifier",) . toJSON) _rDSDBClusterReplicationSourceIdentifier
     , fmap (("ScalingConfiguration",) . toJSON) _rDSDBClusterScalingConfiguration
     , fmap (("SnapshotIdentifier",) . toJSON) _rDSDBClusterSnapshotIdentifier
+    , fmap (("SourceRegion",) . toJSON) _rDSDBClusterSourceRegion
     , fmap (("StorageEncrypted",) . toJSON . fmap Bool') _rDSDBClusterStorageEncrypted
     , fmap (("Tags",) . toJSON) _rDSDBClusterTags
     , fmap (("VpcSecurityGroupIds",) . toJSON) _rDSDBClusterVpcSecurityGroupIds
@@ -97,6 +99,7 @@
       (obj .:? "ReplicationSourceIdentifier") <*>
       (obj .:? "ScalingConfiguration") <*>
       (obj .:? "SnapshotIdentifier") <*>
+      (obj .:? "SourceRegion") <*>
       fmap (fmap (fmap unBool')) (obj .:? "StorageEncrypted") <*>
       (obj .:? "Tags") <*>
       (obj .:? "VpcSecurityGroupIds")
@@ -130,6 +133,7 @@
   , _rDSDBClusterReplicationSourceIdentifier = Nothing
   , _rDSDBClusterScalingConfiguration = Nothing
   , _rDSDBClusterSnapshotIdentifier = Nothing
+  , _rDSDBClusterSourceRegion = Nothing
   , _rDSDBClusterStorageEncrypted = Nothing
   , _rDSDBClusterTags = Nothing
   , _rDSDBClusterVpcSecurityGroupIds = Nothing
@@ -222,6 +226,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-snapshotidentifier
 rdsdbcSnapshotIdentifier :: Lens' RDSDBCluster (Maybe (Val Text))
 rdsdbcSnapshotIdentifier = lens _rDSDBClusterSnapshotIdentifier (\s a -> s { _rDSDBClusterSnapshotIdentifier = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-sourceregion
+rdsdbcSourceRegion :: Lens' RDSDBCluster (Maybe (Val Text))
+rdsdbcSourceRegion = lens _rDSDBClusterSourceRegion (\s a -> s { _rDSDBClusterSourceRegion = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-storageencrypted
 rdsdbcStorageEncrypted :: Lens' RDSDBCluster (Maybe (Val Bool))
diff --git a/library-gen/Stratosphere/Resources/RDSDBInstance.hs b/library-gen/Stratosphere/Resources/RDSDBInstance.hs
--- a/library-gen/Stratosphere/Resources/RDSDBInstance.hs
+++ b/library-gen/Stratosphere/Resources/RDSDBInstance.hs
@@ -61,6 +61,7 @@
   , _rDSDBInstanceStorageType :: Maybe (Val Text)
   , _rDSDBInstanceTags :: Maybe [Tag]
   , _rDSDBInstanceTimezone :: Maybe (Val Text)
+  , _rDSDBInstanceUseDefaultProcessorFeatures :: Maybe (Val Bool)
   , _rDSDBInstanceVPCSecurityGroups :: Maybe (ValList Text)
   } deriving (Show, Eq)
 
@@ -115,6 +116,7 @@
     , fmap (("StorageType",) . toJSON) _rDSDBInstanceStorageType
     , fmap (("Tags",) . toJSON) _rDSDBInstanceTags
     , fmap (("Timezone",) . toJSON) _rDSDBInstanceTimezone
+    , fmap (("UseDefaultProcessorFeatures",) . toJSON . fmap Bool') _rDSDBInstanceUseDefaultProcessorFeatures
     , fmap (("VPCSecurityGroups",) . toJSON) _rDSDBInstanceVPCSecurityGroups
     ]
 
@@ -168,6 +170,7 @@
       (obj .:? "StorageType") <*>
       (obj .:? "Tags") <*>
       (obj .:? "Timezone") <*>
+      fmap (fmap (fmap unBool')) (obj .:? "UseDefaultProcessorFeatures") <*>
       (obj .:? "VPCSecurityGroups")
   parseJSON _ = mempty
 
@@ -224,6 +227,7 @@
   , _rDSDBInstanceStorageType = Nothing
   , _rDSDBInstanceTags = Nothing
   , _rDSDBInstanceTimezone = Nothing
+  , _rDSDBInstanceUseDefaultProcessorFeatures = Nothing
   , _rDSDBInstanceVPCSecurityGroups = Nothing
   }
 
@@ -414,6 +418,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-timezone
 rdsdbiTimezone :: Lens' RDSDBInstance (Maybe (Val Text))
 rdsdbiTimezone = lens _rDSDBInstanceTimezone (\s a -> s { _rDSDBInstanceTimezone = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-usedefaultprocessorfeatures
+rdsdbiUseDefaultProcessorFeatures :: Lens' RDSDBInstance (Maybe (Val Bool))
+rdsdbiUseDefaultProcessorFeatures = lens _rDSDBInstanceUseDefaultProcessorFeatures (\s a -> s { _rDSDBInstanceUseDefaultProcessorFeatures = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-vpcsecuritygroups
 rdsdbiVPCSecurityGroups :: Lens' RDSDBInstance (Maybe (ValList Text))
diff --git a/stratosphere.cabal b/stratosphere.cabal
--- a/stratosphere.cabal
+++ b/stratosphere.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 6ce3813c8167e95585b91a8d57d986aada8b4fb3d99d5845ceb657a522e2814f
+-- hash: b3a52913eb633d72e31a2a48107a336d3113364313d70bc0d1964a31f28a2c40
 
 name:           stratosphere
-version:        0.29.1
+version:        0.30.0
 synopsis:       EDSL for AWS CloudFormation
 description:    EDSL for AWS CloudFormation
 category:       AWS, Cloud
@@ -261,6 +261,8 @@
       Stratosphere.ResourceProperties.DLMLifecyclePolicyRetainRule
       Stratosphere.ResourceProperties.DLMLifecyclePolicySchedule
       Stratosphere.ResourceProperties.DMSEndpointDynamoDbSettings
+      Stratosphere.ResourceProperties.DMSEndpointElasticsearchSettings
+      Stratosphere.ResourceProperties.DMSEndpointKinesisSettings
       Stratosphere.ResourceProperties.DMSEndpointMongoDbSettings
       Stratosphere.ResourceProperties.DMSEndpointS3Settings
       Stratosphere.ResourceProperties.DynamoDBTableAttributeDefinition
@@ -403,6 +405,7 @@
       Stratosphere.ResourceProperties.ElasticsearchDomainEBSOptions
       Stratosphere.ResourceProperties.ElasticsearchDomainElasticsearchClusterConfig
       Stratosphere.ResourceProperties.ElasticsearchDomainEncryptionAtRestOptions
+      Stratosphere.ResourceProperties.ElasticsearchDomainNodeToNodeEncryptionOptions
       Stratosphere.ResourceProperties.ElasticsearchDomainSnapshotOptions
       Stratosphere.ResourceProperties.ElasticsearchDomainVPCOptions
       Stratosphere.ResourceProperties.EMRClusterApplication
@@ -594,6 +597,7 @@
       Stratosphere.ResourceProperties.LambdaFunctionEnvironment
       Stratosphere.ResourceProperties.LambdaFunctionTracingConfig
       Stratosphere.ResourceProperties.LambdaFunctionVpcConfig
+      Stratosphere.ResourceProperties.LambdaLayerVersionContent
       Stratosphere.ResourceProperties.LogsMetricFilterMetricTransformation
       Stratosphere.ResourceProperties.OpsWorksAppDataSource
       Stratosphere.ResourceProperties.OpsWorksAppEnvironmentVariable
@@ -842,6 +846,10 @@
       Stratosphere.Resources.DMSReplicationInstance
       Stratosphere.Resources.DMSReplicationSubnetGroup
       Stratosphere.Resources.DMSReplicationTask
+      Stratosphere.Resources.DocDBDBCluster
+      Stratosphere.Resources.DocDBDBClusterParameterGroup
+      Stratosphere.Resources.DocDBDBInstance
+      Stratosphere.Resources.DocDBDBSubnetGroup
       Stratosphere.Resources.DynamoDBTable
       Stratosphere.Resources.EC2CustomerGateway
       Stratosphere.Resources.EC2DHCPOptions
@@ -977,6 +985,7 @@
       Stratosphere.Resources.LambdaAlias
       Stratosphere.Resources.LambdaEventSourceMapping
       Stratosphere.Resources.LambdaFunction
+      Stratosphere.Resources.LambdaLayerVersion
       Stratosphere.Resources.LambdaPermission
       Stratosphere.Resources.LambdaVersion
       Stratosphere.Resources.LogsDestination
