diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Change Log
 
+## 0.5.0
+
+* Update resource specification document (no version given)
+
 ## 0.4.4
 
 * Update the resource specification document to version `1.4.2`
diff --git a/library-gen/Stratosphere/ResourceProperties/DMSEndpointDynamoDbSettings.hs b/library-gen/Stratosphere/ResourceProperties/DMSEndpointDynamoDbSettings.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/DMSEndpointDynamoDbSettings.hs
@@ -0,0 +1,48 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-dynamodbsettings.html
+
+module Stratosphere.ResourceProperties.DMSEndpointDynamoDbSettings where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+
+
+-- | Full data type definition for DMSEndpointDynamoDbSettings. See
+-- 'dmsEndpointDynamoDbSettings' for a more convenient constructor.
+data DMSEndpointDynamoDbSettings =
+  DMSEndpointDynamoDbSettings
+  { _dMSEndpointDynamoDbSettingsServiceAccessRoleArn :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON DMSEndpointDynamoDbSettings where
+  toJSON DMSEndpointDynamoDbSettings{..} =
+    object $
+    catMaybes
+    [ ("ServiceAccessRoleArn" .=) <$> _dMSEndpointDynamoDbSettingsServiceAccessRoleArn
+    ]
+
+instance FromJSON DMSEndpointDynamoDbSettings where
+  parseJSON (Object obj) =
+    DMSEndpointDynamoDbSettings <$>
+      obj .:? "ServiceAccessRoleArn"
+  parseJSON _ = mempty
+
+-- | Constructor for 'DMSEndpointDynamoDbSettings' containing required fields
+-- as arguments.
+dmsEndpointDynamoDbSettings
+  :: DMSEndpointDynamoDbSettings
+dmsEndpointDynamoDbSettings  =
+  DMSEndpointDynamoDbSettings
+  { _dMSEndpointDynamoDbSettingsServiceAccessRoleArn = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-dynamodbsettings.html#cfn-dms-endpoint-dynamodbsettings-serviceaccessrolearn
+dmseddsServiceAccessRoleArn :: Lens' DMSEndpointDynamoDbSettings (Maybe (Val Text))
+dmseddsServiceAccessRoleArn = lens _dMSEndpointDynamoDbSettingsServiceAccessRoleArn (\s a -> s { _dMSEndpointDynamoDbSettingsServiceAccessRoleArn = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/DMSEndpointMongoDbSettings.hs b/library-gen/Stratosphere/ResourceProperties/DMSEndpointMongoDbSettings.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/DMSEndpointMongoDbSettings.hs
@@ -0,0 +1,128 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html
+
+module Stratosphere.ResourceProperties.DMSEndpointMongoDbSettings where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+
+
+-- | Full data type definition for DMSEndpointMongoDbSettings. See
+-- 'dmsEndpointMongoDbSettings' for a more convenient constructor.
+data DMSEndpointMongoDbSettings =
+  DMSEndpointMongoDbSettings
+  { _dMSEndpointMongoDbSettingsAuthMechanism :: Maybe (Val Text)
+  , _dMSEndpointMongoDbSettingsAuthSource :: Maybe (Val Text)
+  , _dMSEndpointMongoDbSettingsAuthType :: Maybe (Val Text)
+  , _dMSEndpointMongoDbSettingsDatabaseName :: Maybe (Val Text)
+  , _dMSEndpointMongoDbSettingsDocsToInvestigate :: Maybe (Val Text)
+  , _dMSEndpointMongoDbSettingsExtractDocId :: Maybe (Val Text)
+  , _dMSEndpointMongoDbSettingsNestingLevel :: Maybe (Val Text)
+  , _dMSEndpointMongoDbSettingsPassword :: Maybe (Val Text)
+  , _dMSEndpointMongoDbSettingsPort :: Maybe (Val Integer')
+  , _dMSEndpointMongoDbSettingsServerName :: Maybe (Val Text)
+  , _dMSEndpointMongoDbSettingsUsername :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON DMSEndpointMongoDbSettings where
+  toJSON DMSEndpointMongoDbSettings{..} =
+    object $
+    catMaybes
+    [ ("AuthMechanism" .=) <$> _dMSEndpointMongoDbSettingsAuthMechanism
+    , ("AuthSource" .=) <$> _dMSEndpointMongoDbSettingsAuthSource
+    , ("AuthType" .=) <$> _dMSEndpointMongoDbSettingsAuthType
+    , ("DatabaseName" .=) <$> _dMSEndpointMongoDbSettingsDatabaseName
+    , ("DocsToInvestigate" .=) <$> _dMSEndpointMongoDbSettingsDocsToInvestigate
+    , ("ExtractDocId" .=) <$> _dMSEndpointMongoDbSettingsExtractDocId
+    , ("NestingLevel" .=) <$> _dMSEndpointMongoDbSettingsNestingLevel
+    , ("Password" .=) <$> _dMSEndpointMongoDbSettingsPassword
+    , ("Port" .=) <$> _dMSEndpointMongoDbSettingsPort
+    , ("ServerName" .=) <$> _dMSEndpointMongoDbSettingsServerName
+    , ("Username" .=) <$> _dMSEndpointMongoDbSettingsUsername
+    ]
+
+instance FromJSON DMSEndpointMongoDbSettings where
+  parseJSON (Object obj) =
+    DMSEndpointMongoDbSettings <$>
+      obj .:? "AuthMechanism" <*>
+      obj .:? "AuthSource" <*>
+      obj .:? "AuthType" <*>
+      obj .:? "DatabaseName" <*>
+      obj .:? "DocsToInvestigate" <*>
+      obj .:? "ExtractDocId" <*>
+      obj .:? "NestingLevel" <*>
+      obj .:? "Password" <*>
+      obj .:? "Port" <*>
+      obj .:? "ServerName" <*>
+      obj .:? "Username"
+  parseJSON _ = mempty
+
+-- | Constructor for 'DMSEndpointMongoDbSettings' containing required fields
+-- as arguments.
+dmsEndpointMongoDbSettings
+  :: DMSEndpointMongoDbSettings
+dmsEndpointMongoDbSettings  =
+  DMSEndpointMongoDbSettings
+  { _dMSEndpointMongoDbSettingsAuthMechanism = Nothing
+  , _dMSEndpointMongoDbSettingsAuthSource = Nothing
+  , _dMSEndpointMongoDbSettingsAuthType = Nothing
+  , _dMSEndpointMongoDbSettingsDatabaseName = Nothing
+  , _dMSEndpointMongoDbSettingsDocsToInvestigate = Nothing
+  , _dMSEndpointMongoDbSettingsExtractDocId = Nothing
+  , _dMSEndpointMongoDbSettingsNestingLevel = Nothing
+  , _dMSEndpointMongoDbSettingsPassword = Nothing
+  , _dMSEndpointMongoDbSettingsPort = Nothing
+  , _dMSEndpointMongoDbSettingsServerName = Nothing
+  , _dMSEndpointMongoDbSettingsUsername = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-authmechanism
+dmsemdsAuthMechanism :: Lens' DMSEndpointMongoDbSettings (Maybe (Val Text))
+dmsemdsAuthMechanism = lens _dMSEndpointMongoDbSettingsAuthMechanism (\s a -> s { _dMSEndpointMongoDbSettingsAuthMechanism = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-authsource
+dmsemdsAuthSource :: Lens' DMSEndpointMongoDbSettings (Maybe (Val Text))
+dmsemdsAuthSource = lens _dMSEndpointMongoDbSettingsAuthSource (\s a -> s { _dMSEndpointMongoDbSettingsAuthSource = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-authtype
+dmsemdsAuthType :: Lens' DMSEndpointMongoDbSettings (Maybe (Val Text))
+dmsemdsAuthType = lens _dMSEndpointMongoDbSettingsAuthType (\s a -> s { _dMSEndpointMongoDbSettingsAuthType = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-databasename
+dmsemdsDatabaseName :: Lens' DMSEndpointMongoDbSettings (Maybe (Val Text))
+dmsemdsDatabaseName = lens _dMSEndpointMongoDbSettingsDatabaseName (\s a -> s { _dMSEndpointMongoDbSettingsDatabaseName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-docstoinvestigate
+dmsemdsDocsToInvestigate :: Lens' DMSEndpointMongoDbSettings (Maybe (Val Text))
+dmsemdsDocsToInvestigate = lens _dMSEndpointMongoDbSettingsDocsToInvestigate (\s a -> s { _dMSEndpointMongoDbSettingsDocsToInvestigate = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-extractdocid
+dmsemdsExtractDocId :: Lens' DMSEndpointMongoDbSettings (Maybe (Val Text))
+dmsemdsExtractDocId = lens _dMSEndpointMongoDbSettingsExtractDocId (\s a -> s { _dMSEndpointMongoDbSettingsExtractDocId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-nestinglevel
+dmsemdsNestingLevel :: Lens' DMSEndpointMongoDbSettings (Maybe (Val Text))
+dmsemdsNestingLevel = lens _dMSEndpointMongoDbSettingsNestingLevel (\s a -> s { _dMSEndpointMongoDbSettingsNestingLevel = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-password
+dmsemdsPassword :: Lens' DMSEndpointMongoDbSettings (Maybe (Val Text))
+dmsemdsPassword = lens _dMSEndpointMongoDbSettingsPassword (\s a -> s { _dMSEndpointMongoDbSettingsPassword = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-port
+dmsemdsPort :: Lens' DMSEndpointMongoDbSettings (Maybe (Val Integer'))
+dmsemdsPort = lens _dMSEndpointMongoDbSettingsPort (\s a -> s { _dMSEndpointMongoDbSettingsPort = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-servername
+dmsemdsServerName :: Lens' DMSEndpointMongoDbSettings (Maybe (Val Text))
+dmsemdsServerName = lens _dMSEndpointMongoDbSettingsServerName (\s a -> s { _dMSEndpointMongoDbSettingsServerName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-username
+dmsemdsUsername :: Lens' DMSEndpointMongoDbSettings (Maybe (Val Text))
+dmsemdsUsername = lens _dMSEndpointMongoDbSettingsUsername (\s a -> s { _dMSEndpointMongoDbSettingsUsername = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/DMSEndpointS3Settings.hs b/library-gen/Stratosphere/ResourceProperties/DMSEndpointS3Settings.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/DMSEndpointS3Settings.hs
@@ -0,0 +1,96 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html
+
+module Stratosphere.ResourceProperties.DMSEndpointS3Settings where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+
+
+-- | Full data type definition for DMSEndpointS3Settings. See
+-- 'dmsEndpointS3Settings' for a more convenient constructor.
+data DMSEndpointS3Settings =
+  DMSEndpointS3Settings
+  { _dMSEndpointS3SettingsBucketFolder :: Maybe (Val Text)
+  , _dMSEndpointS3SettingsBucketName :: Maybe (Val Text)
+  , _dMSEndpointS3SettingsCompressionType :: Maybe (Val Text)
+  , _dMSEndpointS3SettingsCsvDelimiter :: Maybe (Val Text)
+  , _dMSEndpointS3SettingsCsvRowDelimiter :: Maybe (Val Text)
+  , _dMSEndpointS3SettingsExternalTableDefinition :: Maybe (Val Text)
+  , _dMSEndpointS3SettingsServiceAccessRoleArn :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON DMSEndpointS3Settings where
+  toJSON DMSEndpointS3Settings{..} =
+    object $
+    catMaybes
+    [ ("BucketFolder" .=) <$> _dMSEndpointS3SettingsBucketFolder
+    , ("BucketName" .=) <$> _dMSEndpointS3SettingsBucketName
+    , ("CompressionType" .=) <$> _dMSEndpointS3SettingsCompressionType
+    , ("CsvDelimiter" .=) <$> _dMSEndpointS3SettingsCsvDelimiter
+    , ("CsvRowDelimiter" .=) <$> _dMSEndpointS3SettingsCsvRowDelimiter
+    , ("ExternalTableDefinition" .=) <$> _dMSEndpointS3SettingsExternalTableDefinition
+    , ("ServiceAccessRoleArn" .=) <$> _dMSEndpointS3SettingsServiceAccessRoleArn
+    ]
+
+instance FromJSON DMSEndpointS3Settings where
+  parseJSON (Object obj) =
+    DMSEndpointS3Settings <$>
+      obj .:? "BucketFolder" <*>
+      obj .:? "BucketName" <*>
+      obj .:? "CompressionType" <*>
+      obj .:? "CsvDelimiter" <*>
+      obj .:? "CsvRowDelimiter" <*>
+      obj .:? "ExternalTableDefinition" <*>
+      obj .:? "ServiceAccessRoleArn"
+  parseJSON _ = mempty
+
+-- | Constructor for 'DMSEndpointS3Settings' containing required fields as
+-- arguments.
+dmsEndpointS3Settings
+  :: DMSEndpointS3Settings
+dmsEndpointS3Settings  =
+  DMSEndpointS3Settings
+  { _dMSEndpointS3SettingsBucketFolder = Nothing
+  , _dMSEndpointS3SettingsBucketName = Nothing
+  , _dMSEndpointS3SettingsCompressionType = Nothing
+  , _dMSEndpointS3SettingsCsvDelimiter = Nothing
+  , _dMSEndpointS3SettingsCsvRowDelimiter = Nothing
+  , _dMSEndpointS3SettingsExternalTableDefinition = Nothing
+  , _dMSEndpointS3SettingsServiceAccessRoleArn = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-bucketfolder
+dmsessBucketFolder :: Lens' DMSEndpointS3Settings (Maybe (Val Text))
+dmsessBucketFolder = lens _dMSEndpointS3SettingsBucketFolder (\s a -> s { _dMSEndpointS3SettingsBucketFolder = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-bucketname
+dmsessBucketName :: Lens' DMSEndpointS3Settings (Maybe (Val Text))
+dmsessBucketName = lens _dMSEndpointS3SettingsBucketName (\s a -> s { _dMSEndpointS3SettingsBucketName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-compressiontype
+dmsessCompressionType :: Lens' DMSEndpointS3Settings (Maybe (Val Text))
+dmsessCompressionType = lens _dMSEndpointS3SettingsCompressionType (\s a -> s { _dMSEndpointS3SettingsCompressionType = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-csvdelimiter
+dmsessCsvDelimiter :: Lens' DMSEndpointS3Settings (Maybe (Val Text))
+dmsessCsvDelimiter = lens _dMSEndpointS3SettingsCsvDelimiter (\s a -> s { _dMSEndpointS3SettingsCsvDelimiter = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-csvrowdelimiter
+dmsessCsvRowDelimiter :: Lens' DMSEndpointS3Settings (Maybe (Val Text))
+dmsessCsvRowDelimiter = lens _dMSEndpointS3SettingsCsvRowDelimiter (\s a -> s { _dMSEndpointS3SettingsCsvRowDelimiter = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-externaltabledefinition
+dmsessExternalTableDefinition :: Lens' DMSEndpointS3Settings (Maybe (Val Text))
+dmsessExternalTableDefinition = lens _dMSEndpointS3SettingsExternalTableDefinition (\s a -> s { _dMSEndpointS3SettingsExternalTableDefinition = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-serviceaccessrolearn
+dmsessServiceAccessRoleArn :: Lens' DMSEndpointS3Settings (Maybe (Val Text))
+dmsessServiceAccessRoleArn = lens _dMSEndpointS3SettingsServiceAccessRoleArn (\s a -> s { _dMSEndpointS3SettingsServiceAccessRoleArn = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration.hs
--- a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration.hs
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration.hs
@@ -15,7 +15,6 @@
 import Stratosphere.Types
 import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamElasticsearchBufferingHints
 import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamCloudWatchLoggingOptions
-import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamProcessingConfiguration
 import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamElasticsearchRetryOptions
 import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamS3DestinationConfiguration
 
@@ -30,7 +29,6 @@
   , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationDomainARN :: Val Text
   , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationIndexName :: Val Text
   , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationIndexRotationPeriod :: Val Text
-  , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationProcessingConfiguration :: Maybe KinesisFirehoseDeliveryStreamProcessingConfiguration
   , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationRetryOptions :: KinesisFirehoseDeliveryStreamElasticsearchRetryOptions
   , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationRoleARN :: Val Text
   , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationS3BackupMode :: Val KinesisFirehoseElasticsearchS3BackupMode
@@ -47,7 +45,6 @@
     , Just ("DomainARN" .= _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationDomainARN)
     , Just ("IndexName" .= _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationIndexName)
     , Just ("IndexRotationPeriod" .= _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationIndexRotationPeriod)
-    , ("ProcessingConfiguration" .=) <$> _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationProcessingConfiguration
     , Just ("RetryOptions" .= _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationRetryOptions)
     , Just ("RoleARN" .= _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationRoleARN)
     , Just ("S3BackupMode" .= _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationS3BackupMode)
@@ -63,7 +60,6 @@
       obj .: "DomainARN" <*>
       obj .: "IndexName" <*>
       obj .: "IndexRotationPeriod" <*>
-      obj .:? "ProcessingConfiguration" <*>
       obj .: "RetryOptions" <*>
       obj .: "RoleARN" <*>
       obj .: "S3BackupMode" <*>
@@ -92,7 +88,6 @@
   , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationDomainARN = domainARNarg
   , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationIndexName = indexNamearg
   , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationIndexRotationPeriod = indexRotationPeriodarg
-  , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationProcessingConfiguration = Nothing
   , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationRetryOptions = retryOptionsarg
   , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationRoleARN = roleARNarg
   , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationS3BackupMode = s3BackupModearg
@@ -119,10 +114,6 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-elasticsearchdestinationconfiguration-indexrotationperiod
 kfdsedcIndexRotationPeriod :: Lens' KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration (Val Text)
 kfdsedcIndexRotationPeriod = lens _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationIndexRotationPeriod (\s a -> s { _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationIndexRotationPeriod = a })
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-ProcessingConfiguration
-kfdsedcProcessingConfiguration :: Lens' KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration (Maybe KinesisFirehoseDeliveryStreamProcessingConfiguration)
-kfdsedcProcessingConfiguration = lens _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationProcessingConfiguration (\s a -> s { _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationProcessingConfiguration = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-elasticsearchdestinationconfiguration-retryoptions
 kfdsedcRetryOptions :: Lens' KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration KinesisFirehoseDeliveryStreamElasticsearchRetryOptions
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration.hs
deleted file mode 100644
--- a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration.hs
+++ /dev/null
@@ -1,132 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE RecordWildCards #-}
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-extendeds3destinationconfiguration.html
-
-module Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration where
-
-import Control.Lens hiding ((.=))
-import Data.Aeson
-import Data.Maybe (catMaybes)
-import Data.Monoid (mempty)
-import Data.Text
-
-import Stratosphere.Values
-import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamBufferingHints
-import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamCloudWatchLoggingOptions
-import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamEncryptionConfiguration
-import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamProcessingConfiguration
-import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamS3DestinationConfiguration
-
--- | Full data type definition for
--- KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration. See
--- 'kinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration' for a
--- more convenient constructor.
-data KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration =
-  KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration
-  { _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationBucketARN :: Val Text
-  , _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationBufferingHints :: KinesisFirehoseDeliveryStreamBufferingHints
-  , _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationCloudWatchLoggingOptions :: Maybe KinesisFirehoseDeliveryStreamCloudWatchLoggingOptions
-  , _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationCompressionFormat :: Val Text
-  , _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationEncryptionConfiguration :: Maybe KinesisFirehoseDeliveryStreamEncryptionConfiguration
-  , _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationPrefix :: Val Text
-  , _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationProcessingConfiguration :: Maybe KinesisFirehoseDeliveryStreamProcessingConfiguration
-  , _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationRoleARN :: Val Text
-  , _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationS3BackupConfiguration :: Maybe KinesisFirehoseDeliveryStreamS3DestinationConfiguration
-  , _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationS3BackupMode :: Maybe (Val Text)
-  } deriving (Show, Eq)
-
-instance ToJSON KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration where
-  toJSON KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration{..} =
-    object $
-    catMaybes
-    [ Just ("BucketARN" .= _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationBucketARN)
-    , Just ("BufferingHints" .= _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationBufferingHints)
-    , ("CloudWatchLoggingOptions" .=) <$> _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationCloudWatchLoggingOptions
-    , Just ("CompressionFormat" .= _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationCompressionFormat)
-    , ("EncryptionConfiguration" .=) <$> _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationEncryptionConfiguration
-    , Just ("Prefix" .= _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationPrefix)
-    , ("ProcessingConfiguration" .=) <$> _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationProcessingConfiguration
-    , Just ("RoleARN" .= _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationRoleARN)
-    , ("S3BackupConfiguration" .=) <$> _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationS3BackupConfiguration
-    , ("S3BackupMode" .=) <$> _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationS3BackupMode
-    ]
-
-instance FromJSON KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration where
-  parseJSON (Object obj) =
-    KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration <$>
-      obj .: "BucketARN" <*>
-      obj .: "BufferingHints" <*>
-      obj .:? "CloudWatchLoggingOptions" <*>
-      obj .: "CompressionFormat" <*>
-      obj .:? "EncryptionConfiguration" <*>
-      obj .: "Prefix" <*>
-      obj .:? "ProcessingConfiguration" <*>
-      obj .: "RoleARN" <*>
-      obj .:? "S3BackupConfiguration" <*>
-      obj .:? "S3BackupMode"
-  parseJSON _ = mempty
-
--- | Constructor for
--- 'KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration'
--- containing required fields as arguments.
-kinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration
-  :: Val Text -- ^ 'kfdsesdcBucketARN'
-  -> KinesisFirehoseDeliveryStreamBufferingHints -- ^ 'kfdsesdcBufferingHints'
-  -> Val Text -- ^ 'kfdsesdcCompressionFormat'
-  -> Val Text -- ^ 'kfdsesdcPrefix'
-  -> Val Text -- ^ 'kfdsesdcRoleARN'
-  -> KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration
-kinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration bucketARNarg bufferingHintsarg compressionFormatarg prefixarg roleARNarg =
-  KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration
-  { _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationBucketARN = bucketARNarg
-  , _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationBufferingHints = bufferingHintsarg
-  , _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationCloudWatchLoggingOptions = Nothing
-  , _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationCompressionFormat = compressionFormatarg
-  , _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationEncryptionConfiguration = Nothing
-  , _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationPrefix = prefixarg
-  , _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationProcessingConfiguration = Nothing
-  , _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationRoleARN = roleARNarg
-  , _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationS3BackupConfiguration = Nothing
-  , _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationS3BackupMode = Nothing
-  }
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration-bucketarn
-kfdsesdcBucketARN :: Lens' KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration (Val Text)
-kfdsesdcBucketARN = lens _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationBucketARN (\s a -> s { _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationBucketARN = a })
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration-bufferinghints
-kfdsesdcBufferingHints :: Lens' KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration KinesisFirehoseDeliveryStreamBufferingHints
-kfdsesdcBufferingHints = lens _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationBufferingHints (\s a -> s { _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationBufferingHints = a })
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration-cloudwatchloggingoptions
-kfdsesdcCloudWatchLoggingOptions :: Lens' KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration (Maybe KinesisFirehoseDeliveryStreamCloudWatchLoggingOptions)
-kfdsesdcCloudWatchLoggingOptions = lens _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationCloudWatchLoggingOptions (\s a -> s { _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationCloudWatchLoggingOptions = a })
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration-compressionformat
-kfdsesdcCompressionFormat :: Lens' KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration (Val Text)
-kfdsesdcCompressionFormat = lens _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationCompressionFormat (\s a -> s { _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationCompressionFormat = a })
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration-encryptionconfiguration
-kfdsesdcEncryptionConfiguration :: Lens' KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration (Maybe KinesisFirehoseDeliveryStreamEncryptionConfiguration)
-kfdsesdcEncryptionConfiguration = lens _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationEncryptionConfiguration (\s a -> s { _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationEncryptionConfiguration = a })
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration-prefix
-kfdsesdcPrefix :: Lens' KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration (Val Text)
-kfdsesdcPrefix = lens _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationPrefix (\s a -> s { _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationPrefix = a })
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-processingccnfiguration
-kfdsesdcProcessingConfiguration :: Lens' KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration (Maybe KinesisFirehoseDeliveryStreamProcessingConfiguration)
-kfdsesdcProcessingConfiguration = lens _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationProcessingConfiguration (\s a -> s { _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationProcessingConfiguration = a })
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration-rolearn
-kfdsesdcRoleARN :: Lens' KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration (Val Text)
-kfdsesdcRoleARN = lens _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationRoleARN (\s a -> s { _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationRoleARN = a })
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration
-kfdsesdcS3BackupConfiguration :: Lens' KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration (Maybe KinesisFirehoseDeliveryStreamS3DestinationConfiguration)
-kfdsesdcS3BackupConfiguration = lens _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationS3BackupConfiguration (\s a -> s { _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationS3BackupConfiguration = a })
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-s3backupmode
-kfdsesdcS3BackupMode :: Lens' KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration (Maybe (Val Text))
-kfdsesdcS3BackupMode = lens _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationS3BackupMode (\s a -> s { _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationS3BackupMode = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamProcessingConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamProcessingConfiguration.hs
deleted file mode 100644
--- a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamProcessingConfiguration.hs
+++ /dev/null
@@ -1,60 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE RecordWildCards #-}
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-ProcessingConfiguration.html
-
-module Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamProcessingConfiguration where
-
-import Control.Lens hiding ((.=))
-import Data.Aeson
-import Data.Maybe (catMaybes)
-import Data.Monoid (mempty)
-import Data.Text
-
-import Stratosphere.Values
-import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamProcessor
-
--- | Full data type definition for
--- KinesisFirehoseDeliveryStreamProcessingConfiguration. See
--- 'kinesisFirehoseDeliveryStreamProcessingConfiguration' for a more
--- convenient constructor.
-data KinesisFirehoseDeliveryStreamProcessingConfiguration =
-  KinesisFirehoseDeliveryStreamProcessingConfiguration
-  { _kinesisFirehoseDeliveryStreamProcessingConfigurationEnabled :: Val Bool'
-  , _kinesisFirehoseDeliveryStreamProcessingConfigurationProcessors :: [KinesisFirehoseDeliveryStreamProcessor]
-  } deriving (Show, Eq)
-
-instance ToJSON KinesisFirehoseDeliveryStreamProcessingConfiguration where
-  toJSON KinesisFirehoseDeliveryStreamProcessingConfiguration{..} =
-    object $
-    catMaybes
-    [ Just ("Enabled" .= _kinesisFirehoseDeliveryStreamProcessingConfigurationEnabled)
-    , Just ("Processors" .= _kinesisFirehoseDeliveryStreamProcessingConfigurationProcessors)
-    ]
-
-instance FromJSON KinesisFirehoseDeliveryStreamProcessingConfiguration where
-  parseJSON (Object obj) =
-    KinesisFirehoseDeliveryStreamProcessingConfiguration <$>
-      obj .: "Enabled" <*>
-      obj .: "Processors"
-  parseJSON _ = mempty
-
--- | Constructor for 'KinesisFirehoseDeliveryStreamProcessingConfiguration'
--- containing required fields as arguments.
-kinesisFirehoseDeliveryStreamProcessingConfiguration
-  :: Val Bool' -- ^ 'kfdspcEnabled'
-  -> [KinesisFirehoseDeliveryStreamProcessor] -- ^ 'kfdspcProcessors'
-  -> KinesisFirehoseDeliveryStreamProcessingConfiguration
-kinesisFirehoseDeliveryStreamProcessingConfiguration enabledarg processorsarg =
-  KinesisFirehoseDeliveryStreamProcessingConfiguration
-  { _kinesisFirehoseDeliveryStreamProcessingConfigurationEnabled = enabledarg
-  , _kinesisFirehoseDeliveryStreamProcessingConfigurationProcessors = processorsarg
-  }
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-ProcessingConfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-ProcessingConfiguration-ProcessingConfiguration-Enabled
-kfdspcEnabled :: Lens' KinesisFirehoseDeliveryStreamProcessingConfiguration (Val Bool')
-kfdspcEnabled = lens _kinesisFirehoseDeliveryStreamProcessingConfigurationEnabled (\s a -> s { _kinesisFirehoseDeliveryStreamProcessingConfigurationEnabled = a })
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-ProcessingConfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-ProcessingConfiguration-ProcessingConfiguration-Processors
-kfdspcProcessors :: Lens' KinesisFirehoseDeliveryStreamProcessingConfiguration [KinesisFirehoseDeliveryStreamProcessor]
-kfdspcProcessors = lens _kinesisFirehoseDeliveryStreamProcessingConfigurationProcessors (\s a -> s { _kinesisFirehoseDeliveryStreamProcessingConfigurationProcessors = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamProcessor.hs b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamProcessor.hs
deleted file mode 100644
--- a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamProcessor.hs
+++ /dev/null
@@ -1,59 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE RecordWildCards #-}
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-ProcessingConfiguration.html
-
-module Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamProcessor where
-
-import Control.Lens hiding ((.=))
-import Data.Aeson
-import Data.Maybe (catMaybes)
-import Data.Monoid (mempty)
-import Data.Text
-
-import Stratosphere.Values
-import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamProcessorParameter
-
--- | Full data type definition for KinesisFirehoseDeliveryStreamProcessor. See
--- 'kinesisFirehoseDeliveryStreamProcessor' for a more convenient
--- constructor.
-data KinesisFirehoseDeliveryStreamProcessor =
-  KinesisFirehoseDeliveryStreamProcessor
-  { _kinesisFirehoseDeliveryStreamProcessorParameters :: [KinesisFirehoseDeliveryStreamProcessorParameter]
-  , _kinesisFirehoseDeliveryStreamProcessorType :: Val Text
-  } deriving (Show, Eq)
-
-instance ToJSON KinesisFirehoseDeliveryStreamProcessor where
-  toJSON KinesisFirehoseDeliveryStreamProcessor{..} =
-    object $
-    catMaybes
-    [ Just ("Parameters" .= _kinesisFirehoseDeliveryStreamProcessorParameters)
-    , Just ("Type" .= _kinesisFirehoseDeliveryStreamProcessorType)
-    ]
-
-instance FromJSON KinesisFirehoseDeliveryStreamProcessor where
-  parseJSON (Object obj) =
-    KinesisFirehoseDeliveryStreamProcessor <$>
-      obj .: "Parameters" <*>
-      obj .: "Type"
-  parseJSON _ = mempty
-
--- | Constructor for 'KinesisFirehoseDeliveryStreamProcessor' containing
--- required fields as arguments.
-kinesisFirehoseDeliveryStreamProcessor
-  :: [KinesisFirehoseDeliveryStreamProcessorParameter] -- ^ 'kfdspParameters'
-  -> Val Text -- ^ 'kfdspType'
-  -> KinesisFirehoseDeliveryStreamProcessor
-kinesisFirehoseDeliveryStreamProcessor parametersarg typearg =
-  KinesisFirehoseDeliveryStreamProcessor
-  { _kinesisFirehoseDeliveryStreamProcessorParameters = parametersarg
-  , _kinesisFirehoseDeliveryStreamProcessorType = typearg
-  }
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-ProcessingConfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-ProcessingConfiguration-Processor-Parameter
-kfdspParameters :: Lens' KinesisFirehoseDeliveryStreamProcessor [KinesisFirehoseDeliveryStreamProcessorParameter]
-kfdspParameters = lens _kinesisFirehoseDeliveryStreamProcessorParameters (\s a -> s { _kinesisFirehoseDeliveryStreamProcessorParameters = a })
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-ProcessingConfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-ProcessingConfiguration-Processor-Type
-kfdspType :: Lens' KinesisFirehoseDeliveryStreamProcessor (Val Text)
-kfdspType = lens _kinesisFirehoseDeliveryStreamProcessorType (\s a -> s { _kinesisFirehoseDeliveryStreamProcessorType = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamProcessorParameter.hs b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamProcessorParameter.hs
deleted file mode 100644
--- a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamProcessorParameter.hs
+++ /dev/null
@@ -1,60 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE RecordWildCards #-}
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-ProcessingConfiguration.html
-
-module Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamProcessorParameter where
-
-import Control.Lens hiding ((.=))
-import Data.Aeson
-import Data.Maybe (catMaybes)
-import Data.Monoid (mempty)
-import Data.Text
-
-import Stratosphere.Values
-
-
--- | Full data type definition for
--- KinesisFirehoseDeliveryStreamProcessorParameter. See
--- 'kinesisFirehoseDeliveryStreamProcessorParameter' for a more convenient
--- constructor.
-data KinesisFirehoseDeliveryStreamProcessorParameter =
-  KinesisFirehoseDeliveryStreamProcessorParameter
-  { _kinesisFirehoseDeliveryStreamProcessorParameterParameterName :: Val Text
-  , _kinesisFirehoseDeliveryStreamProcessorParameterParameterValue :: Val Text
-  } deriving (Show, Eq)
-
-instance ToJSON KinesisFirehoseDeliveryStreamProcessorParameter where
-  toJSON KinesisFirehoseDeliveryStreamProcessorParameter{..} =
-    object $
-    catMaybes
-    [ Just ("ParameterName" .= _kinesisFirehoseDeliveryStreamProcessorParameterParameterName)
-    , Just ("ParameterValue" .= _kinesisFirehoseDeliveryStreamProcessorParameterParameterValue)
-    ]
-
-instance FromJSON KinesisFirehoseDeliveryStreamProcessorParameter where
-  parseJSON (Object obj) =
-    KinesisFirehoseDeliveryStreamProcessorParameter <$>
-      obj .: "ParameterName" <*>
-      obj .: "ParameterValue"
-  parseJSON _ = mempty
-
--- | Constructor for 'KinesisFirehoseDeliveryStreamProcessorParameter'
--- containing required fields as arguments.
-kinesisFirehoseDeliveryStreamProcessorParameter
-  :: Val Text -- ^ 'kfdsppParameterName'
-  -> Val Text -- ^ 'kfdsppParameterValue'
-  -> KinesisFirehoseDeliveryStreamProcessorParameter
-kinesisFirehoseDeliveryStreamProcessorParameter parameterNamearg parameterValuearg =
-  KinesisFirehoseDeliveryStreamProcessorParameter
-  { _kinesisFirehoseDeliveryStreamProcessorParameterParameterName = parameterNamearg
-  , _kinesisFirehoseDeliveryStreamProcessorParameterParameterValue = parameterValuearg
-  }
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-ProcessingConfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-ProcessingConfiguration-Processor-Parameter-ParameterName
-kfdsppParameterName :: Lens' KinesisFirehoseDeliveryStreamProcessorParameter (Val Text)
-kfdsppParameterName = lens _kinesisFirehoseDeliveryStreamProcessorParameterParameterName (\s a -> s { _kinesisFirehoseDeliveryStreamProcessorParameterParameterName = a })
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-ProcessingConfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-ProcessingConfiguration-Processor-Parameter-ParameterValue
-kfdsppParameterValue :: Lens' KinesisFirehoseDeliveryStreamProcessorParameter (Val Text)
-kfdsppParameterValue = lens _kinesisFirehoseDeliveryStreamProcessorParameterParameterValue (\s a -> s { _kinesisFirehoseDeliveryStreamProcessorParameterParameterValue = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration.hs
--- a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration.hs
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration.hs
@@ -14,7 +14,6 @@
 import Stratosphere.Values
 import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamCloudWatchLoggingOptions
 import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamCopyCommand
-import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamProcessingConfiguration
 import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamS3DestinationConfiguration
 
 -- | Full data type definition for
@@ -27,7 +26,6 @@
   , _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationClusterJDBCURL :: Val Text
   , _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationCopyCommand :: KinesisFirehoseDeliveryStreamCopyCommand
   , _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationPassword :: Val Text
-  , _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationProcessingConfiguration :: Maybe KinesisFirehoseDeliveryStreamProcessingConfiguration
   , _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationRoleARN :: Val Text
   , _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationS3Configuration :: KinesisFirehoseDeliveryStreamS3DestinationConfiguration
   , _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationUsername :: Val Text
@@ -41,7 +39,6 @@
     , Just ("ClusterJDBCURL" .= _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationClusterJDBCURL)
     , Just ("CopyCommand" .= _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationCopyCommand)
     , Just ("Password" .= _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationPassword)
-    , ("ProcessingConfiguration" .=) <$> _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationProcessingConfiguration
     , Just ("RoleARN" .= _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationRoleARN)
     , Just ("S3Configuration" .= _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationS3Configuration)
     , Just ("Username" .= _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationUsername)
@@ -54,7 +51,6 @@
       obj .: "ClusterJDBCURL" <*>
       obj .: "CopyCommand" <*>
       obj .: "Password" <*>
-      obj .:? "ProcessingConfiguration" <*>
       obj .: "RoleARN" <*>
       obj .: "S3Configuration" <*>
       obj .: "Username"
@@ -77,7 +73,6 @@
   , _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationClusterJDBCURL = clusterJDBCURLarg
   , _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationCopyCommand = copyCommandarg
   , _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationPassword = passwordarg
-  , _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationProcessingConfiguration = Nothing
   , _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationRoleARN = roleARNarg
   , _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationS3Configuration = s3Configurationarg
   , _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationUsername = usernamearg
@@ -98,10 +93,6 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-redshiftdestinationconfiguration-password
 kfdsrdcPassword :: Lens' KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration (Val Text)
 kfdsrdcPassword = lens _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationPassword (\s a -> s { _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationPassword = a })
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-ProcessingConfiguration
-kfdsrdcProcessingConfiguration :: Lens' KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration (Maybe KinesisFirehoseDeliveryStreamProcessingConfiguration)
-kfdsrdcProcessingConfiguration = lens _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationProcessingConfiguration (\s a -> s { _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationProcessingConfiguration = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-redshiftdestinationconfiguration-rolearn
 kfdsrdcRoleARN :: Lens' KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration (Val Text)
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
@@ -74,6 +74,7 @@
 import Stratosphere.Resources.CloudFrontDistribution as X
 import Stratosphere.Resources.CloudTrailTrail as X
 import Stratosphere.Resources.CloudWatchAlarm as X
+import Stratosphere.Resources.CloudWatchDashboard as X
 import Stratosphere.Resources.CodeBuildProject as X
 import Stratosphere.Resources.CodeCommitRepository as X
 import Stratosphere.Resources.CodeDeployApplication as X
@@ -91,6 +92,12 @@
 import Stratosphere.Resources.ConfigConfigRule as X
 import Stratosphere.Resources.ConfigConfigurationRecorder as X
 import Stratosphere.Resources.ConfigDeliveryChannel as X
+import Stratosphere.Resources.DMSCertificate as X
+import Stratosphere.Resources.DMSEndpoint as X
+import Stratosphere.Resources.DMSEventSubscription as X
+import Stratosphere.Resources.DMSReplicationInstance as X
+import Stratosphere.Resources.DMSReplicationSubnetGroup as X
+import Stratosphere.Resources.DMSReplicationTask as X
 import Stratosphere.Resources.DataPipelinePipeline as X
 import Stratosphere.Resources.DirectoryServiceMicrosoftAD as X
 import Stratosphere.Resources.DirectoryServiceSimpleAD as X
@@ -337,6 +344,9 @@
 import Stratosphere.ResourceProperties.ConfigConfigRuleSourceDetail as X
 import Stratosphere.ResourceProperties.ConfigConfigurationRecorderRecordingGroup as X
 import Stratosphere.ResourceProperties.ConfigDeliveryChannelConfigSnapshotDeliveryProperties as X
+import Stratosphere.ResourceProperties.DMSEndpointDynamoDbSettings as X
+import Stratosphere.ResourceProperties.DMSEndpointMongoDbSettings as X
+import Stratosphere.ResourceProperties.DMSEndpointS3Settings as X
 import Stratosphere.ResourceProperties.DataPipelinePipelineField as X
 import Stratosphere.ResourceProperties.DataPipelinePipelineParameterAttribute as X
 import Stratosphere.ResourceProperties.DataPipelinePipelineParameterObject as X
@@ -491,11 +501,7 @@
 import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration as X
 import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamElasticsearchRetryOptions as X
 import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamEncryptionConfiguration as X
-import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration as X
 import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamKMSEncryptionConfig as X
-import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamProcessingConfiguration as X
-import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamProcessor as X
-import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamProcessorParameter as X
 import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration as X
 import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamS3DestinationConfiguration as X
 import Stratosphere.ResourceProperties.LambdaFunctionCode as X
@@ -629,6 +635,7 @@
   | CloudFrontDistributionProperties CloudFrontDistribution
   | CloudTrailTrailProperties CloudTrailTrail
   | CloudWatchAlarmProperties CloudWatchAlarm
+  | CloudWatchDashboardProperties CloudWatchDashboard
   | CodeBuildProjectProperties CodeBuildProject
   | CodeCommitRepositoryProperties CodeCommitRepository
   | CodeDeployApplicationProperties CodeDeployApplication
@@ -646,6 +653,12 @@
   | ConfigConfigRuleProperties ConfigConfigRule
   | ConfigConfigurationRecorderProperties ConfigConfigurationRecorder
   | ConfigDeliveryChannelProperties ConfigDeliveryChannel
+  | DMSCertificateProperties DMSCertificate
+  | DMSEndpointProperties DMSEndpoint
+  | DMSEventSubscriptionProperties DMSEventSubscription
+  | DMSReplicationInstanceProperties DMSReplicationInstance
+  | DMSReplicationSubnetGroupProperties DMSReplicationSubnetGroup
+  | DMSReplicationTaskProperties DMSReplicationTask
   | DataPipelinePipelineProperties DataPipelinePipeline
   | DirectoryServiceMicrosoftADProperties DirectoryServiceMicrosoftAD
   | DirectoryServiceSimpleADProperties DirectoryServiceSimpleAD
@@ -912,6 +925,8 @@
   [ "Type" .= ("AWS::CloudTrail::Trail" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (CloudWatchAlarmProperties x) =
   [ "Type" .= ("AWS::CloudWatch::Alarm" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (CloudWatchDashboardProperties x) =
+  [ "Type" .= ("AWS::CloudWatch::Dashboard" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (CodeBuildProjectProperties x) =
   [ "Type" .= ("AWS::CodeBuild::Project" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (CodeCommitRepositoryProperties x) =
@@ -946,6 +961,18 @@
   [ "Type" .= ("AWS::Config::ConfigurationRecorder" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (ConfigDeliveryChannelProperties x) =
   [ "Type" .= ("AWS::Config::DeliveryChannel" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (DMSCertificateProperties x) =
+  [ "Type" .= ("AWS::DMS::Certificate" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (DMSEndpointProperties x) =
+  [ "Type" .= ("AWS::DMS::Endpoint" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (DMSEventSubscriptionProperties x) =
+  [ "Type" .= ("AWS::DMS::EventSubscription" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (DMSReplicationInstanceProperties x) =
+  [ "Type" .= ("AWS::DMS::ReplicationInstance" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (DMSReplicationSubnetGroupProperties x) =
+  [ "Type" .= ("AWS::DMS::ReplicationSubnetGroup" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (DMSReplicationTaskProperties x) =
+  [ "Type" .= ("AWS::DMS::ReplicationTask" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (DataPipelinePipelineProperties x) =
   [ "Type" .= ("AWS::DataPipeline::Pipeline" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (DirectoryServiceMicrosoftADProperties x) =
@@ -1293,6 +1320,7 @@
          "AWS::CloudFront::Distribution" -> CloudFrontDistributionProperties <$> (o .: "Properties")
          "AWS::CloudTrail::Trail" -> CloudTrailTrailProperties <$> (o .: "Properties")
          "AWS::CloudWatch::Alarm" -> CloudWatchAlarmProperties <$> (o .: "Properties")
+         "AWS::CloudWatch::Dashboard" -> CloudWatchDashboardProperties <$> (o .: "Properties")
          "AWS::CodeBuild::Project" -> CodeBuildProjectProperties <$> (o .: "Properties")
          "AWS::CodeCommit::Repository" -> CodeCommitRepositoryProperties <$> (o .: "Properties")
          "AWS::CodeDeploy::Application" -> CodeDeployApplicationProperties <$> (o .: "Properties")
@@ -1310,6 +1338,12 @@
          "AWS::Config::ConfigRule" -> ConfigConfigRuleProperties <$> (o .: "Properties")
          "AWS::Config::ConfigurationRecorder" -> ConfigConfigurationRecorderProperties <$> (o .: "Properties")
          "AWS::Config::DeliveryChannel" -> ConfigDeliveryChannelProperties <$> (o .: "Properties")
+         "AWS::DMS::Certificate" -> DMSCertificateProperties <$> (o .: "Properties")
+         "AWS::DMS::Endpoint" -> DMSEndpointProperties <$> (o .: "Properties")
+         "AWS::DMS::EventSubscription" -> DMSEventSubscriptionProperties <$> (o .: "Properties")
+         "AWS::DMS::ReplicationInstance" -> DMSReplicationInstanceProperties <$> (o .: "Properties")
+         "AWS::DMS::ReplicationSubnetGroup" -> DMSReplicationSubnetGroupProperties <$> (o .: "Properties")
+         "AWS::DMS::ReplicationTask" -> DMSReplicationTaskProperties <$> (o .: "Properties")
          "AWS::DataPipeline::Pipeline" -> DataPipelinePipelineProperties <$> (o .: "Properties")
          "AWS::DirectoryService::MicrosoftAD" -> DirectoryServiceMicrosoftADProperties <$> (o .: "Properties")
          "AWS::DirectoryService::SimpleAD" -> DirectoryServiceSimpleADProperties <$> (o .: "Properties")
diff --git a/library-gen/Stratosphere/Resources/CloudTrailTrail.hs b/library-gen/Stratosphere/Resources/CloudTrailTrail.hs
--- a/library-gen/Stratosphere/Resources/CloudTrailTrail.hs
+++ b/library-gen/Stratosphere/Resources/CloudTrailTrail.hs
@@ -1,7 +1,7 @@
 {-# LANGUAGE OverloadedStrings #-}
 {-# LANGUAGE RecordWildCards #-}
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail.html
 
 module Stratosphere.Resources.CloudTrailTrail where
 
@@ -89,50 +89,50 @@
   , _cloudTrailTrailTrailName = Nothing
   }
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-cloudwatchlogsloggrouparn
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail.html#aws-cloudtrail-trail-cloudwatchlogsloggroupaem
 cttCloudWatchLogsLogGroupArn :: Lens' CloudTrailTrail (Maybe (Val Text))
 cttCloudWatchLogsLogGroupArn = lens _cloudTrailTrailCloudWatchLogsLogGroupArn (\s a -> s { _cloudTrailTrailCloudWatchLogsLogGroupArn = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-cloudwatchlogsrolearn
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail.html#aws-cloudtrail-trail-cloudwatchlogsrolearn
 cttCloudWatchLogsRoleArn :: Lens' CloudTrailTrail (Maybe (Val Text))
 cttCloudWatchLogsRoleArn = lens _cloudTrailTrailCloudWatchLogsRoleArn (\s a -> s { _cloudTrailTrailCloudWatchLogsRoleArn = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-enablelogfilevalidation
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail.html#aws-cloudtrail-trail-enablelogfilevalidation
 cttEnableLogFileValidation :: Lens' CloudTrailTrail (Maybe (Val Bool'))
 cttEnableLogFileValidation = lens _cloudTrailTrailEnableLogFileValidation (\s a -> s { _cloudTrailTrailEnableLogFileValidation = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-includeglobalserviceevents
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail.html#aws-cloudtrail-trail-includeglobalserviceevents
 cttIncludeGlobalServiceEvents :: Lens' CloudTrailTrail (Maybe (Val Bool'))
 cttIncludeGlobalServiceEvents = lens _cloudTrailTrailIncludeGlobalServiceEvents (\s a -> s { _cloudTrailTrailIncludeGlobalServiceEvents = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-islogging
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail.html#aws-cloudtrail-trail-islogging
 cttIsLogging :: Lens' CloudTrailTrail (Val Bool')
 cttIsLogging = lens _cloudTrailTrailIsLogging (\s a -> s { _cloudTrailTrailIsLogging = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-ismultiregiontrail
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail.html#aws-cloudtrail-trail-ismultiregiontrail
 cttIsMultiRegionTrail :: Lens' CloudTrailTrail (Maybe (Val Bool'))
 cttIsMultiRegionTrail = lens _cloudTrailTrailIsMultiRegionTrail (\s a -> s { _cloudTrailTrailIsMultiRegionTrail = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-kmskeyid
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail.html#aws-cloudtrail-trail-kmskeyid
 cttKMSKeyId :: Lens' CloudTrailTrail (Maybe (Val Text))
 cttKMSKeyId = lens _cloudTrailTrailKMSKeyId (\s a -> s { _cloudTrailTrailKMSKeyId = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-s3bucketname
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail.html#aws-cloudtrail-trail-s3bucketname
 cttS3BucketName :: Lens' CloudTrailTrail (Val Text)
 cttS3BucketName = lens _cloudTrailTrailS3BucketName (\s a -> s { _cloudTrailTrailS3BucketName = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-s3keyprefix
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail.html#aws-cloudtrail-trail-s3keyprefix
 cttS3KeyPrefix :: Lens' CloudTrailTrail (Maybe (Val Text))
 cttS3KeyPrefix = lens _cloudTrailTrailS3KeyPrefix (\s a -> s { _cloudTrailTrailS3KeyPrefix = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-snstopicname
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail.html#aws-cloudtrail-trail-snstopicname
 cttSnsTopicName :: Lens' CloudTrailTrail (Maybe (Val Text))
 cttSnsTopicName = lens _cloudTrailTrailSnsTopicName (\s a -> s { _cloudTrailTrailSnsTopicName = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-tags
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail.html#cfn-cloudtrail-trail-tags
 cttTags :: Lens' CloudTrailTrail (Maybe [Tag])
 cttTags = lens _cloudTrailTrailTags (\s a -> s { _cloudTrailTrailTags = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-trailname
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail.html#aws-cloudtrail-trail-trailname
 cttTrailName :: Lens' CloudTrailTrail (Maybe (Val Text))
 cttTrailName = lens _cloudTrailTrailTrailName (\s a -> s { _cloudTrailTrailTrailName = a })
diff --git a/library-gen/Stratosphere/Resources/CloudWatchDashboard.hs b/library-gen/Stratosphere/Resources/CloudWatchDashboard.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/CloudWatchDashboard.hs
@@ -0,0 +1,57 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-dashboard.html
+
+module Stratosphere.Resources.CloudWatchDashboard where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+
+
+-- | Full data type definition for CloudWatchDashboard. See
+-- 'cloudWatchDashboard' for a more convenient constructor.
+data CloudWatchDashboard =
+  CloudWatchDashboard
+  { _cloudWatchDashboardDashboardBody :: Val Text
+  , _cloudWatchDashboardDashboardName :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON CloudWatchDashboard where
+  toJSON CloudWatchDashboard{..} =
+    object $
+    catMaybes
+    [ Just ("DashboardBody" .= _cloudWatchDashboardDashboardBody)
+    , ("DashboardName" .=) <$> _cloudWatchDashboardDashboardName
+    ]
+
+instance FromJSON CloudWatchDashboard where
+  parseJSON (Object obj) =
+    CloudWatchDashboard <$>
+      obj .: "DashboardBody" <*>
+      obj .:? "DashboardName"
+  parseJSON _ = mempty
+
+-- | Constructor for 'CloudWatchDashboard' containing required fields as
+-- arguments.
+cloudWatchDashboard
+  :: Val Text -- ^ 'cwdDashboardBody'
+  -> CloudWatchDashboard
+cloudWatchDashboard dashboardBodyarg =
+  CloudWatchDashboard
+  { _cloudWatchDashboardDashboardBody = dashboardBodyarg
+  , _cloudWatchDashboardDashboardName = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-dashboard.html#cfn-cloudwatch-dashboard-dashboardbody
+cwdDashboardBody :: Lens' CloudWatchDashboard (Val Text)
+cwdDashboardBody = lens _cloudWatchDashboardDashboardBody (\s a -> s { _cloudWatchDashboardDashboardBody = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-dashboard.html#cfn-cloudwatch-dashboard-dashboardname
+cwdDashboardName :: Lens' CloudWatchDashboard (Maybe (Val Text))
+cwdDashboardName = lens _cloudWatchDashboardDashboardName (\s a -> s { _cloudWatchDashboardDashboardName = a })
diff --git a/library-gen/Stratosphere/Resources/DMSCertificate.hs b/library-gen/Stratosphere/Resources/DMSCertificate.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/DMSCertificate.hs
@@ -0,0 +1,63 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-certificate.html
+
+module Stratosphere.Resources.DMSCertificate where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+
+
+-- | Full data type definition for DMSCertificate. See 'dmsCertificate' for a
+-- more convenient constructor.
+data DMSCertificate =
+  DMSCertificate
+  { _dMSCertificateCertificateIdentifier :: Maybe (Val Text)
+  , _dMSCertificateCertificatePem :: Maybe (Val Text)
+  , _dMSCertificateCertificateWallet :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON DMSCertificate where
+  toJSON DMSCertificate{..} =
+    object $
+    catMaybes
+    [ ("CertificateIdentifier" .=) <$> _dMSCertificateCertificateIdentifier
+    , ("CertificatePem" .=) <$> _dMSCertificateCertificatePem
+    , ("CertificateWallet" .=) <$> _dMSCertificateCertificateWallet
+    ]
+
+instance FromJSON DMSCertificate where
+  parseJSON (Object obj) =
+    DMSCertificate <$>
+      obj .:? "CertificateIdentifier" <*>
+      obj .:? "CertificatePem" <*>
+      obj .:? "CertificateWallet"
+  parseJSON _ = mempty
+
+-- | Constructor for 'DMSCertificate' containing required fields as arguments.
+dmsCertificate
+  :: DMSCertificate
+dmsCertificate  =
+  DMSCertificate
+  { _dMSCertificateCertificateIdentifier = Nothing
+  , _dMSCertificateCertificatePem = Nothing
+  , _dMSCertificateCertificateWallet = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-certificate.html#cfn-dms-certificate-certificateidentifier
+dmscCertificateIdentifier :: Lens' DMSCertificate (Maybe (Val Text))
+dmscCertificateIdentifier = lens _dMSCertificateCertificateIdentifier (\s a -> s { _dMSCertificateCertificateIdentifier = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-certificate.html#cfn-dms-certificate-certificatepem
+dmscCertificatePem :: Lens' DMSCertificate (Maybe (Val Text))
+dmscCertificatePem = lens _dMSCertificateCertificatePem (\s a -> s { _dMSCertificateCertificatePem = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-certificate.html#cfn-dms-certificate-certificatewallet
+dmscCertificateWallet :: Lens' DMSCertificate (Maybe (Val Text))
+dmscCertificateWallet = lens _dMSCertificateCertificateWallet (\s a -> s { _dMSCertificateCertificateWallet = a })
diff --git a/library-gen/Stratosphere/Resources/DMSEndpoint.hs b/library-gen/Stratosphere/Resources/DMSEndpoint.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/DMSEndpoint.hs
@@ -0,0 +1,172 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html
+
+module Stratosphere.Resources.DMSEndpoint where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+import Stratosphere.ResourceProperties.DMSEndpointDynamoDbSettings
+import Stratosphere.ResourceProperties.DMSEndpointMongoDbSettings
+import Stratosphere.ResourceProperties.DMSEndpointS3Settings
+import Stratosphere.ResourceProperties.Tag
+
+-- | Full data type definition for DMSEndpoint. See 'dmsEndpoint' for a more
+-- convenient constructor.
+data DMSEndpoint =
+  DMSEndpoint
+  { _dMSEndpointCertificateArn :: Maybe (Val Text)
+  , _dMSEndpointDatabaseName :: Maybe (Val Text)
+  , _dMSEndpointDynamoDbSettings :: Maybe DMSEndpointDynamoDbSettings
+  , _dMSEndpointEndpointIdentifier :: Maybe (Val Text)
+  , _dMSEndpointEndpointType :: Val Text
+  , _dMSEndpointEngineName :: Val Text
+  , _dMSEndpointExtraConnectionAttributes :: Maybe (Val Text)
+  , _dMSEndpointKmsKeyId :: Maybe (Val Text)
+  , _dMSEndpointMongoDbSettings :: Maybe DMSEndpointMongoDbSettings
+  , _dMSEndpointPassword :: Maybe (Val Text)
+  , _dMSEndpointPort :: Maybe (Val Integer')
+  , _dMSEndpointS3Settings :: Maybe DMSEndpointS3Settings
+  , _dMSEndpointServerName :: Maybe (Val Text)
+  , _dMSEndpointSslMode :: Maybe (Val Text)
+  , _dMSEndpointTags :: Maybe [Tag]
+  , _dMSEndpointUsername :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON DMSEndpoint where
+  toJSON DMSEndpoint{..} =
+    object $
+    catMaybes
+    [ ("CertificateArn" .=) <$> _dMSEndpointCertificateArn
+    , ("DatabaseName" .=) <$> _dMSEndpointDatabaseName
+    , ("DynamoDbSettings" .=) <$> _dMSEndpointDynamoDbSettings
+    , ("EndpointIdentifier" .=) <$> _dMSEndpointEndpointIdentifier
+    , Just ("EndpointType" .= _dMSEndpointEndpointType)
+    , Just ("EngineName" .= _dMSEndpointEngineName)
+    , ("ExtraConnectionAttributes" .=) <$> _dMSEndpointExtraConnectionAttributes
+    , ("KmsKeyId" .=) <$> _dMSEndpointKmsKeyId
+    , ("MongoDbSettings" .=) <$> _dMSEndpointMongoDbSettings
+    , ("Password" .=) <$> _dMSEndpointPassword
+    , ("Port" .=) <$> _dMSEndpointPort
+    , ("S3Settings" .=) <$> _dMSEndpointS3Settings
+    , ("ServerName" .=) <$> _dMSEndpointServerName
+    , ("SslMode" .=) <$> _dMSEndpointSslMode
+    , ("Tags" .=) <$> _dMSEndpointTags
+    , ("Username" .=) <$> _dMSEndpointUsername
+    ]
+
+instance FromJSON DMSEndpoint where
+  parseJSON (Object obj) =
+    DMSEndpoint <$>
+      obj .:? "CertificateArn" <*>
+      obj .:? "DatabaseName" <*>
+      obj .:? "DynamoDbSettings" <*>
+      obj .:? "EndpointIdentifier" <*>
+      obj .: "EndpointType" <*>
+      obj .: "EngineName" <*>
+      obj .:? "ExtraConnectionAttributes" <*>
+      obj .:? "KmsKeyId" <*>
+      obj .:? "MongoDbSettings" <*>
+      obj .:? "Password" <*>
+      obj .:? "Port" <*>
+      obj .:? "S3Settings" <*>
+      obj .:? "ServerName" <*>
+      obj .:? "SslMode" <*>
+      obj .:? "Tags" <*>
+      obj .:? "Username"
+  parseJSON _ = mempty
+
+-- | Constructor for 'DMSEndpoint' containing required fields as arguments.
+dmsEndpoint
+  :: Val Text -- ^ 'dmseEndpointType'
+  -> Val Text -- ^ 'dmseEngineName'
+  -> DMSEndpoint
+dmsEndpoint endpointTypearg engineNamearg =
+  DMSEndpoint
+  { _dMSEndpointCertificateArn = Nothing
+  , _dMSEndpointDatabaseName = Nothing
+  , _dMSEndpointDynamoDbSettings = Nothing
+  , _dMSEndpointEndpointIdentifier = Nothing
+  , _dMSEndpointEndpointType = endpointTypearg
+  , _dMSEndpointEngineName = engineNamearg
+  , _dMSEndpointExtraConnectionAttributes = Nothing
+  , _dMSEndpointKmsKeyId = Nothing
+  , _dMSEndpointMongoDbSettings = Nothing
+  , _dMSEndpointPassword = Nothing
+  , _dMSEndpointPort = Nothing
+  , _dMSEndpointS3Settings = Nothing
+  , _dMSEndpointServerName = Nothing
+  , _dMSEndpointSslMode = Nothing
+  , _dMSEndpointTags = Nothing
+  , _dMSEndpointUsername = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-certificatearn
+dmseCertificateArn :: Lens' DMSEndpoint (Maybe (Val Text))
+dmseCertificateArn = lens _dMSEndpointCertificateArn (\s a -> s { _dMSEndpointCertificateArn = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-databasename
+dmseDatabaseName :: Lens' DMSEndpoint (Maybe (Val Text))
+dmseDatabaseName = lens _dMSEndpointDatabaseName (\s a -> s { _dMSEndpointDatabaseName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-dynamodbsettings
+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-endpointidentifier
+dmseEndpointIdentifier :: Lens' DMSEndpoint (Maybe (Val Text))
+dmseEndpointIdentifier = lens _dMSEndpointEndpointIdentifier (\s a -> s { _dMSEndpointEndpointIdentifier = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-endpointtype
+dmseEndpointType :: Lens' DMSEndpoint (Val Text)
+dmseEndpointType = lens _dMSEndpointEndpointType (\s a -> s { _dMSEndpointEndpointType = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-enginename
+dmseEngineName :: Lens' DMSEndpoint (Val Text)
+dmseEngineName = lens _dMSEndpointEngineName (\s a -> s { _dMSEndpointEngineName = a })
+
+-- | 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-kmskeyid
+dmseKmsKeyId :: Lens' DMSEndpoint (Maybe (Val Text))
+dmseKmsKeyId = lens _dMSEndpointKmsKeyId (\s a -> s { _dMSEndpointKmsKeyId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-mongodbsettings
+dmseMongoDbSettings :: Lens' DMSEndpoint (Maybe DMSEndpointMongoDbSettings)
+dmseMongoDbSettings = lens _dMSEndpointMongoDbSettings (\s a -> s { _dMSEndpointMongoDbSettings = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-password
+dmsePassword :: Lens' DMSEndpoint (Maybe (Val Text))
+dmsePassword = lens _dMSEndpointPassword (\s a -> s { _dMSEndpointPassword = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-port
+dmsePort :: Lens' DMSEndpoint (Maybe (Val Integer'))
+dmsePort = lens _dMSEndpointPort (\s a -> s { _dMSEndpointPort = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-s3settings
+dmseS3Settings :: Lens' DMSEndpoint (Maybe DMSEndpointS3Settings)
+dmseS3Settings = lens _dMSEndpointS3Settings (\s a -> s { _dMSEndpointS3Settings = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-servername
+dmseServerName :: Lens' DMSEndpoint (Maybe (Val Text))
+dmseServerName = lens _dMSEndpointServerName (\s a -> s { _dMSEndpointServerName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-sslmode
+dmseSslMode :: Lens' DMSEndpoint (Maybe (Val Text))
+dmseSslMode = lens _dMSEndpointSslMode (\s a -> s { _dMSEndpointSslMode = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-tags
+dmseTags :: Lens' DMSEndpoint (Maybe [Tag])
+dmseTags = lens _dMSEndpointTags (\s a -> s { _dMSEndpointTags = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-username
+dmseUsername :: Lens' DMSEndpoint (Maybe (Val Text))
+dmseUsername = lens _dMSEndpointUsername (\s a -> s { _dMSEndpointUsername = a })
diff --git a/library-gen/Stratosphere/Resources/DMSEventSubscription.hs b/library-gen/Stratosphere/Resources/DMSEventSubscription.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/DMSEventSubscription.hs
@@ -0,0 +1,97 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-eventsubscription.html
+
+module Stratosphere.Resources.DMSEventSubscription where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+import Stratosphere.ResourceProperties.Tag
+
+-- | Full data type definition for DMSEventSubscription. See
+-- 'dmsEventSubscription' for a more convenient constructor.
+data DMSEventSubscription =
+  DMSEventSubscription
+  { _dMSEventSubscriptionEnabled :: Maybe (Val Bool')
+  , _dMSEventSubscriptionEventCategories :: Maybe [Val Text]
+  , _dMSEventSubscriptionSnsTopicArn :: Val Text
+  , _dMSEventSubscriptionSourceIds :: Maybe [Val Text]
+  , _dMSEventSubscriptionSourceType :: Maybe (Val Text)
+  , _dMSEventSubscriptionSubscriptionName :: Maybe (Val Text)
+  , _dMSEventSubscriptionTags :: Maybe [Tag]
+  } deriving (Show, Eq)
+
+instance ToJSON DMSEventSubscription where
+  toJSON DMSEventSubscription{..} =
+    object $
+    catMaybes
+    [ ("Enabled" .=) <$> _dMSEventSubscriptionEnabled
+    , ("EventCategories" .=) <$> _dMSEventSubscriptionEventCategories
+    , Just ("SnsTopicArn" .= _dMSEventSubscriptionSnsTopicArn)
+    , ("SourceIds" .=) <$> _dMSEventSubscriptionSourceIds
+    , ("SourceType" .=) <$> _dMSEventSubscriptionSourceType
+    , ("SubscriptionName" .=) <$> _dMSEventSubscriptionSubscriptionName
+    , ("Tags" .=) <$> _dMSEventSubscriptionTags
+    ]
+
+instance FromJSON DMSEventSubscription where
+  parseJSON (Object obj) =
+    DMSEventSubscription <$>
+      obj .:? "Enabled" <*>
+      obj .:? "EventCategories" <*>
+      obj .: "SnsTopicArn" <*>
+      obj .:? "SourceIds" <*>
+      obj .:? "SourceType" <*>
+      obj .:? "SubscriptionName" <*>
+      obj .:? "Tags"
+  parseJSON _ = mempty
+
+-- | Constructor for 'DMSEventSubscription' containing required fields as
+-- arguments.
+dmsEventSubscription
+  :: Val Text -- ^ 'dmsesSnsTopicArn'
+  -> DMSEventSubscription
+dmsEventSubscription snsTopicArnarg =
+  DMSEventSubscription
+  { _dMSEventSubscriptionEnabled = Nothing
+  , _dMSEventSubscriptionEventCategories = Nothing
+  , _dMSEventSubscriptionSnsTopicArn = snsTopicArnarg
+  , _dMSEventSubscriptionSourceIds = Nothing
+  , _dMSEventSubscriptionSourceType = Nothing
+  , _dMSEventSubscriptionSubscriptionName = Nothing
+  , _dMSEventSubscriptionTags = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-eventsubscription.html#cfn-dms-eventsubscription-enabled
+dmsesEnabled :: Lens' DMSEventSubscription (Maybe (Val Bool'))
+dmsesEnabled = lens _dMSEventSubscriptionEnabled (\s a -> s { _dMSEventSubscriptionEnabled = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-eventsubscription.html#cfn-dms-eventsubscription-eventcategories
+dmsesEventCategories :: Lens' DMSEventSubscription (Maybe [Val Text])
+dmsesEventCategories = lens _dMSEventSubscriptionEventCategories (\s a -> s { _dMSEventSubscriptionEventCategories = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-eventsubscription.html#cfn-dms-eventsubscription-snstopicarn
+dmsesSnsTopicArn :: Lens' DMSEventSubscription (Val Text)
+dmsesSnsTopicArn = lens _dMSEventSubscriptionSnsTopicArn (\s a -> s { _dMSEventSubscriptionSnsTopicArn = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-eventsubscription.html#cfn-dms-eventsubscription-sourceids
+dmsesSourceIds :: Lens' DMSEventSubscription (Maybe [Val Text])
+dmsesSourceIds = lens _dMSEventSubscriptionSourceIds (\s a -> s { _dMSEventSubscriptionSourceIds = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-eventsubscription.html#cfn-dms-eventsubscription-sourcetype
+dmsesSourceType :: Lens' DMSEventSubscription (Maybe (Val Text))
+dmsesSourceType = lens _dMSEventSubscriptionSourceType (\s a -> s { _dMSEventSubscriptionSourceType = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-eventsubscription.html#cfn-dms-eventsubscription-subscriptionname
+dmsesSubscriptionName :: Lens' DMSEventSubscription (Maybe (Val Text))
+dmsesSubscriptionName = lens _dMSEventSubscriptionSubscriptionName (\s a -> s { _dMSEventSubscriptionSubscriptionName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-eventsubscription.html#cfn-dms-eventsubscription-tags
+dmsesTags :: Lens' DMSEventSubscription (Maybe [Tag])
+dmsesTags = lens _dMSEventSubscriptionTags (\s a -> s { _dMSEventSubscriptionTags = a })
diff --git a/library-gen/Stratosphere/Resources/DMSReplicationInstance.hs b/library-gen/Stratosphere/Resources/DMSReplicationInstance.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/DMSReplicationInstance.hs
@@ -0,0 +1,153 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html
+
+module Stratosphere.Resources.DMSReplicationInstance where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+import Stratosphere.ResourceProperties.Tag
+
+-- | Full data type definition for DMSReplicationInstance. See
+-- 'dmsReplicationInstance' for a more convenient constructor.
+data DMSReplicationInstance =
+  DMSReplicationInstance
+  { _dMSReplicationInstanceAllocatedStorage :: Maybe (Val Integer')
+  , _dMSReplicationInstanceAllowMajorVersionUpgrade :: Maybe (Val Bool')
+  , _dMSReplicationInstanceAutoMinorVersionUpgrade :: Maybe (Val Bool')
+  , _dMSReplicationInstanceAvailabilityZone :: Maybe (Val Text)
+  , _dMSReplicationInstanceEngineVersion :: Maybe (Val Text)
+  , _dMSReplicationInstanceKmsKeyId :: Maybe (Val Text)
+  , _dMSReplicationInstanceMultiAZ :: Maybe (Val Bool')
+  , _dMSReplicationInstancePreferredMaintenanceWindow :: Maybe (Val Text)
+  , _dMSReplicationInstancePubliclyAccessible :: Maybe (Val Bool')
+  , _dMSReplicationInstanceReplicationInstanceClass :: Val Text
+  , _dMSReplicationInstanceReplicationInstanceIdentifier :: Maybe (Val Text)
+  , _dMSReplicationInstanceReplicationSubnetGroupIdentifier :: Maybe (Val Text)
+  , _dMSReplicationInstanceTags :: Maybe [Tag]
+  , _dMSReplicationInstanceVpcSecurityGroupIds :: Maybe [Val Text]
+  } deriving (Show, Eq)
+
+instance ToJSON DMSReplicationInstance where
+  toJSON DMSReplicationInstance{..} =
+    object $
+    catMaybes
+    [ ("AllocatedStorage" .=) <$> _dMSReplicationInstanceAllocatedStorage
+    , ("AllowMajorVersionUpgrade" .=) <$> _dMSReplicationInstanceAllowMajorVersionUpgrade
+    , ("AutoMinorVersionUpgrade" .=) <$> _dMSReplicationInstanceAutoMinorVersionUpgrade
+    , ("AvailabilityZone" .=) <$> _dMSReplicationInstanceAvailabilityZone
+    , ("EngineVersion" .=) <$> _dMSReplicationInstanceEngineVersion
+    , ("KmsKeyId" .=) <$> _dMSReplicationInstanceKmsKeyId
+    , ("MultiAZ" .=) <$> _dMSReplicationInstanceMultiAZ
+    , ("PreferredMaintenanceWindow" .=) <$> _dMSReplicationInstancePreferredMaintenanceWindow
+    , ("PubliclyAccessible" .=) <$> _dMSReplicationInstancePubliclyAccessible
+    , Just ("ReplicationInstanceClass" .= _dMSReplicationInstanceReplicationInstanceClass)
+    , ("ReplicationInstanceIdentifier" .=) <$> _dMSReplicationInstanceReplicationInstanceIdentifier
+    , ("ReplicationSubnetGroupIdentifier" .=) <$> _dMSReplicationInstanceReplicationSubnetGroupIdentifier
+    , ("Tags" .=) <$> _dMSReplicationInstanceTags
+    , ("VpcSecurityGroupIds" .=) <$> _dMSReplicationInstanceVpcSecurityGroupIds
+    ]
+
+instance FromJSON DMSReplicationInstance where
+  parseJSON (Object obj) =
+    DMSReplicationInstance <$>
+      obj .:? "AllocatedStorage" <*>
+      obj .:? "AllowMajorVersionUpgrade" <*>
+      obj .:? "AutoMinorVersionUpgrade" <*>
+      obj .:? "AvailabilityZone" <*>
+      obj .:? "EngineVersion" <*>
+      obj .:? "KmsKeyId" <*>
+      obj .:? "MultiAZ" <*>
+      obj .:? "PreferredMaintenanceWindow" <*>
+      obj .:? "PubliclyAccessible" <*>
+      obj .: "ReplicationInstanceClass" <*>
+      obj .:? "ReplicationInstanceIdentifier" <*>
+      obj .:? "ReplicationSubnetGroupIdentifier" <*>
+      obj .:? "Tags" <*>
+      obj .:? "VpcSecurityGroupIds"
+  parseJSON _ = mempty
+
+-- | Constructor for 'DMSReplicationInstance' containing required fields as
+-- arguments.
+dmsReplicationInstance
+  :: Val Text -- ^ 'dmsriReplicationInstanceClass'
+  -> DMSReplicationInstance
+dmsReplicationInstance replicationInstanceClassarg =
+  DMSReplicationInstance
+  { _dMSReplicationInstanceAllocatedStorage = Nothing
+  , _dMSReplicationInstanceAllowMajorVersionUpgrade = Nothing
+  , _dMSReplicationInstanceAutoMinorVersionUpgrade = Nothing
+  , _dMSReplicationInstanceAvailabilityZone = Nothing
+  , _dMSReplicationInstanceEngineVersion = Nothing
+  , _dMSReplicationInstanceKmsKeyId = Nothing
+  , _dMSReplicationInstanceMultiAZ = Nothing
+  , _dMSReplicationInstancePreferredMaintenanceWindow = Nothing
+  , _dMSReplicationInstancePubliclyAccessible = Nothing
+  , _dMSReplicationInstanceReplicationInstanceClass = replicationInstanceClassarg
+  , _dMSReplicationInstanceReplicationInstanceIdentifier = Nothing
+  , _dMSReplicationInstanceReplicationSubnetGroupIdentifier = Nothing
+  , _dMSReplicationInstanceTags = Nothing
+  , _dMSReplicationInstanceVpcSecurityGroupIds = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-allocatedstorage
+dmsriAllocatedStorage :: Lens' DMSReplicationInstance (Maybe (Val Integer'))
+dmsriAllocatedStorage = lens _dMSReplicationInstanceAllocatedStorage (\s a -> s { _dMSReplicationInstanceAllocatedStorage = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-allowmajorversionupgrade
+dmsriAllowMajorVersionUpgrade :: Lens' DMSReplicationInstance (Maybe (Val Bool'))
+dmsriAllowMajorVersionUpgrade = lens _dMSReplicationInstanceAllowMajorVersionUpgrade (\s a -> s { _dMSReplicationInstanceAllowMajorVersionUpgrade = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-autominorversionupgrade
+dmsriAutoMinorVersionUpgrade :: Lens' DMSReplicationInstance (Maybe (Val Bool'))
+dmsriAutoMinorVersionUpgrade = lens _dMSReplicationInstanceAutoMinorVersionUpgrade (\s a -> s { _dMSReplicationInstanceAutoMinorVersionUpgrade = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-availabilityzone
+dmsriAvailabilityZone :: Lens' DMSReplicationInstance (Maybe (Val Text))
+dmsriAvailabilityZone = lens _dMSReplicationInstanceAvailabilityZone (\s a -> s { _dMSReplicationInstanceAvailabilityZone = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-engineversion
+dmsriEngineVersion :: Lens' DMSReplicationInstance (Maybe (Val Text))
+dmsriEngineVersion = lens _dMSReplicationInstanceEngineVersion (\s a -> s { _dMSReplicationInstanceEngineVersion = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-kmskeyid
+dmsriKmsKeyId :: Lens' DMSReplicationInstance (Maybe (Val Text))
+dmsriKmsKeyId = lens _dMSReplicationInstanceKmsKeyId (\s a -> s { _dMSReplicationInstanceKmsKeyId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-multiaz
+dmsriMultiAZ :: Lens' DMSReplicationInstance (Maybe (Val Bool'))
+dmsriMultiAZ = lens _dMSReplicationInstanceMultiAZ (\s a -> s { _dMSReplicationInstanceMultiAZ = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-preferredmaintenancewindow
+dmsriPreferredMaintenanceWindow :: Lens' DMSReplicationInstance (Maybe (Val Text))
+dmsriPreferredMaintenanceWindow = lens _dMSReplicationInstancePreferredMaintenanceWindow (\s a -> s { _dMSReplicationInstancePreferredMaintenanceWindow = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-publiclyaccessible
+dmsriPubliclyAccessible :: Lens' DMSReplicationInstance (Maybe (Val Bool'))
+dmsriPubliclyAccessible = lens _dMSReplicationInstancePubliclyAccessible (\s a -> s { _dMSReplicationInstancePubliclyAccessible = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-replicationinstanceclass
+dmsriReplicationInstanceClass :: Lens' DMSReplicationInstance (Val Text)
+dmsriReplicationInstanceClass = lens _dMSReplicationInstanceReplicationInstanceClass (\s a -> s { _dMSReplicationInstanceReplicationInstanceClass = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-replicationinstanceidentifier
+dmsriReplicationInstanceIdentifier :: Lens' DMSReplicationInstance (Maybe (Val Text))
+dmsriReplicationInstanceIdentifier = lens _dMSReplicationInstanceReplicationInstanceIdentifier (\s a -> s { _dMSReplicationInstanceReplicationInstanceIdentifier = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-replicationsubnetgroupidentifier
+dmsriReplicationSubnetGroupIdentifier :: Lens' DMSReplicationInstance (Maybe (Val Text))
+dmsriReplicationSubnetGroupIdentifier = lens _dMSReplicationInstanceReplicationSubnetGroupIdentifier (\s a -> s { _dMSReplicationInstanceReplicationSubnetGroupIdentifier = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-tags
+dmsriTags :: Lens' DMSReplicationInstance (Maybe [Tag])
+dmsriTags = lens _dMSReplicationInstanceTags (\s a -> s { _dMSReplicationInstanceTags = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-vpcsecuritygroupids
+dmsriVpcSecurityGroupIds :: Lens' DMSReplicationInstance (Maybe [Val Text])
+dmsriVpcSecurityGroupIds = lens _dMSReplicationInstanceVpcSecurityGroupIds (\s a -> s { _dMSReplicationInstanceVpcSecurityGroupIds = a })
diff --git a/library-gen/Stratosphere/Resources/DMSReplicationSubnetGroup.hs b/library-gen/Stratosphere/Resources/DMSReplicationSubnetGroup.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/DMSReplicationSubnetGroup.hs
@@ -0,0 +1,74 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationsubnetgroup.html
+
+module Stratosphere.Resources.DMSReplicationSubnetGroup where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+import Stratosphere.ResourceProperties.Tag
+
+-- | Full data type definition for DMSReplicationSubnetGroup. See
+-- 'dmsReplicationSubnetGroup' for a more convenient constructor.
+data DMSReplicationSubnetGroup =
+  DMSReplicationSubnetGroup
+  { _dMSReplicationSubnetGroupReplicationSubnetGroupDescription :: Val Text
+  , _dMSReplicationSubnetGroupReplicationSubnetGroupIdentifier :: Maybe (Val Text)
+  , _dMSReplicationSubnetGroupSubnetIds :: [Val Text]
+  , _dMSReplicationSubnetGroupTags :: Maybe [Tag]
+  } deriving (Show, Eq)
+
+instance ToJSON DMSReplicationSubnetGroup where
+  toJSON DMSReplicationSubnetGroup{..} =
+    object $
+    catMaybes
+    [ Just ("ReplicationSubnetGroupDescription" .= _dMSReplicationSubnetGroupReplicationSubnetGroupDescription)
+    , ("ReplicationSubnetGroupIdentifier" .=) <$> _dMSReplicationSubnetGroupReplicationSubnetGroupIdentifier
+    , Just ("SubnetIds" .= _dMSReplicationSubnetGroupSubnetIds)
+    , ("Tags" .=) <$> _dMSReplicationSubnetGroupTags
+    ]
+
+instance FromJSON DMSReplicationSubnetGroup where
+  parseJSON (Object obj) =
+    DMSReplicationSubnetGroup <$>
+      obj .: "ReplicationSubnetGroupDescription" <*>
+      obj .:? "ReplicationSubnetGroupIdentifier" <*>
+      obj .: "SubnetIds" <*>
+      obj .:? "Tags"
+  parseJSON _ = mempty
+
+-- | Constructor for 'DMSReplicationSubnetGroup' containing required fields as
+-- arguments.
+dmsReplicationSubnetGroup
+  :: Val Text -- ^ 'dmsrsgReplicationSubnetGroupDescription'
+  -> [Val Text] -- ^ 'dmsrsgSubnetIds'
+  -> DMSReplicationSubnetGroup
+dmsReplicationSubnetGroup replicationSubnetGroupDescriptionarg subnetIdsarg =
+  DMSReplicationSubnetGroup
+  { _dMSReplicationSubnetGroupReplicationSubnetGroupDescription = replicationSubnetGroupDescriptionarg
+  , _dMSReplicationSubnetGroupReplicationSubnetGroupIdentifier = Nothing
+  , _dMSReplicationSubnetGroupSubnetIds = subnetIdsarg
+  , _dMSReplicationSubnetGroupTags = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationsubnetgroup.html#cfn-dms-replicationsubnetgroup-replicationsubnetgroupdescription
+dmsrsgReplicationSubnetGroupDescription :: Lens' DMSReplicationSubnetGroup (Val Text)
+dmsrsgReplicationSubnetGroupDescription = lens _dMSReplicationSubnetGroupReplicationSubnetGroupDescription (\s a -> s { _dMSReplicationSubnetGroupReplicationSubnetGroupDescription = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationsubnetgroup.html#cfn-dms-replicationsubnetgroup-replicationsubnetgroupidentifier
+dmsrsgReplicationSubnetGroupIdentifier :: Lens' DMSReplicationSubnetGroup (Maybe (Val Text))
+dmsrsgReplicationSubnetGroupIdentifier = lens _dMSReplicationSubnetGroupReplicationSubnetGroupIdentifier (\s a -> s { _dMSReplicationSubnetGroupReplicationSubnetGroupIdentifier = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationsubnetgroup.html#cfn-dms-replicationsubnetgroup-subnetids
+dmsrsgSubnetIds :: Lens' DMSReplicationSubnetGroup [Val Text]
+dmsrsgSubnetIds = lens _dMSReplicationSubnetGroupSubnetIds (\s a -> s { _dMSReplicationSubnetGroupSubnetIds = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationsubnetgroup.html#cfn-dms-replicationsubnetgroup-tags
+dmsrsgTags :: Lens' DMSReplicationSubnetGroup (Maybe [Tag])
+dmsrsgTags = lens _dMSReplicationSubnetGroupTags (\s a -> s { _dMSReplicationSubnetGroupTags = a })
diff --git a/library-gen/Stratosphere/Resources/DMSReplicationTask.hs b/library-gen/Stratosphere/Resources/DMSReplicationTask.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/DMSReplicationTask.hs
@@ -0,0 +1,117 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html
+
+module Stratosphere.Resources.DMSReplicationTask where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+import Stratosphere.ResourceProperties.Tag
+
+-- | Full data type definition for DMSReplicationTask. See
+-- 'dmsReplicationTask' for a more convenient constructor.
+data DMSReplicationTask =
+  DMSReplicationTask
+  { _dMSReplicationTaskCdcStartTime :: Maybe (Val Double')
+  , _dMSReplicationTaskMigrationType :: Val Text
+  , _dMSReplicationTaskReplicationInstanceArn :: Val Text
+  , _dMSReplicationTaskReplicationTaskIdentifier :: Maybe (Val Text)
+  , _dMSReplicationTaskReplicationTaskSettings :: Maybe (Val Text)
+  , _dMSReplicationTaskSourceEndpointArn :: Val Text
+  , _dMSReplicationTaskTableMappings :: Val Text
+  , _dMSReplicationTaskTags :: Maybe [Tag]
+  , _dMSReplicationTaskTargetEndpointArn :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON DMSReplicationTask where
+  toJSON DMSReplicationTask{..} =
+    object $
+    catMaybes
+    [ ("CdcStartTime" .=) <$> _dMSReplicationTaskCdcStartTime
+    , Just ("MigrationType" .= _dMSReplicationTaskMigrationType)
+    , Just ("ReplicationInstanceArn" .= _dMSReplicationTaskReplicationInstanceArn)
+    , ("ReplicationTaskIdentifier" .=) <$> _dMSReplicationTaskReplicationTaskIdentifier
+    , ("ReplicationTaskSettings" .=) <$> _dMSReplicationTaskReplicationTaskSettings
+    , Just ("SourceEndpointArn" .= _dMSReplicationTaskSourceEndpointArn)
+    , Just ("TableMappings" .= _dMSReplicationTaskTableMappings)
+    , ("Tags" .=) <$> _dMSReplicationTaskTags
+    , Just ("TargetEndpointArn" .= _dMSReplicationTaskTargetEndpointArn)
+    ]
+
+instance FromJSON DMSReplicationTask where
+  parseJSON (Object obj) =
+    DMSReplicationTask <$>
+      obj .:? "CdcStartTime" <*>
+      obj .: "MigrationType" <*>
+      obj .: "ReplicationInstanceArn" <*>
+      obj .:? "ReplicationTaskIdentifier" <*>
+      obj .:? "ReplicationTaskSettings" <*>
+      obj .: "SourceEndpointArn" <*>
+      obj .: "TableMappings" <*>
+      obj .:? "Tags" <*>
+      obj .: "TargetEndpointArn"
+  parseJSON _ = mempty
+
+-- | Constructor for 'DMSReplicationTask' containing required fields as
+-- arguments.
+dmsReplicationTask
+  :: Val Text -- ^ 'dmsrtMigrationType'
+  -> Val Text -- ^ 'dmsrtReplicationInstanceArn'
+  -> Val Text -- ^ 'dmsrtSourceEndpointArn'
+  -> Val Text -- ^ 'dmsrtTableMappings'
+  -> Val Text -- ^ 'dmsrtTargetEndpointArn'
+  -> DMSReplicationTask
+dmsReplicationTask migrationTypearg replicationInstanceArnarg sourceEndpointArnarg tableMappingsarg targetEndpointArnarg =
+  DMSReplicationTask
+  { _dMSReplicationTaskCdcStartTime = Nothing
+  , _dMSReplicationTaskMigrationType = migrationTypearg
+  , _dMSReplicationTaskReplicationInstanceArn = replicationInstanceArnarg
+  , _dMSReplicationTaskReplicationTaskIdentifier = Nothing
+  , _dMSReplicationTaskReplicationTaskSettings = Nothing
+  , _dMSReplicationTaskSourceEndpointArn = sourceEndpointArnarg
+  , _dMSReplicationTaskTableMappings = tableMappingsarg
+  , _dMSReplicationTaskTags = Nothing
+  , _dMSReplicationTaskTargetEndpointArn = targetEndpointArnarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-cdcstarttime
+dmsrtCdcStartTime :: Lens' DMSReplicationTask (Maybe (Val Double'))
+dmsrtCdcStartTime = lens _dMSReplicationTaskCdcStartTime (\s a -> s { _dMSReplicationTaskCdcStartTime = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-migrationtype
+dmsrtMigrationType :: Lens' DMSReplicationTask (Val Text)
+dmsrtMigrationType = lens _dMSReplicationTaskMigrationType (\s a -> s { _dMSReplicationTaskMigrationType = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-replicationinstancearn
+dmsrtReplicationInstanceArn :: Lens' DMSReplicationTask (Val Text)
+dmsrtReplicationInstanceArn = lens _dMSReplicationTaskReplicationInstanceArn (\s a -> s { _dMSReplicationTaskReplicationInstanceArn = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-replicationtaskidentifier
+dmsrtReplicationTaskIdentifier :: Lens' DMSReplicationTask (Maybe (Val Text))
+dmsrtReplicationTaskIdentifier = lens _dMSReplicationTaskReplicationTaskIdentifier (\s a -> s { _dMSReplicationTaskReplicationTaskIdentifier = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-replicationtasksettings
+dmsrtReplicationTaskSettings :: Lens' DMSReplicationTask (Maybe (Val Text))
+dmsrtReplicationTaskSettings = lens _dMSReplicationTaskReplicationTaskSettings (\s a -> s { _dMSReplicationTaskReplicationTaskSettings = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-sourceendpointarn
+dmsrtSourceEndpointArn :: Lens' DMSReplicationTask (Val Text)
+dmsrtSourceEndpointArn = lens _dMSReplicationTaskSourceEndpointArn (\s a -> s { _dMSReplicationTaskSourceEndpointArn = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-tablemappings
+dmsrtTableMappings :: Lens' DMSReplicationTask (Val Text)
+dmsrtTableMappings = lens _dMSReplicationTaskTableMappings (\s a -> s { _dMSReplicationTaskTableMappings = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-tags
+dmsrtTags :: Lens' DMSReplicationTask (Maybe [Tag])
+dmsrtTags = lens _dMSReplicationTaskTags (\s a -> s { _dMSReplicationTaskTags = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-targetendpointarn
+dmsrtTargetEndpointArn :: Lens' DMSReplicationTask (Val Text)
+dmsrtTargetEndpointArn = lens _dMSReplicationTaskTargetEndpointArn (\s a -> s { _dMSReplicationTaskTargetEndpointArn = a })
diff --git a/library-gen/Stratosphere/Resources/KinesisFirehoseDeliveryStream.hs b/library-gen/Stratosphere/Resources/KinesisFirehoseDeliveryStream.hs
--- a/library-gen/Stratosphere/Resources/KinesisFirehoseDeliveryStream.hs
+++ b/library-gen/Stratosphere/Resources/KinesisFirehoseDeliveryStream.hs
@@ -13,7 +13,6 @@
 
 import Stratosphere.Values
 import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration
-import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration
 import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration
 import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamS3DestinationConfiguration
 
@@ -23,7 +22,6 @@
   KinesisFirehoseDeliveryStream
   { _kinesisFirehoseDeliveryStreamDeliveryStreamName :: Maybe (Val Text)
   , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration :: Maybe KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration
-  , _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration :: Maybe KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration
   , _kinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration :: Maybe KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration
   , _kinesisFirehoseDeliveryStreamS3DestinationConfiguration :: Maybe KinesisFirehoseDeliveryStreamS3DestinationConfiguration
   } deriving (Show, Eq)
@@ -34,7 +32,6 @@
     catMaybes
     [ ("DeliveryStreamName" .=) <$> _kinesisFirehoseDeliveryStreamDeliveryStreamName
     , ("ElasticsearchDestinationConfiguration" .=) <$> _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration
-    , ("ExtendedS3DestinationConfiguration" .=) <$> _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration
     , ("RedshiftDestinationConfiguration" .=) <$> _kinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration
     , ("S3DestinationConfiguration" .=) <$> _kinesisFirehoseDeliveryStreamS3DestinationConfiguration
     ]
@@ -44,7 +41,6 @@
     KinesisFirehoseDeliveryStream <$>
       obj .:? "DeliveryStreamName" <*>
       obj .:? "ElasticsearchDestinationConfiguration" <*>
-      obj .:? "ExtendedS3DestinationConfiguration" <*>
       obj .:? "RedshiftDestinationConfiguration" <*>
       obj .:? "S3DestinationConfiguration"
   parseJSON _ = mempty
@@ -57,7 +53,6 @@
   KinesisFirehoseDeliveryStream
   { _kinesisFirehoseDeliveryStreamDeliveryStreamName = Nothing
   , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration = Nothing
-  , _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration = Nothing
   , _kinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration = Nothing
   , _kinesisFirehoseDeliveryStreamS3DestinationConfiguration = Nothing
   }
@@ -69,10 +64,6 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverstream-elasticsearchdestinationconfiguration
 kfdsElasticsearchDestinationConfiguration :: Lens' KinesisFirehoseDeliveryStream (Maybe KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration)
 kfdsElasticsearchDestinationConfiguration = lens _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration (\s a -> s { _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration = a })
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration
-kfdsExtendedS3DestinationConfiguration :: Lens' KinesisFirehoseDeliveryStream (Maybe KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration)
-kfdsExtendedS3DestinationConfiguration = lens _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration (\s a -> s { _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration
 kfdsRedshiftDestinationConfiguration :: Lens' KinesisFirehoseDeliveryStream (Maybe KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration)
diff --git a/stratosphere.cabal b/stratosphere.cabal
--- a/stratosphere.cabal
+++ b/stratosphere.cabal
@@ -3,7 +3,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           stratosphere
-version:        0.4.4
+version:        0.5.0
 synopsis:       EDSL for AWS CloudFormation
 description:    EDSL for AWS CloudFormation
 category:       AWS, Cloud
@@ -158,6 +158,9 @@
       Stratosphere.ResourceProperties.DataPipelinePipelinePipelineTag
       Stratosphere.ResourceProperties.DirectoryServiceMicrosoftADVpcSettings
       Stratosphere.ResourceProperties.DirectoryServiceSimpleADVpcSettings
+      Stratosphere.ResourceProperties.DMSEndpointDynamoDbSettings
+      Stratosphere.ResourceProperties.DMSEndpointMongoDbSettings
+      Stratosphere.ResourceProperties.DMSEndpointS3Settings
       Stratosphere.ResourceProperties.DynamoDBTableAttributeDefinition
       Stratosphere.ResourceProperties.DynamoDBTableGlobalSecondaryIndex
       Stratosphere.ResourceProperties.DynamoDBTableKeySchema
@@ -304,11 +307,7 @@
       Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration
       Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamElasticsearchRetryOptions
       Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamEncryptionConfiguration
-      Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration
       Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamKMSEncryptionConfig
-      Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamProcessingConfiguration
-      Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamProcessor
-      Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamProcessorParameter
       Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration
       Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamS3DestinationConfiguration
       Stratosphere.ResourceProperties.LambdaFunctionCode
@@ -432,6 +431,7 @@
       Stratosphere.Resources.CloudFrontDistribution
       Stratosphere.Resources.CloudTrailTrail
       Stratosphere.Resources.CloudWatchAlarm
+      Stratosphere.Resources.CloudWatchDashboard
       Stratosphere.Resources.CodeBuildProject
       Stratosphere.Resources.CodeCommitRepository
       Stratosphere.Resources.CodeDeployApplication
@@ -452,6 +452,12 @@
       Stratosphere.Resources.DataPipelinePipeline
       Stratosphere.Resources.DirectoryServiceMicrosoftAD
       Stratosphere.Resources.DirectoryServiceSimpleAD
+      Stratosphere.Resources.DMSCertificate
+      Stratosphere.Resources.DMSEndpoint
+      Stratosphere.Resources.DMSEventSubscription
+      Stratosphere.Resources.DMSReplicationInstance
+      Stratosphere.Resources.DMSReplicationSubnetGroup
+      Stratosphere.Resources.DMSReplicationTask
       Stratosphere.Resources.DynamoDBTable
       Stratosphere.Resources.EC2CustomerGateway
       Stratosphere.Resources.EC2DHCPOptions
