diff --git a/LICENSE.md b/LICENSE.md
new file mode 100644
--- /dev/null
+++ b/LICENSE.md
@@ -0,0 +1,20 @@
+Copyright (c) 2016 David Reaver
+Copyright (c) 2022 Markus Schirp
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/gen/Stratosphere/DMS/Certificate.hs b/gen/Stratosphere/DMS/Certificate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/Certificate.hs
@@ -0,0 +1,55 @@
+module Stratosphere.DMS.Certificate (
+        Certificate(..), mkCertificate
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data Certificate
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-certificate.html>
+    Certificate {haddock_workaround_ :: (),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-certificate.html#cfn-dms-certificate-certificateidentifier>
+                 certificateIdentifier :: (Prelude.Maybe (Value Prelude.Text)),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-certificate.html#cfn-dms-certificate-certificatepem>
+                 certificatePem :: (Prelude.Maybe (Value Prelude.Text)),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-certificate.html#cfn-dms-certificate-certificatewallet>
+                 certificateWallet :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkCertificate :: Certificate
+mkCertificate
+  = Certificate
+      {haddock_workaround_ = (), certificateIdentifier = Prelude.Nothing,
+       certificatePem = Prelude.Nothing,
+       certificateWallet = Prelude.Nothing}
+instance ToResourceProperties Certificate where
+  toResourceProperties Certificate {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::Certificate", supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "CertificateIdentifier"
+                              Prelude.<$> certificateIdentifier,
+                            (JSON..=) "CertificatePem" Prelude.<$> certificatePem,
+                            (JSON..=) "CertificateWallet" Prelude.<$> certificateWallet])}
+instance JSON.ToJSON Certificate where
+  toJSON Certificate {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "CertificateIdentifier"
+                 Prelude.<$> certificateIdentifier,
+               (JSON..=) "CertificatePem" Prelude.<$> certificatePem,
+               (JSON..=) "CertificateWallet" Prelude.<$> certificateWallet]))
+instance Property "CertificateIdentifier" Certificate where
+  type PropertyType "CertificateIdentifier" Certificate = Value Prelude.Text
+  set newValue Certificate {..}
+    = Certificate {certificateIdentifier = Prelude.pure newValue, ..}
+instance Property "CertificatePem" Certificate where
+  type PropertyType "CertificatePem" Certificate = Value Prelude.Text
+  set newValue Certificate {..}
+    = Certificate {certificatePem = Prelude.pure newValue, ..}
+instance Property "CertificateWallet" Certificate where
+  type PropertyType "CertificateWallet" Certificate = Value Prelude.Text
+  set newValue Certificate {..}
+    = Certificate {certificateWallet = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DMS/DataMigration.hs b/gen/Stratosphere/DMS/DataMigration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/DataMigration.hs
@@ -0,0 +1,112 @@
+module Stratosphere.DMS.DataMigration (
+        module Exports, DataMigration(..), mkDataMigration
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.DMS.DataMigration.DataMigrationSettingsProperty as Exports
+import {-# SOURCE #-} Stratosphere.DMS.DataMigration.SourceDataSettingsProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Tag
+import Stratosphere.Value
+data DataMigration
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-datamigration.html>
+    DataMigration {haddock_workaround_ :: (),
+                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-datamigration.html#cfn-dms-datamigration-datamigrationidentifier>
+                   dataMigrationIdentifier :: (Prelude.Maybe (Value Prelude.Text)),
+                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-datamigration.html#cfn-dms-datamigration-datamigrationname>
+                   dataMigrationName :: (Prelude.Maybe (Value Prelude.Text)),
+                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-datamigration.html#cfn-dms-datamigration-datamigrationsettings>
+                   dataMigrationSettings :: (Prelude.Maybe DataMigrationSettingsProperty),
+                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-datamigration.html#cfn-dms-datamigration-datamigrationtype>
+                   dataMigrationType :: (Value Prelude.Text),
+                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-datamigration.html#cfn-dms-datamigration-migrationprojectidentifier>
+                   migrationProjectIdentifier :: (Value Prelude.Text),
+                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-datamigration.html#cfn-dms-datamigration-serviceaccessrolearn>
+                   serviceAccessRoleArn :: (Value Prelude.Text),
+                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-datamigration.html#cfn-dms-datamigration-sourcedatasettings>
+                   sourceDataSettings :: (Prelude.Maybe [SourceDataSettingsProperty]),
+                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-datamigration.html#cfn-dms-datamigration-tags>
+                   tags :: (Prelude.Maybe [Tag])}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkDataMigration ::
+  Value Prelude.Text
+  -> Value Prelude.Text -> Value Prelude.Text -> DataMigration
+mkDataMigration
+  dataMigrationType
+  migrationProjectIdentifier
+  serviceAccessRoleArn
+  = DataMigration
+      {haddock_workaround_ = (), dataMigrationType = dataMigrationType,
+       migrationProjectIdentifier = migrationProjectIdentifier,
+       serviceAccessRoleArn = serviceAccessRoleArn,
+       dataMigrationIdentifier = Prelude.Nothing,
+       dataMigrationName = Prelude.Nothing,
+       dataMigrationSettings = Prelude.Nothing,
+       sourceDataSettings = Prelude.Nothing, tags = Prelude.Nothing}
+instance ToResourceProperties DataMigration where
+  toResourceProperties DataMigration {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::DataMigration", supportsTags = Prelude.True,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["DataMigrationType" JSON..= dataMigrationType,
+                            "MigrationProjectIdentifier" JSON..= migrationProjectIdentifier,
+                            "ServiceAccessRoleArn" JSON..= serviceAccessRoleArn]
+                           (Prelude.catMaybes
+                              [(JSON..=) "DataMigrationIdentifier"
+                                 Prelude.<$> dataMigrationIdentifier,
+                               (JSON..=) "DataMigrationName" Prelude.<$> dataMigrationName,
+                               (JSON..=) "DataMigrationSettings"
+                                 Prelude.<$> dataMigrationSettings,
+                               (JSON..=) "SourceDataSettings" Prelude.<$> sourceDataSettings,
+                               (JSON..=) "Tags" Prelude.<$> tags]))}
+instance JSON.ToJSON DataMigration where
+  toJSON DataMigration {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["DataMigrationType" JSON..= dataMigrationType,
+               "MigrationProjectIdentifier" JSON..= migrationProjectIdentifier,
+               "ServiceAccessRoleArn" JSON..= serviceAccessRoleArn]
+              (Prelude.catMaybes
+                 [(JSON..=) "DataMigrationIdentifier"
+                    Prelude.<$> dataMigrationIdentifier,
+                  (JSON..=) "DataMigrationName" Prelude.<$> dataMigrationName,
+                  (JSON..=) "DataMigrationSettings"
+                    Prelude.<$> dataMigrationSettings,
+                  (JSON..=) "SourceDataSettings" Prelude.<$> sourceDataSettings,
+                  (JSON..=) "Tags" Prelude.<$> tags])))
+instance Property "DataMigrationIdentifier" DataMigration where
+  type PropertyType "DataMigrationIdentifier" DataMigration = Value Prelude.Text
+  set newValue DataMigration {..}
+    = DataMigration
+        {dataMigrationIdentifier = Prelude.pure newValue, ..}
+instance Property "DataMigrationName" DataMigration where
+  type PropertyType "DataMigrationName" DataMigration = Value Prelude.Text
+  set newValue DataMigration {..}
+    = DataMigration {dataMigrationName = Prelude.pure newValue, ..}
+instance Property "DataMigrationSettings" DataMigration where
+  type PropertyType "DataMigrationSettings" DataMigration = DataMigrationSettingsProperty
+  set newValue DataMigration {..}
+    = DataMigration {dataMigrationSettings = Prelude.pure newValue, ..}
+instance Property "DataMigrationType" DataMigration where
+  type PropertyType "DataMigrationType" DataMigration = Value Prelude.Text
+  set newValue DataMigration {..}
+    = DataMigration {dataMigrationType = newValue, ..}
+instance Property "MigrationProjectIdentifier" DataMigration where
+  type PropertyType "MigrationProjectIdentifier" DataMigration = Value Prelude.Text
+  set newValue DataMigration {..}
+    = DataMigration {migrationProjectIdentifier = newValue, ..}
+instance Property "ServiceAccessRoleArn" DataMigration where
+  type PropertyType "ServiceAccessRoleArn" DataMigration = Value Prelude.Text
+  set newValue DataMigration {..}
+    = DataMigration {serviceAccessRoleArn = newValue, ..}
+instance Property "SourceDataSettings" DataMigration where
+  type PropertyType "SourceDataSettings" DataMigration = [SourceDataSettingsProperty]
+  set newValue DataMigration {..}
+    = DataMigration {sourceDataSettings = Prelude.pure newValue, ..}
+instance Property "Tags" DataMigration where
+  type PropertyType "Tags" DataMigration = [Tag]
+  set newValue DataMigration {..}
+    = DataMigration {tags = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DMS/DataMigration/DataMigrationSettingsProperty.hs b/gen/Stratosphere/DMS/DataMigration/DataMigrationSettingsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/DataMigration/DataMigrationSettingsProperty.hs
@@ -0,0 +1,58 @@
+module Stratosphere.DMS.DataMigration.DataMigrationSettingsProperty (
+        DataMigrationSettingsProperty(..), mkDataMigrationSettingsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data DataMigrationSettingsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-datamigration-datamigrationsettings.html>
+    DataMigrationSettingsProperty {haddock_workaround_ :: (),
+                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-datamigration-datamigrationsettings.html#cfn-dms-datamigration-datamigrationsettings-cloudwatchlogsenabled>
+                                   cloudwatchLogsEnabled :: (Prelude.Maybe (Value Prelude.Bool)),
+                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-datamigration-datamigrationsettings.html#cfn-dms-datamigration-datamigrationsettings-numberofjobs>
+                                   numberOfJobs :: (Prelude.Maybe (Value Prelude.Integer)),
+                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-datamigration-datamigrationsettings.html#cfn-dms-datamigration-datamigrationsettings-selectionrules>
+                                   selectionRules :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkDataMigrationSettingsProperty :: DataMigrationSettingsProperty
+mkDataMigrationSettingsProperty
+  = DataMigrationSettingsProperty
+      {haddock_workaround_ = (), cloudwatchLogsEnabled = Prelude.Nothing,
+       numberOfJobs = Prelude.Nothing, selectionRules = Prelude.Nothing}
+instance ToResourceProperties DataMigrationSettingsProperty where
+  toResourceProperties DataMigrationSettingsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::DataMigration.DataMigrationSettings",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "CloudwatchLogsEnabled"
+                              Prelude.<$> cloudwatchLogsEnabled,
+                            (JSON..=) "NumberOfJobs" Prelude.<$> numberOfJobs,
+                            (JSON..=) "SelectionRules" Prelude.<$> selectionRules])}
+instance JSON.ToJSON DataMigrationSettingsProperty where
+  toJSON DataMigrationSettingsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "CloudwatchLogsEnabled"
+                 Prelude.<$> cloudwatchLogsEnabled,
+               (JSON..=) "NumberOfJobs" Prelude.<$> numberOfJobs,
+               (JSON..=) "SelectionRules" Prelude.<$> selectionRules]))
+instance Property "CloudwatchLogsEnabled" DataMigrationSettingsProperty where
+  type PropertyType "CloudwatchLogsEnabled" DataMigrationSettingsProperty = Value Prelude.Bool
+  set newValue DataMigrationSettingsProperty {..}
+    = DataMigrationSettingsProperty
+        {cloudwatchLogsEnabled = Prelude.pure newValue, ..}
+instance Property "NumberOfJobs" DataMigrationSettingsProperty where
+  type PropertyType "NumberOfJobs" DataMigrationSettingsProperty = Value Prelude.Integer
+  set newValue DataMigrationSettingsProperty {..}
+    = DataMigrationSettingsProperty
+        {numberOfJobs = Prelude.pure newValue, ..}
+instance Property "SelectionRules" DataMigrationSettingsProperty where
+  type PropertyType "SelectionRules" DataMigrationSettingsProperty = Value Prelude.Text
+  set newValue DataMigrationSettingsProperty {..}
+    = DataMigrationSettingsProperty
+        {selectionRules = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DMS/DataMigration/DataMigrationSettingsProperty.hs-boot b/gen/Stratosphere/DMS/DataMigration/DataMigrationSettingsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/DataMigration/DataMigrationSettingsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DMS.DataMigration.DataMigrationSettingsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data DataMigrationSettingsProperty :: Prelude.Type
+instance ToResourceProperties DataMigrationSettingsProperty
+instance Prelude.Eq DataMigrationSettingsProperty
+instance Prelude.Show DataMigrationSettingsProperty
+instance JSON.ToJSON DataMigrationSettingsProperty
diff --git a/gen/Stratosphere/DMS/DataMigration/SourceDataSettingsProperty.hs b/gen/Stratosphere/DMS/DataMigration/SourceDataSettingsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/DataMigration/SourceDataSettingsProperty.hs
@@ -0,0 +1,65 @@
+module Stratosphere.DMS.DataMigration.SourceDataSettingsProperty (
+        SourceDataSettingsProperty(..), mkSourceDataSettingsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data SourceDataSettingsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-datamigration-sourcedatasettings.html>
+    SourceDataSettingsProperty {haddock_workaround_ :: (),
+                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-datamigration-sourcedatasettings.html#cfn-dms-datamigration-sourcedatasettings-cdcstartposition>
+                                cDCStartPosition :: (Prelude.Maybe (Value Prelude.Text)),
+                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-datamigration-sourcedatasettings.html#cfn-dms-datamigration-sourcedatasettings-cdcstarttime>
+                                cDCStartTime :: (Prelude.Maybe (Value Prelude.Text)),
+                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-datamigration-sourcedatasettings.html#cfn-dms-datamigration-sourcedatasettings-cdcstoptime>
+                                cDCStopTime :: (Prelude.Maybe (Value Prelude.Text)),
+                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-datamigration-sourcedatasettings.html#cfn-dms-datamigration-sourcedatasettings-slotname>
+                                slotName :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkSourceDataSettingsProperty :: SourceDataSettingsProperty
+mkSourceDataSettingsProperty
+  = SourceDataSettingsProperty
+      {haddock_workaround_ = (), cDCStartPosition = Prelude.Nothing,
+       cDCStartTime = Prelude.Nothing, cDCStopTime = Prelude.Nothing,
+       slotName = Prelude.Nothing}
+instance ToResourceProperties SourceDataSettingsProperty where
+  toResourceProperties SourceDataSettingsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::DataMigration.SourceDataSettings",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "CDCStartPosition" Prelude.<$> cDCStartPosition,
+                            (JSON..=) "CDCStartTime" Prelude.<$> cDCStartTime,
+                            (JSON..=) "CDCStopTime" Prelude.<$> cDCStopTime,
+                            (JSON..=) "SlotName" Prelude.<$> slotName])}
+instance JSON.ToJSON SourceDataSettingsProperty where
+  toJSON SourceDataSettingsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "CDCStartPosition" Prelude.<$> cDCStartPosition,
+               (JSON..=) "CDCStartTime" Prelude.<$> cDCStartTime,
+               (JSON..=) "CDCStopTime" Prelude.<$> cDCStopTime,
+               (JSON..=) "SlotName" Prelude.<$> slotName]))
+instance Property "CDCStartPosition" SourceDataSettingsProperty where
+  type PropertyType "CDCStartPosition" SourceDataSettingsProperty = Value Prelude.Text
+  set newValue SourceDataSettingsProperty {..}
+    = SourceDataSettingsProperty
+        {cDCStartPosition = Prelude.pure newValue, ..}
+instance Property "CDCStartTime" SourceDataSettingsProperty where
+  type PropertyType "CDCStartTime" SourceDataSettingsProperty = Value Prelude.Text
+  set newValue SourceDataSettingsProperty {..}
+    = SourceDataSettingsProperty
+        {cDCStartTime = Prelude.pure newValue, ..}
+instance Property "CDCStopTime" SourceDataSettingsProperty where
+  type PropertyType "CDCStopTime" SourceDataSettingsProperty = Value Prelude.Text
+  set newValue SourceDataSettingsProperty {..}
+    = SourceDataSettingsProperty
+        {cDCStopTime = Prelude.pure newValue, ..}
+instance Property "SlotName" SourceDataSettingsProperty where
+  type PropertyType "SlotName" SourceDataSettingsProperty = Value Prelude.Text
+  set newValue SourceDataSettingsProperty {..}
+    = SourceDataSettingsProperty {slotName = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DMS/DataMigration/SourceDataSettingsProperty.hs-boot b/gen/Stratosphere/DMS/DataMigration/SourceDataSettingsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/DataMigration/SourceDataSettingsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DMS.DataMigration.SourceDataSettingsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data SourceDataSettingsProperty :: Prelude.Type
+instance ToResourceProperties SourceDataSettingsProperty
+instance Prelude.Eq SourceDataSettingsProperty
+instance Prelude.Show SourceDataSettingsProperty
+instance JSON.ToJSON SourceDataSettingsProperty
diff --git a/gen/Stratosphere/DMS/DataProvider.hs b/gen/Stratosphere/DMS/DataProvider.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/DataProvider.hs
@@ -0,0 +1,93 @@
+module Stratosphere.DMS.DataProvider (
+        module Exports, DataProvider(..), mkDataProvider
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.DMS.DataProvider.SettingsProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Tag
+import Stratosphere.Value
+data DataProvider
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-dataprovider.html>
+    DataProvider {haddock_workaround_ :: (),
+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-dataprovider.html#cfn-dms-dataprovider-dataprovideridentifier>
+                  dataProviderIdentifier :: (Prelude.Maybe (Value Prelude.Text)),
+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-dataprovider.html#cfn-dms-dataprovider-dataprovidername>
+                  dataProviderName :: (Prelude.Maybe (Value Prelude.Text)),
+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-dataprovider.html#cfn-dms-dataprovider-description>
+                  description :: (Prelude.Maybe (Value Prelude.Text)),
+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-dataprovider.html#cfn-dms-dataprovider-engine>
+                  engine :: (Value Prelude.Text),
+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-dataprovider.html#cfn-dms-dataprovider-exactsettings>
+                  exactSettings :: (Prelude.Maybe (Value Prelude.Bool)),
+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-dataprovider.html#cfn-dms-dataprovider-settings>
+                  settings :: (Prelude.Maybe SettingsProperty),
+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-dataprovider.html#cfn-dms-dataprovider-tags>
+                  tags :: (Prelude.Maybe [Tag])}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkDataProvider :: Value Prelude.Text -> DataProvider
+mkDataProvider engine
+  = DataProvider
+      {haddock_workaround_ = (), engine = engine,
+       dataProviderIdentifier = Prelude.Nothing,
+       dataProviderName = Prelude.Nothing, description = Prelude.Nothing,
+       exactSettings = Prelude.Nothing, settings = Prelude.Nothing,
+       tags = Prelude.Nothing}
+instance ToResourceProperties DataProvider where
+  toResourceProperties DataProvider {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::DataProvider", supportsTags = Prelude.True,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["Engine" JSON..= engine]
+                           (Prelude.catMaybes
+                              [(JSON..=) "DataProviderIdentifier"
+                                 Prelude.<$> dataProviderIdentifier,
+                               (JSON..=) "DataProviderName" Prelude.<$> dataProviderName,
+                               (JSON..=) "Description" Prelude.<$> description,
+                               (JSON..=) "ExactSettings" Prelude.<$> exactSettings,
+                               (JSON..=) "Settings" Prelude.<$> settings,
+                               (JSON..=) "Tags" Prelude.<$> tags]))}
+instance JSON.ToJSON DataProvider where
+  toJSON DataProvider {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["Engine" JSON..= engine]
+              (Prelude.catMaybes
+                 [(JSON..=) "DataProviderIdentifier"
+                    Prelude.<$> dataProviderIdentifier,
+                  (JSON..=) "DataProviderName" Prelude.<$> dataProviderName,
+                  (JSON..=) "Description" Prelude.<$> description,
+                  (JSON..=) "ExactSettings" Prelude.<$> exactSettings,
+                  (JSON..=) "Settings" Prelude.<$> settings,
+                  (JSON..=) "Tags" Prelude.<$> tags])))
+instance Property "DataProviderIdentifier" DataProvider where
+  type PropertyType "DataProviderIdentifier" DataProvider = Value Prelude.Text
+  set newValue DataProvider {..}
+    = DataProvider {dataProviderIdentifier = Prelude.pure newValue, ..}
+instance Property "DataProviderName" DataProvider where
+  type PropertyType "DataProviderName" DataProvider = Value Prelude.Text
+  set newValue DataProvider {..}
+    = DataProvider {dataProviderName = Prelude.pure newValue, ..}
+instance Property "Description" DataProvider where
+  type PropertyType "Description" DataProvider = Value Prelude.Text
+  set newValue DataProvider {..}
+    = DataProvider {description = Prelude.pure newValue, ..}
+instance Property "Engine" DataProvider where
+  type PropertyType "Engine" DataProvider = Value Prelude.Text
+  set newValue DataProvider {..}
+    = DataProvider {engine = newValue, ..}
+instance Property "ExactSettings" DataProvider where
+  type PropertyType "ExactSettings" DataProvider = Value Prelude.Bool
+  set newValue DataProvider {..}
+    = DataProvider {exactSettings = Prelude.pure newValue, ..}
+instance Property "Settings" DataProvider where
+  type PropertyType "Settings" DataProvider = SettingsProperty
+  set newValue DataProvider {..}
+    = DataProvider {settings = Prelude.pure newValue, ..}
+instance Property "Tags" DataProvider where
+  type PropertyType "Tags" DataProvider = [Tag]
+  set newValue DataProvider {..}
+    = DataProvider {tags = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DMS/DataProvider/DocDbSettingsProperty.hs b/gen/Stratosphere/DMS/DataProvider/DocDbSettingsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/DataProvider/DocDbSettingsProperty.hs
@@ -0,0 +1,74 @@
+module Stratosphere.DMS.DataProvider.DocDbSettingsProperty (
+        DocDbSettingsProperty(..), mkDocDbSettingsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data DocDbSettingsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-docdbsettings.html>
+    DocDbSettingsProperty {haddock_workaround_ :: (),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-docdbsettings.html#cfn-dms-dataprovider-docdbsettings-certificatearn>
+                           certificateArn :: (Prelude.Maybe (Value Prelude.Text)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-docdbsettings.html#cfn-dms-dataprovider-docdbsettings-databasename>
+                           databaseName :: (Value Prelude.Text),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-docdbsettings.html#cfn-dms-dataprovider-docdbsettings-port>
+                           port :: (Value Prelude.Integer),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-docdbsettings.html#cfn-dms-dataprovider-docdbsettings-servername>
+                           serverName :: (Value Prelude.Text),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-docdbsettings.html#cfn-dms-dataprovider-docdbsettings-sslmode>
+                           sslMode :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkDocDbSettingsProperty ::
+  Value Prelude.Text
+  -> Value Prelude.Integer
+     -> Value Prelude.Text -> DocDbSettingsProperty
+mkDocDbSettingsProperty databaseName port serverName
+  = DocDbSettingsProperty
+      {haddock_workaround_ = (), databaseName = databaseName,
+       port = port, serverName = serverName,
+       certificateArn = Prelude.Nothing, sslMode = Prelude.Nothing}
+instance ToResourceProperties DocDbSettingsProperty where
+  toResourceProperties DocDbSettingsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::DataProvider.DocDbSettings",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["DatabaseName" JSON..= databaseName, "Port" JSON..= port,
+                            "ServerName" JSON..= serverName]
+                           (Prelude.catMaybes
+                              [(JSON..=) "CertificateArn" Prelude.<$> certificateArn,
+                               (JSON..=) "SslMode" Prelude.<$> sslMode]))}
+instance JSON.ToJSON DocDbSettingsProperty where
+  toJSON DocDbSettingsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["DatabaseName" JSON..= databaseName, "Port" JSON..= port,
+               "ServerName" JSON..= serverName]
+              (Prelude.catMaybes
+                 [(JSON..=) "CertificateArn" Prelude.<$> certificateArn,
+                  (JSON..=) "SslMode" Prelude.<$> sslMode])))
+instance Property "CertificateArn" DocDbSettingsProperty where
+  type PropertyType "CertificateArn" DocDbSettingsProperty = Value Prelude.Text
+  set newValue DocDbSettingsProperty {..}
+    = DocDbSettingsProperty
+        {certificateArn = Prelude.pure newValue, ..}
+instance Property "DatabaseName" DocDbSettingsProperty where
+  type PropertyType "DatabaseName" DocDbSettingsProperty = Value Prelude.Text
+  set newValue DocDbSettingsProperty {..}
+    = DocDbSettingsProperty {databaseName = newValue, ..}
+instance Property "Port" DocDbSettingsProperty where
+  type PropertyType "Port" DocDbSettingsProperty = Value Prelude.Integer
+  set newValue DocDbSettingsProperty {..}
+    = DocDbSettingsProperty {port = newValue, ..}
+instance Property "ServerName" DocDbSettingsProperty where
+  type PropertyType "ServerName" DocDbSettingsProperty = Value Prelude.Text
+  set newValue DocDbSettingsProperty {..}
+    = DocDbSettingsProperty {serverName = newValue, ..}
+instance Property "SslMode" DocDbSettingsProperty where
+  type PropertyType "SslMode" DocDbSettingsProperty = Value Prelude.Text
+  set newValue DocDbSettingsProperty {..}
+    = DocDbSettingsProperty {sslMode = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DMS/DataProvider/DocDbSettingsProperty.hs-boot b/gen/Stratosphere/DMS/DataProvider/DocDbSettingsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/DataProvider/DocDbSettingsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DMS.DataProvider.DocDbSettingsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data DocDbSettingsProperty :: Prelude.Type
+instance ToResourceProperties DocDbSettingsProperty
+instance Prelude.Eq DocDbSettingsProperty
+instance Prelude.Show DocDbSettingsProperty
+instance JSON.ToJSON DocDbSettingsProperty
diff --git a/gen/Stratosphere/DMS/DataProvider/IbmDb2LuwSettingsProperty.hs b/gen/Stratosphere/DMS/DataProvider/IbmDb2LuwSettingsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/DataProvider/IbmDb2LuwSettingsProperty.hs
@@ -0,0 +1,73 @@
+module Stratosphere.DMS.DataProvider.IbmDb2LuwSettingsProperty (
+        IbmDb2LuwSettingsProperty(..), mkIbmDb2LuwSettingsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data IbmDb2LuwSettingsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-ibmdb2luwsettings.html>
+    IbmDb2LuwSettingsProperty {haddock_workaround_ :: (),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-ibmdb2luwsettings.html#cfn-dms-dataprovider-ibmdb2luwsettings-certificatearn>
+                               certificateArn :: (Prelude.Maybe (Value Prelude.Text)),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-ibmdb2luwsettings.html#cfn-dms-dataprovider-ibmdb2luwsettings-databasename>
+                               databaseName :: (Value Prelude.Text),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-ibmdb2luwsettings.html#cfn-dms-dataprovider-ibmdb2luwsettings-port>
+                               port :: (Value Prelude.Integer),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-ibmdb2luwsettings.html#cfn-dms-dataprovider-ibmdb2luwsettings-servername>
+                               serverName :: (Value Prelude.Text),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-ibmdb2luwsettings.html#cfn-dms-dataprovider-ibmdb2luwsettings-sslmode>
+                               sslMode :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkIbmDb2LuwSettingsProperty ::
+  Value Prelude.Text
+  -> Value Prelude.Integer
+     -> Value Prelude.Text
+        -> Value Prelude.Text -> IbmDb2LuwSettingsProperty
+mkIbmDb2LuwSettingsProperty databaseName port serverName sslMode
+  = IbmDb2LuwSettingsProperty
+      {haddock_workaround_ = (), databaseName = databaseName,
+       port = port, serverName = serverName, sslMode = sslMode,
+       certificateArn = Prelude.Nothing}
+instance ToResourceProperties IbmDb2LuwSettingsProperty where
+  toResourceProperties IbmDb2LuwSettingsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::DataProvider.IbmDb2LuwSettings",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["DatabaseName" JSON..= databaseName, "Port" JSON..= port,
+                            "ServerName" JSON..= serverName, "SslMode" JSON..= sslMode]
+                           (Prelude.catMaybes
+                              [(JSON..=) "CertificateArn" Prelude.<$> certificateArn]))}
+instance JSON.ToJSON IbmDb2LuwSettingsProperty where
+  toJSON IbmDb2LuwSettingsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["DatabaseName" JSON..= databaseName, "Port" JSON..= port,
+               "ServerName" JSON..= serverName, "SslMode" JSON..= sslMode]
+              (Prelude.catMaybes
+                 [(JSON..=) "CertificateArn" Prelude.<$> certificateArn])))
+instance Property "CertificateArn" IbmDb2LuwSettingsProperty where
+  type PropertyType "CertificateArn" IbmDb2LuwSettingsProperty = Value Prelude.Text
+  set newValue IbmDb2LuwSettingsProperty {..}
+    = IbmDb2LuwSettingsProperty
+        {certificateArn = Prelude.pure newValue, ..}
+instance Property "DatabaseName" IbmDb2LuwSettingsProperty where
+  type PropertyType "DatabaseName" IbmDb2LuwSettingsProperty = Value Prelude.Text
+  set newValue IbmDb2LuwSettingsProperty {..}
+    = IbmDb2LuwSettingsProperty {databaseName = newValue, ..}
+instance Property "Port" IbmDb2LuwSettingsProperty where
+  type PropertyType "Port" IbmDb2LuwSettingsProperty = Value Prelude.Integer
+  set newValue IbmDb2LuwSettingsProperty {..}
+    = IbmDb2LuwSettingsProperty {port = newValue, ..}
+instance Property "ServerName" IbmDb2LuwSettingsProperty where
+  type PropertyType "ServerName" IbmDb2LuwSettingsProperty = Value Prelude.Text
+  set newValue IbmDb2LuwSettingsProperty {..}
+    = IbmDb2LuwSettingsProperty {serverName = newValue, ..}
+instance Property "SslMode" IbmDb2LuwSettingsProperty where
+  type PropertyType "SslMode" IbmDb2LuwSettingsProperty = Value Prelude.Text
+  set newValue IbmDb2LuwSettingsProperty {..}
+    = IbmDb2LuwSettingsProperty {sslMode = newValue, ..}
diff --git a/gen/Stratosphere/DMS/DataProvider/IbmDb2LuwSettingsProperty.hs-boot b/gen/Stratosphere/DMS/DataProvider/IbmDb2LuwSettingsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/DataProvider/IbmDb2LuwSettingsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DMS.DataProvider.IbmDb2LuwSettingsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data IbmDb2LuwSettingsProperty :: Prelude.Type
+instance ToResourceProperties IbmDb2LuwSettingsProperty
+instance Prelude.Eq IbmDb2LuwSettingsProperty
+instance Prelude.Show IbmDb2LuwSettingsProperty
+instance JSON.ToJSON IbmDb2LuwSettingsProperty
diff --git a/gen/Stratosphere/DMS/DataProvider/IbmDb2zOsSettingsProperty.hs b/gen/Stratosphere/DMS/DataProvider/IbmDb2zOsSettingsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/DataProvider/IbmDb2zOsSettingsProperty.hs
@@ -0,0 +1,73 @@
+module Stratosphere.DMS.DataProvider.IbmDb2zOsSettingsProperty (
+        IbmDb2zOsSettingsProperty(..), mkIbmDb2zOsSettingsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data IbmDb2zOsSettingsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-ibmdb2zossettings.html>
+    IbmDb2zOsSettingsProperty {haddock_workaround_ :: (),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-ibmdb2zossettings.html#cfn-dms-dataprovider-ibmdb2zossettings-certificatearn>
+                               certificateArn :: (Prelude.Maybe (Value Prelude.Text)),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-ibmdb2zossettings.html#cfn-dms-dataprovider-ibmdb2zossettings-databasename>
+                               databaseName :: (Value Prelude.Text),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-ibmdb2zossettings.html#cfn-dms-dataprovider-ibmdb2zossettings-port>
+                               port :: (Value Prelude.Integer),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-ibmdb2zossettings.html#cfn-dms-dataprovider-ibmdb2zossettings-servername>
+                               serverName :: (Value Prelude.Text),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-ibmdb2zossettings.html#cfn-dms-dataprovider-ibmdb2zossettings-sslmode>
+                               sslMode :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkIbmDb2zOsSettingsProperty ::
+  Value Prelude.Text
+  -> Value Prelude.Integer
+     -> Value Prelude.Text
+        -> Value Prelude.Text -> IbmDb2zOsSettingsProperty
+mkIbmDb2zOsSettingsProperty databaseName port serverName sslMode
+  = IbmDb2zOsSettingsProperty
+      {haddock_workaround_ = (), databaseName = databaseName,
+       port = port, serverName = serverName, sslMode = sslMode,
+       certificateArn = Prelude.Nothing}
+instance ToResourceProperties IbmDb2zOsSettingsProperty where
+  toResourceProperties IbmDb2zOsSettingsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::DataProvider.IbmDb2zOsSettings",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["DatabaseName" JSON..= databaseName, "Port" JSON..= port,
+                            "ServerName" JSON..= serverName, "SslMode" JSON..= sslMode]
+                           (Prelude.catMaybes
+                              [(JSON..=) "CertificateArn" Prelude.<$> certificateArn]))}
+instance JSON.ToJSON IbmDb2zOsSettingsProperty where
+  toJSON IbmDb2zOsSettingsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["DatabaseName" JSON..= databaseName, "Port" JSON..= port,
+               "ServerName" JSON..= serverName, "SslMode" JSON..= sslMode]
+              (Prelude.catMaybes
+                 [(JSON..=) "CertificateArn" Prelude.<$> certificateArn])))
+instance Property "CertificateArn" IbmDb2zOsSettingsProperty where
+  type PropertyType "CertificateArn" IbmDb2zOsSettingsProperty = Value Prelude.Text
+  set newValue IbmDb2zOsSettingsProperty {..}
+    = IbmDb2zOsSettingsProperty
+        {certificateArn = Prelude.pure newValue, ..}
+instance Property "DatabaseName" IbmDb2zOsSettingsProperty where
+  type PropertyType "DatabaseName" IbmDb2zOsSettingsProperty = Value Prelude.Text
+  set newValue IbmDb2zOsSettingsProperty {..}
+    = IbmDb2zOsSettingsProperty {databaseName = newValue, ..}
+instance Property "Port" IbmDb2zOsSettingsProperty where
+  type PropertyType "Port" IbmDb2zOsSettingsProperty = Value Prelude.Integer
+  set newValue IbmDb2zOsSettingsProperty {..}
+    = IbmDb2zOsSettingsProperty {port = newValue, ..}
+instance Property "ServerName" IbmDb2zOsSettingsProperty where
+  type PropertyType "ServerName" IbmDb2zOsSettingsProperty = Value Prelude.Text
+  set newValue IbmDb2zOsSettingsProperty {..}
+    = IbmDb2zOsSettingsProperty {serverName = newValue, ..}
+instance Property "SslMode" IbmDb2zOsSettingsProperty where
+  type PropertyType "SslMode" IbmDb2zOsSettingsProperty = Value Prelude.Text
+  set newValue IbmDb2zOsSettingsProperty {..}
+    = IbmDb2zOsSettingsProperty {sslMode = newValue, ..}
diff --git a/gen/Stratosphere/DMS/DataProvider/IbmDb2zOsSettingsProperty.hs-boot b/gen/Stratosphere/DMS/DataProvider/IbmDb2zOsSettingsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/DataProvider/IbmDb2zOsSettingsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DMS.DataProvider.IbmDb2zOsSettingsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data IbmDb2zOsSettingsProperty :: Prelude.Type
+instance ToResourceProperties IbmDb2zOsSettingsProperty
+instance Prelude.Eq IbmDb2zOsSettingsProperty
+instance Prelude.Show IbmDb2zOsSettingsProperty
+instance JSON.ToJSON IbmDb2zOsSettingsProperty
diff --git a/gen/Stratosphere/DMS/DataProvider/MariaDbSettingsProperty.hs b/gen/Stratosphere/DMS/DataProvider/MariaDbSettingsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/DataProvider/MariaDbSettingsProperty.hs
@@ -0,0 +1,65 @@
+module Stratosphere.DMS.DataProvider.MariaDbSettingsProperty (
+        MariaDbSettingsProperty(..), mkMariaDbSettingsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data MariaDbSettingsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-mariadbsettings.html>
+    MariaDbSettingsProperty {haddock_workaround_ :: (),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-mariadbsettings.html#cfn-dms-dataprovider-mariadbsettings-certificatearn>
+                             certificateArn :: (Prelude.Maybe (Value Prelude.Text)),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-mariadbsettings.html#cfn-dms-dataprovider-mariadbsettings-port>
+                             port :: (Value Prelude.Integer),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-mariadbsettings.html#cfn-dms-dataprovider-mariadbsettings-servername>
+                             serverName :: (Value Prelude.Text),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-mariadbsettings.html#cfn-dms-dataprovider-mariadbsettings-sslmode>
+                             sslMode :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkMariaDbSettingsProperty ::
+  Value Prelude.Integer
+  -> Value Prelude.Text
+     -> Value Prelude.Text -> MariaDbSettingsProperty
+mkMariaDbSettingsProperty port serverName sslMode
+  = MariaDbSettingsProperty
+      {haddock_workaround_ = (), port = port, serverName = serverName,
+       sslMode = sslMode, certificateArn = Prelude.Nothing}
+instance ToResourceProperties MariaDbSettingsProperty where
+  toResourceProperties MariaDbSettingsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::DataProvider.MariaDbSettings",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["Port" JSON..= port, "ServerName" JSON..= serverName,
+                            "SslMode" JSON..= sslMode]
+                           (Prelude.catMaybes
+                              [(JSON..=) "CertificateArn" Prelude.<$> certificateArn]))}
+instance JSON.ToJSON MariaDbSettingsProperty where
+  toJSON MariaDbSettingsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["Port" JSON..= port, "ServerName" JSON..= serverName,
+               "SslMode" JSON..= sslMode]
+              (Prelude.catMaybes
+                 [(JSON..=) "CertificateArn" Prelude.<$> certificateArn])))
+instance Property "CertificateArn" MariaDbSettingsProperty where
+  type PropertyType "CertificateArn" MariaDbSettingsProperty = Value Prelude.Text
+  set newValue MariaDbSettingsProperty {..}
+    = MariaDbSettingsProperty
+        {certificateArn = Prelude.pure newValue, ..}
+instance Property "Port" MariaDbSettingsProperty where
+  type PropertyType "Port" MariaDbSettingsProperty = Value Prelude.Integer
+  set newValue MariaDbSettingsProperty {..}
+    = MariaDbSettingsProperty {port = newValue, ..}
+instance Property "ServerName" MariaDbSettingsProperty where
+  type PropertyType "ServerName" MariaDbSettingsProperty = Value Prelude.Text
+  set newValue MariaDbSettingsProperty {..}
+    = MariaDbSettingsProperty {serverName = newValue, ..}
+instance Property "SslMode" MariaDbSettingsProperty where
+  type PropertyType "SslMode" MariaDbSettingsProperty = Value Prelude.Text
+  set newValue MariaDbSettingsProperty {..}
+    = MariaDbSettingsProperty {sslMode = newValue, ..}
diff --git a/gen/Stratosphere/DMS/DataProvider/MariaDbSettingsProperty.hs-boot b/gen/Stratosphere/DMS/DataProvider/MariaDbSettingsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/DataProvider/MariaDbSettingsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DMS.DataProvider.MariaDbSettingsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data MariaDbSettingsProperty :: Prelude.Type
+instance ToResourceProperties MariaDbSettingsProperty
+instance Prelude.Eq MariaDbSettingsProperty
+instance Prelude.Show MariaDbSettingsProperty
+instance JSON.ToJSON MariaDbSettingsProperty
diff --git a/gen/Stratosphere/DMS/DataProvider/MicrosoftSqlServerSettingsProperty.hs b/gen/Stratosphere/DMS/DataProvider/MicrosoftSqlServerSettingsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/DataProvider/MicrosoftSqlServerSettingsProperty.hs
@@ -0,0 +1,78 @@
+module Stratosphere.DMS.DataProvider.MicrosoftSqlServerSettingsProperty (
+        MicrosoftSqlServerSettingsProperty(..),
+        mkMicrosoftSqlServerSettingsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data MicrosoftSqlServerSettingsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-microsoftsqlserversettings.html>
+    MicrosoftSqlServerSettingsProperty {haddock_workaround_ :: (),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-microsoftsqlserversettings.html#cfn-dms-dataprovider-microsoftsqlserversettings-certificatearn>
+                                        certificateArn :: (Prelude.Maybe (Value Prelude.Text)),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-microsoftsqlserversettings.html#cfn-dms-dataprovider-microsoftsqlserversettings-databasename>
+                                        databaseName :: (Value Prelude.Text),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-microsoftsqlserversettings.html#cfn-dms-dataprovider-microsoftsqlserversettings-port>
+                                        port :: (Value Prelude.Integer),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-microsoftsqlserversettings.html#cfn-dms-dataprovider-microsoftsqlserversettings-servername>
+                                        serverName :: (Value Prelude.Text),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-microsoftsqlserversettings.html#cfn-dms-dataprovider-microsoftsqlserversettings-sslmode>
+                                        sslMode :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkMicrosoftSqlServerSettingsProperty ::
+  Value Prelude.Text
+  -> Value Prelude.Integer
+     -> Value Prelude.Text
+        -> Value Prelude.Text -> MicrosoftSqlServerSettingsProperty
+mkMicrosoftSqlServerSettingsProperty
+  databaseName
+  port
+  serverName
+  sslMode
+  = MicrosoftSqlServerSettingsProperty
+      {haddock_workaround_ = (), databaseName = databaseName,
+       port = port, serverName = serverName, sslMode = sslMode,
+       certificateArn = Prelude.Nothing}
+instance ToResourceProperties MicrosoftSqlServerSettingsProperty where
+  toResourceProperties MicrosoftSqlServerSettingsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::DataProvider.MicrosoftSqlServerSettings",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["DatabaseName" JSON..= databaseName, "Port" JSON..= port,
+                            "ServerName" JSON..= serverName, "SslMode" JSON..= sslMode]
+                           (Prelude.catMaybes
+                              [(JSON..=) "CertificateArn" Prelude.<$> certificateArn]))}
+instance JSON.ToJSON MicrosoftSqlServerSettingsProperty where
+  toJSON MicrosoftSqlServerSettingsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["DatabaseName" JSON..= databaseName, "Port" JSON..= port,
+               "ServerName" JSON..= serverName, "SslMode" JSON..= sslMode]
+              (Prelude.catMaybes
+                 [(JSON..=) "CertificateArn" Prelude.<$> certificateArn])))
+instance Property "CertificateArn" MicrosoftSqlServerSettingsProperty where
+  type PropertyType "CertificateArn" MicrosoftSqlServerSettingsProperty = Value Prelude.Text
+  set newValue MicrosoftSqlServerSettingsProperty {..}
+    = MicrosoftSqlServerSettingsProperty
+        {certificateArn = Prelude.pure newValue, ..}
+instance Property "DatabaseName" MicrosoftSqlServerSettingsProperty where
+  type PropertyType "DatabaseName" MicrosoftSqlServerSettingsProperty = Value Prelude.Text
+  set newValue MicrosoftSqlServerSettingsProperty {..}
+    = MicrosoftSqlServerSettingsProperty {databaseName = newValue, ..}
+instance Property "Port" MicrosoftSqlServerSettingsProperty where
+  type PropertyType "Port" MicrosoftSqlServerSettingsProperty = Value Prelude.Integer
+  set newValue MicrosoftSqlServerSettingsProperty {..}
+    = MicrosoftSqlServerSettingsProperty {port = newValue, ..}
+instance Property "ServerName" MicrosoftSqlServerSettingsProperty where
+  type PropertyType "ServerName" MicrosoftSqlServerSettingsProperty = Value Prelude.Text
+  set newValue MicrosoftSqlServerSettingsProperty {..}
+    = MicrosoftSqlServerSettingsProperty {serverName = newValue, ..}
+instance Property "SslMode" MicrosoftSqlServerSettingsProperty where
+  type PropertyType "SslMode" MicrosoftSqlServerSettingsProperty = Value Prelude.Text
+  set newValue MicrosoftSqlServerSettingsProperty {..}
+    = MicrosoftSqlServerSettingsProperty {sslMode = newValue, ..}
diff --git a/gen/Stratosphere/DMS/DataProvider/MicrosoftSqlServerSettingsProperty.hs-boot b/gen/Stratosphere/DMS/DataProvider/MicrosoftSqlServerSettingsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/DataProvider/MicrosoftSqlServerSettingsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DMS.DataProvider.MicrosoftSqlServerSettingsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data MicrosoftSqlServerSettingsProperty :: Prelude.Type
+instance ToResourceProperties MicrosoftSqlServerSettingsProperty
+instance Prelude.Eq MicrosoftSqlServerSettingsProperty
+instance Prelude.Show MicrosoftSqlServerSettingsProperty
+instance JSON.ToJSON MicrosoftSqlServerSettingsProperty
diff --git a/gen/Stratosphere/DMS/DataProvider/MongoDbSettingsProperty.hs b/gen/Stratosphere/DMS/DataProvider/MongoDbSettingsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/DataProvider/MongoDbSettingsProperty.hs
@@ -0,0 +1,100 @@
+module Stratosphere.DMS.DataProvider.MongoDbSettingsProperty (
+        MongoDbSettingsProperty(..), mkMongoDbSettingsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data MongoDbSettingsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-mongodbsettings.html>
+    MongoDbSettingsProperty {haddock_workaround_ :: (),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-mongodbsettings.html#cfn-dms-dataprovider-mongodbsettings-authmechanism>
+                             authMechanism :: (Prelude.Maybe (Value Prelude.Text)),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-mongodbsettings.html#cfn-dms-dataprovider-mongodbsettings-authsource>
+                             authSource :: (Prelude.Maybe (Value Prelude.Text)),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-mongodbsettings.html#cfn-dms-dataprovider-mongodbsettings-authtype>
+                             authType :: (Prelude.Maybe (Value Prelude.Text)),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-mongodbsettings.html#cfn-dms-dataprovider-mongodbsettings-certificatearn>
+                             certificateArn :: (Prelude.Maybe (Value Prelude.Text)),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-mongodbsettings.html#cfn-dms-dataprovider-mongodbsettings-databasename>
+                             databaseName :: (Prelude.Maybe (Value Prelude.Text)),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-mongodbsettings.html#cfn-dms-dataprovider-mongodbsettings-port>
+                             port :: (Value Prelude.Integer),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-mongodbsettings.html#cfn-dms-dataprovider-mongodbsettings-servername>
+                             serverName :: (Value Prelude.Text),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-mongodbsettings.html#cfn-dms-dataprovider-mongodbsettings-sslmode>
+                             sslMode :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkMongoDbSettingsProperty ::
+  Value Prelude.Integer
+  -> Value Prelude.Text -> MongoDbSettingsProperty
+mkMongoDbSettingsProperty port serverName
+  = MongoDbSettingsProperty
+      {haddock_workaround_ = (), port = port, serverName = serverName,
+       authMechanism = Prelude.Nothing, authSource = Prelude.Nothing,
+       authType = Prelude.Nothing, certificateArn = Prelude.Nothing,
+       databaseName = Prelude.Nothing, sslMode = Prelude.Nothing}
+instance ToResourceProperties MongoDbSettingsProperty where
+  toResourceProperties MongoDbSettingsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::DataProvider.MongoDbSettings",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["Port" JSON..= port, "ServerName" JSON..= serverName]
+                           (Prelude.catMaybes
+                              [(JSON..=) "AuthMechanism" Prelude.<$> authMechanism,
+                               (JSON..=) "AuthSource" Prelude.<$> authSource,
+                               (JSON..=) "AuthType" Prelude.<$> authType,
+                               (JSON..=) "CertificateArn" Prelude.<$> certificateArn,
+                               (JSON..=) "DatabaseName" Prelude.<$> databaseName,
+                               (JSON..=) "SslMode" Prelude.<$> sslMode]))}
+instance JSON.ToJSON MongoDbSettingsProperty where
+  toJSON MongoDbSettingsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["Port" JSON..= port, "ServerName" JSON..= serverName]
+              (Prelude.catMaybes
+                 [(JSON..=) "AuthMechanism" Prelude.<$> authMechanism,
+                  (JSON..=) "AuthSource" Prelude.<$> authSource,
+                  (JSON..=) "AuthType" Prelude.<$> authType,
+                  (JSON..=) "CertificateArn" Prelude.<$> certificateArn,
+                  (JSON..=) "DatabaseName" Prelude.<$> databaseName,
+                  (JSON..=) "SslMode" Prelude.<$> sslMode])))
+instance Property "AuthMechanism" MongoDbSettingsProperty where
+  type PropertyType "AuthMechanism" MongoDbSettingsProperty = Value Prelude.Text
+  set newValue MongoDbSettingsProperty {..}
+    = MongoDbSettingsProperty
+        {authMechanism = Prelude.pure newValue, ..}
+instance Property "AuthSource" MongoDbSettingsProperty where
+  type PropertyType "AuthSource" MongoDbSettingsProperty = Value Prelude.Text
+  set newValue MongoDbSettingsProperty {..}
+    = MongoDbSettingsProperty {authSource = Prelude.pure newValue, ..}
+instance Property "AuthType" MongoDbSettingsProperty where
+  type PropertyType "AuthType" MongoDbSettingsProperty = Value Prelude.Text
+  set newValue MongoDbSettingsProperty {..}
+    = MongoDbSettingsProperty {authType = Prelude.pure newValue, ..}
+instance Property "CertificateArn" MongoDbSettingsProperty where
+  type PropertyType "CertificateArn" MongoDbSettingsProperty = Value Prelude.Text
+  set newValue MongoDbSettingsProperty {..}
+    = MongoDbSettingsProperty
+        {certificateArn = Prelude.pure newValue, ..}
+instance Property "DatabaseName" MongoDbSettingsProperty where
+  type PropertyType "DatabaseName" MongoDbSettingsProperty = Value Prelude.Text
+  set newValue MongoDbSettingsProperty {..}
+    = MongoDbSettingsProperty
+        {databaseName = Prelude.pure newValue, ..}
+instance Property "Port" MongoDbSettingsProperty where
+  type PropertyType "Port" MongoDbSettingsProperty = Value Prelude.Integer
+  set newValue MongoDbSettingsProperty {..}
+    = MongoDbSettingsProperty {port = newValue, ..}
+instance Property "ServerName" MongoDbSettingsProperty where
+  type PropertyType "ServerName" MongoDbSettingsProperty = Value Prelude.Text
+  set newValue MongoDbSettingsProperty {..}
+    = MongoDbSettingsProperty {serverName = newValue, ..}
+instance Property "SslMode" MongoDbSettingsProperty where
+  type PropertyType "SslMode" MongoDbSettingsProperty = Value Prelude.Text
+  set newValue MongoDbSettingsProperty {..}
+    = MongoDbSettingsProperty {sslMode = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DMS/DataProvider/MongoDbSettingsProperty.hs-boot b/gen/Stratosphere/DMS/DataProvider/MongoDbSettingsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/DataProvider/MongoDbSettingsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DMS.DataProvider.MongoDbSettingsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data MongoDbSettingsProperty :: Prelude.Type
+instance ToResourceProperties MongoDbSettingsProperty
+instance Prelude.Eq MongoDbSettingsProperty
+instance Prelude.Show MongoDbSettingsProperty
+instance JSON.ToJSON MongoDbSettingsProperty
diff --git a/gen/Stratosphere/DMS/DataProvider/MySqlSettingsProperty.hs b/gen/Stratosphere/DMS/DataProvider/MySqlSettingsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/DataProvider/MySqlSettingsProperty.hs
@@ -0,0 +1,65 @@
+module Stratosphere.DMS.DataProvider.MySqlSettingsProperty (
+        MySqlSettingsProperty(..), mkMySqlSettingsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data MySqlSettingsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-mysqlsettings.html>
+    MySqlSettingsProperty {haddock_workaround_ :: (),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-mysqlsettings.html#cfn-dms-dataprovider-mysqlsettings-certificatearn>
+                           certificateArn :: (Prelude.Maybe (Value Prelude.Text)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-mysqlsettings.html#cfn-dms-dataprovider-mysqlsettings-port>
+                           port :: (Value Prelude.Integer),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-mysqlsettings.html#cfn-dms-dataprovider-mysqlsettings-servername>
+                           serverName :: (Value Prelude.Text),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-mysqlsettings.html#cfn-dms-dataprovider-mysqlsettings-sslmode>
+                           sslMode :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkMySqlSettingsProperty ::
+  Value Prelude.Integer
+  -> Value Prelude.Text
+     -> Value Prelude.Text -> MySqlSettingsProperty
+mkMySqlSettingsProperty port serverName sslMode
+  = MySqlSettingsProperty
+      {haddock_workaround_ = (), port = port, serverName = serverName,
+       sslMode = sslMode, certificateArn = Prelude.Nothing}
+instance ToResourceProperties MySqlSettingsProperty where
+  toResourceProperties MySqlSettingsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::DataProvider.MySqlSettings",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["Port" JSON..= port, "ServerName" JSON..= serverName,
+                            "SslMode" JSON..= sslMode]
+                           (Prelude.catMaybes
+                              [(JSON..=) "CertificateArn" Prelude.<$> certificateArn]))}
+instance JSON.ToJSON MySqlSettingsProperty where
+  toJSON MySqlSettingsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["Port" JSON..= port, "ServerName" JSON..= serverName,
+               "SslMode" JSON..= sslMode]
+              (Prelude.catMaybes
+                 [(JSON..=) "CertificateArn" Prelude.<$> certificateArn])))
+instance Property "CertificateArn" MySqlSettingsProperty where
+  type PropertyType "CertificateArn" MySqlSettingsProperty = Value Prelude.Text
+  set newValue MySqlSettingsProperty {..}
+    = MySqlSettingsProperty
+        {certificateArn = Prelude.pure newValue, ..}
+instance Property "Port" MySqlSettingsProperty where
+  type PropertyType "Port" MySqlSettingsProperty = Value Prelude.Integer
+  set newValue MySqlSettingsProperty {..}
+    = MySqlSettingsProperty {port = newValue, ..}
+instance Property "ServerName" MySqlSettingsProperty where
+  type PropertyType "ServerName" MySqlSettingsProperty = Value Prelude.Text
+  set newValue MySqlSettingsProperty {..}
+    = MySqlSettingsProperty {serverName = newValue, ..}
+instance Property "SslMode" MySqlSettingsProperty where
+  type PropertyType "SslMode" MySqlSettingsProperty = Value Prelude.Text
+  set newValue MySqlSettingsProperty {..}
+    = MySqlSettingsProperty {sslMode = newValue, ..}
diff --git a/gen/Stratosphere/DMS/DataProvider/MySqlSettingsProperty.hs-boot b/gen/Stratosphere/DMS/DataProvider/MySqlSettingsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/DataProvider/MySqlSettingsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DMS.DataProvider.MySqlSettingsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data MySqlSettingsProperty :: Prelude.Type
+instance ToResourceProperties MySqlSettingsProperty
+instance Prelude.Eq MySqlSettingsProperty
+instance Prelude.Show MySqlSettingsProperty
+instance JSON.ToJSON MySqlSettingsProperty
diff --git a/gen/Stratosphere/DMS/DataProvider/OracleSettingsProperty.hs b/gen/Stratosphere/DMS/DataProvider/OracleSettingsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/DataProvider/OracleSettingsProperty.hs
@@ -0,0 +1,133 @@
+module Stratosphere.DMS.DataProvider.OracleSettingsProperty (
+        OracleSettingsProperty(..), mkOracleSettingsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data OracleSettingsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-oraclesettings.html>
+    OracleSettingsProperty {haddock_workaround_ :: (),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-oraclesettings.html#cfn-dms-dataprovider-oraclesettings-asmserver>
+                            asmServer :: (Prelude.Maybe (Value Prelude.Text)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-oraclesettings.html#cfn-dms-dataprovider-oraclesettings-certificatearn>
+                            certificateArn :: (Prelude.Maybe (Value Prelude.Text)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-oraclesettings.html#cfn-dms-dataprovider-oraclesettings-databasename>
+                            databaseName :: (Value Prelude.Text),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-oraclesettings.html#cfn-dms-dataprovider-oraclesettings-port>
+                            port :: (Value Prelude.Integer),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-oraclesettings.html#cfn-dms-dataprovider-oraclesettings-secretsmanageroracleasmaccessrolearn>
+                            secretsManagerOracleAsmAccessRoleArn :: (Prelude.Maybe (Value Prelude.Text)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-oraclesettings.html#cfn-dms-dataprovider-oraclesettings-secretsmanageroracleasmsecretid>
+                            secretsManagerOracleAsmSecretId :: (Prelude.Maybe (Value Prelude.Text)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-oraclesettings.html#cfn-dms-dataprovider-oraclesettings-secretsmanagersecuritydbencryptionaccessrolearn>
+                            secretsManagerSecurityDbEncryptionAccessRoleArn :: (Prelude.Maybe (Value Prelude.Text)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-oraclesettings.html#cfn-dms-dataprovider-oraclesettings-secretsmanagersecuritydbencryptionsecretid>
+                            secretsManagerSecurityDbEncryptionSecretId :: (Prelude.Maybe (Value Prelude.Text)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-oraclesettings.html#cfn-dms-dataprovider-oraclesettings-servername>
+                            serverName :: (Value Prelude.Text),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-oraclesettings.html#cfn-dms-dataprovider-oraclesettings-sslmode>
+                            sslMode :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkOracleSettingsProperty ::
+  Value Prelude.Text
+  -> Value Prelude.Integer
+     -> Value Prelude.Text
+        -> Value Prelude.Text -> OracleSettingsProperty
+mkOracleSettingsProperty databaseName port serverName sslMode
+  = OracleSettingsProperty
+      {haddock_workaround_ = (), databaseName = databaseName,
+       port = port, serverName = serverName, sslMode = sslMode,
+       asmServer = Prelude.Nothing, certificateArn = Prelude.Nothing,
+       secretsManagerOracleAsmAccessRoleArn = Prelude.Nothing,
+       secretsManagerOracleAsmSecretId = Prelude.Nothing,
+       secretsManagerSecurityDbEncryptionAccessRoleArn = Prelude.Nothing,
+       secretsManagerSecurityDbEncryptionSecretId = Prelude.Nothing}
+instance ToResourceProperties OracleSettingsProperty where
+  toResourceProperties OracleSettingsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::DataProvider.OracleSettings",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["DatabaseName" JSON..= databaseName, "Port" JSON..= port,
+                            "ServerName" JSON..= serverName, "SslMode" JSON..= sslMode]
+                           (Prelude.catMaybes
+                              [(JSON..=) "AsmServer" Prelude.<$> asmServer,
+                               (JSON..=) "CertificateArn" Prelude.<$> certificateArn,
+                               (JSON..=) "SecretsManagerOracleAsmAccessRoleArn"
+                                 Prelude.<$> secretsManagerOracleAsmAccessRoleArn,
+                               (JSON..=) "SecretsManagerOracleAsmSecretId"
+                                 Prelude.<$> secretsManagerOracleAsmSecretId,
+                               (JSON..=) "SecretsManagerSecurityDbEncryptionAccessRoleArn"
+                                 Prelude.<$> secretsManagerSecurityDbEncryptionAccessRoleArn,
+                               (JSON..=) "SecretsManagerSecurityDbEncryptionSecretId"
+                                 Prelude.<$> secretsManagerSecurityDbEncryptionSecretId]))}
+instance JSON.ToJSON OracleSettingsProperty where
+  toJSON OracleSettingsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["DatabaseName" JSON..= databaseName, "Port" JSON..= port,
+               "ServerName" JSON..= serverName, "SslMode" JSON..= sslMode]
+              (Prelude.catMaybes
+                 [(JSON..=) "AsmServer" Prelude.<$> asmServer,
+                  (JSON..=) "CertificateArn" Prelude.<$> certificateArn,
+                  (JSON..=) "SecretsManagerOracleAsmAccessRoleArn"
+                    Prelude.<$> secretsManagerOracleAsmAccessRoleArn,
+                  (JSON..=) "SecretsManagerOracleAsmSecretId"
+                    Prelude.<$> secretsManagerOracleAsmSecretId,
+                  (JSON..=) "SecretsManagerSecurityDbEncryptionAccessRoleArn"
+                    Prelude.<$> secretsManagerSecurityDbEncryptionAccessRoleArn,
+                  (JSON..=) "SecretsManagerSecurityDbEncryptionSecretId"
+                    Prelude.<$> secretsManagerSecurityDbEncryptionSecretId])))
+instance Property "AsmServer" OracleSettingsProperty where
+  type PropertyType "AsmServer" OracleSettingsProperty = Value Prelude.Text
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty {asmServer = Prelude.pure newValue, ..}
+instance Property "CertificateArn" OracleSettingsProperty where
+  type PropertyType "CertificateArn" OracleSettingsProperty = Value Prelude.Text
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty
+        {certificateArn = Prelude.pure newValue, ..}
+instance Property "DatabaseName" OracleSettingsProperty where
+  type PropertyType "DatabaseName" OracleSettingsProperty = Value Prelude.Text
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty {databaseName = newValue, ..}
+instance Property "Port" OracleSettingsProperty where
+  type PropertyType "Port" OracleSettingsProperty = Value Prelude.Integer
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty {port = newValue, ..}
+instance Property "SecretsManagerOracleAsmAccessRoleArn" OracleSettingsProperty where
+  type PropertyType "SecretsManagerOracleAsmAccessRoleArn" OracleSettingsProperty = Value Prelude.Text
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty
+        {secretsManagerOracleAsmAccessRoleArn = Prelude.pure newValue, ..}
+instance Property "SecretsManagerOracleAsmSecretId" OracleSettingsProperty where
+  type PropertyType "SecretsManagerOracleAsmSecretId" OracleSettingsProperty = Value Prelude.Text
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty
+        {secretsManagerOracleAsmSecretId = Prelude.pure newValue, ..}
+instance Property "SecretsManagerSecurityDbEncryptionAccessRoleArn" OracleSettingsProperty where
+  type PropertyType "SecretsManagerSecurityDbEncryptionAccessRoleArn" OracleSettingsProperty = Value Prelude.Text
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty
+        {secretsManagerSecurityDbEncryptionAccessRoleArn = Prelude.pure
+                                                             newValue,
+         ..}
+instance Property "SecretsManagerSecurityDbEncryptionSecretId" OracleSettingsProperty where
+  type PropertyType "SecretsManagerSecurityDbEncryptionSecretId" OracleSettingsProperty = Value Prelude.Text
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty
+        {secretsManagerSecurityDbEncryptionSecretId = Prelude.pure
+                                                        newValue,
+         ..}
+instance Property "ServerName" OracleSettingsProperty where
+  type PropertyType "ServerName" OracleSettingsProperty = Value Prelude.Text
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty {serverName = newValue, ..}
+instance Property "SslMode" OracleSettingsProperty where
+  type PropertyType "SslMode" OracleSettingsProperty = Value Prelude.Text
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty {sslMode = newValue, ..}
diff --git a/gen/Stratosphere/DMS/DataProvider/OracleSettingsProperty.hs-boot b/gen/Stratosphere/DMS/DataProvider/OracleSettingsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/DataProvider/OracleSettingsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DMS.DataProvider.OracleSettingsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data OracleSettingsProperty :: Prelude.Type
+instance ToResourceProperties OracleSettingsProperty
+instance Prelude.Eq OracleSettingsProperty
+instance Prelude.Show OracleSettingsProperty
+instance JSON.ToJSON OracleSettingsProperty
diff --git a/gen/Stratosphere/DMS/DataProvider/PostgreSqlSettingsProperty.hs b/gen/Stratosphere/DMS/DataProvider/PostgreSqlSettingsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/DataProvider/PostgreSqlSettingsProperty.hs
@@ -0,0 +1,73 @@
+module Stratosphere.DMS.DataProvider.PostgreSqlSettingsProperty (
+        PostgreSqlSettingsProperty(..), mkPostgreSqlSettingsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data PostgreSqlSettingsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-postgresqlsettings.html>
+    PostgreSqlSettingsProperty {haddock_workaround_ :: (),
+                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-postgresqlsettings.html#cfn-dms-dataprovider-postgresqlsettings-certificatearn>
+                                certificateArn :: (Prelude.Maybe (Value Prelude.Text)),
+                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-postgresqlsettings.html#cfn-dms-dataprovider-postgresqlsettings-databasename>
+                                databaseName :: (Value Prelude.Text),
+                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-postgresqlsettings.html#cfn-dms-dataprovider-postgresqlsettings-port>
+                                port :: (Value Prelude.Integer),
+                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-postgresqlsettings.html#cfn-dms-dataprovider-postgresqlsettings-servername>
+                                serverName :: (Value Prelude.Text),
+                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-postgresqlsettings.html#cfn-dms-dataprovider-postgresqlsettings-sslmode>
+                                sslMode :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkPostgreSqlSettingsProperty ::
+  Value Prelude.Text
+  -> Value Prelude.Integer
+     -> Value Prelude.Text
+        -> Value Prelude.Text -> PostgreSqlSettingsProperty
+mkPostgreSqlSettingsProperty databaseName port serverName sslMode
+  = PostgreSqlSettingsProperty
+      {haddock_workaround_ = (), databaseName = databaseName,
+       port = port, serverName = serverName, sslMode = sslMode,
+       certificateArn = Prelude.Nothing}
+instance ToResourceProperties PostgreSqlSettingsProperty where
+  toResourceProperties PostgreSqlSettingsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::DataProvider.PostgreSqlSettings",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["DatabaseName" JSON..= databaseName, "Port" JSON..= port,
+                            "ServerName" JSON..= serverName, "SslMode" JSON..= sslMode]
+                           (Prelude.catMaybes
+                              [(JSON..=) "CertificateArn" Prelude.<$> certificateArn]))}
+instance JSON.ToJSON PostgreSqlSettingsProperty where
+  toJSON PostgreSqlSettingsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["DatabaseName" JSON..= databaseName, "Port" JSON..= port,
+               "ServerName" JSON..= serverName, "SslMode" JSON..= sslMode]
+              (Prelude.catMaybes
+                 [(JSON..=) "CertificateArn" Prelude.<$> certificateArn])))
+instance Property "CertificateArn" PostgreSqlSettingsProperty where
+  type PropertyType "CertificateArn" PostgreSqlSettingsProperty = Value Prelude.Text
+  set newValue PostgreSqlSettingsProperty {..}
+    = PostgreSqlSettingsProperty
+        {certificateArn = Prelude.pure newValue, ..}
+instance Property "DatabaseName" PostgreSqlSettingsProperty where
+  type PropertyType "DatabaseName" PostgreSqlSettingsProperty = Value Prelude.Text
+  set newValue PostgreSqlSettingsProperty {..}
+    = PostgreSqlSettingsProperty {databaseName = newValue, ..}
+instance Property "Port" PostgreSqlSettingsProperty where
+  type PropertyType "Port" PostgreSqlSettingsProperty = Value Prelude.Integer
+  set newValue PostgreSqlSettingsProperty {..}
+    = PostgreSqlSettingsProperty {port = newValue, ..}
+instance Property "ServerName" PostgreSqlSettingsProperty where
+  type PropertyType "ServerName" PostgreSqlSettingsProperty = Value Prelude.Text
+  set newValue PostgreSqlSettingsProperty {..}
+    = PostgreSqlSettingsProperty {serverName = newValue, ..}
+instance Property "SslMode" PostgreSqlSettingsProperty where
+  type PropertyType "SslMode" PostgreSqlSettingsProperty = Value Prelude.Text
+  set newValue PostgreSqlSettingsProperty {..}
+    = PostgreSqlSettingsProperty {sslMode = newValue, ..}
diff --git a/gen/Stratosphere/DMS/DataProvider/PostgreSqlSettingsProperty.hs-boot b/gen/Stratosphere/DMS/DataProvider/PostgreSqlSettingsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/DataProvider/PostgreSqlSettingsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DMS.DataProvider.PostgreSqlSettingsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data PostgreSqlSettingsProperty :: Prelude.Type
+instance ToResourceProperties PostgreSqlSettingsProperty
+instance Prelude.Eq PostgreSqlSettingsProperty
+instance Prelude.Show PostgreSqlSettingsProperty
+instance JSON.ToJSON PostgreSqlSettingsProperty
diff --git a/gen/Stratosphere/DMS/DataProvider/RedshiftSettingsProperty.hs b/gen/Stratosphere/DMS/DataProvider/RedshiftSettingsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/DataProvider/RedshiftSettingsProperty.hs
@@ -0,0 +1,50 @@
+module Stratosphere.DMS.DataProvider.RedshiftSettingsProperty (
+        RedshiftSettingsProperty(..), mkRedshiftSettingsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data RedshiftSettingsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-redshiftsettings.html>
+    RedshiftSettingsProperty {haddock_workaround_ :: (),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-redshiftsettings.html#cfn-dms-dataprovider-redshiftsettings-databasename>
+                              databaseName :: (Value Prelude.Text),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-redshiftsettings.html#cfn-dms-dataprovider-redshiftsettings-port>
+                              port :: (Value Prelude.Integer),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-redshiftsettings.html#cfn-dms-dataprovider-redshiftsettings-servername>
+                              serverName :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkRedshiftSettingsProperty ::
+  Value Prelude.Text
+  -> Value Prelude.Integer
+     -> Value Prelude.Text -> RedshiftSettingsProperty
+mkRedshiftSettingsProperty databaseName port serverName
+  = RedshiftSettingsProperty
+      {haddock_workaround_ = (), databaseName = databaseName,
+       port = port, serverName = serverName}
+instance ToResourceProperties RedshiftSettingsProperty where
+  toResourceProperties RedshiftSettingsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::DataProvider.RedshiftSettings",
+         supportsTags = Prelude.False,
+         properties = ["DatabaseName" JSON..= databaseName,
+                       "Port" JSON..= port, "ServerName" JSON..= serverName]}
+instance JSON.ToJSON RedshiftSettingsProperty where
+  toJSON RedshiftSettingsProperty {..}
+    = JSON.object
+        ["DatabaseName" JSON..= databaseName, "Port" JSON..= port,
+         "ServerName" JSON..= serverName]
+instance Property "DatabaseName" RedshiftSettingsProperty where
+  type PropertyType "DatabaseName" RedshiftSettingsProperty = Value Prelude.Text
+  set newValue RedshiftSettingsProperty {..}
+    = RedshiftSettingsProperty {databaseName = newValue, ..}
+instance Property "Port" RedshiftSettingsProperty where
+  type PropertyType "Port" RedshiftSettingsProperty = Value Prelude.Integer
+  set newValue RedshiftSettingsProperty {..}
+    = RedshiftSettingsProperty {port = newValue, ..}
+instance Property "ServerName" RedshiftSettingsProperty where
+  type PropertyType "ServerName" RedshiftSettingsProperty = Value Prelude.Text
+  set newValue RedshiftSettingsProperty {..}
+    = RedshiftSettingsProperty {serverName = newValue, ..}
diff --git a/gen/Stratosphere/DMS/DataProvider/RedshiftSettingsProperty.hs-boot b/gen/Stratosphere/DMS/DataProvider/RedshiftSettingsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/DataProvider/RedshiftSettingsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DMS.DataProvider.RedshiftSettingsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data RedshiftSettingsProperty :: Prelude.Type
+instance ToResourceProperties RedshiftSettingsProperty
+instance Prelude.Eq RedshiftSettingsProperty
+instance Prelude.Show RedshiftSettingsProperty
+instance JSON.ToJSON RedshiftSettingsProperty
diff --git a/gen/Stratosphere/DMS/DataProvider/SettingsProperty.hs b/gen/Stratosphere/DMS/DataProvider/SettingsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/DataProvider/SettingsProperty.hs
@@ -0,0 +1,128 @@
+module Stratosphere.DMS.DataProvider.SettingsProperty (
+        module Exports, SettingsProperty(..), mkSettingsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.DMS.DataProvider.DocDbSettingsProperty as Exports
+import {-# SOURCE #-} Stratosphere.DMS.DataProvider.IbmDb2LuwSettingsProperty as Exports
+import {-# SOURCE #-} Stratosphere.DMS.DataProvider.IbmDb2zOsSettingsProperty as Exports
+import {-# SOURCE #-} Stratosphere.DMS.DataProvider.MariaDbSettingsProperty as Exports
+import {-# SOURCE #-} Stratosphere.DMS.DataProvider.MicrosoftSqlServerSettingsProperty as Exports
+import {-# SOURCE #-} Stratosphere.DMS.DataProvider.MongoDbSettingsProperty as Exports
+import {-# SOURCE #-} Stratosphere.DMS.DataProvider.MySqlSettingsProperty as Exports
+import {-# SOURCE #-} Stratosphere.DMS.DataProvider.OracleSettingsProperty as Exports
+import {-# SOURCE #-} Stratosphere.DMS.DataProvider.PostgreSqlSettingsProperty as Exports
+import {-# SOURCE #-} Stratosphere.DMS.DataProvider.RedshiftSettingsProperty as Exports
+import Stratosphere.ResourceProperties
+data SettingsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-settings.html>
+    SettingsProperty {haddock_workaround_ :: (),
+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-settings.html#cfn-dms-dataprovider-settings-docdbsettings>
+                      docDbSettings :: (Prelude.Maybe DocDbSettingsProperty),
+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-settings.html#cfn-dms-dataprovider-settings-ibmdb2luwsettings>
+                      ibmDb2LuwSettings :: (Prelude.Maybe IbmDb2LuwSettingsProperty),
+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-settings.html#cfn-dms-dataprovider-settings-ibmdb2zossettings>
+                      ibmDb2zOsSettings :: (Prelude.Maybe IbmDb2zOsSettingsProperty),
+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-settings.html#cfn-dms-dataprovider-settings-mariadbsettings>
+                      mariaDbSettings :: (Prelude.Maybe MariaDbSettingsProperty),
+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-settings.html#cfn-dms-dataprovider-settings-microsoftsqlserversettings>
+                      microsoftSqlServerSettings :: (Prelude.Maybe MicrosoftSqlServerSettingsProperty),
+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-settings.html#cfn-dms-dataprovider-settings-mongodbsettings>
+                      mongoDbSettings :: (Prelude.Maybe MongoDbSettingsProperty),
+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-settings.html#cfn-dms-dataprovider-settings-mysqlsettings>
+                      mySqlSettings :: (Prelude.Maybe MySqlSettingsProperty),
+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-settings.html#cfn-dms-dataprovider-settings-oraclesettings>
+                      oracleSettings :: (Prelude.Maybe OracleSettingsProperty),
+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-settings.html#cfn-dms-dataprovider-settings-postgresqlsettings>
+                      postgreSqlSettings :: (Prelude.Maybe PostgreSqlSettingsProperty),
+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-settings.html#cfn-dms-dataprovider-settings-redshiftsettings>
+                      redshiftSettings :: (Prelude.Maybe RedshiftSettingsProperty)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkSettingsProperty :: SettingsProperty
+mkSettingsProperty
+  = SettingsProperty
+      {haddock_workaround_ = (), docDbSettings = Prelude.Nothing,
+       ibmDb2LuwSettings = Prelude.Nothing,
+       ibmDb2zOsSettings = Prelude.Nothing,
+       mariaDbSettings = Prelude.Nothing,
+       microsoftSqlServerSettings = Prelude.Nothing,
+       mongoDbSettings = Prelude.Nothing, mySqlSettings = Prelude.Nothing,
+       oracleSettings = Prelude.Nothing,
+       postgreSqlSettings = Prelude.Nothing,
+       redshiftSettings = Prelude.Nothing}
+instance ToResourceProperties SettingsProperty where
+  toResourceProperties SettingsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::DataProvider.Settings",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "DocDbSettings" Prelude.<$> docDbSettings,
+                            (JSON..=) "IbmDb2LuwSettings" Prelude.<$> ibmDb2LuwSettings,
+                            (JSON..=) "IbmDb2zOsSettings" Prelude.<$> ibmDb2zOsSettings,
+                            (JSON..=) "MariaDbSettings" Prelude.<$> mariaDbSettings,
+                            (JSON..=) "MicrosoftSqlServerSettings"
+                              Prelude.<$> microsoftSqlServerSettings,
+                            (JSON..=) "MongoDbSettings" Prelude.<$> mongoDbSettings,
+                            (JSON..=) "MySqlSettings" Prelude.<$> mySqlSettings,
+                            (JSON..=) "OracleSettings" Prelude.<$> oracleSettings,
+                            (JSON..=) "PostgreSqlSettings" Prelude.<$> postgreSqlSettings,
+                            (JSON..=) "RedshiftSettings" Prelude.<$> redshiftSettings])}
+instance JSON.ToJSON SettingsProperty where
+  toJSON SettingsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "DocDbSettings" Prelude.<$> docDbSettings,
+               (JSON..=) "IbmDb2LuwSettings" Prelude.<$> ibmDb2LuwSettings,
+               (JSON..=) "IbmDb2zOsSettings" Prelude.<$> ibmDb2zOsSettings,
+               (JSON..=) "MariaDbSettings" Prelude.<$> mariaDbSettings,
+               (JSON..=) "MicrosoftSqlServerSettings"
+                 Prelude.<$> microsoftSqlServerSettings,
+               (JSON..=) "MongoDbSettings" Prelude.<$> mongoDbSettings,
+               (JSON..=) "MySqlSettings" Prelude.<$> mySqlSettings,
+               (JSON..=) "OracleSettings" Prelude.<$> oracleSettings,
+               (JSON..=) "PostgreSqlSettings" Prelude.<$> postgreSqlSettings,
+               (JSON..=) "RedshiftSettings" Prelude.<$> redshiftSettings]))
+instance Property "DocDbSettings" SettingsProperty where
+  type PropertyType "DocDbSettings" SettingsProperty = DocDbSettingsProperty
+  set newValue SettingsProperty {..}
+    = SettingsProperty {docDbSettings = Prelude.pure newValue, ..}
+instance Property "IbmDb2LuwSettings" SettingsProperty where
+  type PropertyType "IbmDb2LuwSettings" SettingsProperty = IbmDb2LuwSettingsProperty
+  set newValue SettingsProperty {..}
+    = SettingsProperty {ibmDb2LuwSettings = Prelude.pure newValue, ..}
+instance Property "IbmDb2zOsSettings" SettingsProperty where
+  type PropertyType "IbmDb2zOsSettings" SettingsProperty = IbmDb2zOsSettingsProperty
+  set newValue SettingsProperty {..}
+    = SettingsProperty {ibmDb2zOsSettings = Prelude.pure newValue, ..}
+instance Property "MariaDbSettings" SettingsProperty where
+  type PropertyType "MariaDbSettings" SettingsProperty = MariaDbSettingsProperty
+  set newValue SettingsProperty {..}
+    = SettingsProperty {mariaDbSettings = Prelude.pure newValue, ..}
+instance Property "MicrosoftSqlServerSettings" SettingsProperty where
+  type PropertyType "MicrosoftSqlServerSettings" SettingsProperty = MicrosoftSqlServerSettingsProperty
+  set newValue SettingsProperty {..}
+    = SettingsProperty
+        {microsoftSqlServerSettings = Prelude.pure newValue, ..}
+instance Property "MongoDbSettings" SettingsProperty where
+  type PropertyType "MongoDbSettings" SettingsProperty = MongoDbSettingsProperty
+  set newValue SettingsProperty {..}
+    = SettingsProperty {mongoDbSettings = Prelude.pure newValue, ..}
+instance Property "MySqlSettings" SettingsProperty where
+  type PropertyType "MySqlSettings" SettingsProperty = MySqlSettingsProperty
+  set newValue SettingsProperty {..}
+    = SettingsProperty {mySqlSettings = Prelude.pure newValue, ..}
+instance Property "OracleSettings" SettingsProperty where
+  type PropertyType "OracleSettings" SettingsProperty = OracleSettingsProperty
+  set newValue SettingsProperty {..}
+    = SettingsProperty {oracleSettings = Prelude.pure newValue, ..}
+instance Property "PostgreSqlSettings" SettingsProperty where
+  type PropertyType "PostgreSqlSettings" SettingsProperty = PostgreSqlSettingsProperty
+  set newValue SettingsProperty {..}
+    = SettingsProperty {postgreSqlSettings = Prelude.pure newValue, ..}
+instance Property "RedshiftSettings" SettingsProperty where
+  type PropertyType "RedshiftSettings" SettingsProperty = RedshiftSettingsProperty
+  set newValue SettingsProperty {..}
+    = SettingsProperty {redshiftSettings = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DMS/DataProvider/SettingsProperty.hs-boot b/gen/Stratosphere/DMS/DataProvider/SettingsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/DataProvider/SettingsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DMS.DataProvider.SettingsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data SettingsProperty :: Prelude.Type
+instance ToResourceProperties SettingsProperty
+instance Prelude.Eq SettingsProperty
+instance Prelude.Show SettingsProperty
+instance JSON.ToJSON SettingsProperty
diff --git a/gen/Stratosphere/DMS/Endpoint.hs b/gen/Stratosphere/DMS/Endpoint.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/Endpoint.hs
@@ -0,0 +1,319 @@
+module Stratosphere.DMS.Endpoint (
+        module Exports, Endpoint(..), mkEndpoint
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.DMS.Endpoint.DocDbSettingsProperty as Exports
+import {-# SOURCE #-} Stratosphere.DMS.Endpoint.DynamoDbSettingsProperty as Exports
+import {-# SOURCE #-} Stratosphere.DMS.Endpoint.ElasticsearchSettingsProperty as Exports
+import {-# SOURCE #-} Stratosphere.DMS.Endpoint.GcpMySQLSettingsProperty as Exports
+import {-# SOURCE #-} Stratosphere.DMS.Endpoint.IbmDb2SettingsProperty as Exports
+import {-# SOURCE #-} Stratosphere.DMS.Endpoint.KafkaSettingsProperty as Exports
+import {-# SOURCE #-} Stratosphere.DMS.Endpoint.KinesisSettingsProperty as Exports
+import {-# SOURCE #-} Stratosphere.DMS.Endpoint.MicrosoftSqlServerSettingsProperty as Exports
+import {-# SOURCE #-} Stratosphere.DMS.Endpoint.MongoDbSettingsProperty as Exports
+import {-# SOURCE #-} Stratosphere.DMS.Endpoint.MySqlSettingsProperty as Exports
+import {-# SOURCE #-} Stratosphere.DMS.Endpoint.NeptuneSettingsProperty as Exports
+import {-# SOURCE #-} Stratosphere.DMS.Endpoint.OracleSettingsProperty as Exports
+import {-# SOURCE #-} Stratosphere.DMS.Endpoint.PostgreSqlSettingsProperty as Exports
+import {-# SOURCE #-} Stratosphere.DMS.Endpoint.RedisSettingsProperty as Exports
+import {-# SOURCE #-} Stratosphere.DMS.Endpoint.RedshiftSettingsProperty as Exports
+import {-# SOURCE #-} Stratosphere.DMS.Endpoint.S3SettingsProperty as Exports
+import {-# SOURCE #-} Stratosphere.DMS.Endpoint.SybaseSettingsProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Tag
+import Stratosphere.Value
+data Endpoint
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html>
+    Endpoint {haddock_workaround_ :: (),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-certificatearn>
+              certificateArn :: (Prelude.Maybe (Value Prelude.Text)),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-databasename>
+              databaseName :: (Prelude.Maybe (Value Prelude.Text)),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-docdbsettings>
+              docDbSettings :: (Prelude.Maybe DocDbSettingsProperty),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-dynamodbsettings>
+              dynamoDbSettings :: (Prelude.Maybe DynamoDbSettingsProperty),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-elasticsearchsettings>
+              elasticsearchSettings :: (Prelude.Maybe ElasticsearchSettingsProperty),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-endpointidentifier>
+              endpointIdentifier :: (Prelude.Maybe (Value Prelude.Text)),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-endpointtype>
+              endpointType :: (Value Prelude.Text),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-enginename>
+              engineName :: (Value Prelude.Text),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-extraconnectionattributes>
+              extraConnectionAttributes :: (Prelude.Maybe (Value Prelude.Text)),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-gcpmysqlsettings>
+              gcpMySQLSettings :: (Prelude.Maybe GcpMySQLSettingsProperty),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-ibmdb2settings>
+              ibmDb2Settings :: (Prelude.Maybe IbmDb2SettingsProperty),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-kafkasettings>
+              kafkaSettings :: (Prelude.Maybe KafkaSettingsProperty),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-kinesissettings>
+              kinesisSettings :: (Prelude.Maybe KinesisSettingsProperty),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-kmskeyid>
+              kmsKeyId :: (Prelude.Maybe (Value Prelude.Text)),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-microsoftsqlserversettings>
+              microsoftSqlServerSettings :: (Prelude.Maybe MicrosoftSqlServerSettingsProperty),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-mongodbsettings>
+              mongoDbSettings :: (Prelude.Maybe MongoDbSettingsProperty),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-mysqlsettings>
+              mySqlSettings :: (Prelude.Maybe MySqlSettingsProperty),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-neptunesettings>
+              neptuneSettings :: (Prelude.Maybe NeptuneSettingsProperty),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-oraclesettings>
+              oracleSettings :: (Prelude.Maybe OracleSettingsProperty),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-password>
+              password :: (Prelude.Maybe (Value Prelude.Text)),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-port>
+              port :: (Prelude.Maybe (Value Prelude.Integer)),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-postgresqlsettings>
+              postgreSqlSettings :: (Prelude.Maybe PostgreSqlSettingsProperty),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-redissettings>
+              redisSettings :: (Prelude.Maybe RedisSettingsProperty),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-redshiftsettings>
+              redshiftSettings :: (Prelude.Maybe RedshiftSettingsProperty),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-resourceidentifier>
+              resourceIdentifier :: (Prelude.Maybe (Value Prelude.Text)),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-s3settings>
+              s3Settings :: (Prelude.Maybe S3SettingsProperty),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-servername>
+              serverName :: (Prelude.Maybe (Value Prelude.Text)),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-sslmode>
+              sslMode :: (Prelude.Maybe (Value Prelude.Text)),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-sybasesettings>
+              sybaseSettings :: (Prelude.Maybe SybaseSettingsProperty),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-tags>
+              tags :: (Prelude.Maybe [Tag]),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-username>
+              username :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkEndpoint :: Value Prelude.Text -> Value Prelude.Text -> Endpoint
+mkEndpoint endpointType engineName
+  = Endpoint
+      {haddock_workaround_ = (), endpointType = endpointType,
+       engineName = engineName, certificateArn = Prelude.Nothing,
+       databaseName = Prelude.Nothing, docDbSettings = Prelude.Nothing,
+       dynamoDbSettings = Prelude.Nothing,
+       elasticsearchSettings = Prelude.Nothing,
+       endpointIdentifier = Prelude.Nothing,
+       extraConnectionAttributes = Prelude.Nothing,
+       gcpMySQLSettings = Prelude.Nothing,
+       ibmDb2Settings = Prelude.Nothing, kafkaSettings = Prelude.Nothing,
+       kinesisSettings = Prelude.Nothing, kmsKeyId = Prelude.Nothing,
+       microsoftSqlServerSettings = Prelude.Nothing,
+       mongoDbSettings = Prelude.Nothing, mySqlSettings = Prelude.Nothing,
+       neptuneSettings = Prelude.Nothing,
+       oracleSettings = Prelude.Nothing, password = Prelude.Nothing,
+       port = Prelude.Nothing, postgreSqlSettings = Prelude.Nothing,
+       redisSettings = Prelude.Nothing,
+       redshiftSettings = Prelude.Nothing,
+       resourceIdentifier = Prelude.Nothing, s3Settings = Prelude.Nothing,
+       serverName = Prelude.Nothing, sslMode = Prelude.Nothing,
+       sybaseSettings = Prelude.Nothing, tags = Prelude.Nothing,
+       username = Prelude.Nothing}
+instance ToResourceProperties Endpoint where
+  toResourceProperties Endpoint {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::Endpoint", supportsTags = Prelude.True,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["EndpointType" JSON..= endpointType,
+                            "EngineName" JSON..= engineName]
+                           (Prelude.catMaybes
+                              [(JSON..=) "CertificateArn" Prelude.<$> certificateArn,
+                               (JSON..=) "DatabaseName" Prelude.<$> databaseName,
+                               (JSON..=) "DocDbSettings" Prelude.<$> docDbSettings,
+                               (JSON..=) "DynamoDbSettings" Prelude.<$> dynamoDbSettings,
+                               (JSON..=) "ElasticsearchSettings"
+                                 Prelude.<$> elasticsearchSettings,
+                               (JSON..=) "EndpointIdentifier" Prelude.<$> endpointIdentifier,
+                               (JSON..=) "ExtraConnectionAttributes"
+                                 Prelude.<$> extraConnectionAttributes,
+                               (JSON..=) "GcpMySQLSettings" Prelude.<$> gcpMySQLSettings,
+                               (JSON..=) "IbmDb2Settings" Prelude.<$> ibmDb2Settings,
+                               (JSON..=) "KafkaSettings" Prelude.<$> kafkaSettings,
+                               (JSON..=) "KinesisSettings" Prelude.<$> kinesisSettings,
+                               (JSON..=) "KmsKeyId" Prelude.<$> kmsKeyId,
+                               (JSON..=) "MicrosoftSqlServerSettings"
+                                 Prelude.<$> microsoftSqlServerSettings,
+                               (JSON..=) "MongoDbSettings" Prelude.<$> mongoDbSettings,
+                               (JSON..=) "MySqlSettings" Prelude.<$> mySqlSettings,
+                               (JSON..=) "NeptuneSettings" Prelude.<$> neptuneSettings,
+                               (JSON..=) "OracleSettings" Prelude.<$> oracleSettings,
+                               (JSON..=) "Password" Prelude.<$> password,
+                               (JSON..=) "Port" Prelude.<$> port,
+                               (JSON..=) "PostgreSqlSettings" Prelude.<$> postgreSqlSettings,
+                               (JSON..=) "RedisSettings" Prelude.<$> redisSettings,
+                               (JSON..=) "RedshiftSettings" Prelude.<$> redshiftSettings,
+                               (JSON..=) "ResourceIdentifier" Prelude.<$> resourceIdentifier,
+                               (JSON..=) "S3Settings" Prelude.<$> s3Settings,
+                               (JSON..=) "ServerName" Prelude.<$> serverName,
+                               (JSON..=) "SslMode" Prelude.<$> sslMode,
+                               (JSON..=) "SybaseSettings" Prelude.<$> sybaseSettings,
+                               (JSON..=) "Tags" Prelude.<$> tags,
+                               (JSON..=) "Username" Prelude.<$> username]))}
+instance JSON.ToJSON Endpoint where
+  toJSON Endpoint {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["EndpointType" JSON..= endpointType,
+               "EngineName" JSON..= engineName]
+              (Prelude.catMaybes
+                 [(JSON..=) "CertificateArn" Prelude.<$> certificateArn,
+                  (JSON..=) "DatabaseName" Prelude.<$> databaseName,
+                  (JSON..=) "DocDbSettings" Prelude.<$> docDbSettings,
+                  (JSON..=) "DynamoDbSettings" Prelude.<$> dynamoDbSettings,
+                  (JSON..=) "ElasticsearchSettings"
+                    Prelude.<$> elasticsearchSettings,
+                  (JSON..=) "EndpointIdentifier" Prelude.<$> endpointIdentifier,
+                  (JSON..=) "ExtraConnectionAttributes"
+                    Prelude.<$> extraConnectionAttributes,
+                  (JSON..=) "GcpMySQLSettings" Prelude.<$> gcpMySQLSettings,
+                  (JSON..=) "IbmDb2Settings" Prelude.<$> ibmDb2Settings,
+                  (JSON..=) "KafkaSettings" Prelude.<$> kafkaSettings,
+                  (JSON..=) "KinesisSettings" Prelude.<$> kinesisSettings,
+                  (JSON..=) "KmsKeyId" Prelude.<$> kmsKeyId,
+                  (JSON..=) "MicrosoftSqlServerSettings"
+                    Prelude.<$> microsoftSqlServerSettings,
+                  (JSON..=) "MongoDbSettings" Prelude.<$> mongoDbSettings,
+                  (JSON..=) "MySqlSettings" Prelude.<$> mySqlSettings,
+                  (JSON..=) "NeptuneSettings" Prelude.<$> neptuneSettings,
+                  (JSON..=) "OracleSettings" Prelude.<$> oracleSettings,
+                  (JSON..=) "Password" Prelude.<$> password,
+                  (JSON..=) "Port" Prelude.<$> port,
+                  (JSON..=) "PostgreSqlSettings" Prelude.<$> postgreSqlSettings,
+                  (JSON..=) "RedisSettings" Prelude.<$> redisSettings,
+                  (JSON..=) "RedshiftSettings" Prelude.<$> redshiftSettings,
+                  (JSON..=) "ResourceIdentifier" Prelude.<$> resourceIdentifier,
+                  (JSON..=) "S3Settings" Prelude.<$> s3Settings,
+                  (JSON..=) "ServerName" Prelude.<$> serverName,
+                  (JSON..=) "SslMode" Prelude.<$> sslMode,
+                  (JSON..=) "SybaseSettings" Prelude.<$> sybaseSettings,
+                  (JSON..=) "Tags" Prelude.<$> tags,
+                  (JSON..=) "Username" Prelude.<$> username])))
+instance Property "CertificateArn" Endpoint where
+  type PropertyType "CertificateArn" Endpoint = Value Prelude.Text
+  set newValue Endpoint {..}
+    = Endpoint {certificateArn = Prelude.pure newValue, ..}
+instance Property "DatabaseName" Endpoint where
+  type PropertyType "DatabaseName" Endpoint = Value Prelude.Text
+  set newValue Endpoint {..}
+    = Endpoint {databaseName = Prelude.pure newValue, ..}
+instance Property "DocDbSettings" Endpoint where
+  type PropertyType "DocDbSettings" Endpoint = DocDbSettingsProperty
+  set newValue Endpoint {..}
+    = Endpoint {docDbSettings = Prelude.pure newValue, ..}
+instance Property "DynamoDbSettings" Endpoint where
+  type PropertyType "DynamoDbSettings" Endpoint = DynamoDbSettingsProperty
+  set newValue Endpoint {..}
+    = Endpoint {dynamoDbSettings = Prelude.pure newValue, ..}
+instance Property "ElasticsearchSettings" Endpoint where
+  type PropertyType "ElasticsearchSettings" Endpoint = ElasticsearchSettingsProperty
+  set newValue Endpoint {..}
+    = Endpoint {elasticsearchSettings = Prelude.pure newValue, ..}
+instance Property "EndpointIdentifier" Endpoint where
+  type PropertyType "EndpointIdentifier" Endpoint = Value Prelude.Text
+  set newValue Endpoint {..}
+    = Endpoint {endpointIdentifier = Prelude.pure newValue, ..}
+instance Property "EndpointType" Endpoint where
+  type PropertyType "EndpointType" Endpoint = Value Prelude.Text
+  set newValue Endpoint {..} = Endpoint {endpointType = newValue, ..}
+instance Property "EngineName" Endpoint where
+  type PropertyType "EngineName" Endpoint = Value Prelude.Text
+  set newValue Endpoint {..} = Endpoint {engineName = newValue, ..}
+instance Property "ExtraConnectionAttributes" Endpoint where
+  type PropertyType "ExtraConnectionAttributes" Endpoint = Value Prelude.Text
+  set newValue Endpoint {..}
+    = Endpoint {extraConnectionAttributes = Prelude.pure newValue, ..}
+instance Property "GcpMySQLSettings" Endpoint where
+  type PropertyType "GcpMySQLSettings" Endpoint = GcpMySQLSettingsProperty
+  set newValue Endpoint {..}
+    = Endpoint {gcpMySQLSettings = Prelude.pure newValue, ..}
+instance Property "IbmDb2Settings" Endpoint where
+  type PropertyType "IbmDb2Settings" Endpoint = IbmDb2SettingsProperty
+  set newValue Endpoint {..}
+    = Endpoint {ibmDb2Settings = Prelude.pure newValue, ..}
+instance Property "KafkaSettings" Endpoint where
+  type PropertyType "KafkaSettings" Endpoint = KafkaSettingsProperty
+  set newValue Endpoint {..}
+    = Endpoint {kafkaSettings = Prelude.pure newValue, ..}
+instance Property "KinesisSettings" Endpoint where
+  type PropertyType "KinesisSettings" Endpoint = KinesisSettingsProperty
+  set newValue Endpoint {..}
+    = Endpoint {kinesisSettings = Prelude.pure newValue, ..}
+instance Property "KmsKeyId" Endpoint where
+  type PropertyType "KmsKeyId" Endpoint = Value Prelude.Text
+  set newValue Endpoint {..}
+    = Endpoint {kmsKeyId = Prelude.pure newValue, ..}
+instance Property "MicrosoftSqlServerSettings" Endpoint where
+  type PropertyType "MicrosoftSqlServerSettings" Endpoint = MicrosoftSqlServerSettingsProperty
+  set newValue Endpoint {..}
+    = Endpoint {microsoftSqlServerSettings = Prelude.pure newValue, ..}
+instance Property "MongoDbSettings" Endpoint where
+  type PropertyType "MongoDbSettings" Endpoint = MongoDbSettingsProperty
+  set newValue Endpoint {..}
+    = Endpoint {mongoDbSettings = Prelude.pure newValue, ..}
+instance Property "MySqlSettings" Endpoint where
+  type PropertyType "MySqlSettings" Endpoint = MySqlSettingsProperty
+  set newValue Endpoint {..}
+    = Endpoint {mySqlSettings = Prelude.pure newValue, ..}
+instance Property "NeptuneSettings" Endpoint where
+  type PropertyType "NeptuneSettings" Endpoint = NeptuneSettingsProperty
+  set newValue Endpoint {..}
+    = Endpoint {neptuneSettings = Prelude.pure newValue, ..}
+instance Property "OracleSettings" Endpoint where
+  type PropertyType "OracleSettings" Endpoint = OracleSettingsProperty
+  set newValue Endpoint {..}
+    = Endpoint {oracleSettings = Prelude.pure newValue, ..}
+instance Property "Password" Endpoint where
+  type PropertyType "Password" Endpoint = Value Prelude.Text
+  set newValue Endpoint {..}
+    = Endpoint {password = Prelude.pure newValue, ..}
+instance Property "Port" Endpoint where
+  type PropertyType "Port" Endpoint = Value Prelude.Integer
+  set newValue Endpoint {..}
+    = Endpoint {port = Prelude.pure newValue, ..}
+instance Property "PostgreSqlSettings" Endpoint where
+  type PropertyType "PostgreSqlSettings" Endpoint = PostgreSqlSettingsProperty
+  set newValue Endpoint {..}
+    = Endpoint {postgreSqlSettings = Prelude.pure newValue, ..}
+instance Property "RedisSettings" Endpoint where
+  type PropertyType "RedisSettings" Endpoint = RedisSettingsProperty
+  set newValue Endpoint {..}
+    = Endpoint {redisSettings = Prelude.pure newValue, ..}
+instance Property "RedshiftSettings" Endpoint where
+  type PropertyType "RedshiftSettings" Endpoint = RedshiftSettingsProperty
+  set newValue Endpoint {..}
+    = Endpoint {redshiftSettings = Prelude.pure newValue, ..}
+instance Property "ResourceIdentifier" Endpoint where
+  type PropertyType "ResourceIdentifier" Endpoint = Value Prelude.Text
+  set newValue Endpoint {..}
+    = Endpoint {resourceIdentifier = Prelude.pure newValue, ..}
+instance Property "S3Settings" Endpoint where
+  type PropertyType "S3Settings" Endpoint = S3SettingsProperty
+  set newValue Endpoint {..}
+    = Endpoint {s3Settings = Prelude.pure newValue, ..}
+instance Property "ServerName" Endpoint where
+  type PropertyType "ServerName" Endpoint = Value Prelude.Text
+  set newValue Endpoint {..}
+    = Endpoint {serverName = Prelude.pure newValue, ..}
+instance Property "SslMode" Endpoint where
+  type PropertyType "SslMode" Endpoint = Value Prelude.Text
+  set newValue Endpoint {..}
+    = Endpoint {sslMode = Prelude.pure newValue, ..}
+instance Property "SybaseSettings" Endpoint where
+  type PropertyType "SybaseSettings" Endpoint = SybaseSettingsProperty
+  set newValue Endpoint {..}
+    = Endpoint {sybaseSettings = Prelude.pure newValue, ..}
+instance Property "Tags" Endpoint where
+  type PropertyType "Tags" Endpoint = [Tag]
+  set newValue Endpoint {..}
+    = Endpoint {tags = Prelude.pure newValue, ..}
+instance Property "Username" Endpoint where
+  type PropertyType "Username" Endpoint = Value Prelude.Text
+  set newValue Endpoint {..}
+    = Endpoint {username = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DMS/Endpoint/DocDbSettingsProperty.hs b/gen/Stratosphere/DMS/Endpoint/DocDbSettingsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/Endpoint/DocDbSettingsProperty.hs
@@ -0,0 +1,78 @@
+module Stratosphere.DMS.Endpoint.DocDbSettingsProperty (
+        DocDbSettingsProperty(..), mkDocDbSettingsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data DocDbSettingsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-docdbsettings.html>
+    DocDbSettingsProperty {haddock_workaround_ :: (),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-docdbsettings.html#cfn-dms-endpoint-docdbsettings-docstoinvestigate>
+                           docsToInvestigate :: (Prelude.Maybe (Value Prelude.Integer)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-docdbsettings.html#cfn-dms-endpoint-docdbsettings-extractdocid>
+                           extractDocId :: (Prelude.Maybe (Value Prelude.Bool)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-docdbsettings.html#cfn-dms-endpoint-docdbsettings-nestinglevel>
+                           nestingLevel :: (Prelude.Maybe (Value Prelude.Text)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-docdbsettings.html#cfn-dms-endpoint-docdbsettings-secretsmanageraccessrolearn>
+                           secretsManagerAccessRoleArn :: (Prelude.Maybe (Value Prelude.Text)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-docdbsettings.html#cfn-dms-endpoint-docdbsettings-secretsmanagersecretid>
+                           secretsManagerSecretId :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkDocDbSettingsProperty :: DocDbSettingsProperty
+mkDocDbSettingsProperty
+  = DocDbSettingsProperty
+      {haddock_workaround_ = (), docsToInvestigate = Prelude.Nothing,
+       extractDocId = Prelude.Nothing, nestingLevel = Prelude.Nothing,
+       secretsManagerAccessRoleArn = Prelude.Nothing,
+       secretsManagerSecretId = Prelude.Nothing}
+instance ToResourceProperties DocDbSettingsProperty where
+  toResourceProperties DocDbSettingsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::Endpoint.DocDbSettings",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "DocsToInvestigate" Prelude.<$> docsToInvestigate,
+                            (JSON..=) "ExtractDocId" Prelude.<$> extractDocId,
+                            (JSON..=) "NestingLevel" Prelude.<$> nestingLevel,
+                            (JSON..=) "SecretsManagerAccessRoleArn"
+                              Prelude.<$> secretsManagerAccessRoleArn,
+                            (JSON..=) "SecretsManagerSecretId"
+                              Prelude.<$> secretsManagerSecretId])}
+instance JSON.ToJSON DocDbSettingsProperty where
+  toJSON DocDbSettingsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "DocsToInvestigate" Prelude.<$> docsToInvestigate,
+               (JSON..=) "ExtractDocId" Prelude.<$> extractDocId,
+               (JSON..=) "NestingLevel" Prelude.<$> nestingLevel,
+               (JSON..=) "SecretsManagerAccessRoleArn"
+                 Prelude.<$> secretsManagerAccessRoleArn,
+               (JSON..=) "SecretsManagerSecretId"
+                 Prelude.<$> secretsManagerSecretId]))
+instance Property "DocsToInvestigate" DocDbSettingsProperty where
+  type PropertyType "DocsToInvestigate" DocDbSettingsProperty = Value Prelude.Integer
+  set newValue DocDbSettingsProperty {..}
+    = DocDbSettingsProperty
+        {docsToInvestigate = Prelude.pure newValue, ..}
+instance Property "ExtractDocId" DocDbSettingsProperty where
+  type PropertyType "ExtractDocId" DocDbSettingsProperty = Value Prelude.Bool
+  set newValue DocDbSettingsProperty {..}
+    = DocDbSettingsProperty {extractDocId = Prelude.pure newValue, ..}
+instance Property "NestingLevel" DocDbSettingsProperty where
+  type PropertyType "NestingLevel" DocDbSettingsProperty = Value Prelude.Text
+  set newValue DocDbSettingsProperty {..}
+    = DocDbSettingsProperty {nestingLevel = Prelude.pure newValue, ..}
+instance Property "SecretsManagerAccessRoleArn" DocDbSettingsProperty where
+  type PropertyType "SecretsManagerAccessRoleArn" DocDbSettingsProperty = Value Prelude.Text
+  set newValue DocDbSettingsProperty {..}
+    = DocDbSettingsProperty
+        {secretsManagerAccessRoleArn = Prelude.pure newValue, ..}
+instance Property "SecretsManagerSecretId" DocDbSettingsProperty where
+  type PropertyType "SecretsManagerSecretId" DocDbSettingsProperty = Value Prelude.Text
+  set newValue DocDbSettingsProperty {..}
+    = DocDbSettingsProperty
+        {secretsManagerSecretId = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DMS/Endpoint/DocDbSettingsProperty.hs-boot b/gen/Stratosphere/DMS/Endpoint/DocDbSettingsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/Endpoint/DocDbSettingsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DMS.Endpoint.DocDbSettingsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data DocDbSettingsProperty :: Prelude.Type
+instance ToResourceProperties DocDbSettingsProperty
+instance Prelude.Eq DocDbSettingsProperty
+instance Prelude.Show DocDbSettingsProperty
+instance JSON.ToJSON DocDbSettingsProperty
diff --git a/gen/Stratosphere/DMS/Endpoint/DynamoDbSettingsProperty.hs b/gen/Stratosphere/DMS/Endpoint/DynamoDbSettingsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/Endpoint/DynamoDbSettingsProperty.hs
@@ -0,0 +1,39 @@
+module Stratosphere.DMS.Endpoint.DynamoDbSettingsProperty (
+        DynamoDbSettingsProperty(..), mkDynamoDbSettingsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data DynamoDbSettingsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-dynamodbsettings.html>
+    DynamoDbSettingsProperty {haddock_workaround_ :: (),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-dynamodbsettings.html#cfn-dms-endpoint-dynamodbsettings-serviceaccessrolearn>
+                              serviceAccessRoleArn :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkDynamoDbSettingsProperty :: DynamoDbSettingsProperty
+mkDynamoDbSettingsProperty
+  = DynamoDbSettingsProperty
+      {haddock_workaround_ = (), serviceAccessRoleArn = Prelude.Nothing}
+instance ToResourceProperties DynamoDbSettingsProperty where
+  toResourceProperties DynamoDbSettingsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::Endpoint.DynamoDbSettings",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "ServiceAccessRoleArn"
+                              Prelude.<$> serviceAccessRoleArn])}
+instance JSON.ToJSON DynamoDbSettingsProperty where
+  toJSON DynamoDbSettingsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "ServiceAccessRoleArn"
+                 Prelude.<$> serviceAccessRoleArn]))
+instance Property "ServiceAccessRoleArn" DynamoDbSettingsProperty where
+  type PropertyType "ServiceAccessRoleArn" DynamoDbSettingsProperty = Value Prelude.Text
+  set newValue DynamoDbSettingsProperty {..}
+    = DynamoDbSettingsProperty
+        {serviceAccessRoleArn = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DMS/Endpoint/DynamoDbSettingsProperty.hs-boot b/gen/Stratosphere/DMS/Endpoint/DynamoDbSettingsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/Endpoint/DynamoDbSettingsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DMS.Endpoint.DynamoDbSettingsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data DynamoDbSettingsProperty :: Prelude.Type
+instance ToResourceProperties DynamoDbSettingsProperty
+instance Prelude.Eq DynamoDbSettingsProperty
+instance Prelude.Show DynamoDbSettingsProperty
+instance JSON.ToJSON DynamoDbSettingsProperty
diff --git a/gen/Stratosphere/DMS/Endpoint/ElasticsearchSettingsProperty.hs b/gen/Stratosphere/DMS/Endpoint/ElasticsearchSettingsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/Endpoint/ElasticsearchSettingsProperty.hs
@@ -0,0 +1,71 @@
+module Stratosphere.DMS.Endpoint.ElasticsearchSettingsProperty (
+        ElasticsearchSettingsProperty(..), mkElasticsearchSettingsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data ElasticsearchSettingsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-elasticsearchsettings.html>
+    ElasticsearchSettingsProperty {haddock_workaround_ :: (),
+                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-elasticsearchsettings.html#cfn-dms-endpoint-elasticsearchsettings-endpointuri>
+                                   endpointUri :: (Prelude.Maybe (Value Prelude.Text)),
+                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-elasticsearchsettings.html#cfn-dms-endpoint-elasticsearchsettings-errorretryduration>
+                                   errorRetryDuration :: (Prelude.Maybe (Value Prelude.Integer)),
+                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-elasticsearchsettings.html#cfn-dms-endpoint-elasticsearchsettings-fullloaderrorpercentage>
+                                   fullLoadErrorPercentage :: (Prelude.Maybe (Value Prelude.Integer)),
+                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-elasticsearchsettings.html#cfn-dms-endpoint-elasticsearchsettings-serviceaccessrolearn>
+                                   serviceAccessRoleArn :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkElasticsearchSettingsProperty :: ElasticsearchSettingsProperty
+mkElasticsearchSettingsProperty
+  = ElasticsearchSettingsProperty
+      {haddock_workaround_ = (), endpointUri = Prelude.Nothing,
+       errorRetryDuration = Prelude.Nothing,
+       fullLoadErrorPercentage = Prelude.Nothing,
+       serviceAccessRoleArn = Prelude.Nothing}
+instance ToResourceProperties ElasticsearchSettingsProperty where
+  toResourceProperties ElasticsearchSettingsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::Endpoint.ElasticsearchSettings",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "EndpointUri" Prelude.<$> endpointUri,
+                            (JSON..=) "ErrorRetryDuration" Prelude.<$> errorRetryDuration,
+                            (JSON..=) "FullLoadErrorPercentage"
+                              Prelude.<$> fullLoadErrorPercentage,
+                            (JSON..=) "ServiceAccessRoleArn"
+                              Prelude.<$> serviceAccessRoleArn])}
+instance JSON.ToJSON ElasticsearchSettingsProperty where
+  toJSON ElasticsearchSettingsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "EndpointUri" Prelude.<$> endpointUri,
+               (JSON..=) "ErrorRetryDuration" Prelude.<$> errorRetryDuration,
+               (JSON..=) "FullLoadErrorPercentage"
+                 Prelude.<$> fullLoadErrorPercentage,
+               (JSON..=) "ServiceAccessRoleArn"
+                 Prelude.<$> serviceAccessRoleArn]))
+instance Property "EndpointUri" ElasticsearchSettingsProperty where
+  type PropertyType "EndpointUri" ElasticsearchSettingsProperty = Value Prelude.Text
+  set newValue ElasticsearchSettingsProperty {..}
+    = ElasticsearchSettingsProperty
+        {endpointUri = Prelude.pure newValue, ..}
+instance Property "ErrorRetryDuration" ElasticsearchSettingsProperty where
+  type PropertyType "ErrorRetryDuration" ElasticsearchSettingsProperty = Value Prelude.Integer
+  set newValue ElasticsearchSettingsProperty {..}
+    = ElasticsearchSettingsProperty
+        {errorRetryDuration = Prelude.pure newValue, ..}
+instance Property "FullLoadErrorPercentage" ElasticsearchSettingsProperty where
+  type PropertyType "FullLoadErrorPercentage" ElasticsearchSettingsProperty = Value Prelude.Integer
+  set newValue ElasticsearchSettingsProperty {..}
+    = ElasticsearchSettingsProperty
+        {fullLoadErrorPercentage = Prelude.pure newValue, ..}
+instance Property "ServiceAccessRoleArn" ElasticsearchSettingsProperty where
+  type PropertyType "ServiceAccessRoleArn" ElasticsearchSettingsProperty = Value Prelude.Text
+  set newValue ElasticsearchSettingsProperty {..}
+    = ElasticsearchSettingsProperty
+        {serviceAccessRoleArn = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DMS/Endpoint/ElasticsearchSettingsProperty.hs-boot b/gen/Stratosphere/DMS/Endpoint/ElasticsearchSettingsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/Endpoint/ElasticsearchSettingsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DMS.Endpoint.ElasticsearchSettingsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data ElasticsearchSettingsProperty :: Prelude.Type
+instance ToResourceProperties ElasticsearchSettingsProperty
+instance Prelude.Eq ElasticsearchSettingsProperty
+instance Prelude.Show ElasticsearchSettingsProperty
+instance JSON.ToJSON ElasticsearchSettingsProperty
diff --git a/gen/Stratosphere/DMS/Endpoint/GcpMySQLSettingsProperty.hs b/gen/Stratosphere/DMS/Endpoint/GcpMySQLSettingsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/Endpoint/GcpMySQLSettingsProperty.hs
@@ -0,0 +1,157 @@
+module Stratosphere.DMS.Endpoint.GcpMySQLSettingsProperty (
+        GcpMySQLSettingsProperty(..), mkGcpMySQLSettingsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data GcpMySQLSettingsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-gcpmysqlsettings.html>
+    GcpMySQLSettingsProperty {haddock_workaround_ :: (),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-gcpmysqlsettings.html#cfn-dms-endpoint-gcpmysqlsettings-afterconnectscript>
+                              afterConnectScript :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-gcpmysqlsettings.html#cfn-dms-endpoint-gcpmysqlsettings-cleansourcemetadataonmismatch>
+                              cleanSourceMetadataOnMismatch :: (Prelude.Maybe (Value Prelude.Bool)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-gcpmysqlsettings.html#cfn-dms-endpoint-gcpmysqlsettings-databasename>
+                              databaseName :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-gcpmysqlsettings.html#cfn-dms-endpoint-gcpmysqlsettings-eventspollinterval>
+                              eventsPollInterval :: (Prelude.Maybe (Value Prelude.Integer)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-gcpmysqlsettings.html#cfn-dms-endpoint-gcpmysqlsettings-maxfilesize>
+                              maxFileSize :: (Prelude.Maybe (Value Prelude.Integer)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-gcpmysqlsettings.html#cfn-dms-endpoint-gcpmysqlsettings-parallelloadthreads>
+                              parallelLoadThreads :: (Prelude.Maybe (Value Prelude.Integer)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-gcpmysqlsettings.html#cfn-dms-endpoint-gcpmysqlsettings-password>
+                              password :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-gcpmysqlsettings.html#cfn-dms-endpoint-gcpmysqlsettings-port>
+                              port :: (Prelude.Maybe (Value Prelude.Integer)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-gcpmysqlsettings.html#cfn-dms-endpoint-gcpmysqlsettings-secretsmanageraccessrolearn>
+                              secretsManagerAccessRoleArn :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-gcpmysqlsettings.html#cfn-dms-endpoint-gcpmysqlsettings-secretsmanagersecretid>
+                              secretsManagerSecretId :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-gcpmysqlsettings.html#cfn-dms-endpoint-gcpmysqlsettings-servername>
+                              serverName :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-gcpmysqlsettings.html#cfn-dms-endpoint-gcpmysqlsettings-servertimezone>
+                              serverTimezone :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-gcpmysqlsettings.html#cfn-dms-endpoint-gcpmysqlsettings-username>
+                              username :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkGcpMySQLSettingsProperty :: GcpMySQLSettingsProperty
+mkGcpMySQLSettingsProperty
+  = GcpMySQLSettingsProperty
+      {haddock_workaround_ = (), afterConnectScript = Prelude.Nothing,
+       cleanSourceMetadataOnMismatch = Prelude.Nothing,
+       databaseName = Prelude.Nothing,
+       eventsPollInterval = Prelude.Nothing,
+       maxFileSize = Prelude.Nothing,
+       parallelLoadThreads = Prelude.Nothing, password = Prelude.Nothing,
+       port = Prelude.Nothing,
+       secretsManagerAccessRoleArn = Prelude.Nothing,
+       secretsManagerSecretId = Prelude.Nothing,
+       serverName = Prelude.Nothing, serverTimezone = Prelude.Nothing,
+       username = Prelude.Nothing}
+instance ToResourceProperties GcpMySQLSettingsProperty where
+  toResourceProperties GcpMySQLSettingsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::Endpoint.GcpMySQLSettings",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "AfterConnectScript" Prelude.<$> afterConnectScript,
+                            (JSON..=) "CleanSourceMetadataOnMismatch"
+                              Prelude.<$> cleanSourceMetadataOnMismatch,
+                            (JSON..=) "DatabaseName" Prelude.<$> databaseName,
+                            (JSON..=) "EventsPollInterval" Prelude.<$> eventsPollInterval,
+                            (JSON..=) "MaxFileSize" Prelude.<$> maxFileSize,
+                            (JSON..=) "ParallelLoadThreads" Prelude.<$> parallelLoadThreads,
+                            (JSON..=) "Password" Prelude.<$> password,
+                            (JSON..=) "Port" Prelude.<$> port,
+                            (JSON..=) "SecretsManagerAccessRoleArn"
+                              Prelude.<$> secretsManagerAccessRoleArn,
+                            (JSON..=) "SecretsManagerSecretId"
+                              Prelude.<$> secretsManagerSecretId,
+                            (JSON..=) "ServerName" Prelude.<$> serverName,
+                            (JSON..=) "ServerTimezone" Prelude.<$> serverTimezone,
+                            (JSON..=) "Username" Prelude.<$> username])}
+instance JSON.ToJSON GcpMySQLSettingsProperty where
+  toJSON GcpMySQLSettingsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "AfterConnectScript" Prelude.<$> afterConnectScript,
+               (JSON..=) "CleanSourceMetadataOnMismatch"
+                 Prelude.<$> cleanSourceMetadataOnMismatch,
+               (JSON..=) "DatabaseName" Prelude.<$> databaseName,
+               (JSON..=) "EventsPollInterval" Prelude.<$> eventsPollInterval,
+               (JSON..=) "MaxFileSize" Prelude.<$> maxFileSize,
+               (JSON..=) "ParallelLoadThreads" Prelude.<$> parallelLoadThreads,
+               (JSON..=) "Password" Prelude.<$> password,
+               (JSON..=) "Port" Prelude.<$> port,
+               (JSON..=) "SecretsManagerAccessRoleArn"
+                 Prelude.<$> secretsManagerAccessRoleArn,
+               (JSON..=) "SecretsManagerSecretId"
+                 Prelude.<$> secretsManagerSecretId,
+               (JSON..=) "ServerName" Prelude.<$> serverName,
+               (JSON..=) "ServerTimezone" Prelude.<$> serverTimezone,
+               (JSON..=) "Username" Prelude.<$> username]))
+instance Property "AfterConnectScript" GcpMySQLSettingsProperty where
+  type PropertyType "AfterConnectScript" GcpMySQLSettingsProperty = Value Prelude.Text
+  set newValue GcpMySQLSettingsProperty {..}
+    = GcpMySQLSettingsProperty
+        {afterConnectScript = Prelude.pure newValue, ..}
+instance Property "CleanSourceMetadataOnMismatch" GcpMySQLSettingsProperty where
+  type PropertyType "CleanSourceMetadataOnMismatch" GcpMySQLSettingsProperty = Value Prelude.Bool
+  set newValue GcpMySQLSettingsProperty {..}
+    = GcpMySQLSettingsProperty
+        {cleanSourceMetadataOnMismatch = Prelude.pure newValue, ..}
+instance Property "DatabaseName" GcpMySQLSettingsProperty where
+  type PropertyType "DatabaseName" GcpMySQLSettingsProperty = Value Prelude.Text
+  set newValue GcpMySQLSettingsProperty {..}
+    = GcpMySQLSettingsProperty
+        {databaseName = Prelude.pure newValue, ..}
+instance Property "EventsPollInterval" GcpMySQLSettingsProperty where
+  type PropertyType "EventsPollInterval" GcpMySQLSettingsProperty = Value Prelude.Integer
+  set newValue GcpMySQLSettingsProperty {..}
+    = GcpMySQLSettingsProperty
+        {eventsPollInterval = Prelude.pure newValue, ..}
+instance Property "MaxFileSize" GcpMySQLSettingsProperty where
+  type PropertyType "MaxFileSize" GcpMySQLSettingsProperty = Value Prelude.Integer
+  set newValue GcpMySQLSettingsProperty {..}
+    = GcpMySQLSettingsProperty
+        {maxFileSize = Prelude.pure newValue, ..}
+instance Property "ParallelLoadThreads" GcpMySQLSettingsProperty where
+  type PropertyType "ParallelLoadThreads" GcpMySQLSettingsProperty = Value Prelude.Integer
+  set newValue GcpMySQLSettingsProperty {..}
+    = GcpMySQLSettingsProperty
+        {parallelLoadThreads = Prelude.pure newValue, ..}
+instance Property "Password" GcpMySQLSettingsProperty where
+  type PropertyType "Password" GcpMySQLSettingsProperty = Value Prelude.Text
+  set newValue GcpMySQLSettingsProperty {..}
+    = GcpMySQLSettingsProperty {password = Prelude.pure newValue, ..}
+instance Property "Port" GcpMySQLSettingsProperty where
+  type PropertyType "Port" GcpMySQLSettingsProperty = Value Prelude.Integer
+  set newValue GcpMySQLSettingsProperty {..}
+    = GcpMySQLSettingsProperty {port = Prelude.pure newValue, ..}
+instance Property "SecretsManagerAccessRoleArn" GcpMySQLSettingsProperty where
+  type PropertyType "SecretsManagerAccessRoleArn" GcpMySQLSettingsProperty = Value Prelude.Text
+  set newValue GcpMySQLSettingsProperty {..}
+    = GcpMySQLSettingsProperty
+        {secretsManagerAccessRoleArn = Prelude.pure newValue, ..}
+instance Property "SecretsManagerSecretId" GcpMySQLSettingsProperty where
+  type PropertyType "SecretsManagerSecretId" GcpMySQLSettingsProperty = Value Prelude.Text
+  set newValue GcpMySQLSettingsProperty {..}
+    = GcpMySQLSettingsProperty
+        {secretsManagerSecretId = Prelude.pure newValue, ..}
+instance Property "ServerName" GcpMySQLSettingsProperty where
+  type PropertyType "ServerName" GcpMySQLSettingsProperty = Value Prelude.Text
+  set newValue GcpMySQLSettingsProperty {..}
+    = GcpMySQLSettingsProperty {serverName = Prelude.pure newValue, ..}
+instance Property "ServerTimezone" GcpMySQLSettingsProperty where
+  type PropertyType "ServerTimezone" GcpMySQLSettingsProperty = Value Prelude.Text
+  set newValue GcpMySQLSettingsProperty {..}
+    = GcpMySQLSettingsProperty
+        {serverTimezone = Prelude.pure newValue, ..}
+instance Property "Username" GcpMySQLSettingsProperty where
+  type PropertyType "Username" GcpMySQLSettingsProperty = Value Prelude.Text
+  set newValue GcpMySQLSettingsProperty {..}
+    = GcpMySQLSettingsProperty {username = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DMS/Endpoint/GcpMySQLSettingsProperty.hs-boot b/gen/Stratosphere/DMS/Endpoint/GcpMySQLSettingsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/Endpoint/GcpMySQLSettingsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DMS.Endpoint.GcpMySQLSettingsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data GcpMySQLSettingsProperty :: Prelude.Type
+instance ToResourceProperties GcpMySQLSettingsProperty
+instance Prelude.Eq GcpMySQLSettingsProperty
+instance Prelude.Show GcpMySQLSettingsProperty
+instance JSON.ToJSON GcpMySQLSettingsProperty
diff --git a/gen/Stratosphere/DMS/Endpoint/IbmDb2SettingsProperty.hs b/gen/Stratosphere/DMS/Endpoint/IbmDb2SettingsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/Endpoint/IbmDb2SettingsProperty.hs
@@ -0,0 +1,117 @@
+module Stratosphere.DMS.Endpoint.IbmDb2SettingsProperty (
+        IbmDb2SettingsProperty(..), mkIbmDb2SettingsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data IbmDb2SettingsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-ibmdb2settings.html>
+    IbmDb2SettingsProperty {haddock_workaround_ :: (),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-ibmdb2settings.html#cfn-dms-endpoint-ibmdb2settings-currentlsn>
+                            currentLsn :: (Prelude.Maybe (Value Prelude.Text)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-ibmdb2settings.html#cfn-dms-endpoint-ibmdb2settings-keepcsvfiles>
+                            keepCsvFiles :: (Prelude.Maybe (Value Prelude.Bool)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-ibmdb2settings.html#cfn-dms-endpoint-ibmdb2settings-loadtimeout>
+                            loadTimeout :: (Prelude.Maybe (Value Prelude.Integer)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-ibmdb2settings.html#cfn-dms-endpoint-ibmdb2settings-maxfilesize>
+                            maxFileSize :: (Prelude.Maybe (Value Prelude.Integer)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-ibmdb2settings.html#cfn-dms-endpoint-ibmdb2settings-maxkbytesperread>
+                            maxKBytesPerRead :: (Prelude.Maybe (Value Prelude.Integer)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-ibmdb2settings.html#cfn-dms-endpoint-ibmdb2settings-secretsmanageraccessrolearn>
+                            secretsManagerAccessRoleArn :: (Prelude.Maybe (Value Prelude.Text)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-ibmdb2settings.html#cfn-dms-endpoint-ibmdb2settings-secretsmanagersecretid>
+                            secretsManagerSecretId :: (Prelude.Maybe (Value Prelude.Text)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-ibmdb2settings.html#cfn-dms-endpoint-ibmdb2settings-setdatacapturechanges>
+                            setDataCaptureChanges :: (Prelude.Maybe (Value Prelude.Bool)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-ibmdb2settings.html#cfn-dms-endpoint-ibmdb2settings-writebuffersize>
+                            writeBufferSize :: (Prelude.Maybe (Value Prelude.Integer))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkIbmDb2SettingsProperty :: IbmDb2SettingsProperty
+mkIbmDb2SettingsProperty
+  = IbmDb2SettingsProperty
+      {haddock_workaround_ = (), currentLsn = Prelude.Nothing,
+       keepCsvFiles = Prelude.Nothing, loadTimeout = Prelude.Nothing,
+       maxFileSize = Prelude.Nothing, maxKBytesPerRead = Prelude.Nothing,
+       secretsManagerAccessRoleArn = Prelude.Nothing,
+       secretsManagerSecretId = Prelude.Nothing,
+       setDataCaptureChanges = Prelude.Nothing,
+       writeBufferSize = Prelude.Nothing}
+instance ToResourceProperties IbmDb2SettingsProperty where
+  toResourceProperties IbmDb2SettingsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::Endpoint.IbmDb2Settings",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "CurrentLsn" Prelude.<$> currentLsn,
+                            (JSON..=) "KeepCsvFiles" Prelude.<$> keepCsvFiles,
+                            (JSON..=) "LoadTimeout" Prelude.<$> loadTimeout,
+                            (JSON..=) "MaxFileSize" Prelude.<$> maxFileSize,
+                            (JSON..=) "MaxKBytesPerRead" Prelude.<$> maxKBytesPerRead,
+                            (JSON..=) "SecretsManagerAccessRoleArn"
+                              Prelude.<$> secretsManagerAccessRoleArn,
+                            (JSON..=) "SecretsManagerSecretId"
+                              Prelude.<$> secretsManagerSecretId,
+                            (JSON..=) "SetDataCaptureChanges"
+                              Prelude.<$> setDataCaptureChanges,
+                            (JSON..=) "WriteBufferSize" Prelude.<$> writeBufferSize])}
+instance JSON.ToJSON IbmDb2SettingsProperty where
+  toJSON IbmDb2SettingsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "CurrentLsn" Prelude.<$> currentLsn,
+               (JSON..=) "KeepCsvFiles" Prelude.<$> keepCsvFiles,
+               (JSON..=) "LoadTimeout" Prelude.<$> loadTimeout,
+               (JSON..=) "MaxFileSize" Prelude.<$> maxFileSize,
+               (JSON..=) "MaxKBytesPerRead" Prelude.<$> maxKBytesPerRead,
+               (JSON..=) "SecretsManagerAccessRoleArn"
+                 Prelude.<$> secretsManagerAccessRoleArn,
+               (JSON..=) "SecretsManagerSecretId"
+                 Prelude.<$> secretsManagerSecretId,
+               (JSON..=) "SetDataCaptureChanges"
+                 Prelude.<$> setDataCaptureChanges,
+               (JSON..=) "WriteBufferSize" Prelude.<$> writeBufferSize]))
+instance Property "CurrentLsn" IbmDb2SettingsProperty where
+  type PropertyType "CurrentLsn" IbmDb2SettingsProperty = Value Prelude.Text
+  set newValue IbmDb2SettingsProperty {..}
+    = IbmDb2SettingsProperty {currentLsn = Prelude.pure newValue, ..}
+instance Property "KeepCsvFiles" IbmDb2SettingsProperty where
+  type PropertyType "KeepCsvFiles" IbmDb2SettingsProperty = Value Prelude.Bool
+  set newValue IbmDb2SettingsProperty {..}
+    = IbmDb2SettingsProperty {keepCsvFiles = Prelude.pure newValue, ..}
+instance Property "LoadTimeout" IbmDb2SettingsProperty where
+  type PropertyType "LoadTimeout" IbmDb2SettingsProperty = Value Prelude.Integer
+  set newValue IbmDb2SettingsProperty {..}
+    = IbmDb2SettingsProperty {loadTimeout = Prelude.pure newValue, ..}
+instance Property "MaxFileSize" IbmDb2SettingsProperty where
+  type PropertyType "MaxFileSize" IbmDb2SettingsProperty = Value Prelude.Integer
+  set newValue IbmDb2SettingsProperty {..}
+    = IbmDb2SettingsProperty {maxFileSize = Prelude.pure newValue, ..}
+instance Property "MaxKBytesPerRead" IbmDb2SettingsProperty where
+  type PropertyType "MaxKBytesPerRead" IbmDb2SettingsProperty = Value Prelude.Integer
+  set newValue IbmDb2SettingsProperty {..}
+    = IbmDb2SettingsProperty
+        {maxKBytesPerRead = Prelude.pure newValue, ..}
+instance Property "SecretsManagerAccessRoleArn" IbmDb2SettingsProperty where
+  type PropertyType "SecretsManagerAccessRoleArn" IbmDb2SettingsProperty = Value Prelude.Text
+  set newValue IbmDb2SettingsProperty {..}
+    = IbmDb2SettingsProperty
+        {secretsManagerAccessRoleArn = Prelude.pure newValue, ..}
+instance Property "SecretsManagerSecretId" IbmDb2SettingsProperty where
+  type PropertyType "SecretsManagerSecretId" IbmDb2SettingsProperty = Value Prelude.Text
+  set newValue IbmDb2SettingsProperty {..}
+    = IbmDb2SettingsProperty
+        {secretsManagerSecretId = Prelude.pure newValue, ..}
+instance Property "SetDataCaptureChanges" IbmDb2SettingsProperty where
+  type PropertyType "SetDataCaptureChanges" IbmDb2SettingsProperty = Value Prelude.Bool
+  set newValue IbmDb2SettingsProperty {..}
+    = IbmDb2SettingsProperty
+        {setDataCaptureChanges = Prelude.pure newValue, ..}
+instance Property "WriteBufferSize" IbmDb2SettingsProperty where
+  type PropertyType "WriteBufferSize" IbmDb2SettingsProperty = Value Prelude.Integer
+  set newValue IbmDb2SettingsProperty {..}
+    = IbmDb2SettingsProperty
+        {writeBufferSize = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DMS/Endpoint/IbmDb2SettingsProperty.hs-boot b/gen/Stratosphere/DMS/Endpoint/IbmDb2SettingsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/Endpoint/IbmDb2SettingsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DMS.Endpoint.IbmDb2SettingsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data IbmDb2SettingsProperty :: Prelude.Type
+instance ToResourceProperties IbmDb2SettingsProperty
+instance Prelude.Eq IbmDb2SettingsProperty
+instance Prelude.Show IbmDb2SettingsProperty
+instance JSON.ToJSON IbmDb2SettingsProperty
diff --git a/gen/Stratosphere/DMS/Endpoint/KafkaSettingsProperty.hs b/gen/Stratosphere/DMS/Endpoint/KafkaSettingsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/Endpoint/KafkaSettingsProperty.hs
@@ -0,0 +1,210 @@
+module Stratosphere.DMS.Endpoint.KafkaSettingsProperty (
+        KafkaSettingsProperty(..), mkKafkaSettingsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data KafkaSettingsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html>
+    KafkaSettingsProperty {haddock_workaround_ :: (),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-broker>
+                           broker :: (Prelude.Maybe (Value Prelude.Text)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-includecontroldetails>
+                           includeControlDetails :: (Prelude.Maybe (Value Prelude.Bool)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-includenullandempty>
+                           includeNullAndEmpty :: (Prelude.Maybe (Value Prelude.Bool)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-includepartitionvalue>
+                           includePartitionValue :: (Prelude.Maybe (Value Prelude.Bool)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-includetablealteroperations>
+                           includeTableAlterOperations :: (Prelude.Maybe (Value Prelude.Bool)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-includetransactiondetails>
+                           includeTransactionDetails :: (Prelude.Maybe (Value Prelude.Bool)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-messageformat>
+                           messageFormat :: (Prelude.Maybe (Value Prelude.Text)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-messagemaxbytes>
+                           messageMaxBytes :: (Prelude.Maybe (Value Prelude.Integer)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-nohexprefix>
+                           noHexPrefix :: (Prelude.Maybe (Value Prelude.Bool)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-partitionincludeschematable>
+                           partitionIncludeSchemaTable :: (Prelude.Maybe (Value Prelude.Bool)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-saslpassword>
+                           saslPassword :: (Prelude.Maybe (Value Prelude.Text)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-saslusername>
+                           saslUserName :: (Prelude.Maybe (Value Prelude.Text)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-securityprotocol>
+                           securityProtocol :: (Prelude.Maybe (Value Prelude.Text)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-sslcacertificatearn>
+                           sslCaCertificateArn :: (Prelude.Maybe (Value Prelude.Text)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-sslclientcertificatearn>
+                           sslClientCertificateArn :: (Prelude.Maybe (Value Prelude.Text)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-sslclientkeyarn>
+                           sslClientKeyArn :: (Prelude.Maybe (Value Prelude.Text)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-sslclientkeypassword>
+                           sslClientKeyPassword :: (Prelude.Maybe (Value Prelude.Text)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-topic>
+                           topic :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkKafkaSettingsProperty :: KafkaSettingsProperty
+mkKafkaSettingsProperty
+  = KafkaSettingsProperty
+      {haddock_workaround_ = (), broker = Prelude.Nothing,
+       includeControlDetails = Prelude.Nothing,
+       includeNullAndEmpty = Prelude.Nothing,
+       includePartitionValue = Prelude.Nothing,
+       includeTableAlterOperations = Prelude.Nothing,
+       includeTransactionDetails = Prelude.Nothing,
+       messageFormat = Prelude.Nothing, messageMaxBytes = Prelude.Nothing,
+       noHexPrefix = Prelude.Nothing,
+       partitionIncludeSchemaTable = Prelude.Nothing,
+       saslPassword = Prelude.Nothing, saslUserName = Prelude.Nothing,
+       securityProtocol = Prelude.Nothing,
+       sslCaCertificateArn = Prelude.Nothing,
+       sslClientCertificateArn = Prelude.Nothing,
+       sslClientKeyArn = Prelude.Nothing,
+       sslClientKeyPassword = Prelude.Nothing, topic = Prelude.Nothing}
+instance ToResourceProperties KafkaSettingsProperty where
+  toResourceProperties KafkaSettingsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::Endpoint.KafkaSettings",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "Broker" Prelude.<$> broker,
+                            (JSON..=) "IncludeControlDetails"
+                              Prelude.<$> includeControlDetails,
+                            (JSON..=) "IncludeNullAndEmpty" Prelude.<$> includeNullAndEmpty,
+                            (JSON..=) "IncludePartitionValue"
+                              Prelude.<$> includePartitionValue,
+                            (JSON..=) "IncludeTableAlterOperations"
+                              Prelude.<$> includeTableAlterOperations,
+                            (JSON..=) "IncludeTransactionDetails"
+                              Prelude.<$> includeTransactionDetails,
+                            (JSON..=) "MessageFormat" Prelude.<$> messageFormat,
+                            (JSON..=) "MessageMaxBytes" Prelude.<$> messageMaxBytes,
+                            (JSON..=) "NoHexPrefix" Prelude.<$> noHexPrefix,
+                            (JSON..=) "PartitionIncludeSchemaTable"
+                              Prelude.<$> partitionIncludeSchemaTable,
+                            (JSON..=) "SaslPassword" Prelude.<$> saslPassword,
+                            (JSON..=) "SaslUserName" Prelude.<$> saslUserName,
+                            (JSON..=) "SecurityProtocol" Prelude.<$> securityProtocol,
+                            (JSON..=) "SslCaCertificateArn" Prelude.<$> sslCaCertificateArn,
+                            (JSON..=) "SslClientCertificateArn"
+                              Prelude.<$> sslClientCertificateArn,
+                            (JSON..=) "SslClientKeyArn" Prelude.<$> sslClientKeyArn,
+                            (JSON..=) "SslClientKeyPassword" Prelude.<$> sslClientKeyPassword,
+                            (JSON..=) "Topic" Prelude.<$> topic])}
+instance JSON.ToJSON KafkaSettingsProperty where
+  toJSON KafkaSettingsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "Broker" Prelude.<$> broker,
+               (JSON..=) "IncludeControlDetails"
+                 Prelude.<$> includeControlDetails,
+               (JSON..=) "IncludeNullAndEmpty" Prelude.<$> includeNullAndEmpty,
+               (JSON..=) "IncludePartitionValue"
+                 Prelude.<$> includePartitionValue,
+               (JSON..=) "IncludeTableAlterOperations"
+                 Prelude.<$> includeTableAlterOperations,
+               (JSON..=) "IncludeTransactionDetails"
+                 Prelude.<$> includeTransactionDetails,
+               (JSON..=) "MessageFormat" Prelude.<$> messageFormat,
+               (JSON..=) "MessageMaxBytes" Prelude.<$> messageMaxBytes,
+               (JSON..=) "NoHexPrefix" Prelude.<$> noHexPrefix,
+               (JSON..=) "PartitionIncludeSchemaTable"
+                 Prelude.<$> partitionIncludeSchemaTable,
+               (JSON..=) "SaslPassword" Prelude.<$> saslPassword,
+               (JSON..=) "SaslUserName" Prelude.<$> saslUserName,
+               (JSON..=) "SecurityProtocol" Prelude.<$> securityProtocol,
+               (JSON..=) "SslCaCertificateArn" Prelude.<$> sslCaCertificateArn,
+               (JSON..=) "SslClientCertificateArn"
+                 Prelude.<$> sslClientCertificateArn,
+               (JSON..=) "SslClientKeyArn" Prelude.<$> sslClientKeyArn,
+               (JSON..=) "SslClientKeyPassword" Prelude.<$> sslClientKeyPassword,
+               (JSON..=) "Topic" Prelude.<$> topic]))
+instance Property "Broker" KafkaSettingsProperty where
+  type PropertyType "Broker" KafkaSettingsProperty = Value Prelude.Text
+  set newValue KafkaSettingsProperty {..}
+    = KafkaSettingsProperty {broker = Prelude.pure newValue, ..}
+instance Property "IncludeControlDetails" KafkaSettingsProperty where
+  type PropertyType "IncludeControlDetails" KafkaSettingsProperty = Value Prelude.Bool
+  set newValue KafkaSettingsProperty {..}
+    = KafkaSettingsProperty
+        {includeControlDetails = Prelude.pure newValue, ..}
+instance Property "IncludeNullAndEmpty" KafkaSettingsProperty where
+  type PropertyType "IncludeNullAndEmpty" KafkaSettingsProperty = Value Prelude.Bool
+  set newValue KafkaSettingsProperty {..}
+    = KafkaSettingsProperty
+        {includeNullAndEmpty = Prelude.pure newValue, ..}
+instance Property "IncludePartitionValue" KafkaSettingsProperty where
+  type PropertyType "IncludePartitionValue" KafkaSettingsProperty = Value Prelude.Bool
+  set newValue KafkaSettingsProperty {..}
+    = KafkaSettingsProperty
+        {includePartitionValue = Prelude.pure newValue, ..}
+instance Property "IncludeTableAlterOperations" KafkaSettingsProperty where
+  type PropertyType "IncludeTableAlterOperations" KafkaSettingsProperty = Value Prelude.Bool
+  set newValue KafkaSettingsProperty {..}
+    = KafkaSettingsProperty
+        {includeTableAlterOperations = Prelude.pure newValue, ..}
+instance Property "IncludeTransactionDetails" KafkaSettingsProperty where
+  type PropertyType "IncludeTransactionDetails" KafkaSettingsProperty = Value Prelude.Bool
+  set newValue KafkaSettingsProperty {..}
+    = KafkaSettingsProperty
+        {includeTransactionDetails = Prelude.pure newValue, ..}
+instance Property "MessageFormat" KafkaSettingsProperty where
+  type PropertyType "MessageFormat" KafkaSettingsProperty = Value Prelude.Text
+  set newValue KafkaSettingsProperty {..}
+    = KafkaSettingsProperty {messageFormat = Prelude.pure newValue, ..}
+instance Property "MessageMaxBytes" KafkaSettingsProperty where
+  type PropertyType "MessageMaxBytes" KafkaSettingsProperty = Value Prelude.Integer
+  set newValue KafkaSettingsProperty {..}
+    = KafkaSettingsProperty
+        {messageMaxBytes = Prelude.pure newValue, ..}
+instance Property "NoHexPrefix" KafkaSettingsProperty where
+  type PropertyType "NoHexPrefix" KafkaSettingsProperty = Value Prelude.Bool
+  set newValue KafkaSettingsProperty {..}
+    = KafkaSettingsProperty {noHexPrefix = Prelude.pure newValue, ..}
+instance Property "PartitionIncludeSchemaTable" KafkaSettingsProperty where
+  type PropertyType "PartitionIncludeSchemaTable" KafkaSettingsProperty = Value Prelude.Bool
+  set newValue KafkaSettingsProperty {..}
+    = KafkaSettingsProperty
+        {partitionIncludeSchemaTable = Prelude.pure newValue, ..}
+instance Property "SaslPassword" KafkaSettingsProperty where
+  type PropertyType "SaslPassword" KafkaSettingsProperty = Value Prelude.Text
+  set newValue KafkaSettingsProperty {..}
+    = KafkaSettingsProperty {saslPassword = Prelude.pure newValue, ..}
+instance Property "SaslUserName" KafkaSettingsProperty where
+  type PropertyType "SaslUserName" KafkaSettingsProperty = Value Prelude.Text
+  set newValue KafkaSettingsProperty {..}
+    = KafkaSettingsProperty {saslUserName = Prelude.pure newValue, ..}
+instance Property "SecurityProtocol" KafkaSettingsProperty where
+  type PropertyType "SecurityProtocol" KafkaSettingsProperty = Value Prelude.Text
+  set newValue KafkaSettingsProperty {..}
+    = KafkaSettingsProperty
+        {securityProtocol = Prelude.pure newValue, ..}
+instance Property "SslCaCertificateArn" KafkaSettingsProperty where
+  type PropertyType "SslCaCertificateArn" KafkaSettingsProperty = Value Prelude.Text
+  set newValue KafkaSettingsProperty {..}
+    = KafkaSettingsProperty
+        {sslCaCertificateArn = Prelude.pure newValue, ..}
+instance Property "SslClientCertificateArn" KafkaSettingsProperty where
+  type PropertyType "SslClientCertificateArn" KafkaSettingsProperty = Value Prelude.Text
+  set newValue KafkaSettingsProperty {..}
+    = KafkaSettingsProperty
+        {sslClientCertificateArn = Prelude.pure newValue, ..}
+instance Property "SslClientKeyArn" KafkaSettingsProperty where
+  type PropertyType "SslClientKeyArn" KafkaSettingsProperty = Value Prelude.Text
+  set newValue KafkaSettingsProperty {..}
+    = KafkaSettingsProperty
+        {sslClientKeyArn = Prelude.pure newValue, ..}
+instance Property "SslClientKeyPassword" KafkaSettingsProperty where
+  type PropertyType "SslClientKeyPassword" KafkaSettingsProperty = Value Prelude.Text
+  set newValue KafkaSettingsProperty {..}
+    = KafkaSettingsProperty
+        {sslClientKeyPassword = Prelude.pure newValue, ..}
+instance Property "Topic" KafkaSettingsProperty where
+  type PropertyType "Topic" KafkaSettingsProperty = Value Prelude.Text
+  set newValue KafkaSettingsProperty {..}
+    = KafkaSettingsProperty {topic = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DMS/Endpoint/KafkaSettingsProperty.hs-boot b/gen/Stratosphere/DMS/Endpoint/KafkaSettingsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/Endpoint/KafkaSettingsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DMS.Endpoint.KafkaSettingsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data KafkaSettingsProperty :: Prelude.Type
+instance ToResourceProperties KafkaSettingsProperty
+instance Prelude.Eq KafkaSettingsProperty
+instance Prelude.Show KafkaSettingsProperty
+instance JSON.ToJSON KafkaSettingsProperty
diff --git a/gen/Stratosphere/DMS/Endpoint/KinesisSettingsProperty.hs b/gen/Stratosphere/DMS/Endpoint/KinesisSettingsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/Endpoint/KinesisSettingsProperty.hs
@@ -0,0 +1,134 @@
+module Stratosphere.DMS.Endpoint.KinesisSettingsProperty (
+        KinesisSettingsProperty(..), mkKinesisSettingsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data KinesisSettingsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html>
+    KinesisSettingsProperty {haddock_workaround_ :: (),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html#cfn-dms-endpoint-kinesissettings-includecontroldetails>
+                             includeControlDetails :: (Prelude.Maybe (Value Prelude.Bool)),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html#cfn-dms-endpoint-kinesissettings-includenullandempty>
+                             includeNullAndEmpty :: (Prelude.Maybe (Value Prelude.Bool)),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html#cfn-dms-endpoint-kinesissettings-includepartitionvalue>
+                             includePartitionValue :: (Prelude.Maybe (Value Prelude.Bool)),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html#cfn-dms-endpoint-kinesissettings-includetablealteroperations>
+                             includeTableAlterOperations :: (Prelude.Maybe (Value Prelude.Bool)),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html#cfn-dms-endpoint-kinesissettings-includetransactiondetails>
+                             includeTransactionDetails :: (Prelude.Maybe (Value Prelude.Bool)),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html#cfn-dms-endpoint-kinesissettings-messageformat>
+                             messageFormat :: (Prelude.Maybe (Value Prelude.Text)),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html#cfn-dms-endpoint-kinesissettings-nohexprefix>
+                             noHexPrefix :: (Prelude.Maybe (Value Prelude.Bool)),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html#cfn-dms-endpoint-kinesissettings-partitionincludeschematable>
+                             partitionIncludeSchemaTable :: (Prelude.Maybe (Value Prelude.Bool)),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html#cfn-dms-endpoint-kinesissettings-serviceaccessrolearn>
+                             serviceAccessRoleArn :: (Prelude.Maybe (Value Prelude.Text)),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html#cfn-dms-endpoint-kinesissettings-streamarn>
+                             streamArn :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkKinesisSettingsProperty :: KinesisSettingsProperty
+mkKinesisSettingsProperty
+  = KinesisSettingsProperty
+      {haddock_workaround_ = (), includeControlDetails = Prelude.Nothing,
+       includeNullAndEmpty = Prelude.Nothing,
+       includePartitionValue = Prelude.Nothing,
+       includeTableAlterOperations = Prelude.Nothing,
+       includeTransactionDetails = Prelude.Nothing,
+       messageFormat = Prelude.Nothing, noHexPrefix = Prelude.Nothing,
+       partitionIncludeSchemaTable = Prelude.Nothing,
+       serviceAccessRoleArn = Prelude.Nothing,
+       streamArn = Prelude.Nothing}
+instance ToResourceProperties KinesisSettingsProperty where
+  toResourceProperties KinesisSettingsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::Endpoint.KinesisSettings",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "IncludeControlDetails"
+                              Prelude.<$> includeControlDetails,
+                            (JSON..=) "IncludeNullAndEmpty" Prelude.<$> includeNullAndEmpty,
+                            (JSON..=) "IncludePartitionValue"
+                              Prelude.<$> includePartitionValue,
+                            (JSON..=) "IncludeTableAlterOperations"
+                              Prelude.<$> includeTableAlterOperations,
+                            (JSON..=) "IncludeTransactionDetails"
+                              Prelude.<$> includeTransactionDetails,
+                            (JSON..=) "MessageFormat" Prelude.<$> messageFormat,
+                            (JSON..=) "NoHexPrefix" Prelude.<$> noHexPrefix,
+                            (JSON..=) "PartitionIncludeSchemaTable"
+                              Prelude.<$> partitionIncludeSchemaTable,
+                            (JSON..=) "ServiceAccessRoleArn" Prelude.<$> serviceAccessRoleArn,
+                            (JSON..=) "StreamArn" Prelude.<$> streamArn])}
+instance JSON.ToJSON KinesisSettingsProperty where
+  toJSON KinesisSettingsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "IncludeControlDetails"
+                 Prelude.<$> includeControlDetails,
+               (JSON..=) "IncludeNullAndEmpty" Prelude.<$> includeNullAndEmpty,
+               (JSON..=) "IncludePartitionValue"
+                 Prelude.<$> includePartitionValue,
+               (JSON..=) "IncludeTableAlterOperations"
+                 Prelude.<$> includeTableAlterOperations,
+               (JSON..=) "IncludeTransactionDetails"
+                 Prelude.<$> includeTransactionDetails,
+               (JSON..=) "MessageFormat" Prelude.<$> messageFormat,
+               (JSON..=) "NoHexPrefix" Prelude.<$> noHexPrefix,
+               (JSON..=) "PartitionIncludeSchemaTable"
+                 Prelude.<$> partitionIncludeSchemaTable,
+               (JSON..=) "ServiceAccessRoleArn" Prelude.<$> serviceAccessRoleArn,
+               (JSON..=) "StreamArn" Prelude.<$> streamArn]))
+instance Property "IncludeControlDetails" KinesisSettingsProperty where
+  type PropertyType "IncludeControlDetails" KinesisSettingsProperty = Value Prelude.Bool
+  set newValue KinesisSettingsProperty {..}
+    = KinesisSettingsProperty
+        {includeControlDetails = Prelude.pure newValue, ..}
+instance Property "IncludeNullAndEmpty" KinesisSettingsProperty where
+  type PropertyType "IncludeNullAndEmpty" KinesisSettingsProperty = Value Prelude.Bool
+  set newValue KinesisSettingsProperty {..}
+    = KinesisSettingsProperty
+        {includeNullAndEmpty = Prelude.pure newValue, ..}
+instance Property "IncludePartitionValue" KinesisSettingsProperty where
+  type PropertyType "IncludePartitionValue" KinesisSettingsProperty = Value Prelude.Bool
+  set newValue KinesisSettingsProperty {..}
+    = KinesisSettingsProperty
+        {includePartitionValue = Prelude.pure newValue, ..}
+instance Property "IncludeTableAlterOperations" KinesisSettingsProperty where
+  type PropertyType "IncludeTableAlterOperations" KinesisSettingsProperty = Value Prelude.Bool
+  set newValue KinesisSettingsProperty {..}
+    = KinesisSettingsProperty
+        {includeTableAlterOperations = Prelude.pure newValue, ..}
+instance Property "IncludeTransactionDetails" KinesisSettingsProperty where
+  type PropertyType "IncludeTransactionDetails" KinesisSettingsProperty = Value Prelude.Bool
+  set newValue KinesisSettingsProperty {..}
+    = KinesisSettingsProperty
+        {includeTransactionDetails = Prelude.pure newValue, ..}
+instance Property "MessageFormat" KinesisSettingsProperty where
+  type PropertyType "MessageFormat" KinesisSettingsProperty = Value Prelude.Text
+  set newValue KinesisSettingsProperty {..}
+    = KinesisSettingsProperty
+        {messageFormat = Prelude.pure newValue, ..}
+instance Property "NoHexPrefix" KinesisSettingsProperty where
+  type PropertyType "NoHexPrefix" KinesisSettingsProperty = Value Prelude.Bool
+  set newValue KinesisSettingsProperty {..}
+    = KinesisSettingsProperty {noHexPrefix = Prelude.pure newValue, ..}
+instance Property "PartitionIncludeSchemaTable" KinesisSettingsProperty where
+  type PropertyType "PartitionIncludeSchemaTable" KinesisSettingsProperty = Value Prelude.Bool
+  set newValue KinesisSettingsProperty {..}
+    = KinesisSettingsProperty
+        {partitionIncludeSchemaTable = Prelude.pure newValue, ..}
+instance Property "ServiceAccessRoleArn" KinesisSettingsProperty where
+  type PropertyType "ServiceAccessRoleArn" KinesisSettingsProperty = Value Prelude.Text
+  set newValue KinesisSettingsProperty {..}
+    = KinesisSettingsProperty
+        {serviceAccessRoleArn = Prelude.pure newValue, ..}
+instance Property "StreamArn" KinesisSettingsProperty where
+  type PropertyType "StreamArn" KinesisSettingsProperty = Value Prelude.Text
+  set newValue KinesisSettingsProperty {..}
+    = KinesisSettingsProperty {streamArn = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DMS/Endpoint/KinesisSettingsProperty.hs-boot b/gen/Stratosphere/DMS/Endpoint/KinesisSettingsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/Endpoint/KinesisSettingsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DMS.Endpoint.KinesisSettingsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data KinesisSettingsProperty :: Prelude.Type
+instance ToResourceProperties KinesisSettingsProperty
+instance Prelude.Eq KinesisSettingsProperty
+instance Prelude.Show KinesisSettingsProperty
+instance JSON.ToJSON KinesisSettingsProperty
diff --git a/gen/Stratosphere/DMS/Endpoint/MicrosoftSqlServerSettingsProperty.hs b/gen/Stratosphere/DMS/Endpoint/MicrosoftSqlServerSettingsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/Endpoint/MicrosoftSqlServerSettingsProperty.hs
@@ -0,0 +1,206 @@
+module Stratosphere.DMS.Endpoint.MicrosoftSqlServerSettingsProperty (
+        MicrosoftSqlServerSettingsProperty(..),
+        mkMicrosoftSqlServerSettingsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data MicrosoftSqlServerSettingsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-microsoftsqlserversettings.html>
+    MicrosoftSqlServerSettingsProperty {haddock_workaround_ :: (),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-microsoftsqlserversettings.html#cfn-dms-endpoint-microsoftsqlserversettings-bcppacketsize>
+                                        bcpPacketSize :: (Prelude.Maybe (Value Prelude.Integer)),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-microsoftsqlserversettings.html#cfn-dms-endpoint-microsoftsqlserversettings-controltablesfilegroup>
+                                        controlTablesFileGroup :: (Prelude.Maybe (Value Prelude.Text)),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-microsoftsqlserversettings.html#cfn-dms-endpoint-microsoftsqlserversettings-databasename>
+                                        databaseName :: (Prelude.Maybe (Value Prelude.Text)),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-microsoftsqlserversettings.html#cfn-dms-endpoint-microsoftsqlserversettings-forceloblookup>
+                                        forceLobLookup :: (Prelude.Maybe (Value Prelude.Bool)),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-microsoftsqlserversettings.html#cfn-dms-endpoint-microsoftsqlserversettings-password>
+                                        password :: (Prelude.Maybe (Value Prelude.Text)),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-microsoftsqlserversettings.html#cfn-dms-endpoint-microsoftsqlserversettings-port>
+                                        port :: (Prelude.Maybe (Value Prelude.Integer)),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-microsoftsqlserversettings.html#cfn-dms-endpoint-microsoftsqlserversettings-querysinglealwaysonnode>
+                                        querySingleAlwaysOnNode :: (Prelude.Maybe (Value Prelude.Bool)),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-microsoftsqlserversettings.html#cfn-dms-endpoint-microsoftsqlserversettings-readbackuponly>
+                                        readBackupOnly :: (Prelude.Maybe (Value Prelude.Bool)),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-microsoftsqlserversettings.html#cfn-dms-endpoint-microsoftsqlserversettings-safeguardpolicy>
+                                        safeguardPolicy :: (Prelude.Maybe (Value Prelude.Text)),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-microsoftsqlserversettings.html#cfn-dms-endpoint-microsoftsqlserversettings-secretsmanageraccessrolearn>
+                                        secretsManagerAccessRoleArn :: (Prelude.Maybe (Value Prelude.Text)),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-microsoftsqlserversettings.html#cfn-dms-endpoint-microsoftsqlserversettings-secretsmanagersecretid>
+                                        secretsManagerSecretId :: (Prelude.Maybe (Value Prelude.Text)),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-microsoftsqlserversettings.html#cfn-dms-endpoint-microsoftsqlserversettings-servername>
+                                        serverName :: (Prelude.Maybe (Value Prelude.Text)),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-microsoftsqlserversettings.html#cfn-dms-endpoint-microsoftsqlserversettings-tlogaccessmode>
+                                        tlogAccessMode :: (Prelude.Maybe (Value Prelude.Text)),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-microsoftsqlserversettings.html#cfn-dms-endpoint-microsoftsqlserversettings-trimspaceinchar>
+                                        trimSpaceInChar :: (Prelude.Maybe (Value Prelude.Bool)),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-microsoftsqlserversettings.html#cfn-dms-endpoint-microsoftsqlserversettings-usebcpfullload>
+                                        useBcpFullLoad :: (Prelude.Maybe (Value Prelude.Bool)),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-microsoftsqlserversettings.html#cfn-dms-endpoint-microsoftsqlserversettings-usethirdpartybackupdevice>
+                                        useThirdPartyBackupDevice :: (Prelude.Maybe (Value Prelude.Bool)),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-microsoftsqlserversettings.html#cfn-dms-endpoint-microsoftsqlserversettings-username>
+                                        username :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkMicrosoftSqlServerSettingsProperty ::
+  MicrosoftSqlServerSettingsProperty
+mkMicrosoftSqlServerSettingsProperty
+  = MicrosoftSqlServerSettingsProperty
+      {haddock_workaround_ = (), bcpPacketSize = Prelude.Nothing,
+       controlTablesFileGroup = Prelude.Nothing,
+       databaseName = Prelude.Nothing, forceLobLookup = Prelude.Nothing,
+       password = Prelude.Nothing, port = Prelude.Nothing,
+       querySingleAlwaysOnNode = Prelude.Nothing,
+       readBackupOnly = Prelude.Nothing,
+       safeguardPolicy = Prelude.Nothing,
+       secretsManagerAccessRoleArn = Prelude.Nothing,
+       secretsManagerSecretId = Prelude.Nothing,
+       serverName = Prelude.Nothing, tlogAccessMode = Prelude.Nothing,
+       trimSpaceInChar = Prelude.Nothing,
+       useBcpFullLoad = Prelude.Nothing,
+       useThirdPartyBackupDevice = Prelude.Nothing,
+       username = Prelude.Nothing}
+instance ToResourceProperties MicrosoftSqlServerSettingsProperty where
+  toResourceProperties MicrosoftSqlServerSettingsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::Endpoint.MicrosoftSqlServerSettings",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "BcpPacketSize" Prelude.<$> bcpPacketSize,
+                            (JSON..=) "ControlTablesFileGroup"
+                              Prelude.<$> controlTablesFileGroup,
+                            (JSON..=) "DatabaseName" Prelude.<$> databaseName,
+                            (JSON..=) "ForceLobLookup" Prelude.<$> forceLobLookup,
+                            (JSON..=) "Password" Prelude.<$> password,
+                            (JSON..=) "Port" Prelude.<$> port,
+                            (JSON..=) "QuerySingleAlwaysOnNode"
+                              Prelude.<$> querySingleAlwaysOnNode,
+                            (JSON..=) "ReadBackupOnly" Prelude.<$> readBackupOnly,
+                            (JSON..=) "SafeguardPolicy" Prelude.<$> safeguardPolicy,
+                            (JSON..=) "SecretsManagerAccessRoleArn"
+                              Prelude.<$> secretsManagerAccessRoleArn,
+                            (JSON..=) "SecretsManagerSecretId"
+                              Prelude.<$> secretsManagerSecretId,
+                            (JSON..=) "ServerName" Prelude.<$> serverName,
+                            (JSON..=) "TlogAccessMode" Prelude.<$> tlogAccessMode,
+                            (JSON..=) "TrimSpaceInChar" Prelude.<$> trimSpaceInChar,
+                            (JSON..=) "UseBcpFullLoad" Prelude.<$> useBcpFullLoad,
+                            (JSON..=) "UseThirdPartyBackupDevice"
+                              Prelude.<$> useThirdPartyBackupDevice,
+                            (JSON..=) "Username" Prelude.<$> username])}
+instance JSON.ToJSON MicrosoftSqlServerSettingsProperty where
+  toJSON MicrosoftSqlServerSettingsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "BcpPacketSize" Prelude.<$> bcpPacketSize,
+               (JSON..=) "ControlTablesFileGroup"
+                 Prelude.<$> controlTablesFileGroup,
+               (JSON..=) "DatabaseName" Prelude.<$> databaseName,
+               (JSON..=) "ForceLobLookup" Prelude.<$> forceLobLookup,
+               (JSON..=) "Password" Prelude.<$> password,
+               (JSON..=) "Port" Prelude.<$> port,
+               (JSON..=) "QuerySingleAlwaysOnNode"
+                 Prelude.<$> querySingleAlwaysOnNode,
+               (JSON..=) "ReadBackupOnly" Prelude.<$> readBackupOnly,
+               (JSON..=) "SafeguardPolicy" Prelude.<$> safeguardPolicy,
+               (JSON..=) "SecretsManagerAccessRoleArn"
+                 Prelude.<$> secretsManagerAccessRoleArn,
+               (JSON..=) "SecretsManagerSecretId"
+                 Prelude.<$> secretsManagerSecretId,
+               (JSON..=) "ServerName" Prelude.<$> serverName,
+               (JSON..=) "TlogAccessMode" Prelude.<$> tlogAccessMode,
+               (JSON..=) "TrimSpaceInChar" Prelude.<$> trimSpaceInChar,
+               (JSON..=) "UseBcpFullLoad" Prelude.<$> useBcpFullLoad,
+               (JSON..=) "UseThirdPartyBackupDevice"
+                 Prelude.<$> useThirdPartyBackupDevice,
+               (JSON..=) "Username" Prelude.<$> username]))
+instance Property "BcpPacketSize" MicrosoftSqlServerSettingsProperty where
+  type PropertyType "BcpPacketSize" MicrosoftSqlServerSettingsProperty = Value Prelude.Integer
+  set newValue MicrosoftSqlServerSettingsProperty {..}
+    = MicrosoftSqlServerSettingsProperty
+        {bcpPacketSize = Prelude.pure newValue, ..}
+instance Property "ControlTablesFileGroup" MicrosoftSqlServerSettingsProperty where
+  type PropertyType "ControlTablesFileGroup" MicrosoftSqlServerSettingsProperty = Value Prelude.Text
+  set newValue MicrosoftSqlServerSettingsProperty {..}
+    = MicrosoftSqlServerSettingsProperty
+        {controlTablesFileGroup = Prelude.pure newValue, ..}
+instance Property "DatabaseName" MicrosoftSqlServerSettingsProperty where
+  type PropertyType "DatabaseName" MicrosoftSqlServerSettingsProperty = Value Prelude.Text
+  set newValue MicrosoftSqlServerSettingsProperty {..}
+    = MicrosoftSqlServerSettingsProperty
+        {databaseName = Prelude.pure newValue, ..}
+instance Property "ForceLobLookup" MicrosoftSqlServerSettingsProperty where
+  type PropertyType "ForceLobLookup" MicrosoftSqlServerSettingsProperty = Value Prelude.Bool
+  set newValue MicrosoftSqlServerSettingsProperty {..}
+    = MicrosoftSqlServerSettingsProperty
+        {forceLobLookup = Prelude.pure newValue, ..}
+instance Property "Password" MicrosoftSqlServerSettingsProperty where
+  type PropertyType "Password" MicrosoftSqlServerSettingsProperty = Value Prelude.Text
+  set newValue MicrosoftSqlServerSettingsProperty {..}
+    = MicrosoftSqlServerSettingsProperty
+        {password = Prelude.pure newValue, ..}
+instance Property "Port" MicrosoftSqlServerSettingsProperty where
+  type PropertyType "Port" MicrosoftSqlServerSettingsProperty = Value Prelude.Integer
+  set newValue MicrosoftSqlServerSettingsProperty {..}
+    = MicrosoftSqlServerSettingsProperty
+        {port = Prelude.pure newValue, ..}
+instance Property "QuerySingleAlwaysOnNode" MicrosoftSqlServerSettingsProperty where
+  type PropertyType "QuerySingleAlwaysOnNode" MicrosoftSqlServerSettingsProperty = Value Prelude.Bool
+  set newValue MicrosoftSqlServerSettingsProperty {..}
+    = MicrosoftSqlServerSettingsProperty
+        {querySingleAlwaysOnNode = Prelude.pure newValue, ..}
+instance Property "ReadBackupOnly" MicrosoftSqlServerSettingsProperty where
+  type PropertyType "ReadBackupOnly" MicrosoftSqlServerSettingsProperty = Value Prelude.Bool
+  set newValue MicrosoftSqlServerSettingsProperty {..}
+    = MicrosoftSqlServerSettingsProperty
+        {readBackupOnly = Prelude.pure newValue, ..}
+instance Property "SafeguardPolicy" MicrosoftSqlServerSettingsProperty where
+  type PropertyType "SafeguardPolicy" MicrosoftSqlServerSettingsProperty = Value Prelude.Text
+  set newValue MicrosoftSqlServerSettingsProperty {..}
+    = MicrosoftSqlServerSettingsProperty
+        {safeguardPolicy = Prelude.pure newValue, ..}
+instance Property "SecretsManagerAccessRoleArn" MicrosoftSqlServerSettingsProperty where
+  type PropertyType "SecretsManagerAccessRoleArn" MicrosoftSqlServerSettingsProperty = Value Prelude.Text
+  set newValue MicrosoftSqlServerSettingsProperty {..}
+    = MicrosoftSqlServerSettingsProperty
+        {secretsManagerAccessRoleArn = Prelude.pure newValue, ..}
+instance Property "SecretsManagerSecretId" MicrosoftSqlServerSettingsProperty where
+  type PropertyType "SecretsManagerSecretId" MicrosoftSqlServerSettingsProperty = Value Prelude.Text
+  set newValue MicrosoftSqlServerSettingsProperty {..}
+    = MicrosoftSqlServerSettingsProperty
+        {secretsManagerSecretId = Prelude.pure newValue, ..}
+instance Property "ServerName" MicrosoftSqlServerSettingsProperty where
+  type PropertyType "ServerName" MicrosoftSqlServerSettingsProperty = Value Prelude.Text
+  set newValue MicrosoftSqlServerSettingsProperty {..}
+    = MicrosoftSqlServerSettingsProperty
+        {serverName = Prelude.pure newValue, ..}
+instance Property "TlogAccessMode" MicrosoftSqlServerSettingsProperty where
+  type PropertyType "TlogAccessMode" MicrosoftSqlServerSettingsProperty = Value Prelude.Text
+  set newValue MicrosoftSqlServerSettingsProperty {..}
+    = MicrosoftSqlServerSettingsProperty
+        {tlogAccessMode = Prelude.pure newValue, ..}
+instance Property "TrimSpaceInChar" MicrosoftSqlServerSettingsProperty where
+  type PropertyType "TrimSpaceInChar" MicrosoftSqlServerSettingsProperty = Value Prelude.Bool
+  set newValue MicrosoftSqlServerSettingsProperty {..}
+    = MicrosoftSqlServerSettingsProperty
+        {trimSpaceInChar = Prelude.pure newValue, ..}
+instance Property "UseBcpFullLoad" MicrosoftSqlServerSettingsProperty where
+  type PropertyType "UseBcpFullLoad" MicrosoftSqlServerSettingsProperty = Value Prelude.Bool
+  set newValue MicrosoftSqlServerSettingsProperty {..}
+    = MicrosoftSqlServerSettingsProperty
+        {useBcpFullLoad = Prelude.pure newValue, ..}
+instance Property "UseThirdPartyBackupDevice" MicrosoftSqlServerSettingsProperty where
+  type PropertyType "UseThirdPartyBackupDevice" MicrosoftSqlServerSettingsProperty = Value Prelude.Bool
+  set newValue MicrosoftSqlServerSettingsProperty {..}
+    = MicrosoftSqlServerSettingsProperty
+        {useThirdPartyBackupDevice = Prelude.pure newValue, ..}
+instance Property "Username" MicrosoftSqlServerSettingsProperty where
+  type PropertyType "Username" MicrosoftSqlServerSettingsProperty = Value Prelude.Text
+  set newValue MicrosoftSqlServerSettingsProperty {..}
+    = MicrosoftSqlServerSettingsProperty
+        {username = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DMS/Endpoint/MicrosoftSqlServerSettingsProperty.hs-boot b/gen/Stratosphere/DMS/Endpoint/MicrosoftSqlServerSettingsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/Endpoint/MicrosoftSqlServerSettingsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DMS.Endpoint.MicrosoftSqlServerSettingsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data MicrosoftSqlServerSettingsProperty :: Prelude.Type
+instance ToResourceProperties MicrosoftSqlServerSettingsProperty
+instance Prelude.Eq MicrosoftSqlServerSettingsProperty
+instance Prelude.Show MicrosoftSqlServerSettingsProperty
+instance JSON.ToJSON MicrosoftSqlServerSettingsProperty
diff --git a/gen/Stratosphere/DMS/Endpoint/MongoDbSettingsProperty.hs b/gen/Stratosphere/DMS/Endpoint/MongoDbSettingsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/Endpoint/MongoDbSettingsProperty.hs
@@ -0,0 +1,151 @@
+module Stratosphere.DMS.Endpoint.MongoDbSettingsProperty (
+        MongoDbSettingsProperty(..), mkMongoDbSettingsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data MongoDbSettingsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html>
+    MongoDbSettingsProperty {haddock_workaround_ :: (),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-authmechanism>
+                             authMechanism :: (Prelude.Maybe (Value Prelude.Text)),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-authsource>
+                             authSource :: (Prelude.Maybe (Value Prelude.Text)),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-authtype>
+                             authType :: (Prelude.Maybe (Value Prelude.Text)),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-databasename>
+                             databaseName :: (Prelude.Maybe (Value Prelude.Text)),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-docstoinvestigate>
+                             docsToInvestigate :: (Prelude.Maybe (Value Prelude.Text)),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-extractdocid>
+                             extractDocId :: (Prelude.Maybe (Value Prelude.Text)),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-nestinglevel>
+                             nestingLevel :: (Prelude.Maybe (Value Prelude.Text)),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-password>
+                             password :: (Prelude.Maybe (Value Prelude.Text)),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-port>
+                             port :: (Prelude.Maybe (Value Prelude.Integer)),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-secretsmanageraccessrolearn>
+                             secretsManagerAccessRoleArn :: (Prelude.Maybe (Value Prelude.Text)),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-secretsmanagersecretid>
+                             secretsManagerSecretId :: (Prelude.Maybe (Value Prelude.Text)),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-servername>
+                             serverName :: (Prelude.Maybe (Value Prelude.Text)),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-username>
+                             username :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkMongoDbSettingsProperty :: MongoDbSettingsProperty
+mkMongoDbSettingsProperty
+  = MongoDbSettingsProperty
+      {haddock_workaround_ = (), authMechanism = Prelude.Nothing,
+       authSource = Prelude.Nothing, authType = Prelude.Nothing,
+       databaseName = Prelude.Nothing,
+       docsToInvestigate = Prelude.Nothing,
+       extractDocId = Prelude.Nothing, nestingLevel = Prelude.Nothing,
+       password = Prelude.Nothing, port = Prelude.Nothing,
+       secretsManagerAccessRoleArn = Prelude.Nothing,
+       secretsManagerSecretId = Prelude.Nothing,
+       serverName = Prelude.Nothing, username = Prelude.Nothing}
+instance ToResourceProperties MongoDbSettingsProperty where
+  toResourceProperties MongoDbSettingsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::Endpoint.MongoDbSettings",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "AuthMechanism" Prelude.<$> authMechanism,
+                            (JSON..=) "AuthSource" Prelude.<$> authSource,
+                            (JSON..=) "AuthType" Prelude.<$> authType,
+                            (JSON..=) "DatabaseName" Prelude.<$> databaseName,
+                            (JSON..=) "DocsToInvestigate" Prelude.<$> docsToInvestigate,
+                            (JSON..=) "ExtractDocId" Prelude.<$> extractDocId,
+                            (JSON..=) "NestingLevel" Prelude.<$> nestingLevel,
+                            (JSON..=) "Password" Prelude.<$> password,
+                            (JSON..=) "Port" Prelude.<$> port,
+                            (JSON..=) "SecretsManagerAccessRoleArn"
+                              Prelude.<$> secretsManagerAccessRoleArn,
+                            (JSON..=) "SecretsManagerSecretId"
+                              Prelude.<$> secretsManagerSecretId,
+                            (JSON..=) "ServerName" Prelude.<$> serverName,
+                            (JSON..=) "Username" Prelude.<$> username])}
+instance JSON.ToJSON MongoDbSettingsProperty where
+  toJSON MongoDbSettingsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "AuthMechanism" Prelude.<$> authMechanism,
+               (JSON..=) "AuthSource" Prelude.<$> authSource,
+               (JSON..=) "AuthType" Prelude.<$> authType,
+               (JSON..=) "DatabaseName" Prelude.<$> databaseName,
+               (JSON..=) "DocsToInvestigate" Prelude.<$> docsToInvestigate,
+               (JSON..=) "ExtractDocId" Prelude.<$> extractDocId,
+               (JSON..=) "NestingLevel" Prelude.<$> nestingLevel,
+               (JSON..=) "Password" Prelude.<$> password,
+               (JSON..=) "Port" Prelude.<$> port,
+               (JSON..=) "SecretsManagerAccessRoleArn"
+                 Prelude.<$> secretsManagerAccessRoleArn,
+               (JSON..=) "SecretsManagerSecretId"
+                 Prelude.<$> secretsManagerSecretId,
+               (JSON..=) "ServerName" Prelude.<$> serverName,
+               (JSON..=) "Username" Prelude.<$> username]))
+instance Property "AuthMechanism" MongoDbSettingsProperty where
+  type PropertyType "AuthMechanism" MongoDbSettingsProperty = Value Prelude.Text
+  set newValue MongoDbSettingsProperty {..}
+    = MongoDbSettingsProperty
+        {authMechanism = Prelude.pure newValue, ..}
+instance Property "AuthSource" MongoDbSettingsProperty where
+  type PropertyType "AuthSource" MongoDbSettingsProperty = Value Prelude.Text
+  set newValue MongoDbSettingsProperty {..}
+    = MongoDbSettingsProperty {authSource = Prelude.pure newValue, ..}
+instance Property "AuthType" MongoDbSettingsProperty where
+  type PropertyType "AuthType" MongoDbSettingsProperty = Value Prelude.Text
+  set newValue MongoDbSettingsProperty {..}
+    = MongoDbSettingsProperty {authType = Prelude.pure newValue, ..}
+instance Property "DatabaseName" MongoDbSettingsProperty where
+  type PropertyType "DatabaseName" MongoDbSettingsProperty = Value Prelude.Text
+  set newValue MongoDbSettingsProperty {..}
+    = MongoDbSettingsProperty
+        {databaseName = Prelude.pure newValue, ..}
+instance Property "DocsToInvestigate" MongoDbSettingsProperty where
+  type PropertyType "DocsToInvestigate" MongoDbSettingsProperty = Value Prelude.Text
+  set newValue MongoDbSettingsProperty {..}
+    = MongoDbSettingsProperty
+        {docsToInvestigate = Prelude.pure newValue, ..}
+instance Property "ExtractDocId" MongoDbSettingsProperty where
+  type PropertyType "ExtractDocId" MongoDbSettingsProperty = Value Prelude.Text
+  set newValue MongoDbSettingsProperty {..}
+    = MongoDbSettingsProperty
+        {extractDocId = Prelude.pure newValue, ..}
+instance Property "NestingLevel" MongoDbSettingsProperty where
+  type PropertyType "NestingLevel" MongoDbSettingsProperty = Value Prelude.Text
+  set newValue MongoDbSettingsProperty {..}
+    = MongoDbSettingsProperty
+        {nestingLevel = Prelude.pure newValue, ..}
+instance Property "Password" MongoDbSettingsProperty where
+  type PropertyType "Password" MongoDbSettingsProperty = Value Prelude.Text
+  set newValue MongoDbSettingsProperty {..}
+    = MongoDbSettingsProperty {password = Prelude.pure newValue, ..}
+instance Property "Port" MongoDbSettingsProperty where
+  type PropertyType "Port" MongoDbSettingsProperty = Value Prelude.Integer
+  set newValue MongoDbSettingsProperty {..}
+    = MongoDbSettingsProperty {port = Prelude.pure newValue, ..}
+instance Property "SecretsManagerAccessRoleArn" MongoDbSettingsProperty where
+  type PropertyType "SecretsManagerAccessRoleArn" MongoDbSettingsProperty = Value Prelude.Text
+  set newValue MongoDbSettingsProperty {..}
+    = MongoDbSettingsProperty
+        {secretsManagerAccessRoleArn = Prelude.pure newValue, ..}
+instance Property "SecretsManagerSecretId" MongoDbSettingsProperty where
+  type PropertyType "SecretsManagerSecretId" MongoDbSettingsProperty = Value Prelude.Text
+  set newValue MongoDbSettingsProperty {..}
+    = MongoDbSettingsProperty
+        {secretsManagerSecretId = Prelude.pure newValue, ..}
+instance Property "ServerName" MongoDbSettingsProperty where
+  type PropertyType "ServerName" MongoDbSettingsProperty = Value Prelude.Text
+  set newValue MongoDbSettingsProperty {..}
+    = MongoDbSettingsProperty {serverName = Prelude.pure newValue, ..}
+instance Property "Username" MongoDbSettingsProperty where
+  type PropertyType "Username" MongoDbSettingsProperty = Value Prelude.Text
+  set newValue MongoDbSettingsProperty {..}
+    = MongoDbSettingsProperty {username = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DMS/Endpoint/MongoDbSettingsProperty.hs-boot b/gen/Stratosphere/DMS/Endpoint/MongoDbSettingsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/Endpoint/MongoDbSettingsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DMS.Endpoint.MongoDbSettingsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data MongoDbSettingsProperty :: Prelude.Type
+instance ToResourceProperties MongoDbSettingsProperty
+instance Prelude.Eq MongoDbSettingsProperty
+instance Prelude.Show MongoDbSettingsProperty
+instance JSON.ToJSON MongoDbSettingsProperty
diff --git a/gen/Stratosphere/DMS/Endpoint/MySqlSettingsProperty.hs b/gen/Stratosphere/DMS/Endpoint/MySqlSettingsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/Endpoint/MySqlSettingsProperty.hs
@@ -0,0 +1,120 @@
+module Stratosphere.DMS.Endpoint.MySqlSettingsProperty (
+        MySqlSettingsProperty(..), mkMySqlSettingsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data MySqlSettingsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mysqlsettings.html>
+    MySqlSettingsProperty {haddock_workaround_ :: (),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mysqlsettings.html#cfn-dms-endpoint-mysqlsettings-afterconnectscript>
+                           afterConnectScript :: (Prelude.Maybe (Value Prelude.Text)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mysqlsettings.html#cfn-dms-endpoint-mysqlsettings-cleansourcemetadataonmismatch>
+                           cleanSourceMetadataOnMismatch :: (Prelude.Maybe (Value Prelude.Bool)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mysqlsettings.html#cfn-dms-endpoint-mysqlsettings-eventspollinterval>
+                           eventsPollInterval :: (Prelude.Maybe (Value Prelude.Integer)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mysqlsettings.html#cfn-dms-endpoint-mysqlsettings-maxfilesize>
+                           maxFileSize :: (Prelude.Maybe (Value Prelude.Integer)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mysqlsettings.html#cfn-dms-endpoint-mysqlsettings-parallelloadthreads>
+                           parallelLoadThreads :: (Prelude.Maybe (Value Prelude.Integer)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mysqlsettings.html#cfn-dms-endpoint-mysqlsettings-secretsmanageraccessrolearn>
+                           secretsManagerAccessRoleArn :: (Prelude.Maybe (Value Prelude.Text)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mysqlsettings.html#cfn-dms-endpoint-mysqlsettings-secretsmanagersecretid>
+                           secretsManagerSecretId :: (Prelude.Maybe (Value Prelude.Text)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mysqlsettings.html#cfn-dms-endpoint-mysqlsettings-servertimezone>
+                           serverTimezone :: (Prelude.Maybe (Value Prelude.Text)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mysqlsettings.html#cfn-dms-endpoint-mysqlsettings-targetdbtype>
+                           targetDbType :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkMySqlSettingsProperty :: MySqlSettingsProperty
+mkMySqlSettingsProperty
+  = MySqlSettingsProperty
+      {haddock_workaround_ = (), afterConnectScript = Prelude.Nothing,
+       cleanSourceMetadataOnMismatch = Prelude.Nothing,
+       eventsPollInterval = Prelude.Nothing,
+       maxFileSize = Prelude.Nothing,
+       parallelLoadThreads = Prelude.Nothing,
+       secretsManagerAccessRoleArn = Prelude.Nothing,
+       secretsManagerSecretId = Prelude.Nothing,
+       serverTimezone = Prelude.Nothing, targetDbType = Prelude.Nothing}
+instance ToResourceProperties MySqlSettingsProperty where
+  toResourceProperties MySqlSettingsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::Endpoint.MySqlSettings",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "AfterConnectScript" Prelude.<$> afterConnectScript,
+                            (JSON..=) "CleanSourceMetadataOnMismatch"
+                              Prelude.<$> cleanSourceMetadataOnMismatch,
+                            (JSON..=) "EventsPollInterval" Prelude.<$> eventsPollInterval,
+                            (JSON..=) "MaxFileSize" Prelude.<$> maxFileSize,
+                            (JSON..=) "ParallelLoadThreads" Prelude.<$> parallelLoadThreads,
+                            (JSON..=) "SecretsManagerAccessRoleArn"
+                              Prelude.<$> secretsManagerAccessRoleArn,
+                            (JSON..=) "SecretsManagerSecretId"
+                              Prelude.<$> secretsManagerSecretId,
+                            (JSON..=) "ServerTimezone" Prelude.<$> serverTimezone,
+                            (JSON..=) "TargetDbType" Prelude.<$> targetDbType])}
+instance JSON.ToJSON MySqlSettingsProperty where
+  toJSON MySqlSettingsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "AfterConnectScript" Prelude.<$> afterConnectScript,
+               (JSON..=) "CleanSourceMetadataOnMismatch"
+                 Prelude.<$> cleanSourceMetadataOnMismatch,
+               (JSON..=) "EventsPollInterval" Prelude.<$> eventsPollInterval,
+               (JSON..=) "MaxFileSize" Prelude.<$> maxFileSize,
+               (JSON..=) "ParallelLoadThreads" Prelude.<$> parallelLoadThreads,
+               (JSON..=) "SecretsManagerAccessRoleArn"
+                 Prelude.<$> secretsManagerAccessRoleArn,
+               (JSON..=) "SecretsManagerSecretId"
+                 Prelude.<$> secretsManagerSecretId,
+               (JSON..=) "ServerTimezone" Prelude.<$> serverTimezone,
+               (JSON..=) "TargetDbType" Prelude.<$> targetDbType]))
+instance Property "AfterConnectScript" MySqlSettingsProperty where
+  type PropertyType "AfterConnectScript" MySqlSettingsProperty = Value Prelude.Text
+  set newValue MySqlSettingsProperty {..}
+    = MySqlSettingsProperty
+        {afterConnectScript = Prelude.pure newValue, ..}
+instance Property "CleanSourceMetadataOnMismatch" MySqlSettingsProperty where
+  type PropertyType "CleanSourceMetadataOnMismatch" MySqlSettingsProperty = Value Prelude.Bool
+  set newValue MySqlSettingsProperty {..}
+    = MySqlSettingsProperty
+        {cleanSourceMetadataOnMismatch = Prelude.pure newValue, ..}
+instance Property "EventsPollInterval" MySqlSettingsProperty where
+  type PropertyType "EventsPollInterval" MySqlSettingsProperty = Value Prelude.Integer
+  set newValue MySqlSettingsProperty {..}
+    = MySqlSettingsProperty
+        {eventsPollInterval = Prelude.pure newValue, ..}
+instance Property "MaxFileSize" MySqlSettingsProperty where
+  type PropertyType "MaxFileSize" MySqlSettingsProperty = Value Prelude.Integer
+  set newValue MySqlSettingsProperty {..}
+    = MySqlSettingsProperty {maxFileSize = Prelude.pure newValue, ..}
+instance Property "ParallelLoadThreads" MySqlSettingsProperty where
+  type PropertyType "ParallelLoadThreads" MySqlSettingsProperty = Value Prelude.Integer
+  set newValue MySqlSettingsProperty {..}
+    = MySqlSettingsProperty
+        {parallelLoadThreads = Prelude.pure newValue, ..}
+instance Property "SecretsManagerAccessRoleArn" MySqlSettingsProperty where
+  type PropertyType "SecretsManagerAccessRoleArn" MySqlSettingsProperty = Value Prelude.Text
+  set newValue MySqlSettingsProperty {..}
+    = MySqlSettingsProperty
+        {secretsManagerAccessRoleArn = Prelude.pure newValue, ..}
+instance Property "SecretsManagerSecretId" MySqlSettingsProperty where
+  type PropertyType "SecretsManagerSecretId" MySqlSettingsProperty = Value Prelude.Text
+  set newValue MySqlSettingsProperty {..}
+    = MySqlSettingsProperty
+        {secretsManagerSecretId = Prelude.pure newValue, ..}
+instance Property "ServerTimezone" MySqlSettingsProperty where
+  type PropertyType "ServerTimezone" MySqlSettingsProperty = Value Prelude.Text
+  set newValue MySqlSettingsProperty {..}
+    = MySqlSettingsProperty
+        {serverTimezone = Prelude.pure newValue, ..}
+instance Property "TargetDbType" MySqlSettingsProperty where
+  type PropertyType "TargetDbType" MySqlSettingsProperty = Value Prelude.Text
+  set newValue MySqlSettingsProperty {..}
+    = MySqlSettingsProperty {targetDbType = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DMS/Endpoint/MySqlSettingsProperty.hs-boot b/gen/Stratosphere/DMS/Endpoint/MySqlSettingsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/Endpoint/MySqlSettingsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DMS.Endpoint.MySqlSettingsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data MySqlSettingsProperty :: Prelude.Type
+instance ToResourceProperties MySqlSettingsProperty
+instance Prelude.Eq MySqlSettingsProperty
+instance Prelude.Show MySqlSettingsProperty
+instance JSON.ToJSON MySqlSettingsProperty
diff --git a/gen/Stratosphere/DMS/Endpoint/NeptuneSettingsProperty.hs b/gen/Stratosphere/DMS/Endpoint/NeptuneSettingsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/Endpoint/NeptuneSettingsProperty.hs
@@ -0,0 +1,96 @@
+module Stratosphere.DMS.Endpoint.NeptuneSettingsProperty (
+        NeptuneSettingsProperty(..), mkNeptuneSettingsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data NeptuneSettingsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-neptunesettings.html>
+    NeptuneSettingsProperty {haddock_workaround_ :: (),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-neptunesettings.html#cfn-dms-endpoint-neptunesettings-errorretryduration>
+                             errorRetryDuration :: (Prelude.Maybe (Value Prelude.Integer)),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-neptunesettings.html#cfn-dms-endpoint-neptunesettings-iamauthenabled>
+                             iamAuthEnabled :: (Prelude.Maybe (Value Prelude.Bool)),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-neptunesettings.html#cfn-dms-endpoint-neptunesettings-maxfilesize>
+                             maxFileSize :: (Prelude.Maybe (Value Prelude.Integer)),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-neptunesettings.html#cfn-dms-endpoint-neptunesettings-maxretrycount>
+                             maxRetryCount :: (Prelude.Maybe (Value Prelude.Integer)),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-neptunesettings.html#cfn-dms-endpoint-neptunesettings-s3bucketfolder>
+                             s3BucketFolder :: (Prelude.Maybe (Value Prelude.Text)),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-neptunesettings.html#cfn-dms-endpoint-neptunesettings-s3bucketname>
+                             s3BucketName :: (Prelude.Maybe (Value Prelude.Text)),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-neptunesettings.html#cfn-dms-endpoint-neptunesettings-serviceaccessrolearn>
+                             serviceAccessRoleArn :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkNeptuneSettingsProperty :: NeptuneSettingsProperty
+mkNeptuneSettingsProperty
+  = NeptuneSettingsProperty
+      {haddock_workaround_ = (), errorRetryDuration = Prelude.Nothing,
+       iamAuthEnabled = Prelude.Nothing, maxFileSize = Prelude.Nothing,
+       maxRetryCount = Prelude.Nothing, s3BucketFolder = Prelude.Nothing,
+       s3BucketName = Prelude.Nothing,
+       serviceAccessRoleArn = Prelude.Nothing}
+instance ToResourceProperties NeptuneSettingsProperty where
+  toResourceProperties NeptuneSettingsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::Endpoint.NeptuneSettings",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "ErrorRetryDuration" Prelude.<$> errorRetryDuration,
+                            (JSON..=) "IamAuthEnabled" Prelude.<$> iamAuthEnabled,
+                            (JSON..=) "MaxFileSize" Prelude.<$> maxFileSize,
+                            (JSON..=) "MaxRetryCount" Prelude.<$> maxRetryCount,
+                            (JSON..=) "S3BucketFolder" Prelude.<$> s3BucketFolder,
+                            (JSON..=) "S3BucketName" Prelude.<$> s3BucketName,
+                            (JSON..=) "ServiceAccessRoleArn"
+                              Prelude.<$> serviceAccessRoleArn])}
+instance JSON.ToJSON NeptuneSettingsProperty where
+  toJSON NeptuneSettingsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "ErrorRetryDuration" Prelude.<$> errorRetryDuration,
+               (JSON..=) "IamAuthEnabled" Prelude.<$> iamAuthEnabled,
+               (JSON..=) "MaxFileSize" Prelude.<$> maxFileSize,
+               (JSON..=) "MaxRetryCount" Prelude.<$> maxRetryCount,
+               (JSON..=) "S3BucketFolder" Prelude.<$> s3BucketFolder,
+               (JSON..=) "S3BucketName" Prelude.<$> s3BucketName,
+               (JSON..=) "ServiceAccessRoleArn"
+                 Prelude.<$> serviceAccessRoleArn]))
+instance Property "ErrorRetryDuration" NeptuneSettingsProperty where
+  type PropertyType "ErrorRetryDuration" NeptuneSettingsProperty = Value Prelude.Integer
+  set newValue NeptuneSettingsProperty {..}
+    = NeptuneSettingsProperty
+        {errorRetryDuration = Prelude.pure newValue, ..}
+instance Property "IamAuthEnabled" NeptuneSettingsProperty where
+  type PropertyType "IamAuthEnabled" NeptuneSettingsProperty = Value Prelude.Bool
+  set newValue NeptuneSettingsProperty {..}
+    = NeptuneSettingsProperty
+        {iamAuthEnabled = Prelude.pure newValue, ..}
+instance Property "MaxFileSize" NeptuneSettingsProperty where
+  type PropertyType "MaxFileSize" NeptuneSettingsProperty = Value Prelude.Integer
+  set newValue NeptuneSettingsProperty {..}
+    = NeptuneSettingsProperty {maxFileSize = Prelude.pure newValue, ..}
+instance Property "MaxRetryCount" NeptuneSettingsProperty where
+  type PropertyType "MaxRetryCount" NeptuneSettingsProperty = Value Prelude.Integer
+  set newValue NeptuneSettingsProperty {..}
+    = NeptuneSettingsProperty
+        {maxRetryCount = Prelude.pure newValue, ..}
+instance Property "S3BucketFolder" NeptuneSettingsProperty where
+  type PropertyType "S3BucketFolder" NeptuneSettingsProperty = Value Prelude.Text
+  set newValue NeptuneSettingsProperty {..}
+    = NeptuneSettingsProperty
+        {s3BucketFolder = Prelude.pure newValue, ..}
+instance Property "S3BucketName" NeptuneSettingsProperty where
+  type PropertyType "S3BucketName" NeptuneSettingsProperty = Value Prelude.Text
+  set newValue NeptuneSettingsProperty {..}
+    = NeptuneSettingsProperty
+        {s3BucketName = Prelude.pure newValue, ..}
+instance Property "ServiceAccessRoleArn" NeptuneSettingsProperty where
+  type PropertyType "ServiceAccessRoleArn" NeptuneSettingsProperty = Value Prelude.Text
+  set newValue NeptuneSettingsProperty {..}
+    = NeptuneSettingsProperty
+        {serviceAccessRoleArn = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DMS/Endpoint/NeptuneSettingsProperty.hs-boot b/gen/Stratosphere/DMS/Endpoint/NeptuneSettingsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/Endpoint/NeptuneSettingsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DMS.Endpoint.NeptuneSettingsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data NeptuneSettingsProperty :: Prelude.Type
+instance ToResourceProperties NeptuneSettingsProperty
+instance Prelude.Eq NeptuneSettingsProperty
+instance Prelude.Show NeptuneSettingsProperty
+instance JSON.ToJSON NeptuneSettingsProperty
diff --git a/gen/Stratosphere/DMS/Endpoint/OracleSettingsProperty.hs b/gen/Stratosphere/DMS/Endpoint/OracleSettingsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/Endpoint/OracleSettingsProperty.hs
@@ -0,0 +1,407 @@
+module Stratosphere.DMS.Endpoint.OracleSettingsProperty (
+        OracleSettingsProperty(..), mkOracleSettingsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data OracleSettingsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html>
+    OracleSettingsProperty {haddock_workaround_ :: (),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html#cfn-dms-endpoint-oraclesettings-accessalternatedirectly>
+                            accessAlternateDirectly :: (Prelude.Maybe (Value Prelude.Bool)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html#cfn-dms-endpoint-oraclesettings-addsupplementallogging>
+                            addSupplementalLogging :: (Prelude.Maybe (Value Prelude.Bool)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html#cfn-dms-endpoint-oraclesettings-additionalarchivedlogdestid>
+                            additionalArchivedLogDestId :: (Prelude.Maybe (Value Prelude.Integer)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html#cfn-dms-endpoint-oraclesettings-allowselectnestedtables>
+                            allowSelectNestedTables :: (Prelude.Maybe (Value Prelude.Bool)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html#cfn-dms-endpoint-oraclesettings-archivedlogdestid>
+                            archivedLogDestId :: (Prelude.Maybe (Value Prelude.Integer)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html#cfn-dms-endpoint-oraclesettings-archivedlogsonly>
+                            archivedLogsOnly :: (Prelude.Maybe (Value Prelude.Bool)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html#cfn-dms-endpoint-oraclesettings-asmpassword>
+                            asmPassword :: (Prelude.Maybe (Value Prelude.Text)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html#cfn-dms-endpoint-oraclesettings-asmserver>
+                            asmServer :: (Prelude.Maybe (Value Prelude.Text)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html#cfn-dms-endpoint-oraclesettings-asmuser>
+                            asmUser :: (Prelude.Maybe (Value Prelude.Text)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html#cfn-dms-endpoint-oraclesettings-charlengthsemantics>
+                            charLengthSemantics :: (Prelude.Maybe (Value Prelude.Text)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html#cfn-dms-endpoint-oraclesettings-directpathnolog>
+                            directPathNoLog :: (Prelude.Maybe (Value Prelude.Bool)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html#cfn-dms-endpoint-oraclesettings-directpathparallelload>
+                            directPathParallelLoad :: (Prelude.Maybe (Value Prelude.Bool)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html#cfn-dms-endpoint-oraclesettings-enablehomogenoustablespace>
+                            enableHomogenousTablespace :: (Prelude.Maybe (Value Prelude.Bool)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html#cfn-dms-endpoint-oraclesettings-extraarchivedlogdestids>
+                            extraArchivedLogDestIds :: (Prelude.Maybe (ValueList Prelude.Integer)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html#cfn-dms-endpoint-oraclesettings-failtasksonlobtruncation>
+                            failTasksOnLobTruncation :: (Prelude.Maybe (Value Prelude.Bool)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html#cfn-dms-endpoint-oraclesettings-numberdatatypescale>
+                            numberDatatypeScale :: (Prelude.Maybe (Value Prelude.Integer)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html#cfn-dms-endpoint-oraclesettings-oraclepathprefix>
+                            oraclePathPrefix :: (Prelude.Maybe (Value Prelude.Text)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html#cfn-dms-endpoint-oraclesettings-parallelasmreadthreads>
+                            parallelAsmReadThreads :: (Prelude.Maybe (Value Prelude.Integer)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html#cfn-dms-endpoint-oraclesettings-readaheadblocks>
+                            readAheadBlocks :: (Prelude.Maybe (Value Prelude.Integer)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html#cfn-dms-endpoint-oraclesettings-readtablespacename>
+                            readTableSpaceName :: (Prelude.Maybe (Value Prelude.Bool)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html#cfn-dms-endpoint-oraclesettings-replacepathprefix>
+                            replacePathPrefix :: (Prelude.Maybe (Value Prelude.Bool)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html#cfn-dms-endpoint-oraclesettings-retryinterval>
+                            retryInterval :: (Prelude.Maybe (Value Prelude.Integer)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html#cfn-dms-endpoint-oraclesettings-secretsmanageraccessrolearn>
+                            secretsManagerAccessRoleArn :: (Prelude.Maybe (Value Prelude.Text)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html#cfn-dms-endpoint-oraclesettings-secretsmanageroracleasmaccessrolearn>
+                            secretsManagerOracleAsmAccessRoleArn :: (Prelude.Maybe (Value Prelude.Text)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html#cfn-dms-endpoint-oraclesettings-secretsmanageroracleasmsecretid>
+                            secretsManagerOracleAsmSecretId :: (Prelude.Maybe (Value Prelude.Text)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html#cfn-dms-endpoint-oraclesettings-secretsmanagersecretid>
+                            secretsManagerSecretId :: (Prelude.Maybe (Value Prelude.Text)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html#cfn-dms-endpoint-oraclesettings-securitydbencryption>
+                            securityDbEncryption :: (Prelude.Maybe (Value Prelude.Text)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html#cfn-dms-endpoint-oraclesettings-securitydbencryptionname>
+                            securityDbEncryptionName :: (Prelude.Maybe (Value Prelude.Text)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html#cfn-dms-endpoint-oraclesettings-spatialdataoptiontogeojsonfunctionname>
+                            spatialDataOptionToGeoJsonFunctionName :: (Prelude.Maybe (Value Prelude.Text)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html#cfn-dms-endpoint-oraclesettings-standbydelaytime>
+                            standbyDelayTime :: (Prelude.Maybe (Value Prelude.Integer)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html#cfn-dms-endpoint-oraclesettings-usealternatefolderforonline>
+                            useAlternateFolderForOnline :: (Prelude.Maybe (Value Prelude.Bool)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html#cfn-dms-endpoint-oraclesettings-usebfile>
+                            useBFile :: (Prelude.Maybe (Value Prelude.Bool)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html#cfn-dms-endpoint-oraclesettings-usedirectpathfullload>
+                            useDirectPathFullLoad :: (Prelude.Maybe (Value Prelude.Bool)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html#cfn-dms-endpoint-oraclesettings-uselogminerreader>
+                            useLogminerReader :: (Prelude.Maybe (Value Prelude.Bool)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html#cfn-dms-endpoint-oraclesettings-usepathprefix>
+                            usePathPrefix :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkOracleSettingsProperty :: OracleSettingsProperty
+mkOracleSettingsProperty
+  = OracleSettingsProperty
+      {haddock_workaround_ = (),
+       accessAlternateDirectly = Prelude.Nothing,
+       addSupplementalLogging = Prelude.Nothing,
+       additionalArchivedLogDestId = Prelude.Nothing,
+       allowSelectNestedTables = Prelude.Nothing,
+       archivedLogDestId = Prelude.Nothing,
+       archivedLogsOnly = Prelude.Nothing, asmPassword = Prelude.Nothing,
+       asmServer = Prelude.Nothing, asmUser = Prelude.Nothing,
+       charLengthSemantics = Prelude.Nothing,
+       directPathNoLog = Prelude.Nothing,
+       directPathParallelLoad = Prelude.Nothing,
+       enableHomogenousTablespace = Prelude.Nothing,
+       extraArchivedLogDestIds = Prelude.Nothing,
+       failTasksOnLobTruncation = Prelude.Nothing,
+       numberDatatypeScale = Prelude.Nothing,
+       oraclePathPrefix = Prelude.Nothing,
+       parallelAsmReadThreads = Prelude.Nothing,
+       readAheadBlocks = Prelude.Nothing,
+       readTableSpaceName = Prelude.Nothing,
+       replacePathPrefix = Prelude.Nothing,
+       retryInterval = Prelude.Nothing,
+       secretsManagerAccessRoleArn = Prelude.Nothing,
+       secretsManagerOracleAsmAccessRoleArn = Prelude.Nothing,
+       secretsManagerOracleAsmSecretId = Prelude.Nothing,
+       secretsManagerSecretId = Prelude.Nothing,
+       securityDbEncryption = Prelude.Nothing,
+       securityDbEncryptionName = Prelude.Nothing,
+       spatialDataOptionToGeoJsonFunctionName = Prelude.Nothing,
+       standbyDelayTime = Prelude.Nothing,
+       useAlternateFolderForOnline = Prelude.Nothing,
+       useBFile = Prelude.Nothing,
+       useDirectPathFullLoad = Prelude.Nothing,
+       useLogminerReader = Prelude.Nothing,
+       usePathPrefix = Prelude.Nothing}
+instance ToResourceProperties OracleSettingsProperty where
+  toResourceProperties OracleSettingsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::Endpoint.OracleSettings",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "AccessAlternateDirectly"
+                              Prelude.<$> accessAlternateDirectly,
+                            (JSON..=) "AddSupplementalLogging"
+                              Prelude.<$> addSupplementalLogging,
+                            (JSON..=) "AdditionalArchivedLogDestId"
+                              Prelude.<$> additionalArchivedLogDestId,
+                            (JSON..=) "AllowSelectNestedTables"
+                              Prelude.<$> allowSelectNestedTables,
+                            (JSON..=) "ArchivedLogDestId" Prelude.<$> archivedLogDestId,
+                            (JSON..=) "ArchivedLogsOnly" Prelude.<$> archivedLogsOnly,
+                            (JSON..=) "AsmPassword" Prelude.<$> asmPassword,
+                            (JSON..=) "AsmServer" Prelude.<$> asmServer,
+                            (JSON..=) "AsmUser" Prelude.<$> asmUser,
+                            (JSON..=) "CharLengthSemantics" Prelude.<$> charLengthSemantics,
+                            (JSON..=) "DirectPathNoLog" Prelude.<$> directPathNoLog,
+                            (JSON..=) "DirectPathParallelLoad"
+                              Prelude.<$> directPathParallelLoad,
+                            (JSON..=) "EnableHomogenousTablespace"
+                              Prelude.<$> enableHomogenousTablespace,
+                            (JSON..=) "ExtraArchivedLogDestIds"
+                              Prelude.<$> extraArchivedLogDestIds,
+                            (JSON..=) "FailTasksOnLobTruncation"
+                              Prelude.<$> failTasksOnLobTruncation,
+                            (JSON..=) "NumberDatatypeScale" Prelude.<$> numberDatatypeScale,
+                            (JSON..=) "OraclePathPrefix" Prelude.<$> oraclePathPrefix,
+                            (JSON..=) "ParallelAsmReadThreads"
+                              Prelude.<$> parallelAsmReadThreads,
+                            (JSON..=) "ReadAheadBlocks" Prelude.<$> readAheadBlocks,
+                            (JSON..=) "ReadTableSpaceName" Prelude.<$> readTableSpaceName,
+                            (JSON..=) "ReplacePathPrefix" Prelude.<$> replacePathPrefix,
+                            (JSON..=) "RetryInterval" Prelude.<$> retryInterval,
+                            (JSON..=) "SecretsManagerAccessRoleArn"
+                              Prelude.<$> secretsManagerAccessRoleArn,
+                            (JSON..=) "SecretsManagerOracleAsmAccessRoleArn"
+                              Prelude.<$> secretsManagerOracleAsmAccessRoleArn,
+                            (JSON..=) "SecretsManagerOracleAsmSecretId"
+                              Prelude.<$> secretsManagerOracleAsmSecretId,
+                            (JSON..=) "SecretsManagerSecretId"
+                              Prelude.<$> secretsManagerSecretId,
+                            (JSON..=) "SecurityDbEncryption" Prelude.<$> securityDbEncryption,
+                            (JSON..=) "SecurityDbEncryptionName"
+                              Prelude.<$> securityDbEncryptionName,
+                            (JSON..=) "SpatialDataOptionToGeoJsonFunctionName"
+                              Prelude.<$> spatialDataOptionToGeoJsonFunctionName,
+                            (JSON..=) "StandbyDelayTime" Prelude.<$> standbyDelayTime,
+                            (JSON..=) "UseAlternateFolderForOnline"
+                              Prelude.<$> useAlternateFolderForOnline,
+                            (JSON..=) "UseBFile" Prelude.<$> useBFile,
+                            (JSON..=) "UseDirectPathFullLoad"
+                              Prelude.<$> useDirectPathFullLoad,
+                            (JSON..=) "UseLogminerReader" Prelude.<$> useLogminerReader,
+                            (JSON..=) "UsePathPrefix" Prelude.<$> usePathPrefix])}
+instance JSON.ToJSON OracleSettingsProperty where
+  toJSON OracleSettingsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "AccessAlternateDirectly"
+                 Prelude.<$> accessAlternateDirectly,
+               (JSON..=) "AddSupplementalLogging"
+                 Prelude.<$> addSupplementalLogging,
+               (JSON..=) "AdditionalArchivedLogDestId"
+                 Prelude.<$> additionalArchivedLogDestId,
+               (JSON..=) "AllowSelectNestedTables"
+                 Prelude.<$> allowSelectNestedTables,
+               (JSON..=) "ArchivedLogDestId" Prelude.<$> archivedLogDestId,
+               (JSON..=) "ArchivedLogsOnly" Prelude.<$> archivedLogsOnly,
+               (JSON..=) "AsmPassword" Prelude.<$> asmPassword,
+               (JSON..=) "AsmServer" Prelude.<$> asmServer,
+               (JSON..=) "AsmUser" Prelude.<$> asmUser,
+               (JSON..=) "CharLengthSemantics" Prelude.<$> charLengthSemantics,
+               (JSON..=) "DirectPathNoLog" Prelude.<$> directPathNoLog,
+               (JSON..=) "DirectPathParallelLoad"
+                 Prelude.<$> directPathParallelLoad,
+               (JSON..=) "EnableHomogenousTablespace"
+                 Prelude.<$> enableHomogenousTablespace,
+               (JSON..=) "ExtraArchivedLogDestIds"
+                 Prelude.<$> extraArchivedLogDestIds,
+               (JSON..=) "FailTasksOnLobTruncation"
+                 Prelude.<$> failTasksOnLobTruncation,
+               (JSON..=) "NumberDatatypeScale" Prelude.<$> numberDatatypeScale,
+               (JSON..=) "OraclePathPrefix" Prelude.<$> oraclePathPrefix,
+               (JSON..=) "ParallelAsmReadThreads"
+                 Prelude.<$> parallelAsmReadThreads,
+               (JSON..=) "ReadAheadBlocks" Prelude.<$> readAheadBlocks,
+               (JSON..=) "ReadTableSpaceName" Prelude.<$> readTableSpaceName,
+               (JSON..=) "ReplacePathPrefix" Prelude.<$> replacePathPrefix,
+               (JSON..=) "RetryInterval" Prelude.<$> retryInterval,
+               (JSON..=) "SecretsManagerAccessRoleArn"
+                 Prelude.<$> secretsManagerAccessRoleArn,
+               (JSON..=) "SecretsManagerOracleAsmAccessRoleArn"
+                 Prelude.<$> secretsManagerOracleAsmAccessRoleArn,
+               (JSON..=) "SecretsManagerOracleAsmSecretId"
+                 Prelude.<$> secretsManagerOracleAsmSecretId,
+               (JSON..=) "SecretsManagerSecretId"
+                 Prelude.<$> secretsManagerSecretId,
+               (JSON..=) "SecurityDbEncryption" Prelude.<$> securityDbEncryption,
+               (JSON..=) "SecurityDbEncryptionName"
+                 Prelude.<$> securityDbEncryptionName,
+               (JSON..=) "SpatialDataOptionToGeoJsonFunctionName"
+                 Prelude.<$> spatialDataOptionToGeoJsonFunctionName,
+               (JSON..=) "StandbyDelayTime" Prelude.<$> standbyDelayTime,
+               (JSON..=) "UseAlternateFolderForOnline"
+                 Prelude.<$> useAlternateFolderForOnline,
+               (JSON..=) "UseBFile" Prelude.<$> useBFile,
+               (JSON..=) "UseDirectPathFullLoad"
+                 Prelude.<$> useDirectPathFullLoad,
+               (JSON..=) "UseLogminerReader" Prelude.<$> useLogminerReader,
+               (JSON..=) "UsePathPrefix" Prelude.<$> usePathPrefix]))
+instance Property "AccessAlternateDirectly" OracleSettingsProperty where
+  type PropertyType "AccessAlternateDirectly" OracleSettingsProperty = Value Prelude.Bool
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty
+        {accessAlternateDirectly = Prelude.pure newValue, ..}
+instance Property "AddSupplementalLogging" OracleSettingsProperty where
+  type PropertyType "AddSupplementalLogging" OracleSettingsProperty = Value Prelude.Bool
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty
+        {addSupplementalLogging = Prelude.pure newValue, ..}
+instance Property "AdditionalArchivedLogDestId" OracleSettingsProperty where
+  type PropertyType "AdditionalArchivedLogDestId" OracleSettingsProperty = Value Prelude.Integer
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty
+        {additionalArchivedLogDestId = Prelude.pure newValue, ..}
+instance Property "AllowSelectNestedTables" OracleSettingsProperty where
+  type PropertyType "AllowSelectNestedTables" OracleSettingsProperty = Value Prelude.Bool
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty
+        {allowSelectNestedTables = Prelude.pure newValue, ..}
+instance Property "ArchivedLogDestId" OracleSettingsProperty where
+  type PropertyType "ArchivedLogDestId" OracleSettingsProperty = Value Prelude.Integer
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty
+        {archivedLogDestId = Prelude.pure newValue, ..}
+instance Property "ArchivedLogsOnly" OracleSettingsProperty where
+  type PropertyType "ArchivedLogsOnly" OracleSettingsProperty = Value Prelude.Bool
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty
+        {archivedLogsOnly = Prelude.pure newValue, ..}
+instance Property "AsmPassword" OracleSettingsProperty where
+  type PropertyType "AsmPassword" OracleSettingsProperty = Value Prelude.Text
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty {asmPassword = Prelude.pure newValue, ..}
+instance Property "AsmServer" OracleSettingsProperty where
+  type PropertyType "AsmServer" OracleSettingsProperty = Value Prelude.Text
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty {asmServer = Prelude.pure newValue, ..}
+instance Property "AsmUser" OracleSettingsProperty where
+  type PropertyType "AsmUser" OracleSettingsProperty = Value Prelude.Text
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty {asmUser = Prelude.pure newValue, ..}
+instance Property "CharLengthSemantics" OracleSettingsProperty where
+  type PropertyType "CharLengthSemantics" OracleSettingsProperty = Value Prelude.Text
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty
+        {charLengthSemantics = Prelude.pure newValue, ..}
+instance Property "DirectPathNoLog" OracleSettingsProperty where
+  type PropertyType "DirectPathNoLog" OracleSettingsProperty = Value Prelude.Bool
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty
+        {directPathNoLog = Prelude.pure newValue, ..}
+instance Property "DirectPathParallelLoad" OracleSettingsProperty where
+  type PropertyType "DirectPathParallelLoad" OracleSettingsProperty = Value Prelude.Bool
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty
+        {directPathParallelLoad = Prelude.pure newValue, ..}
+instance Property "EnableHomogenousTablespace" OracleSettingsProperty where
+  type PropertyType "EnableHomogenousTablespace" OracleSettingsProperty = Value Prelude.Bool
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty
+        {enableHomogenousTablespace = Prelude.pure newValue, ..}
+instance Property "ExtraArchivedLogDestIds" OracleSettingsProperty where
+  type PropertyType "ExtraArchivedLogDestIds" OracleSettingsProperty = ValueList Prelude.Integer
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty
+        {extraArchivedLogDestIds = Prelude.pure newValue, ..}
+instance Property "FailTasksOnLobTruncation" OracleSettingsProperty where
+  type PropertyType "FailTasksOnLobTruncation" OracleSettingsProperty = Value Prelude.Bool
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty
+        {failTasksOnLobTruncation = Prelude.pure newValue, ..}
+instance Property "NumberDatatypeScale" OracleSettingsProperty where
+  type PropertyType "NumberDatatypeScale" OracleSettingsProperty = Value Prelude.Integer
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty
+        {numberDatatypeScale = Prelude.pure newValue, ..}
+instance Property "OraclePathPrefix" OracleSettingsProperty where
+  type PropertyType "OraclePathPrefix" OracleSettingsProperty = Value Prelude.Text
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty
+        {oraclePathPrefix = Prelude.pure newValue, ..}
+instance Property "ParallelAsmReadThreads" OracleSettingsProperty where
+  type PropertyType "ParallelAsmReadThreads" OracleSettingsProperty = Value Prelude.Integer
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty
+        {parallelAsmReadThreads = Prelude.pure newValue, ..}
+instance Property "ReadAheadBlocks" OracleSettingsProperty where
+  type PropertyType "ReadAheadBlocks" OracleSettingsProperty = Value Prelude.Integer
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty
+        {readAheadBlocks = Prelude.pure newValue, ..}
+instance Property "ReadTableSpaceName" OracleSettingsProperty where
+  type PropertyType "ReadTableSpaceName" OracleSettingsProperty = Value Prelude.Bool
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty
+        {readTableSpaceName = Prelude.pure newValue, ..}
+instance Property "ReplacePathPrefix" OracleSettingsProperty where
+  type PropertyType "ReplacePathPrefix" OracleSettingsProperty = Value Prelude.Bool
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty
+        {replacePathPrefix = Prelude.pure newValue, ..}
+instance Property "RetryInterval" OracleSettingsProperty where
+  type PropertyType "RetryInterval" OracleSettingsProperty = Value Prelude.Integer
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty
+        {retryInterval = Prelude.pure newValue, ..}
+instance Property "SecretsManagerAccessRoleArn" OracleSettingsProperty where
+  type PropertyType "SecretsManagerAccessRoleArn" OracleSettingsProperty = Value Prelude.Text
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty
+        {secretsManagerAccessRoleArn = Prelude.pure newValue, ..}
+instance Property "SecretsManagerOracleAsmAccessRoleArn" OracleSettingsProperty where
+  type PropertyType "SecretsManagerOracleAsmAccessRoleArn" OracleSettingsProperty = Value Prelude.Text
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty
+        {secretsManagerOracleAsmAccessRoleArn = Prelude.pure newValue, ..}
+instance Property "SecretsManagerOracleAsmSecretId" OracleSettingsProperty where
+  type PropertyType "SecretsManagerOracleAsmSecretId" OracleSettingsProperty = Value Prelude.Text
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty
+        {secretsManagerOracleAsmSecretId = Prelude.pure newValue, ..}
+instance Property "SecretsManagerSecretId" OracleSettingsProperty where
+  type PropertyType "SecretsManagerSecretId" OracleSettingsProperty = Value Prelude.Text
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty
+        {secretsManagerSecretId = Prelude.pure newValue, ..}
+instance Property "SecurityDbEncryption" OracleSettingsProperty where
+  type PropertyType "SecurityDbEncryption" OracleSettingsProperty = Value Prelude.Text
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty
+        {securityDbEncryption = Prelude.pure newValue, ..}
+instance Property "SecurityDbEncryptionName" OracleSettingsProperty where
+  type PropertyType "SecurityDbEncryptionName" OracleSettingsProperty = Value Prelude.Text
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty
+        {securityDbEncryptionName = Prelude.pure newValue, ..}
+instance Property "SpatialDataOptionToGeoJsonFunctionName" OracleSettingsProperty where
+  type PropertyType "SpatialDataOptionToGeoJsonFunctionName" OracleSettingsProperty = Value Prelude.Text
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty
+        {spatialDataOptionToGeoJsonFunctionName = Prelude.pure newValue,
+         ..}
+instance Property "StandbyDelayTime" OracleSettingsProperty where
+  type PropertyType "StandbyDelayTime" OracleSettingsProperty = Value Prelude.Integer
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty
+        {standbyDelayTime = Prelude.pure newValue, ..}
+instance Property "UseAlternateFolderForOnline" OracleSettingsProperty where
+  type PropertyType "UseAlternateFolderForOnline" OracleSettingsProperty = Value Prelude.Bool
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty
+        {useAlternateFolderForOnline = Prelude.pure newValue, ..}
+instance Property "UseBFile" OracleSettingsProperty where
+  type PropertyType "UseBFile" OracleSettingsProperty = Value Prelude.Bool
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty {useBFile = Prelude.pure newValue, ..}
+instance Property "UseDirectPathFullLoad" OracleSettingsProperty where
+  type PropertyType "UseDirectPathFullLoad" OracleSettingsProperty = Value Prelude.Bool
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty
+        {useDirectPathFullLoad = Prelude.pure newValue, ..}
+instance Property "UseLogminerReader" OracleSettingsProperty where
+  type PropertyType "UseLogminerReader" OracleSettingsProperty = Value Prelude.Bool
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty
+        {useLogminerReader = Prelude.pure newValue, ..}
+instance Property "UsePathPrefix" OracleSettingsProperty where
+  type PropertyType "UsePathPrefix" OracleSettingsProperty = Value Prelude.Text
+  set newValue OracleSettingsProperty {..}
+    = OracleSettingsProperty
+        {usePathPrefix = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DMS/Endpoint/OracleSettingsProperty.hs-boot b/gen/Stratosphere/DMS/Endpoint/OracleSettingsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/Endpoint/OracleSettingsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DMS.Endpoint.OracleSettingsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data OracleSettingsProperty :: Prelude.Type
+instance ToResourceProperties OracleSettingsProperty
+instance Prelude.Eq OracleSettingsProperty
+instance Prelude.Show OracleSettingsProperty
+instance JSON.ToJSON OracleSettingsProperty
diff --git a/gen/Stratosphere/DMS/Endpoint/PostgreSqlSettingsProperty.hs b/gen/Stratosphere/DMS/Endpoint/PostgreSqlSettingsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/Endpoint/PostgreSqlSettingsProperty.hs
@@ -0,0 +1,192 @@
+module Stratosphere.DMS.Endpoint.PostgreSqlSettingsProperty (
+        PostgreSqlSettingsProperty(..), mkPostgreSqlSettingsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data PostgreSqlSettingsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-postgresqlsettings.html>
+    PostgreSqlSettingsProperty {haddock_workaround_ :: (),
+                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-postgresqlsettings.html#cfn-dms-endpoint-postgresqlsettings-afterconnectscript>
+                                afterConnectScript :: (Prelude.Maybe (Value Prelude.Text)),
+                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-postgresqlsettings.html#cfn-dms-endpoint-postgresqlsettings-babelfishdatabasename>
+                                babelfishDatabaseName :: (Prelude.Maybe (Value Prelude.Text)),
+                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-postgresqlsettings.html#cfn-dms-endpoint-postgresqlsettings-captureddls>
+                                captureDdls :: (Prelude.Maybe (Value Prelude.Bool)),
+                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-postgresqlsettings.html#cfn-dms-endpoint-postgresqlsettings-databasemode>
+                                databaseMode :: (Prelude.Maybe (Value Prelude.Text)),
+                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-postgresqlsettings.html#cfn-dms-endpoint-postgresqlsettings-ddlartifactsschema>
+                                ddlArtifactsSchema :: (Prelude.Maybe (Value Prelude.Text)),
+                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-postgresqlsettings.html#cfn-dms-endpoint-postgresqlsettings-executetimeout>
+                                executeTimeout :: (Prelude.Maybe (Value Prelude.Integer)),
+                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-postgresqlsettings.html#cfn-dms-endpoint-postgresqlsettings-failtasksonlobtruncation>
+                                failTasksOnLobTruncation :: (Prelude.Maybe (Value Prelude.Bool)),
+                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-postgresqlsettings.html#cfn-dms-endpoint-postgresqlsettings-heartbeatenable>
+                                heartbeatEnable :: (Prelude.Maybe (Value Prelude.Bool)),
+                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-postgresqlsettings.html#cfn-dms-endpoint-postgresqlsettings-heartbeatfrequency>
+                                heartbeatFrequency :: (Prelude.Maybe (Value Prelude.Integer)),
+                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-postgresqlsettings.html#cfn-dms-endpoint-postgresqlsettings-heartbeatschema>
+                                heartbeatSchema :: (Prelude.Maybe (Value Prelude.Text)),
+                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-postgresqlsettings.html#cfn-dms-endpoint-postgresqlsettings-mapbooleanasboolean>
+                                mapBooleanAsBoolean :: (Prelude.Maybe (Value Prelude.Bool)),
+                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-postgresqlsettings.html#cfn-dms-endpoint-postgresqlsettings-maxfilesize>
+                                maxFileSize :: (Prelude.Maybe (Value Prelude.Integer)),
+                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-postgresqlsettings.html#cfn-dms-endpoint-postgresqlsettings-pluginname>
+                                pluginName :: (Prelude.Maybe (Value Prelude.Text)),
+                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-postgresqlsettings.html#cfn-dms-endpoint-postgresqlsettings-secretsmanageraccessrolearn>
+                                secretsManagerAccessRoleArn :: (Prelude.Maybe (Value Prelude.Text)),
+                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-postgresqlsettings.html#cfn-dms-endpoint-postgresqlsettings-secretsmanagersecretid>
+                                secretsManagerSecretId :: (Prelude.Maybe (Value Prelude.Text)),
+                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-postgresqlsettings.html#cfn-dms-endpoint-postgresqlsettings-slotname>
+                                slotName :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkPostgreSqlSettingsProperty :: PostgreSqlSettingsProperty
+mkPostgreSqlSettingsProperty
+  = PostgreSqlSettingsProperty
+      {haddock_workaround_ = (), afterConnectScript = Prelude.Nothing,
+       babelfishDatabaseName = Prelude.Nothing,
+       captureDdls = Prelude.Nothing, databaseMode = Prelude.Nothing,
+       ddlArtifactsSchema = Prelude.Nothing,
+       executeTimeout = Prelude.Nothing,
+       failTasksOnLobTruncation = Prelude.Nothing,
+       heartbeatEnable = Prelude.Nothing,
+       heartbeatFrequency = Prelude.Nothing,
+       heartbeatSchema = Prelude.Nothing,
+       mapBooleanAsBoolean = Prelude.Nothing,
+       maxFileSize = Prelude.Nothing, pluginName = Prelude.Nothing,
+       secretsManagerAccessRoleArn = Prelude.Nothing,
+       secretsManagerSecretId = Prelude.Nothing,
+       slotName = Prelude.Nothing}
+instance ToResourceProperties PostgreSqlSettingsProperty where
+  toResourceProperties PostgreSqlSettingsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::Endpoint.PostgreSqlSettings",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "AfterConnectScript" Prelude.<$> afterConnectScript,
+                            (JSON..=) "BabelfishDatabaseName"
+                              Prelude.<$> babelfishDatabaseName,
+                            (JSON..=) "CaptureDdls" Prelude.<$> captureDdls,
+                            (JSON..=) "DatabaseMode" Prelude.<$> databaseMode,
+                            (JSON..=) "DdlArtifactsSchema" Prelude.<$> ddlArtifactsSchema,
+                            (JSON..=) "ExecuteTimeout" Prelude.<$> executeTimeout,
+                            (JSON..=) "FailTasksOnLobTruncation"
+                              Prelude.<$> failTasksOnLobTruncation,
+                            (JSON..=) "HeartbeatEnable" Prelude.<$> heartbeatEnable,
+                            (JSON..=) "HeartbeatFrequency" Prelude.<$> heartbeatFrequency,
+                            (JSON..=) "HeartbeatSchema" Prelude.<$> heartbeatSchema,
+                            (JSON..=) "MapBooleanAsBoolean" Prelude.<$> mapBooleanAsBoolean,
+                            (JSON..=) "MaxFileSize" Prelude.<$> maxFileSize,
+                            (JSON..=) "PluginName" Prelude.<$> pluginName,
+                            (JSON..=) "SecretsManagerAccessRoleArn"
+                              Prelude.<$> secretsManagerAccessRoleArn,
+                            (JSON..=) "SecretsManagerSecretId"
+                              Prelude.<$> secretsManagerSecretId,
+                            (JSON..=) "SlotName" Prelude.<$> slotName])}
+instance JSON.ToJSON PostgreSqlSettingsProperty where
+  toJSON PostgreSqlSettingsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "AfterConnectScript" Prelude.<$> afterConnectScript,
+               (JSON..=) "BabelfishDatabaseName"
+                 Prelude.<$> babelfishDatabaseName,
+               (JSON..=) "CaptureDdls" Prelude.<$> captureDdls,
+               (JSON..=) "DatabaseMode" Prelude.<$> databaseMode,
+               (JSON..=) "DdlArtifactsSchema" Prelude.<$> ddlArtifactsSchema,
+               (JSON..=) "ExecuteTimeout" Prelude.<$> executeTimeout,
+               (JSON..=) "FailTasksOnLobTruncation"
+                 Prelude.<$> failTasksOnLobTruncation,
+               (JSON..=) "HeartbeatEnable" Prelude.<$> heartbeatEnable,
+               (JSON..=) "HeartbeatFrequency" Prelude.<$> heartbeatFrequency,
+               (JSON..=) "HeartbeatSchema" Prelude.<$> heartbeatSchema,
+               (JSON..=) "MapBooleanAsBoolean" Prelude.<$> mapBooleanAsBoolean,
+               (JSON..=) "MaxFileSize" Prelude.<$> maxFileSize,
+               (JSON..=) "PluginName" Prelude.<$> pluginName,
+               (JSON..=) "SecretsManagerAccessRoleArn"
+                 Prelude.<$> secretsManagerAccessRoleArn,
+               (JSON..=) "SecretsManagerSecretId"
+                 Prelude.<$> secretsManagerSecretId,
+               (JSON..=) "SlotName" Prelude.<$> slotName]))
+instance Property "AfterConnectScript" PostgreSqlSettingsProperty where
+  type PropertyType "AfterConnectScript" PostgreSqlSettingsProperty = Value Prelude.Text
+  set newValue PostgreSqlSettingsProperty {..}
+    = PostgreSqlSettingsProperty
+        {afterConnectScript = Prelude.pure newValue, ..}
+instance Property "BabelfishDatabaseName" PostgreSqlSettingsProperty where
+  type PropertyType "BabelfishDatabaseName" PostgreSqlSettingsProperty = Value Prelude.Text
+  set newValue PostgreSqlSettingsProperty {..}
+    = PostgreSqlSettingsProperty
+        {babelfishDatabaseName = Prelude.pure newValue, ..}
+instance Property "CaptureDdls" PostgreSqlSettingsProperty where
+  type PropertyType "CaptureDdls" PostgreSqlSettingsProperty = Value Prelude.Bool
+  set newValue PostgreSqlSettingsProperty {..}
+    = PostgreSqlSettingsProperty
+        {captureDdls = Prelude.pure newValue, ..}
+instance Property "DatabaseMode" PostgreSqlSettingsProperty where
+  type PropertyType "DatabaseMode" PostgreSqlSettingsProperty = Value Prelude.Text
+  set newValue PostgreSqlSettingsProperty {..}
+    = PostgreSqlSettingsProperty
+        {databaseMode = Prelude.pure newValue, ..}
+instance Property "DdlArtifactsSchema" PostgreSqlSettingsProperty where
+  type PropertyType "DdlArtifactsSchema" PostgreSqlSettingsProperty = Value Prelude.Text
+  set newValue PostgreSqlSettingsProperty {..}
+    = PostgreSqlSettingsProperty
+        {ddlArtifactsSchema = Prelude.pure newValue, ..}
+instance Property "ExecuteTimeout" PostgreSqlSettingsProperty where
+  type PropertyType "ExecuteTimeout" PostgreSqlSettingsProperty = Value Prelude.Integer
+  set newValue PostgreSqlSettingsProperty {..}
+    = PostgreSqlSettingsProperty
+        {executeTimeout = Prelude.pure newValue, ..}
+instance Property "FailTasksOnLobTruncation" PostgreSqlSettingsProperty where
+  type PropertyType "FailTasksOnLobTruncation" PostgreSqlSettingsProperty = Value Prelude.Bool
+  set newValue PostgreSqlSettingsProperty {..}
+    = PostgreSqlSettingsProperty
+        {failTasksOnLobTruncation = Prelude.pure newValue, ..}
+instance Property "HeartbeatEnable" PostgreSqlSettingsProperty where
+  type PropertyType "HeartbeatEnable" PostgreSqlSettingsProperty = Value Prelude.Bool
+  set newValue PostgreSqlSettingsProperty {..}
+    = PostgreSqlSettingsProperty
+        {heartbeatEnable = Prelude.pure newValue, ..}
+instance Property "HeartbeatFrequency" PostgreSqlSettingsProperty where
+  type PropertyType "HeartbeatFrequency" PostgreSqlSettingsProperty = Value Prelude.Integer
+  set newValue PostgreSqlSettingsProperty {..}
+    = PostgreSqlSettingsProperty
+        {heartbeatFrequency = Prelude.pure newValue, ..}
+instance Property "HeartbeatSchema" PostgreSqlSettingsProperty where
+  type PropertyType "HeartbeatSchema" PostgreSqlSettingsProperty = Value Prelude.Text
+  set newValue PostgreSqlSettingsProperty {..}
+    = PostgreSqlSettingsProperty
+        {heartbeatSchema = Prelude.pure newValue, ..}
+instance Property "MapBooleanAsBoolean" PostgreSqlSettingsProperty where
+  type PropertyType "MapBooleanAsBoolean" PostgreSqlSettingsProperty = Value Prelude.Bool
+  set newValue PostgreSqlSettingsProperty {..}
+    = PostgreSqlSettingsProperty
+        {mapBooleanAsBoolean = Prelude.pure newValue, ..}
+instance Property "MaxFileSize" PostgreSqlSettingsProperty where
+  type PropertyType "MaxFileSize" PostgreSqlSettingsProperty = Value Prelude.Integer
+  set newValue PostgreSqlSettingsProperty {..}
+    = PostgreSqlSettingsProperty
+        {maxFileSize = Prelude.pure newValue, ..}
+instance Property "PluginName" PostgreSqlSettingsProperty where
+  type PropertyType "PluginName" PostgreSqlSettingsProperty = Value Prelude.Text
+  set newValue PostgreSqlSettingsProperty {..}
+    = PostgreSqlSettingsProperty
+        {pluginName = Prelude.pure newValue, ..}
+instance Property "SecretsManagerAccessRoleArn" PostgreSqlSettingsProperty where
+  type PropertyType "SecretsManagerAccessRoleArn" PostgreSqlSettingsProperty = Value Prelude.Text
+  set newValue PostgreSqlSettingsProperty {..}
+    = PostgreSqlSettingsProperty
+        {secretsManagerAccessRoleArn = Prelude.pure newValue, ..}
+instance Property "SecretsManagerSecretId" PostgreSqlSettingsProperty where
+  type PropertyType "SecretsManagerSecretId" PostgreSqlSettingsProperty = Value Prelude.Text
+  set newValue PostgreSqlSettingsProperty {..}
+    = PostgreSqlSettingsProperty
+        {secretsManagerSecretId = Prelude.pure newValue, ..}
+instance Property "SlotName" PostgreSqlSettingsProperty where
+  type PropertyType "SlotName" PostgreSqlSettingsProperty = Value Prelude.Text
+  set newValue PostgreSqlSettingsProperty {..}
+    = PostgreSqlSettingsProperty {slotName = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DMS/Endpoint/PostgreSqlSettingsProperty.hs-boot b/gen/Stratosphere/DMS/Endpoint/PostgreSqlSettingsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/Endpoint/PostgreSqlSettingsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DMS.Endpoint.PostgreSqlSettingsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data PostgreSqlSettingsProperty :: Prelude.Type
+instance ToResourceProperties PostgreSqlSettingsProperty
+instance Prelude.Eq PostgreSqlSettingsProperty
+instance Prelude.Show PostgreSqlSettingsProperty
+instance JSON.ToJSON PostgreSqlSettingsProperty
diff --git a/gen/Stratosphere/DMS/Endpoint/RedisSettingsProperty.hs b/gen/Stratosphere/DMS/Endpoint/RedisSettingsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/Endpoint/RedisSettingsProperty.hs
@@ -0,0 +1,90 @@
+module Stratosphere.DMS.Endpoint.RedisSettingsProperty (
+        RedisSettingsProperty(..), mkRedisSettingsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data RedisSettingsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redissettings.html>
+    RedisSettingsProperty {haddock_workaround_ :: (),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redissettings.html#cfn-dms-endpoint-redissettings-authpassword>
+                           authPassword :: (Prelude.Maybe (Value Prelude.Text)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redissettings.html#cfn-dms-endpoint-redissettings-authtype>
+                           authType :: (Prelude.Maybe (Value Prelude.Text)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redissettings.html#cfn-dms-endpoint-redissettings-authusername>
+                           authUserName :: (Prelude.Maybe (Value Prelude.Text)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redissettings.html#cfn-dms-endpoint-redissettings-port>
+                           port :: (Prelude.Maybe (Value Prelude.Double)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redissettings.html#cfn-dms-endpoint-redissettings-servername>
+                           serverName :: (Prelude.Maybe (Value Prelude.Text)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redissettings.html#cfn-dms-endpoint-redissettings-sslcacertificatearn>
+                           sslCaCertificateArn :: (Prelude.Maybe (Value Prelude.Text)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redissettings.html#cfn-dms-endpoint-redissettings-sslsecurityprotocol>
+                           sslSecurityProtocol :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkRedisSettingsProperty :: RedisSettingsProperty
+mkRedisSettingsProperty
+  = RedisSettingsProperty
+      {haddock_workaround_ = (), authPassword = Prelude.Nothing,
+       authType = Prelude.Nothing, authUserName = Prelude.Nothing,
+       port = Prelude.Nothing, serverName = Prelude.Nothing,
+       sslCaCertificateArn = Prelude.Nothing,
+       sslSecurityProtocol = Prelude.Nothing}
+instance ToResourceProperties RedisSettingsProperty where
+  toResourceProperties RedisSettingsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::Endpoint.RedisSettings",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "AuthPassword" Prelude.<$> authPassword,
+                            (JSON..=) "AuthType" Prelude.<$> authType,
+                            (JSON..=) "AuthUserName" Prelude.<$> authUserName,
+                            (JSON..=) "Port" Prelude.<$> port,
+                            (JSON..=) "ServerName" Prelude.<$> serverName,
+                            (JSON..=) "SslCaCertificateArn" Prelude.<$> sslCaCertificateArn,
+                            (JSON..=) "SslSecurityProtocol" Prelude.<$> sslSecurityProtocol])}
+instance JSON.ToJSON RedisSettingsProperty where
+  toJSON RedisSettingsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "AuthPassword" Prelude.<$> authPassword,
+               (JSON..=) "AuthType" Prelude.<$> authType,
+               (JSON..=) "AuthUserName" Prelude.<$> authUserName,
+               (JSON..=) "Port" Prelude.<$> port,
+               (JSON..=) "ServerName" Prelude.<$> serverName,
+               (JSON..=) "SslCaCertificateArn" Prelude.<$> sslCaCertificateArn,
+               (JSON..=) "SslSecurityProtocol" Prelude.<$> sslSecurityProtocol]))
+instance Property "AuthPassword" RedisSettingsProperty where
+  type PropertyType "AuthPassword" RedisSettingsProperty = Value Prelude.Text
+  set newValue RedisSettingsProperty {..}
+    = RedisSettingsProperty {authPassword = Prelude.pure newValue, ..}
+instance Property "AuthType" RedisSettingsProperty where
+  type PropertyType "AuthType" RedisSettingsProperty = Value Prelude.Text
+  set newValue RedisSettingsProperty {..}
+    = RedisSettingsProperty {authType = Prelude.pure newValue, ..}
+instance Property "AuthUserName" RedisSettingsProperty where
+  type PropertyType "AuthUserName" RedisSettingsProperty = Value Prelude.Text
+  set newValue RedisSettingsProperty {..}
+    = RedisSettingsProperty {authUserName = Prelude.pure newValue, ..}
+instance Property "Port" RedisSettingsProperty where
+  type PropertyType "Port" RedisSettingsProperty = Value Prelude.Double
+  set newValue RedisSettingsProperty {..}
+    = RedisSettingsProperty {port = Prelude.pure newValue, ..}
+instance Property "ServerName" RedisSettingsProperty where
+  type PropertyType "ServerName" RedisSettingsProperty = Value Prelude.Text
+  set newValue RedisSettingsProperty {..}
+    = RedisSettingsProperty {serverName = Prelude.pure newValue, ..}
+instance Property "SslCaCertificateArn" RedisSettingsProperty where
+  type PropertyType "SslCaCertificateArn" RedisSettingsProperty = Value Prelude.Text
+  set newValue RedisSettingsProperty {..}
+    = RedisSettingsProperty
+        {sslCaCertificateArn = Prelude.pure newValue, ..}
+instance Property "SslSecurityProtocol" RedisSettingsProperty where
+  type PropertyType "SslSecurityProtocol" RedisSettingsProperty = Value Prelude.Text
+  set newValue RedisSettingsProperty {..}
+    = RedisSettingsProperty
+        {sslSecurityProtocol = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DMS/Endpoint/RedisSettingsProperty.hs-boot b/gen/Stratosphere/DMS/Endpoint/RedisSettingsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/Endpoint/RedisSettingsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DMS.Endpoint.RedisSettingsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data RedisSettingsProperty :: Prelude.Type
+instance ToResourceProperties RedisSettingsProperty
+instance Prelude.Eq RedisSettingsProperty
+instance Prelude.Show RedisSettingsProperty
+instance JSON.ToJSON RedisSettingsProperty
diff --git a/gen/Stratosphere/DMS/Endpoint/RedshiftSettingsProperty.hs b/gen/Stratosphere/DMS/Endpoint/RedshiftSettingsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/Endpoint/RedshiftSettingsProperty.hs
@@ -0,0 +1,284 @@
+module Stratosphere.DMS.Endpoint.RedshiftSettingsProperty (
+        RedshiftSettingsProperty(..), mkRedshiftSettingsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data RedshiftSettingsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redshiftsettings.html>
+    RedshiftSettingsProperty {haddock_workaround_ :: (),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redshiftsettings.html#cfn-dms-endpoint-redshiftsettings-acceptanydate>
+                              acceptAnyDate :: (Prelude.Maybe (Value Prelude.Bool)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redshiftsettings.html#cfn-dms-endpoint-redshiftsettings-afterconnectscript>
+                              afterConnectScript :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redshiftsettings.html#cfn-dms-endpoint-redshiftsettings-bucketfolder>
+                              bucketFolder :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redshiftsettings.html#cfn-dms-endpoint-redshiftsettings-bucketname>
+                              bucketName :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redshiftsettings.html#cfn-dms-endpoint-redshiftsettings-casesensitivenames>
+                              caseSensitiveNames :: (Prelude.Maybe (Value Prelude.Bool)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redshiftsettings.html#cfn-dms-endpoint-redshiftsettings-compupdate>
+                              compUpdate :: (Prelude.Maybe (Value Prelude.Bool)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redshiftsettings.html#cfn-dms-endpoint-redshiftsettings-connectiontimeout>
+                              connectionTimeout :: (Prelude.Maybe (Value Prelude.Integer)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redshiftsettings.html#cfn-dms-endpoint-redshiftsettings-dateformat>
+                              dateFormat :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redshiftsettings.html#cfn-dms-endpoint-redshiftsettings-emptyasnull>
+                              emptyAsNull :: (Prelude.Maybe (Value Prelude.Bool)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redshiftsettings.html#cfn-dms-endpoint-redshiftsettings-encryptionmode>
+                              encryptionMode :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redshiftsettings.html#cfn-dms-endpoint-redshiftsettings-explicitids>
+                              explicitIds :: (Prelude.Maybe (Value Prelude.Bool)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redshiftsettings.html#cfn-dms-endpoint-redshiftsettings-filetransferuploadstreams>
+                              fileTransferUploadStreams :: (Prelude.Maybe (Value Prelude.Integer)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redshiftsettings.html#cfn-dms-endpoint-redshiftsettings-loadtimeout>
+                              loadTimeout :: (Prelude.Maybe (Value Prelude.Integer)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redshiftsettings.html#cfn-dms-endpoint-redshiftsettings-mapbooleanasboolean>
+                              mapBooleanAsBoolean :: (Prelude.Maybe (Value Prelude.Bool)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redshiftsettings.html#cfn-dms-endpoint-redshiftsettings-maxfilesize>
+                              maxFileSize :: (Prelude.Maybe (Value Prelude.Integer)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redshiftsettings.html#cfn-dms-endpoint-redshiftsettings-removequotes>
+                              removeQuotes :: (Prelude.Maybe (Value Prelude.Bool)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redshiftsettings.html#cfn-dms-endpoint-redshiftsettings-replacechars>
+                              replaceChars :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redshiftsettings.html#cfn-dms-endpoint-redshiftsettings-replaceinvalidchars>
+                              replaceInvalidChars :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redshiftsettings.html#cfn-dms-endpoint-redshiftsettings-secretsmanageraccessrolearn>
+                              secretsManagerAccessRoleArn :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redshiftsettings.html#cfn-dms-endpoint-redshiftsettings-secretsmanagersecretid>
+                              secretsManagerSecretId :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redshiftsettings.html#cfn-dms-endpoint-redshiftsettings-serversideencryptionkmskeyid>
+                              serverSideEncryptionKmsKeyId :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redshiftsettings.html#cfn-dms-endpoint-redshiftsettings-serviceaccessrolearn>
+                              serviceAccessRoleArn :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redshiftsettings.html#cfn-dms-endpoint-redshiftsettings-timeformat>
+                              timeFormat :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redshiftsettings.html#cfn-dms-endpoint-redshiftsettings-trimblanks>
+                              trimBlanks :: (Prelude.Maybe (Value Prelude.Bool)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redshiftsettings.html#cfn-dms-endpoint-redshiftsettings-truncatecolumns>
+                              truncateColumns :: (Prelude.Maybe (Value Prelude.Bool)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redshiftsettings.html#cfn-dms-endpoint-redshiftsettings-writebuffersize>
+                              writeBufferSize :: (Prelude.Maybe (Value Prelude.Integer))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkRedshiftSettingsProperty :: RedshiftSettingsProperty
+mkRedshiftSettingsProperty
+  = RedshiftSettingsProperty
+      {haddock_workaround_ = (), acceptAnyDate = Prelude.Nothing,
+       afterConnectScript = Prelude.Nothing,
+       bucketFolder = Prelude.Nothing, bucketName = Prelude.Nothing,
+       caseSensitiveNames = Prelude.Nothing, compUpdate = Prelude.Nothing,
+       connectionTimeout = Prelude.Nothing, dateFormat = Prelude.Nothing,
+       emptyAsNull = Prelude.Nothing, encryptionMode = Prelude.Nothing,
+       explicitIds = Prelude.Nothing,
+       fileTransferUploadStreams = Prelude.Nothing,
+       loadTimeout = Prelude.Nothing,
+       mapBooleanAsBoolean = Prelude.Nothing,
+       maxFileSize = Prelude.Nothing, removeQuotes = Prelude.Nothing,
+       replaceChars = Prelude.Nothing,
+       replaceInvalidChars = Prelude.Nothing,
+       secretsManagerAccessRoleArn = Prelude.Nothing,
+       secretsManagerSecretId = Prelude.Nothing,
+       serverSideEncryptionKmsKeyId = Prelude.Nothing,
+       serviceAccessRoleArn = Prelude.Nothing,
+       timeFormat = Prelude.Nothing, trimBlanks = Prelude.Nothing,
+       truncateColumns = Prelude.Nothing,
+       writeBufferSize = Prelude.Nothing}
+instance ToResourceProperties RedshiftSettingsProperty where
+  toResourceProperties RedshiftSettingsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::Endpoint.RedshiftSettings",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "AcceptAnyDate" Prelude.<$> acceptAnyDate,
+                            (JSON..=) "AfterConnectScript" Prelude.<$> afterConnectScript,
+                            (JSON..=) "BucketFolder" Prelude.<$> bucketFolder,
+                            (JSON..=) "BucketName" Prelude.<$> bucketName,
+                            (JSON..=) "CaseSensitiveNames" Prelude.<$> caseSensitiveNames,
+                            (JSON..=) "CompUpdate" Prelude.<$> compUpdate,
+                            (JSON..=) "ConnectionTimeout" Prelude.<$> connectionTimeout,
+                            (JSON..=) "DateFormat" Prelude.<$> dateFormat,
+                            (JSON..=) "EmptyAsNull" Prelude.<$> emptyAsNull,
+                            (JSON..=) "EncryptionMode" Prelude.<$> encryptionMode,
+                            (JSON..=) "ExplicitIds" Prelude.<$> explicitIds,
+                            (JSON..=) "FileTransferUploadStreams"
+                              Prelude.<$> fileTransferUploadStreams,
+                            (JSON..=) "LoadTimeout" Prelude.<$> loadTimeout,
+                            (JSON..=) "MapBooleanAsBoolean" Prelude.<$> mapBooleanAsBoolean,
+                            (JSON..=) "MaxFileSize" Prelude.<$> maxFileSize,
+                            (JSON..=) "RemoveQuotes" Prelude.<$> removeQuotes,
+                            (JSON..=) "ReplaceChars" Prelude.<$> replaceChars,
+                            (JSON..=) "ReplaceInvalidChars" Prelude.<$> replaceInvalidChars,
+                            (JSON..=) "SecretsManagerAccessRoleArn"
+                              Prelude.<$> secretsManagerAccessRoleArn,
+                            (JSON..=) "SecretsManagerSecretId"
+                              Prelude.<$> secretsManagerSecretId,
+                            (JSON..=) "ServerSideEncryptionKmsKeyId"
+                              Prelude.<$> serverSideEncryptionKmsKeyId,
+                            (JSON..=) "ServiceAccessRoleArn" Prelude.<$> serviceAccessRoleArn,
+                            (JSON..=) "TimeFormat" Prelude.<$> timeFormat,
+                            (JSON..=) "TrimBlanks" Prelude.<$> trimBlanks,
+                            (JSON..=) "TruncateColumns" Prelude.<$> truncateColumns,
+                            (JSON..=) "WriteBufferSize" Prelude.<$> writeBufferSize])}
+instance JSON.ToJSON RedshiftSettingsProperty where
+  toJSON RedshiftSettingsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "AcceptAnyDate" Prelude.<$> acceptAnyDate,
+               (JSON..=) "AfterConnectScript" Prelude.<$> afterConnectScript,
+               (JSON..=) "BucketFolder" Prelude.<$> bucketFolder,
+               (JSON..=) "BucketName" Prelude.<$> bucketName,
+               (JSON..=) "CaseSensitiveNames" Prelude.<$> caseSensitiveNames,
+               (JSON..=) "CompUpdate" Prelude.<$> compUpdate,
+               (JSON..=) "ConnectionTimeout" Prelude.<$> connectionTimeout,
+               (JSON..=) "DateFormat" Prelude.<$> dateFormat,
+               (JSON..=) "EmptyAsNull" Prelude.<$> emptyAsNull,
+               (JSON..=) "EncryptionMode" Prelude.<$> encryptionMode,
+               (JSON..=) "ExplicitIds" Prelude.<$> explicitIds,
+               (JSON..=) "FileTransferUploadStreams"
+                 Prelude.<$> fileTransferUploadStreams,
+               (JSON..=) "LoadTimeout" Prelude.<$> loadTimeout,
+               (JSON..=) "MapBooleanAsBoolean" Prelude.<$> mapBooleanAsBoolean,
+               (JSON..=) "MaxFileSize" Prelude.<$> maxFileSize,
+               (JSON..=) "RemoveQuotes" Prelude.<$> removeQuotes,
+               (JSON..=) "ReplaceChars" Prelude.<$> replaceChars,
+               (JSON..=) "ReplaceInvalidChars" Prelude.<$> replaceInvalidChars,
+               (JSON..=) "SecretsManagerAccessRoleArn"
+                 Prelude.<$> secretsManagerAccessRoleArn,
+               (JSON..=) "SecretsManagerSecretId"
+                 Prelude.<$> secretsManagerSecretId,
+               (JSON..=) "ServerSideEncryptionKmsKeyId"
+                 Prelude.<$> serverSideEncryptionKmsKeyId,
+               (JSON..=) "ServiceAccessRoleArn" Prelude.<$> serviceAccessRoleArn,
+               (JSON..=) "TimeFormat" Prelude.<$> timeFormat,
+               (JSON..=) "TrimBlanks" Prelude.<$> trimBlanks,
+               (JSON..=) "TruncateColumns" Prelude.<$> truncateColumns,
+               (JSON..=) "WriteBufferSize" Prelude.<$> writeBufferSize]))
+instance Property "AcceptAnyDate" RedshiftSettingsProperty where
+  type PropertyType "AcceptAnyDate" RedshiftSettingsProperty = Value Prelude.Bool
+  set newValue RedshiftSettingsProperty {..}
+    = RedshiftSettingsProperty
+        {acceptAnyDate = Prelude.pure newValue, ..}
+instance Property "AfterConnectScript" RedshiftSettingsProperty where
+  type PropertyType "AfterConnectScript" RedshiftSettingsProperty = Value Prelude.Text
+  set newValue RedshiftSettingsProperty {..}
+    = RedshiftSettingsProperty
+        {afterConnectScript = Prelude.pure newValue, ..}
+instance Property "BucketFolder" RedshiftSettingsProperty where
+  type PropertyType "BucketFolder" RedshiftSettingsProperty = Value Prelude.Text
+  set newValue RedshiftSettingsProperty {..}
+    = RedshiftSettingsProperty
+        {bucketFolder = Prelude.pure newValue, ..}
+instance Property "BucketName" RedshiftSettingsProperty where
+  type PropertyType "BucketName" RedshiftSettingsProperty = Value Prelude.Text
+  set newValue RedshiftSettingsProperty {..}
+    = RedshiftSettingsProperty {bucketName = Prelude.pure newValue, ..}
+instance Property "CaseSensitiveNames" RedshiftSettingsProperty where
+  type PropertyType "CaseSensitiveNames" RedshiftSettingsProperty = Value Prelude.Bool
+  set newValue RedshiftSettingsProperty {..}
+    = RedshiftSettingsProperty
+        {caseSensitiveNames = Prelude.pure newValue, ..}
+instance Property "CompUpdate" RedshiftSettingsProperty where
+  type PropertyType "CompUpdate" RedshiftSettingsProperty = Value Prelude.Bool
+  set newValue RedshiftSettingsProperty {..}
+    = RedshiftSettingsProperty {compUpdate = Prelude.pure newValue, ..}
+instance Property "ConnectionTimeout" RedshiftSettingsProperty where
+  type PropertyType "ConnectionTimeout" RedshiftSettingsProperty = Value Prelude.Integer
+  set newValue RedshiftSettingsProperty {..}
+    = RedshiftSettingsProperty
+        {connectionTimeout = Prelude.pure newValue, ..}
+instance Property "DateFormat" RedshiftSettingsProperty where
+  type PropertyType "DateFormat" RedshiftSettingsProperty = Value Prelude.Text
+  set newValue RedshiftSettingsProperty {..}
+    = RedshiftSettingsProperty {dateFormat = Prelude.pure newValue, ..}
+instance Property "EmptyAsNull" RedshiftSettingsProperty where
+  type PropertyType "EmptyAsNull" RedshiftSettingsProperty = Value Prelude.Bool
+  set newValue RedshiftSettingsProperty {..}
+    = RedshiftSettingsProperty
+        {emptyAsNull = Prelude.pure newValue, ..}
+instance Property "EncryptionMode" RedshiftSettingsProperty where
+  type PropertyType "EncryptionMode" RedshiftSettingsProperty = Value Prelude.Text
+  set newValue RedshiftSettingsProperty {..}
+    = RedshiftSettingsProperty
+        {encryptionMode = Prelude.pure newValue, ..}
+instance Property "ExplicitIds" RedshiftSettingsProperty where
+  type PropertyType "ExplicitIds" RedshiftSettingsProperty = Value Prelude.Bool
+  set newValue RedshiftSettingsProperty {..}
+    = RedshiftSettingsProperty
+        {explicitIds = Prelude.pure newValue, ..}
+instance Property "FileTransferUploadStreams" RedshiftSettingsProperty where
+  type PropertyType "FileTransferUploadStreams" RedshiftSettingsProperty = Value Prelude.Integer
+  set newValue RedshiftSettingsProperty {..}
+    = RedshiftSettingsProperty
+        {fileTransferUploadStreams = Prelude.pure newValue, ..}
+instance Property "LoadTimeout" RedshiftSettingsProperty where
+  type PropertyType "LoadTimeout" RedshiftSettingsProperty = Value Prelude.Integer
+  set newValue RedshiftSettingsProperty {..}
+    = RedshiftSettingsProperty
+        {loadTimeout = Prelude.pure newValue, ..}
+instance Property "MapBooleanAsBoolean" RedshiftSettingsProperty where
+  type PropertyType "MapBooleanAsBoolean" RedshiftSettingsProperty = Value Prelude.Bool
+  set newValue RedshiftSettingsProperty {..}
+    = RedshiftSettingsProperty
+        {mapBooleanAsBoolean = Prelude.pure newValue, ..}
+instance Property "MaxFileSize" RedshiftSettingsProperty where
+  type PropertyType "MaxFileSize" RedshiftSettingsProperty = Value Prelude.Integer
+  set newValue RedshiftSettingsProperty {..}
+    = RedshiftSettingsProperty
+        {maxFileSize = Prelude.pure newValue, ..}
+instance Property "RemoveQuotes" RedshiftSettingsProperty where
+  type PropertyType "RemoveQuotes" RedshiftSettingsProperty = Value Prelude.Bool
+  set newValue RedshiftSettingsProperty {..}
+    = RedshiftSettingsProperty
+        {removeQuotes = Prelude.pure newValue, ..}
+instance Property "ReplaceChars" RedshiftSettingsProperty where
+  type PropertyType "ReplaceChars" RedshiftSettingsProperty = Value Prelude.Text
+  set newValue RedshiftSettingsProperty {..}
+    = RedshiftSettingsProperty
+        {replaceChars = Prelude.pure newValue, ..}
+instance Property "ReplaceInvalidChars" RedshiftSettingsProperty where
+  type PropertyType "ReplaceInvalidChars" RedshiftSettingsProperty = Value Prelude.Text
+  set newValue RedshiftSettingsProperty {..}
+    = RedshiftSettingsProperty
+        {replaceInvalidChars = Prelude.pure newValue, ..}
+instance Property "SecretsManagerAccessRoleArn" RedshiftSettingsProperty where
+  type PropertyType "SecretsManagerAccessRoleArn" RedshiftSettingsProperty = Value Prelude.Text
+  set newValue RedshiftSettingsProperty {..}
+    = RedshiftSettingsProperty
+        {secretsManagerAccessRoleArn = Prelude.pure newValue, ..}
+instance Property "SecretsManagerSecretId" RedshiftSettingsProperty where
+  type PropertyType "SecretsManagerSecretId" RedshiftSettingsProperty = Value Prelude.Text
+  set newValue RedshiftSettingsProperty {..}
+    = RedshiftSettingsProperty
+        {secretsManagerSecretId = Prelude.pure newValue, ..}
+instance Property "ServerSideEncryptionKmsKeyId" RedshiftSettingsProperty where
+  type PropertyType "ServerSideEncryptionKmsKeyId" RedshiftSettingsProperty = Value Prelude.Text
+  set newValue RedshiftSettingsProperty {..}
+    = RedshiftSettingsProperty
+        {serverSideEncryptionKmsKeyId = Prelude.pure newValue, ..}
+instance Property "ServiceAccessRoleArn" RedshiftSettingsProperty where
+  type PropertyType "ServiceAccessRoleArn" RedshiftSettingsProperty = Value Prelude.Text
+  set newValue RedshiftSettingsProperty {..}
+    = RedshiftSettingsProperty
+        {serviceAccessRoleArn = Prelude.pure newValue, ..}
+instance Property "TimeFormat" RedshiftSettingsProperty where
+  type PropertyType "TimeFormat" RedshiftSettingsProperty = Value Prelude.Text
+  set newValue RedshiftSettingsProperty {..}
+    = RedshiftSettingsProperty {timeFormat = Prelude.pure newValue, ..}
+instance Property "TrimBlanks" RedshiftSettingsProperty where
+  type PropertyType "TrimBlanks" RedshiftSettingsProperty = Value Prelude.Bool
+  set newValue RedshiftSettingsProperty {..}
+    = RedshiftSettingsProperty {trimBlanks = Prelude.pure newValue, ..}
+instance Property "TruncateColumns" RedshiftSettingsProperty where
+  type PropertyType "TruncateColumns" RedshiftSettingsProperty = Value Prelude.Bool
+  set newValue RedshiftSettingsProperty {..}
+    = RedshiftSettingsProperty
+        {truncateColumns = Prelude.pure newValue, ..}
+instance Property "WriteBufferSize" RedshiftSettingsProperty where
+  type PropertyType "WriteBufferSize" RedshiftSettingsProperty = Value Prelude.Integer
+  set newValue RedshiftSettingsProperty {..}
+    = RedshiftSettingsProperty
+        {writeBufferSize = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DMS/Endpoint/RedshiftSettingsProperty.hs-boot b/gen/Stratosphere/DMS/Endpoint/RedshiftSettingsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/Endpoint/RedshiftSettingsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DMS.Endpoint.RedshiftSettingsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data RedshiftSettingsProperty :: Prelude.Type
+instance ToResourceProperties RedshiftSettingsProperty
+instance Prelude.Eq RedshiftSettingsProperty
+instance Prelude.Show RedshiftSettingsProperty
+instance JSON.ToJSON RedshiftSettingsProperty
diff --git a/gen/Stratosphere/DMS/Endpoint/S3SettingsProperty.hs b/gen/Stratosphere/DMS/Endpoint/S3SettingsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/Endpoint/S3SettingsProperty.hs
@@ -0,0 +1,426 @@
+module Stratosphere.DMS.Endpoint.S3SettingsProperty (
+        S3SettingsProperty(..), mkS3SettingsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data S3SettingsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html>
+    S3SettingsProperty {haddock_workaround_ :: (),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-addcolumnname>
+                        addColumnName :: (Prelude.Maybe (Value Prelude.Bool)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-addtrailingpaddingcharacter>
+                        addTrailingPaddingCharacter :: (Prelude.Maybe (Value Prelude.Bool)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-bucketfolder>
+                        bucketFolder :: (Prelude.Maybe (Value Prelude.Text)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-bucketname>
+                        bucketName :: (Prelude.Maybe (Value Prelude.Text)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-cannedaclforobjects>
+                        cannedAclForObjects :: (Prelude.Maybe (Value Prelude.Text)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-cdcinsertsandupdates>
+                        cdcInsertsAndUpdates :: (Prelude.Maybe (Value Prelude.Bool)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-cdcinsertsonly>
+                        cdcInsertsOnly :: (Prelude.Maybe (Value Prelude.Bool)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-cdcmaxbatchinterval>
+                        cdcMaxBatchInterval :: (Prelude.Maybe (Value Prelude.Integer)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-cdcminfilesize>
+                        cdcMinFileSize :: (Prelude.Maybe (Value Prelude.Integer)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-cdcpath>
+                        cdcPath :: (Prelude.Maybe (Value Prelude.Text)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-compressiontype>
+                        compressionType :: (Prelude.Maybe (Value Prelude.Text)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-csvdelimiter>
+                        csvDelimiter :: (Prelude.Maybe (Value Prelude.Text)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-csvnosupvalue>
+                        csvNoSupValue :: (Prelude.Maybe (Value Prelude.Text)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-csvnullvalue>
+                        csvNullValue :: (Prelude.Maybe (Value Prelude.Text)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-csvrowdelimiter>
+                        csvRowDelimiter :: (Prelude.Maybe (Value Prelude.Text)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-dataformat>
+                        dataFormat :: (Prelude.Maybe (Value Prelude.Text)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-datapagesize>
+                        dataPageSize :: (Prelude.Maybe (Value Prelude.Integer)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-datepartitiondelimiter>
+                        datePartitionDelimiter :: (Prelude.Maybe (Value Prelude.Text)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-datepartitionenabled>
+                        datePartitionEnabled :: (Prelude.Maybe (Value Prelude.Bool)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-datepartitionsequence>
+                        datePartitionSequence :: (Prelude.Maybe (Value Prelude.Text)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-datepartitiontimezone>
+                        datePartitionTimezone :: (Prelude.Maybe (Value Prelude.Text)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-dictpagesizelimit>
+                        dictPageSizeLimit :: (Prelude.Maybe (Value Prelude.Integer)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-enablestatistics>
+                        enableStatistics :: (Prelude.Maybe (Value Prelude.Bool)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-encodingtype>
+                        encodingType :: (Prelude.Maybe (Value Prelude.Text)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-encryptionmode>
+                        encryptionMode :: (Prelude.Maybe (Value Prelude.Text)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-expectedbucketowner>
+                        expectedBucketOwner :: (Prelude.Maybe (Value Prelude.Text)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-externaltabledefinition>
+                        externalTableDefinition :: (Prelude.Maybe (Value Prelude.Text)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-gluecataloggeneration>
+                        glueCatalogGeneration :: (Prelude.Maybe (Value Prelude.Bool)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-ignoreheaderrows>
+                        ignoreHeaderRows :: (Prelude.Maybe (Value Prelude.Integer)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-includeopforfullload>
+                        includeOpForFullLoad :: (Prelude.Maybe (Value Prelude.Bool)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-maxfilesize>
+                        maxFileSize :: (Prelude.Maybe (Value Prelude.Integer)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-parquettimestampinmillisecond>
+                        parquetTimestampInMillisecond :: (Prelude.Maybe (Value Prelude.Bool)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-parquetversion>
+                        parquetVersion :: (Prelude.Maybe (Value Prelude.Text)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-preservetransactions>
+                        preserveTransactions :: (Prelude.Maybe (Value Prelude.Bool)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-rfc4180>
+                        rfc4180 :: (Prelude.Maybe (Value Prelude.Bool)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-rowgrouplength>
+                        rowGroupLength :: (Prelude.Maybe (Value Prelude.Integer)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-serversideencryptionkmskeyid>
+                        serverSideEncryptionKmsKeyId :: (Prelude.Maybe (Value Prelude.Text)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-serviceaccessrolearn>
+                        serviceAccessRoleArn :: (Prelude.Maybe (Value Prelude.Text)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-timestampcolumnname>
+                        timestampColumnName :: (Prelude.Maybe (Value Prelude.Text)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-usecsvnosupvalue>
+                        useCsvNoSupValue :: (Prelude.Maybe (Value Prelude.Bool)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-usetaskstarttimeforfullloadtimestamp>
+                        useTaskStartTimeForFullLoadTimestamp :: (Prelude.Maybe (Value Prelude.Bool))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkS3SettingsProperty :: S3SettingsProperty
+mkS3SettingsProperty
+  = S3SettingsProperty
+      {haddock_workaround_ = (), addColumnName = Prelude.Nothing,
+       addTrailingPaddingCharacter = Prelude.Nothing,
+       bucketFolder = Prelude.Nothing, bucketName = Prelude.Nothing,
+       cannedAclForObjects = Prelude.Nothing,
+       cdcInsertsAndUpdates = Prelude.Nothing,
+       cdcInsertsOnly = Prelude.Nothing,
+       cdcMaxBatchInterval = Prelude.Nothing,
+       cdcMinFileSize = Prelude.Nothing, cdcPath = Prelude.Nothing,
+       compressionType = Prelude.Nothing, csvDelimiter = Prelude.Nothing,
+       csvNoSupValue = Prelude.Nothing, csvNullValue = Prelude.Nothing,
+       csvRowDelimiter = Prelude.Nothing, dataFormat = Prelude.Nothing,
+       dataPageSize = Prelude.Nothing,
+       datePartitionDelimiter = Prelude.Nothing,
+       datePartitionEnabled = Prelude.Nothing,
+       datePartitionSequence = Prelude.Nothing,
+       datePartitionTimezone = Prelude.Nothing,
+       dictPageSizeLimit = Prelude.Nothing,
+       enableStatistics = Prelude.Nothing, encodingType = Prelude.Nothing,
+       encryptionMode = Prelude.Nothing,
+       expectedBucketOwner = Prelude.Nothing,
+       externalTableDefinition = Prelude.Nothing,
+       glueCatalogGeneration = Prelude.Nothing,
+       ignoreHeaderRows = Prelude.Nothing,
+       includeOpForFullLoad = Prelude.Nothing,
+       maxFileSize = Prelude.Nothing,
+       parquetTimestampInMillisecond = Prelude.Nothing,
+       parquetVersion = Prelude.Nothing,
+       preserveTransactions = Prelude.Nothing, rfc4180 = Prelude.Nothing,
+       rowGroupLength = Prelude.Nothing,
+       serverSideEncryptionKmsKeyId = Prelude.Nothing,
+       serviceAccessRoleArn = Prelude.Nothing,
+       timestampColumnName = Prelude.Nothing,
+       useCsvNoSupValue = Prelude.Nothing,
+       useTaskStartTimeForFullLoadTimestamp = Prelude.Nothing}
+instance ToResourceProperties S3SettingsProperty where
+  toResourceProperties S3SettingsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::Endpoint.S3Settings",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "AddColumnName" Prelude.<$> addColumnName,
+                            (JSON..=) "AddTrailingPaddingCharacter"
+                              Prelude.<$> addTrailingPaddingCharacter,
+                            (JSON..=) "BucketFolder" Prelude.<$> bucketFolder,
+                            (JSON..=) "BucketName" Prelude.<$> bucketName,
+                            (JSON..=) "CannedAclForObjects" Prelude.<$> cannedAclForObjects,
+                            (JSON..=) "CdcInsertsAndUpdates" Prelude.<$> cdcInsertsAndUpdates,
+                            (JSON..=) "CdcInsertsOnly" Prelude.<$> cdcInsertsOnly,
+                            (JSON..=) "CdcMaxBatchInterval" Prelude.<$> cdcMaxBatchInterval,
+                            (JSON..=) "CdcMinFileSize" Prelude.<$> cdcMinFileSize,
+                            (JSON..=) "CdcPath" Prelude.<$> cdcPath,
+                            (JSON..=) "CompressionType" Prelude.<$> compressionType,
+                            (JSON..=) "CsvDelimiter" Prelude.<$> csvDelimiter,
+                            (JSON..=) "CsvNoSupValue" Prelude.<$> csvNoSupValue,
+                            (JSON..=) "CsvNullValue" Prelude.<$> csvNullValue,
+                            (JSON..=) "CsvRowDelimiter" Prelude.<$> csvRowDelimiter,
+                            (JSON..=) "DataFormat" Prelude.<$> dataFormat,
+                            (JSON..=) "DataPageSize" Prelude.<$> dataPageSize,
+                            (JSON..=) "DatePartitionDelimiter"
+                              Prelude.<$> datePartitionDelimiter,
+                            (JSON..=) "DatePartitionEnabled" Prelude.<$> datePartitionEnabled,
+                            (JSON..=) "DatePartitionSequence"
+                              Prelude.<$> datePartitionSequence,
+                            (JSON..=) "DatePartitionTimezone"
+                              Prelude.<$> datePartitionTimezone,
+                            (JSON..=) "DictPageSizeLimit" Prelude.<$> dictPageSizeLimit,
+                            (JSON..=) "EnableStatistics" Prelude.<$> enableStatistics,
+                            (JSON..=) "EncodingType" Prelude.<$> encodingType,
+                            (JSON..=) "EncryptionMode" Prelude.<$> encryptionMode,
+                            (JSON..=) "ExpectedBucketOwner" Prelude.<$> expectedBucketOwner,
+                            (JSON..=) "ExternalTableDefinition"
+                              Prelude.<$> externalTableDefinition,
+                            (JSON..=) "GlueCatalogGeneration"
+                              Prelude.<$> glueCatalogGeneration,
+                            (JSON..=) "IgnoreHeaderRows" Prelude.<$> ignoreHeaderRows,
+                            (JSON..=) "IncludeOpForFullLoad" Prelude.<$> includeOpForFullLoad,
+                            (JSON..=) "MaxFileSize" Prelude.<$> maxFileSize,
+                            (JSON..=) "ParquetTimestampInMillisecond"
+                              Prelude.<$> parquetTimestampInMillisecond,
+                            (JSON..=) "ParquetVersion" Prelude.<$> parquetVersion,
+                            (JSON..=) "PreserveTransactions" Prelude.<$> preserveTransactions,
+                            (JSON..=) "Rfc4180" Prelude.<$> rfc4180,
+                            (JSON..=) "RowGroupLength" Prelude.<$> rowGroupLength,
+                            (JSON..=) "ServerSideEncryptionKmsKeyId"
+                              Prelude.<$> serverSideEncryptionKmsKeyId,
+                            (JSON..=) "ServiceAccessRoleArn" Prelude.<$> serviceAccessRoleArn,
+                            (JSON..=) "TimestampColumnName" Prelude.<$> timestampColumnName,
+                            (JSON..=) "UseCsvNoSupValue" Prelude.<$> useCsvNoSupValue,
+                            (JSON..=) "UseTaskStartTimeForFullLoadTimestamp"
+                              Prelude.<$> useTaskStartTimeForFullLoadTimestamp])}
+instance JSON.ToJSON S3SettingsProperty where
+  toJSON S3SettingsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "AddColumnName" Prelude.<$> addColumnName,
+               (JSON..=) "AddTrailingPaddingCharacter"
+                 Prelude.<$> addTrailingPaddingCharacter,
+               (JSON..=) "BucketFolder" Prelude.<$> bucketFolder,
+               (JSON..=) "BucketName" Prelude.<$> bucketName,
+               (JSON..=) "CannedAclForObjects" Prelude.<$> cannedAclForObjects,
+               (JSON..=) "CdcInsertsAndUpdates" Prelude.<$> cdcInsertsAndUpdates,
+               (JSON..=) "CdcInsertsOnly" Prelude.<$> cdcInsertsOnly,
+               (JSON..=) "CdcMaxBatchInterval" Prelude.<$> cdcMaxBatchInterval,
+               (JSON..=) "CdcMinFileSize" Prelude.<$> cdcMinFileSize,
+               (JSON..=) "CdcPath" Prelude.<$> cdcPath,
+               (JSON..=) "CompressionType" Prelude.<$> compressionType,
+               (JSON..=) "CsvDelimiter" Prelude.<$> csvDelimiter,
+               (JSON..=) "CsvNoSupValue" Prelude.<$> csvNoSupValue,
+               (JSON..=) "CsvNullValue" Prelude.<$> csvNullValue,
+               (JSON..=) "CsvRowDelimiter" Prelude.<$> csvRowDelimiter,
+               (JSON..=) "DataFormat" Prelude.<$> dataFormat,
+               (JSON..=) "DataPageSize" Prelude.<$> dataPageSize,
+               (JSON..=) "DatePartitionDelimiter"
+                 Prelude.<$> datePartitionDelimiter,
+               (JSON..=) "DatePartitionEnabled" Prelude.<$> datePartitionEnabled,
+               (JSON..=) "DatePartitionSequence"
+                 Prelude.<$> datePartitionSequence,
+               (JSON..=) "DatePartitionTimezone"
+                 Prelude.<$> datePartitionTimezone,
+               (JSON..=) "DictPageSizeLimit" Prelude.<$> dictPageSizeLimit,
+               (JSON..=) "EnableStatistics" Prelude.<$> enableStatistics,
+               (JSON..=) "EncodingType" Prelude.<$> encodingType,
+               (JSON..=) "EncryptionMode" Prelude.<$> encryptionMode,
+               (JSON..=) "ExpectedBucketOwner" Prelude.<$> expectedBucketOwner,
+               (JSON..=) "ExternalTableDefinition"
+                 Prelude.<$> externalTableDefinition,
+               (JSON..=) "GlueCatalogGeneration"
+                 Prelude.<$> glueCatalogGeneration,
+               (JSON..=) "IgnoreHeaderRows" Prelude.<$> ignoreHeaderRows,
+               (JSON..=) "IncludeOpForFullLoad" Prelude.<$> includeOpForFullLoad,
+               (JSON..=) "MaxFileSize" Prelude.<$> maxFileSize,
+               (JSON..=) "ParquetTimestampInMillisecond"
+                 Prelude.<$> parquetTimestampInMillisecond,
+               (JSON..=) "ParquetVersion" Prelude.<$> parquetVersion,
+               (JSON..=) "PreserveTransactions" Prelude.<$> preserveTransactions,
+               (JSON..=) "Rfc4180" Prelude.<$> rfc4180,
+               (JSON..=) "RowGroupLength" Prelude.<$> rowGroupLength,
+               (JSON..=) "ServerSideEncryptionKmsKeyId"
+                 Prelude.<$> serverSideEncryptionKmsKeyId,
+               (JSON..=) "ServiceAccessRoleArn" Prelude.<$> serviceAccessRoleArn,
+               (JSON..=) "TimestampColumnName" Prelude.<$> timestampColumnName,
+               (JSON..=) "UseCsvNoSupValue" Prelude.<$> useCsvNoSupValue,
+               (JSON..=) "UseTaskStartTimeForFullLoadTimestamp"
+                 Prelude.<$> useTaskStartTimeForFullLoadTimestamp]))
+instance Property "AddColumnName" S3SettingsProperty where
+  type PropertyType "AddColumnName" S3SettingsProperty = Value Prelude.Bool
+  set newValue S3SettingsProperty {..}
+    = S3SettingsProperty {addColumnName = Prelude.pure newValue, ..}
+instance Property "AddTrailingPaddingCharacter" S3SettingsProperty where
+  type PropertyType "AddTrailingPaddingCharacter" S3SettingsProperty = Value Prelude.Bool
+  set newValue S3SettingsProperty {..}
+    = S3SettingsProperty
+        {addTrailingPaddingCharacter = Prelude.pure newValue, ..}
+instance Property "BucketFolder" S3SettingsProperty where
+  type PropertyType "BucketFolder" S3SettingsProperty = Value Prelude.Text
+  set newValue S3SettingsProperty {..}
+    = S3SettingsProperty {bucketFolder = Prelude.pure newValue, ..}
+instance Property "BucketName" S3SettingsProperty where
+  type PropertyType "BucketName" S3SettingsProperty = Value Prelude.Text
+  set newValue S3SettingsProperty {..}
+    = S3SettingsProperty {bucketName = Prelude.pure newValue, ..}
+instance Property "CannedAclForObjects" S3SettingsProperty where
+  type PropertyType "CannedAclForObjects" S3SettingsProperty = Value Prelude.Text
+  set newValue S3SettingsProperty {..}
+    = S3SettingsProperty
+        {cannedAclForObjects = Prelude.pure newValue, ..}
+instance Property "CdcInsertsAndUpdates" S3SettingsProperty where
+  type PropertyType "CdcInsertsAndUpdates" S3SettingsProperty = Value Prelude.Bool
+  set newValue S3SettingsProperty {..}
+    = S3SettingsProperty
+        {cdcInsertsAndUpdates = Prelude.pure newValue, ..}
+instance Property "CdcInsertsOnly" S3SettingsProperty where
+  type PropertyType "CdcInsertsOnly" S3SettingsProperty = Value Prelude.Bool
+  set newValue S3SettingsProperty {..}
+    = S3SettingsProperty {cdcInsertsOnly = Prelude.pure newValue, ..}
+instance Property "CdcMaxBatchInterval" S3SettingsProperty where
+  type PropertyType "CdcMaxBatchInterval" S3SettingsProperty = Value Prelude.Integer
+  set newValue S3SettingsProperty {..}
+    = S3SettingsProperty
+        {cdcMaxBatchInterval = Prelude.pure newValue, ..}
+instance Property "CdcMinFileSize" S3SettingsProperty where
+  type PropertyType "CdcMinFileSize" S3SettingsProperty = Value Prelude.Integer
+  set newValue S3SettingsProperty {..}
+    = S3SettingsProperty {cdcMinFileSize = Prelude.pure newValue, ..}
+instance Property "CdcPath" S3SettingsProperty where
+  type PropertyType "CdcPath" S3SettingsProperty = Value Prelude.Text
+  set newValue S3SettingsProperty {..}
+    = S3SettingsProperty {cdcPath = Prelude.pure newValue, ..}
+instance Property "CompressionType" S3SettingsProperty where
+  type PropertyType "CompressionType" S3SettingsProperty = Value Prelude.Text
+  set newValue S3SettingsProperty {..}
+    = S3SettingsProperty {compressionType = Prelude.pure newValue, ..}
+instance Property "CsvDelimiter" S3SettingsProperty where
+  type PropertyType "CsvDelimiter" S3SettingsProperty = Value Prelude.Text
+  set newValue S3SettingsProperty {..}
+    = S3SettingsProperty {csvDelimiter = Prelude.pure newValue, ..}
+instance Property "CsvNoSupValue" S3SettingsProperty where
+  type PropertyType "CsvNoSupValue" S3SettingsProperty = Value Prelude.Text
+  set newValue S3SettingsProperty {..}
+    = S3SettingsProperty {csvNoSupValue = Prelude.pure newValue, ..}
+instance Property "CsvNullValue" S3SettingsProperty where
+  type PropertyType "CsvNullValue" S3SettingsProperty = Value Prelude.Text
+  set newValue S3SettingsProperty {..}
+    = S3SettingsProperty {csvNullValue = Prelude.pure newValue, ..}
+instance Property "CsvRowDelimiter" S3SettingsProperty where
+  type PropertyType "CsvRowDelimiter" S3SettingsProperty = Value Prelude.Text
+  set newValue S3SettingsProperty {..}
+    = S3SettingsProperty {csvRowDelimiter = Prelude.pure newValue, ..}
+instance Property "DataFormat" S3SettingsProperty where
+  type PropertyType "DataFormat" S3SettingsProperty = Value Prelude.Text
+  set newValue S3SettingsProperty {..}
+    = S3SettingsProperty {dataFormat = Prelude.pure newValue, ..}
+instance Property "DataPageSize" S3SettingsProperty where
+  type PropertyType "DataPageSize" S3SettingsProperty = Value Prelude.Integer
+  set newValue S3SettingsProperty {..}
+    = S3SettingsProperty {dataPageSize = Prelude.pure newValue, ..}
+instance Property "DatePartitionDelimiter" S3SettingsProperty where
+  type PropertyType "DatePartitionDelimiter" S3SettingsProperty = Value Prelude.Text
+  set newValue S3SettingsProperty {..}
+    = S3SettingsProperty
+        {datePartitionDelimiter = Prelude.pure newValue, ..}
+instance Property "DatePartitionEnabled" S3SettingsProperty where
+  type PropertyType "DatePartitionEnabled" S3SettingsProperty = Value Prelude.Bool
+  set newValue S3SettingsProperty {..}
+    = S3SettingsProperty
+        {datePartitionEnabled = Prelude.pure newValue, ..}
+instance Property "DatePartitionSequence" S3SettingsProperty where
+  type PropertyType "DatePartitionSequence" S3SettingsProperty = Value Prelude.Text
+  set newValue S3SettingsProperty {..}
+    = S3SettingsProperty
+        {datePartitionSequence = Prelude.pure newValue, ..}
+instance Property "DatePartitionTimezone" S3SettingsProperty where
+  type PropertyType "DatePartitionTimezone" S3SettingsProperty = Value Prelude.Text
+  set newValue S3SettingsProperty {..}
+    = S3SettingsProperty
+        {datePartitionTimezone = Prelude.pure newValue, ..}
+instance Property "DictPageSizeLimit" S3SettingsProperty where
+  type PropertyType "DictPageSizeLimit" S3SettingsProperty = Value Prelude.Integer
+  set newValue S3SettingsProperty {..}
+    = S3SettingsProperty
+        {dictPageSizeLimit = Prelude.pure newValue, ..}
+instance Property "EnableStatistics" S3SettingsProperty where
+  type PropertyType "EnableStatistics" S3SettingsProperty = Value Prelude.Bool
+  set newValue S3SettingsProperty {..}
+    = S3SettingsProperty {enableStatistics = Prelude.pure newValue, ..}
+instance Property "EncodingType" S3SettingsProperty where
+  type PropertyType "EncodingType" S3SettingsProperty = Value Prelude.Text
+  set newValue S3SettingsProperty {..}
+    = S3SettingsProperty {encodingType = Prelude.pure newValue, ..}
+instance Property "EncryptionMode" S3SettingsProperty where
+  type PropertyType "EncryptionMode" S3SettingsProperty = Value Prelude.Text
+  set newValue S3SettingsProperty {..}
+    = S3SettingsProperty {encryptionMode = Prelude.pure newValue, ..}
+instance Property "ExpectedBucketOwner" S3SettingsProperty where
+  type PropertyType "ExpectedBucketOwner" S3SettingsProperty = Value Prelude.Text
+  set newValue S3SettingsProperty {..}
+    = S3SettingsProperty
+        {expectedBucketOwner = Prelude.pure newValue, ..}
+instance Property "ExternalTableDefinition" S3SettingsProperty where
+  type PropertyType "ExternalTableDefinition" S3SettingsProperty = Value Prelude.Text
+  set newValue S3SettingsProperty {..}
+    = S3SettingsProperty
+        {externalTableDefinition = Prelude.pure newValue, ..}
+instance Property "GlueCatalogGeneration" S3SettingsProperty where
+  type PropertyType "GlueCatalogGeneration" S3SettingsProperty = Value Prelude.Bool
+  set newValue S3SettingsProperty {..}
+    = S3SettingsProperty
+        {glueCatalogGeneration = Prelude.pure newValue, ..}
+instance Property "IgnoreHeaderRows" S3SettingsProperty where
+  type PropertyType "IgnoreHeaderRows" S3SettingsProperty = Value Prelude.Integer
+  set newValue S3SettingsProperty {..}
+    = S3SettingsProperty {ignoreHeaderRows = Prelude.pure newValue, ..}
+instance Property "IncludeOpForFullLoad" S3SettingsProperty where
+  type PropertyType "IncludeOpForFullLoad" S3SettingsProperty = Value Prelude.Bool
+  set newValue S3SettingsProperty {..}
+    = S3SettingsProperty
+        {includeOpForFullLoad = Prelude.pure newValue, ..}
+instance Property "MaxFileSize" S3SettingsProperty where
+  type PropertyType "MaxFileSize" S3SettingsProperty = Value Prelude.Integer
+  set newValue S3SettingsProperty {..}
+    = S3SettingsProperty {maxFileSize = Prelude.pure newValue, ..}
+instance Property "ParquetTimestampInMillisecond" S3SettingsProperty where
+  type PropertyType "ParquetTimestampInMillisecond" S3SettingsProperty = Value Prelude.Bool
+  set newValue S3SettingsProperty {..}
+    = S3SettingsProperty
+        {parquetTimestampInMillisecond = Prelude.pure newValue, ..}
+instance Property "ParquetVersion" S3SettingsProperty where
+  type PropertyType "ParquetVersion" S3SettingsProperty = Value Prelude.Text
+  set newValue S3SettingsProperty {..}
+    = S3SettingsProperty {parquetVersion = Prelude.pure newValue, ..}
+instance Property "PreserveTransactions" S3SettingsProperty where
+  type PropertyType "PreserveTransactions" S3SettingsProperty = Value Prelude.Bool
+  set newValue S3SettingsProperty {..}
+    = S3SettingsProperty
+        {preserveTransactions = Prelude.pure newValue, ..}
+instance Property "Rfc4180" S3SettingsProperty where
+  type PropertyType "Rfc4180" S3SettingsProperty = Value Prelude.Bool
+  set newValue S3SettingsProperty {..}
+    = S3SettingsProperty {rfc4180 = Prelude.pure newValue, ..}
+instance Property "RowGroupLength" S3SettingsProperty where
+  type PropertyType "RowGroupLength" S3SettingsProperty = Value Prelude.Integer
+  set newValue S3SettingsProperty {..}
+    = S3SettingsProperty {rowGroupLength = Prelude.pure newValue, ..}
+instance Property "ServerSideEncryptionKmsKeyId" S3SettingsProperty where
+  type PropertyType "ServerSideEncryptionKmsKeyId" S3SettingsProperty = Value Prelude.Text
+  set newValue S3SettingsProperty {..}
+    = S3SettingsProperty
+        {serverSideEncryptionKmsKeyId = Prelude.pure newValue, ..}
+instance Property "ServiceAccessRoleArn" S3SettingsProperty where
+  type PropertyType "ServiceAccessRoleArn" S3SettingsProperty = Value Prelude.Text
+  set newValue S3SettingsProperty {..}
+    = S3SettingsProperty
+        {serviceAccessRoleArn = Prelude.pure newValue, ..}
+instance Property "TimestampColumnName" S3SettingsProperty where
+  type PropertyType "TimestampColumnName" S3SettingsProperty = Value Prelude.Text
+  set newValue S3SettingsProperty {..}
+    = S3SettingsProperty
+        {timestampColumnName = Prelude.pure newValue, ..}
+instance Property "UseCsvNoSupValue" S3SettingsProperty where
+  type PropertyType "UseCsvNoSupValue" S3SettingsProperty = Value Prelude.Bool
+  set newValue S3SettingsProperty {..}
+    = S3SettingsProperty {useCsvNoSupValue = Prelude.pure newValue, ..}
+instance Property "UseTaskStartTimeForFullLoadTimestamp" S3SettingsProperty where
+  type PropertyType "UseTaskStartTimeForFullLoadTimestamp" S3SettingsProperty = Value Prelude.Bool
+  set newValue S3SettingsProperty {..}
+    = S3SettingsProperty
+        {useTaskStartTimeForFullLoadTimestamp = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DMS/Endpoint/S3SettingsProperty.hs-boot b/gen/Stratosphere/DMS/Endpoint/S3SettingsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/Endpoint/S3SettingsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DMS.Endpoint.S3SettingsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data S3SettingsProperty :: Prelude.Type
+instance ToResourceProperties S3SettingsProperty
+instance Prelude.Eq S3SettingsProperty
+instance Prelude.Show S3SettingsProperty
+instance JSON.ToJSON S3SettingsProperty
diff --git a/gen/Stratosphere/DMS/Endpoint/SybaseSettingsProperty.hs b/gen/Stratosphere/DMS/Endpoint/SybaseSettingsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/Endpoint/SybaseSettingsProperty.hs
@@ -0,0 +1,52 @@
+module Stratosphere.DMS.Endpoint.SybaseSettingsProperty (
+        SybaseSettingsProperty(..), mkSybaseSettingsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data SybaseSettingsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-sybasesettings.html>
+    SybaseSettingsProperty {haddock_workaround_ :: (),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-sybasesettings.html#cfn-dms-endpoint-sybasesettings-secretsmanageraccessrolearn>
+                            secretsManagerAccessRoleArn :: (Prelude.Maybe (Value Prelude.Text)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-sybasesettings.html#cfn-dms-endpoint-sybasesettings-secretsmanagersecretid>
+                            secretsManagerSecretId :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkSybaseSettingsProperty :: SybaseSettingsProperty
+mkSybaseSettingsProperty
+  = SybaseSettingsProperty
+      {haddock_workaround_ = (),
+       secretsManagerAccessRoleArn = Prelude.Nothing,
+       secretsManagerSecretId = Prelude.Nothing}
+instance ToResourceProperties SybaseSettingsProperty where
+  toResourceProperties SybaseSettingsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::Endpoint.SybaseSettings",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "SecretsManagerAccessRoleArn"
+                              Prelude.<$> secretsManagerAccessRoleArn,
+                            (JSON..=) "SecretsManagerSecretId"
+                              Prelude.<$> secretsManagerSecretId])}
+instance JSON.ToJSON SybaseSettingsProperty where
+  toJSON SybaseSettingsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "SecretsManagerAccessRoleArn"
+                 Prelude.<$> secretsManagerAccessRoleArn,
+               (JSON..=) "SecretsManagerSecretId"
+                 Prelude.<$> secretsManagerSecretId]))
+instance Property "SecretsManagerAccessRoleArn" SybaseSettingsProperty where
+  type PropertyType "SecretsManagerAccessRoleArn" SybaseSettingsProperty = Value Prelude.Text
+  set newValue SybaseSettingsProperty {..}
+    = SybaseSettingsProperty
+        {secretsManagerAccessRoleArn = Prelude.pure newValue, ..}
+instance Property "SecretsManagerSecretId" SybaseSettingsProperty where
+  type PropertyType "SecretsManagerSecretId" SybaseSettingsProperty = Value Prelude.Text
+  set newValue SybaseSettingsProperty {..}
+    = SybaseSettingsProperty
+        {secretsManagerSecretId = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DMS/Endpoint/SybaseSettingsProperty.hs-boot b/gen/Stratosphere/DMS/Endpoint/SybaseSettingsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/Endpoint/SybaseSettingsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DMS.Endpoint.SybaseSettingsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data SybaseSettingsProperty :: Prelude.Type
+instance ToResourceProperties SybaseSettingsProperty
+instance Prelude.Eq SybaseSettingsProperty
+instance Prelude.Show SybaseSettingsProperty
+instance JSON.ToJSON SybaseSettingsProperty
diff --git a/gen/Stratosphere/DMS/EventSubscription.hs b/gen/Stratosphere/DMS/EventSubscription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/EventSubscription.hs
@@ -0,0 +1,90 @@
+module Stratosphere.DMS.EventSubscription (
+        EventSubscription(..), mkEventSubscription
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Tag
+import Stratosphere.Value
+data EventSubscription
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-eventsubscription.html>
+    EventSubscription {haddock_workaround_ :: (),
+                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-eventsubscription.html#cfn-dms-eventsubscription-enabled>
+                       enabled :: (Prelude.Maybe (Value Prelude.Bool)),
+                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-eventsubscription.html#cfn-dms-eventsubscription-eventcategories>
+                       eventCategories :: (Prelude.Maybe (ValueList Prelude.Text)),
+                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-eventsubscription.html#cfn-dms-eventsubscription-snstopicarn>
+                       snsTopicArn :: (Value Prelude.Text),
+                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-eventsubscription.html#cfn-dms-eventsubscription-sourceids>
+                       sourceIds :: (Prelude.Maybe (ValueList Prelude.Text)),
+                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-eventsubscription.html#cfn-dms-eventsubscription-sourcetype>
+                       sourceType :: (Prelude.Maybe (Value Prelude.Text)),
+                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-eventsubscription.html#cfn-dms-eventsubscription-subscriptionname>
+                       subscriptionName :: (Prelude.Maybe (Value Prelude.Text)),
+                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-eventsubscription.html#cfn-dms-eventsubscription-tags>
+                       tags :: (Prelude.Maybe [Tag])}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkEventSubscription :: Value Prelude.Text -> EventSubscription
+mkEventSubscription snsTopicArn
+  = EventSubscription
+      {haddock_workaround_ = (), snsTopicArn = snsTopicArn,
+       enabled = Prelude.Nothing, eventCategories = Prelude.Nothing,
+       sourceIds = Prelude.Nothing, sourceType = Prelude.Nothing,
+       subscriptionName = Prelude.Nothing, tags = Prelude.Nothing}
+instance ToResourceProperties EventSubscription where
+  toResourceProperties EventSubscription {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::EventSubscription",
+         supportsTags = Prelude.True,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["SnsTopicArn" JSON..= snsTopicArn]
+                           (Prelude.catMaybes
+                              [(JSON..=) "Enabled" Prelude.<$> enabled,
+                               (JSON..=) "EventCategories" Prelude.<$> eventCategories,
+                               (JSON..=) "SourceIds" Prelude.<$> sourceIds,
+                               (JSON..=) "SourceType" Prelude.<$> sourceType,
+                               (JSON..=) "SubscriptionName" Prelude.<$> subscriptionName,
+                               (JSON..=) "Tags" Prelude.<$> tags]))}
+instance JSON.ToJSON EventSubscription where
+  toJSON EventSubscription {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["SnsTopicArn" JSON..= snsTopicArn]
+              (Prelude.catMaybes
+                 [(JSON..=) "Enabled" Prelude.<$> enabled,
+                  (JSON..=) "EventCategories" Prelude.<$> eventCategories,
+                  (JSON..=) "SourceIds" Prelude.<$> sourceIds,
+                  (JSON..=) "SourceType" Prelude.<$> sourceType,
+                  (JSON..=) "SubscriptionName" Prelude.<$> subscriptionName,
+                  (JSON..=) "Tags" Prelude.<$> tags])))
+instance Property "Enabled" EventSubscription where
+  type PropertyType "Enabled" EventSubscription = Value Prelude.Bool
+  set newValue EventSubscription {..}
+    = EventSubscription {enabled = Prelude.pure newValue, ..}
+instance Property "EventCategories" EventSubscription where
+  type PropertyType "EventCategories" EventSubscription = ValueList Prelude.Text
+  set newValue EventSubscription {..}
+    = EventSubscription {eventCategories = Prelude.pure newValue, ..}
+instance Property "SnsTopicArn" EventSubscription where
+  type PropertyType "SnsTopicArn" EventSubscription = Value Prelude.Text
+  set newValue EventSubscription {..}
+    = EventSubscription {snsTopicArn = newValue, ..}
+instance Property "SourceIds" EventSubscription where
+  type PropertyType "SourceIds" EventSubscription = ValueList Prelude.Text
+  set newValue EventSubscription {..}
+    = EventSubscription {sourceIds = Prelude.pure newValue, ..}
+instance Property "SourceType" EventSubscription where
+  type PropertyType "SourceType" EventSubscription = Value Prelude.Text
+  set newValue EventSubscription {..}
+    = EventSubscription {sourceType = Prelude.pure newValue, ..}
+instance Property "SubscriptionName" EventSubscription where
+  type PropertyType "SubscriptionName" EventSubscription = Value Prelude.Text
+  set newValue EventSubscription {..}
+    = EventSubscription {subscriptionName = Prelude.pure newValue, ..}
+instance Property "Tags" EventSubscription where
+  type PropertyType "Tags" EventSubscription = [Tag]
+  set newValue EventSubscription {..}
+    = EventSubscription {tags = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DMS/InstanceProfile.hs b/gen/Stratosphere/DMS/InstanceProfile.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/InstanceProfile.hs
@@ -0,0 +1,122 @@
+module Stratosphere.DMS.InstanceProfile (
+        InstanceProfile(..), mkInstanceProfile
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Tag
+import Stratosphere.Value
+data InstanceProfile
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-instanceprofile.html>
+    InstanceProfile {haddock_workaround_ :: (),
+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-instanceprofile.html#cfn-dms-instanceprofile-availabilityzone>
+                     availabilityZone :: (Prelude.Maybe (Value Prelude.Text)),
+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-instanceprofile.html#cfn-dms-instanceprofile-description>
+                     description :: (Prelude.Maybe (Value Prelude.Text)),
+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-instanceprofile.html#cfn-dms-instanceprofile-instanceprofileidentifier>
+                     instanceProfileIdentifier :: (Prelude.Maybe (Value Prelude.Text)),
+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-instanceprofile.html#cfn-dms-instanceprofile-instanceprofilename>
+                     instanceProfileName :: (Prelude.Maybe (Value Prelude.Text)),
+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-instanceprofile.html#cfn-dms-instanceprofile-kmskeyarn>
+                     kmsKeyArn :: (Prelude.Maybe (Value Prelude.Text)),
+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-instanceprofile.html#cfn-dms-instanceprofile-networktype>
+                     networkType :: (Prelude.Maybe (Value Prelude.Text)),
+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-instanceprofile.html#cfn-dms-instanceprofile-publiclyaccessible>
+                     publiclyAccessible :: (Prelude.Maybe (Value Prelude.Bool)),
+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-instanceprofile.html#cfn-dms-instanceprofile-subnetgroupidentifier>
+                     subnetGroupIdentifier :: (Prelude.Maybe (Value Prelude.Text)),
+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-instanceprofile.html#cfn-dms-instanceprofile-tags>
+                     tags :: (Prelude.Maybe [Tag]),
+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-instanceprofile.html#cfn-dms-instanceprofile-vpcsecuritygroups>
+                     vpcSecurityGroups :: (Prelude.Maybe (ValueList Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkInstanceProfile :: InstanceProfile
+mkInstanceProfile
+  = InstanceProfile
+      {haddock_workaround_ = (), availabilityZone = Prelude.Nothing,
+       description = Prelude.Nothing,
+       instanceProfileIdentifier = Prelude.Nothing,
+       instanceProfileName = Prelude.Nothing, kmsKeyArn = Prelude.Nothing,
+       networkType = Prelude.Nothing,
+       publiclyAccessible = Prelude.Nothing,
+       subnetGroupIdentifier = Prelude.Nothing, tags = Prelude.Nothing,
+       vpcSecurityGroups = Prelude.Nothing}
+instance ToResourceProperties InstanceProfile where
+  toResourceProperties InstanceProfile {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::InstanceProfile",
+         supportsTags = Prelude.True,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "AvailabilityZone" Prelude.<$> availabilityZone,
+                            (JSON..=) "Description" Prelude.<$> description,
+                            (JSON..=) "InstanceProfileIdentifier"
+                              Prelude.<$> instanceProfileIdentifier,
+                            (JSON..=) "InstanceProfileName" Prelude.<$> instanceProfileName,
+                            (JSON..=) "KmsKeyArn" Prelude.<$> kmsKeyArn,
+                            (JSON..=) "NetworkType" Prelude.<$> networkType,
+                            (JSON..=) "PubliclyAccessible" Prelude.<$> publiclyAccessible,
+                            (JSON..=) "SubnetGroupIdentifier"
+                              Prelude.<$> subnetGroupIdentifier,
+                            (JSON..=) "Tags" Prelude.<$> tags,
+                            (JSON..=) "VpcSecurityGroups" Prelude.<$> vpcSecurityGroups])}
+instance JSON.ToJSON InstanceProfile where
+  toJSON InstanceProfile {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "AvailabilityZone" Prelude.<$> availabilityZone,
+               (JSON..=) "Description" Prelude.<$> description,
+               (JSON..=) "InstanceProfileIdentifier"
+                 Prelude.<$> instanceProfileIdentifier,
+               (JSON..=) "InstanceProfileName" Prelude.<$> instanceProfileName,
+               (JSON..=) "KmsKeyArn" Prelude.<$> kmsKeyArn,
+               (JSON..=) "NetworkType" Prelude.<$> networkType,
+               (JSON..=) "PubliclyAccessible" Prelude.<$> publiclyAccessible,
+               (JSON..=) "SubnetGroupIdentifier"
+                 Prelude.<$> subnetGroupIdentifier,
+               (JSON..=) "Tags" Prelude.<$> tags,
+               (JSON..=) "VpcSecurityGroups" Prelude.<$> vpcSecurityGroups]))
+instance Property "AvailabilityZone" InstanceProfile where
+  type PropertyType "AvailabilityZone" InstanceProfile = Value Prelude.Text
+  set newValue InstanceProfile {..}
+    = InstanceProfile {availabilityZone = Prelude.pure newValue, ..}
+instance Property "Description" InstanceProfile where
+  type PropertyType "Description" InstanceProfile = Value Prelude.Text
+  set newValue InstanceProfile {..}
+    = InstanceProfile {description = Prelude.pure newValue, ..}
+instance Property "InstanceProfileIdentifier" InstanceProfile where
+  type PropertyType "InstanceProfileIdentifier" InstanceProfile = Value Prelude.Text
+  set newValue InstanceProfile {..}
+    = InstanceProfile
+        {instanceProfileIdentifier = Prelude.pure newValue, ..}
+instance Property "InstanceProfileName" InstanceProfile where
+  type PropertyType "InstanceProfileName" InstanceProfile = Value Prelude.Text
+  set newValue InstanceProfile {..}
+    = InstanceProfile {instanceProfileName = Prelude.pure newValue, ..}
+instance Property "KmsKeyArn" InstanceProfile where
+  type PropertyType "KmsKeyArn" InstanceProfile = Value Prelude.Text
+  set newValue InstanceProfile {..}
+    = InstanceProfile {kmsKeyArn = Prelude.pure newValue, ..}
+instance Property "NetworkType" InstanceProfile where
+  type PropertyType "NetworkType" InstanceProfile = Value Prelude.Text
+  set newValue InstanceProfile {..}
+    = InstanceProfile {networkType = Prelude.pure newValue, ..}
+instance Property "PubliclyAccessible" InstanceProfile where
+  type PropertyType "PubliclyAccessible" InstanceProfile = Value Prelude.Bool
+  set newValue InstanceProfile {..}
+    = InstanceProfile {publiclyAccessible = Prelude.pure newValue, ..}
+instance Property "SubnetGroupIdentifier" InstanceProfile where
+  type PropertyType "SubnetGroupIdentifier" InstanceProfile = Value Prelude.Text
+  set newValue InstanceProfile {..}
+    = InstanceProfile
+        {subnetGroupIdentifier = Prelude.pure newValue, ..}
+instance Property "Tags" InstanceProfile where
+  type PropertyType "Tags" InstanceProfile = [Tag]
+  set newValue InstanceProfile {..}
+    = InstanceProfile {tags = Prelude.pure newValue, ..}
+instance Property "VpcSecurityGroups" InstanceProfile where
+  type PropertyType "VpcSecurityGroups" InstanceProfile = ValueList Prelude.Text
+  set newValue InstanceProfile {..}
+    = InstanceProfile {vpcSecurityGroups = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DMS/MigrationProject.hs b/gen/Stratosphere/DMS/MigrationProject.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/MigrationProject.hs
@@ -0,0 +1,147 @@
+module Stratosphere.DMS.MigrationProject (
+        module Exports, MigrationProject(..), mkMigrationProject
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.DMS.MigrationProject.DataProviderDescriptorProperty as Exports
+import {-# SOURCE #-} Stratosphere.DMS.MigrationProject.SchemaConversionApplicationAttributesProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Tag
+import Stratosphere.Value
+data MigrationProject
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-migrationproject.html>
+    MigrationProject {haddock_workaround_ :: (),
+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-migrationproject.html#cfn-dms-migrationproject-description>
+                      description :: (Prelude.Maybe (Value Prelude.Text)),
+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-migrationproject.html#cfn-dms-migrationproject-instanceprofilearn>
+                      instanceProfileArn :: (Prelude.Maybe (Value Prelude.Text)),
+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-migrationproject.html#cfn-dms-migrationproject-instanceprofileidentifier>
+                      instanceProfileIdentifier :: (Prelude.Maybe (Value Prelude.Text)),
+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-migrationproject.html#cfn-dms-migrationproject-instanceprofilename>
+                      instanceProfileName :: (Prelude.Maybe (Value Prelude.Text)),
+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-migrationproject.html#cfn-dms-migrationproject-migrationprojectidentifier>
+                      migrationProjectIdentifier :: (Prelude.Maybe (Value Prelude.Text)),
+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-migrationproject.html#cfn-dms-migrationproject-migrationprojectname>
+                      migrationProjectName :: (Prelude.Maybe (Value Prelude.Text)),
+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-migrationproject.html#cfn-dms-migrationproject-schemaconversionapplicationattributes>
+                      schemaConversionApplicationAttributes :: (Prelude.Maybe SchemaConversionApplicationAttributesProperty),
+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-migrationproject.html#cfn-dms-migrationproject-sourcedataproviderdescriptors>
+                      sourceDataProviderDescriptors :: (Prelude.Maybe [DataProviderDescriptorProperty]),
+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-migrationproject.html#cfn-dms-migrationproject-tags>
+                      tags :: (Prelude.Maybe [Tag]),
+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-migrationproject.html#cfn-dms-migrationproject-targetdataproviderdescriptors>
+                      targetDataProviderDescriptors :: (Prelude.Maybe [DataProviderDescriptorProperty]),
+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-migrationproject.html#cfn-dms-migrationproject-transformationrules>
+                      transformationRules :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkMigrationProject :: MigrationProject
+mkMigrationProject
+  = MigrationProject
+      {haddock_workaround_ = (), description = Prelude.Nothing,
+       instanceProfileArn = Prelude.Nothing,
+       instanceProfileIdentifier = Prelude.Nothing,
+       instanceProfileName = Prelude.Nothing,
+       migrationProjectIdentifier = Prelude.Nothing,
+       migrationProjectName = Prelude.Nothing,
+       schemaConversionApplicationAttributes = Prelude.Nothing,
+       sourceDataProviderDescriptors = Prelude.Nothing,
+       tags = Prelude.Nothing,
+       targetDataProviderDescriptors = Prelude.Nothing,
+       transformationRules = Prelude.Nothing}
+instance ToResourceProperties MigrationProject where
+  toResourceProperties MigrationProject {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::MigrationProject",
+         supportsTags = Prelude.True,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "Description" Prelude.<$> description,
+                            (JSON..=) "InstanceProfileArn" Prelude.<$> instanceProfileArn,
+                            (JSON..=) "InstanceProfileIdentifier"
+                              Prelude.<$> instanceProfileIdentifier,
+                            (JSON..=) "InstanceProfileName" Prelude.<$> instanceProfileName,
+                            (JSON..=) "MigrationProjectIdentifier"
+                              Prelude.<$> migrationProjectIdentifier,
+                            (JSON..=) "MigrationProjectName" Prelude.<$> migrationProjectName,
+                            (JSON..=) "SchemaConversionApplicationAttributes"
+                              Prelude.<$> schemaConversionApplicationAttributes,
+                            (JSON..=) "SourceDataProviderDescriptors"
+                              Prelude.<$> sourceDataProviderDescriptors,
+                            (JSON..=) "Tags" Prelude.<$> tags,
+                            (JSON..=) "TargetDataProviderDescriptors"
+                              Prelude.<$> targetDataProviderDescriptors,
+                            (JSON..=) "TransformationRules" Prelude.<$> transformationRules])}
+instance JSON.ToJSON MigrationProject where
+  toJSON MigrationProject {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "Description" Prelude.<$> description,
+               (JSON..=) "InstanceProfileArn" Prelude.<$> instanceProfileArn,
+               (JSON..=) "InstanceProfileIdentifier"
+                 Prelude.<$> instanceProfileIdentifier,
+               (JSON..=) "InstanceProfileName" Prelude.<$> instanceProfileName,
+               (JSON..=) "MigrationProjectIdentifier"
+                 Prelude.<$> migrationProjectIdentifier,
+               (JSON..=) "MigrationProjectName" Prelude.<$> migrationProjectName,
+               (JSON..=) "SchemaConversionApplicationAttributes"
+                 Prelude.<$> schemaConversionApplicationAttributes,
+               (JSON..=) "SourceDataProviderDescriptors"
+                 Prelude.<$> sourceDataProviderDescriptors,
+               (JSON..=) "Tags" Prelude.<$> tags,
+               (JSON..=) "TargetDataProviderDescriptors"
+                 Prelude.<$> targetDataProviderDescriptors,
+               (JSON..=) "TransformationRules" Prelude.<$> transformationRules]))
+instance Property "Description" MigrationProject where
+  type PropertyType "Description" MigrationProject = Value Prelude.Text
+  set newValue MigrationProject {..}
+    = MigrationProject {description = Prelude.pure newValue, ..}
+instance Property "InstanceProfileArn" MigrationProject where
+  type PropertyType "InstanceProfileArn" MigrationProject = Value Prelude.Text
+  set newValue MigrationProject {..}
+    = MigrationProject {instanceProfileArn = Prelude.pure newValue, ..}
+instance Property "InstanceProfileIdentifier" MigrationProject where
+  type PropertyType "InstanceProfileIdentifier" MigrationProject = Value Prelude.Text
+  set newValue MigrationProject {..}
+    = MigrationProject
+        {instanceProfileIdentifier = Prelude.pure newValue, ..}
+instance Property "InstanceProfileName" MigrationProject where
+  type PropertyType "InstanceProfileName" MigrationProject = Value Prelude.Text
+  set newValue MigrationProject {..}
+    = MigrationProject
+        {instanceProfileName = Prelude.pure newValue, ..}
+instance Property "MigrationProjectIdentifier" MigrationProject where
+  type PropertyType "MigrationProjectIdentifier" MigrationProject = Value Prelude.Text
+  set newValue MigrationProject {..}
+    = MigrationProject
+        {migrationProjectIdentifier = Prelude.pure newValue, ..}
+instance Property "MigrationProjectName" MigrationProject where
+  type PropertyType "MigrationProjectName" MigrationProject = Value Prelude.Text
+  set newValue MigrationProject {..}
+    = MigrationProject
+        {migrationProjectName = Prelude.pure newValue, ..}
+instance Property "SchemaConversionApplicationAttributes" MigrationProject where
+  type PropertyType "SchemaConversionApplicationAttributes" MigrationProject = SchemaConversionApplicationAttributesProperty
+  set newValue MigrationProject {..}
+    = MigrationProject
+        {schemaConversionApplicationAttributes = Prelude.pure newValue, ..}
+instance Property "SourceDataProviderDescriptors" MigrationProject where
+  type PropertyType "SourceDataProviderDescriptors" MigrationProject = [DataProviderDescriptorProperty]
+  set newValue MigrationProject {..}
+    = MigrationProject
+        {sourceDataProviderDescriptors = Prelude.pure newValue, ..}
+instance Property "Tags" MigrationProject where
+  type PropertyType "Tags" MigrationProject = [Tag]
+  set newValue MigrationProject {..}
+    = MigrationProject {tags = Prelude.pure newValue, ..}
+instance Property "TargetDataProviderDescriptors" MigrationProject where
+  type PropertyType "TargetDataProviderDescriptors" MigrationProject = [DataProviderDescriptorProperty]
+  set newValue MigrationProject {..}
+    = MigrationProject
+        {targetDataProviderDescriptors = Prelude.pure newValue, ..}
+instance Property "TransformationRules" MigrationProject where
+  type PropertyType "TransformationRules" MigrationProject = Value Prelude.Text
+  set newValue MigrationProject {..}
+    = MigrationProject
+        {transformationRules = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DMS/MigrationProject/DataProviderDescriptorProperty.hs b/gen/Stratosphere/DMS/MigrationProject/DataProviderDescriptorProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/MigrationProject/DataProviderDescriptorProperty.hs
@@ -0,0 +1,84 @@
+module Stratosphere.DMS.MigrationProject.DataProviderDescriptorProperty (
+        DataProviderDescriptorProperty(..),
+        mkDataProviderDescriptorProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data DataProviderDescriptorProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-migrationproject-dataproviderdescriptor.html>
+    DataProviderDescriptorProperty {haddock_workaround_ :: (),
+                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-migrationproject-dataproviderdescriptor.html#cfn-dms-migrationproject-dataproviderdescriptor-dataproviderarn>
+                                    dataProviderArn :: (Prelude.Maybe (Value Prelude.Text)),
+                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-migrationproject-dataproviderdescriptor.html#cfn-dms-migrationproject-dataproviderdescriptor-dataprovideridentifier>
+                                    dataProviderIdentifier :: (Prelude.Maybe (Value Prelude.Text)),
+                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-migrationproject-dataproviderdescriptor.html#cfn-dms-migrationproject-dataproviderdescriptor-dataprovidername>
+                                    dataProviderName :: (Prelude.Maybe (Value Prelude.Text)),
+                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-migrationproject-dataproviderdescriptor.html#cfn-dms-migrationproject-dataproviderdescriptor-secretsmanageraccessrolearn>
+                                    secretsManagerAccessRoleArn :: (Prelude.Maybe (Value Prelude.Text)),
+                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-migrationproject-dataproviderdescriptor.html#cfn-dms-migrationproject-dataproviderdescriptor-secretsmanagersecretid>
+                                    secretsManagerSecretId :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkDataProviderDescriptorProperty :: DataProviderDescriptorProperty
+mkDataProviderDescriptorProperty
+  = DataProviderDescriptorProperty
+      {haddock_workaround_ = (), dataProviderArn = Prelude.Nothing,
+       dataProviderIdentifier = Prelude.Nothing,
+       dataProviderName = Prelude.Nothing,
+       secretsManagerAccessRoleArn = Prelude.Nothing,
+       secretsManagerSecretId = Prelude.Nothing}
+instance ToResourceProperties DataProviderDescriptorProperty where
+  toResourceProperties DataProviderDescriptorProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::MigrationProject.DataProviderDescriptor",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "DataProviderArn" Prelude.<$> dataProviderArn,
+                            (JSON..=) "DataProviderIdentifier"
+                              Prelude.<$> dataProviderIdentifier,
+                            (JSON..=) "DataProviderName" Prelude.<$> dataProviderName,
+                            (JSON..=) "SecretsManagerAccessRoleArn"
+                              Prelude.<$> secretsManagerAccessRoleArn,
+                            (JSON..=) "SecretsManagerSecretId"
+                              Prelude.<$> secretsManagerSecretId])}
+instance JSON.ToJSON DataProviderDescriptorProperty where
+  toJSON DataProviderDescriptorProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "DataProviderArn" Prelude.<$> dataProviderArn,
+               (JSON..=) "DataProviderIdentifier"
+                 Prelude.<$> dataProviderIdentifier,
+               (JSON..=) "DataProviderName" Prelude.<$> dataProviderName,
+               (JSON..=) "SecretsManagerAccessRoleArn"
+                 Prelude.<$> secretsManagerAccessRoleArn,
+               (JSON..=) "SecretsManagerSecretId"
+                 Prelude.<$> secretsManagerSecretId]))
+instance Property "DataProviderArn" DataProviderDescriptorProperty where
+  type PropertyType "DataProviderArn" DataProviderDescriptorProperty = Value Prelude.Text
+  set newValue DataProviderDescriptorProperty {..}
+    = DataProviderDescriptorProperty
+        {dataProviderArn = Prelude.pure newValue, ..}
+instance Property "DataProviderIdentifier" DataProviderDescriptorProperty where
+  type PropertyType "DataProviderIdentifier" DataProviderDescriptorProperty = Value Prelude.Text
+  set newValue DataProviderDescriptorProperty {..}
+    = DataProviderDescriptorProperty
+        {dataProviderIdentifier = Prelude.pure newValue, ..}
+instance Property "DataProviderName" DataProviderDescriptorProperty where
+  type PropertyType "DataProviderName" DataProviderDescriptorProperty = Value Prelude.Text
+  set newValue DataProviderDescriptorProperty {..}
+    = DataProviderDescriptorProperty
+        {dataProviderName = Prelude.pure newValue, ..}
+instance Property "SecretsManagerAccessRoleArn" DataProviderDescriptorProperty where
+  type PropertyType "SecretsManagerAccessRoleArn" DataProviderDescriptorProperty = Value Prelude.Text
+  set newValue DataProviderDescriptorProperty {..}
+    = DataProviderDescriptorProperty
+        {secretsManagerAccessRoleArn = Prelude.pure newValue, ..}
+instance Property "SecretsManagerSecretId" DataProviderDescriptorProperty where
+  type PropertyType "SecretsManagerSecretId" DataProviderDescriptorProperty = Value Prelude.Text
+  set newValue DataProviderDescriptorProperty {..}
+    = DataProviderDescriptorProperty
+        {secretsManagerSecretId = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DMS/MigrationProject/DataProviderDescriptorProperty.hs-boot b/gen/Stratosphere/DMS/MigrationProject/DataProviderDescriptorProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/MigrationProject/DataProviderDescriptorProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DMS.MigrationProject.DataProviderDescriptorProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data DataProviderDescriptorProperty :: Prelude.Type
+instance ToResourceProperties DataProviderDescriptorProperty
+instance Prelude.Eq DataProviderDescriptorProperty
+instance Prelude.Show DataProviderDescriptorProperty
+instance JSON.ToJSON DataProviderDescriptorProperty
diff --git a/gen/Stratosphere/DMS/MigrationProject/SchemaConversionApplicationAttributesProperty.hs b/gen/Stratosphere/DMS/MigrationProject/SchemaConversionApplicationAttributesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/MigrationProject/SchemaConversionApplicationAttributesProperty.hs
@@ -0,0 +1,50 @@
+module Stratosphere.DMS.MigrationProject.SchemaConversionApplicationAttributesProperty (
+        SchemaConversionApplicationAttributesProperty(..),
+        mkSchemaConversionApplicationAttributesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data SchemaConversionApplicationAttributesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-migrationproject-schemaconversionapplicationattributes.html>
+    SchemaConversionApplicationAttributesProperty {haddock_workaround_ :: (),
+                                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-migrationproject-schemaconversionapplicationattributes.html#cfn-dms-migrationproject-schemaconversionapplicationattributes-s3bucketpath>
+                                                   s3BucketPath :: (Prelude.Maybe (Value Prelude.Text)),
+                                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-migrationproject-schemaconversionapplicationattributes.html#cfn-dms-migrationproject-schemaconversionapplicationattributes-s3bucketrolearn>
+                                                   s3BucketRoleArn :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkSchemaConversionApplicationAttributesProperty ::
+  SchemaConversionApplicationAttributesProperty
+mkSchemaConversionApplicationAttributesProperty
+  = SchemaConversionApplicationAttributesProperty
+      {haddock_workaround_ = (), s3BucketPath = Prelude.Nothing,
+       s3BucketRoleArn = Prelude.Nothing}
+instance ToResourceProperties SchemaConversionApplicationAttributesProperty where
+  toResourceProperties
+    SchemaConversionApplicationAttributesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::MigrationProject.SchemaConversionApplicationAttributes",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "S3BucketPath" Prelude.<$> s3BucketPath,
+                            (JSON..=) "S3BucketRoleArn" Prelude.<$> s3BucketRoleArn])}
+instance JSON.ToJSON SchemaConversionApplicationAttributesProperty where
+  toJSON SchemaConversionApplicationAttributesProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "S3BucketPath" Prelude.<$> s3BucketPath,
+               (JSON..=) "S3BucketRoleArn" Prelude.<$> s3BucketRoleArn]))
+instance Property "S3BucketPath" SchemaConversionApplicationAttributesProperty where
+  type PropertyType "S3BucketPath" SchemaConversionApplicationAttributesProperty = Value Prelude.Text
+  set newValue SchemaConversionApplicationAttributesProperty {..}
+    = SchemaConversionApplicationAttributesProperty
+        {s3BucketPath = Prelude.pure newValue, ..}
+instance Property "S3BucketRoleArn" SchemaConversionApplicationAttributesProperty where
+  type PropertyType "S3BucketRoleArn" SchemaConversionApplicationAttributesProperty = Value Prelude.Text
+  set newValue SchemaConversionApplicationAttributesProperty {..}
+    = SchemaConversionApplicationAttributesProperty
+        {s3BucketRoleArn = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DMS/MigrationProject/SchemaConversionApplicationAttributesProperty.hs-boot b/gen/Stratosphere/DMS/MigrationProject/SchemaConversionApplicationAttributesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/MigrationProject/SchemaConversionApplicationAttributesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DMS.MigrationProject.SchemaConversionApplicationAttributesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data SchemaConversionApplicationAttributesProperty :: Prelude.Type
+instance ToResourceProperties SchemaConversionApplicationAttributesProperty
+instance Prelude.Eq SchemaConversionApplicationAttributesProperty
+instance Prelude.Show SchemaConversionApplicationAttributesProperty
+instance JSON.ToJSON SchemaConversionApplicationAttributesProperty
diff --git a/gen/Stratosphere/DMS/ReplicationConfig.hs b/gen/Stratosphere/DMS/ReplicationConfig.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/ReplicationConfig.hs
@@ -0,0 +1,134 @@
+module Stratosphere.DMS.ReplicationConfig (
+        module Exports, ReplicationConfig(..), mkReplicationConfig
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.DMS.ReplicationConfig.ComputeConfigProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Tag
+import Stratosphere.Value
+data ReplicationConfig
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationconfig.html>
+    ReplicationConfig {haddock_workaround_ :: (),
+                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationconfig.html#cfn-dms-replicationconfig-computeconfig>
+                       computeConfig :: ComputeConfigProperty,
+                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationconfig.html#cfn-dms-replicationconfig-replicationconfigidentifier>
+                       replicationConfigIdentifier :: (Value Prelude.Text),
+                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationconfig.html#cfn-dms-replicationconfig-replicationsettings>
+                       replicationSettings :: (Prelude.Maybe JSON.Object),
+                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationconfig.html#cfn-dms-replicationconfig-replicationtype>
+                       replicationType :: (Value Prelude.Text),
+                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationconfig.html#cfn-dms-replicationconfig-resourceidentifier>
+                       resourceIdentifier :: (Prelude.Maybe (Value Prelude.Text)),
+                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationconfig.html#cfn-dms-replicationconfig-sourceendpointarn>
+                       sourceEndpointArn :: (Value Prelude.Text),
+                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationconfig.html#cfn-dms-replicationconfig-supplementalsettings>
+                       supplementalSettings :: (Prelude.Maybe JSON.Object),
+                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationconfig.html#cfn-dms-replicationconfig-tablemappings>
+                       tableMappings :: JSON.Object,
+                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationconfig.html#cfn-dms-replicationconfig-tags>
+                       tags :: (Prelude.Maybe [Tag]),
+                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationconfig.html#cfn-dms-replicationconfig-targetendpointarn>
+                       targetEndpointArn :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkReplicationConfig ::
+  ComputeConfigProperty
+  -> Value Prelude.Text
+     -> Value Prelude.Text
+        -> Value Prelude.Text
+           -> JSON.Object -> Value Prelude.Text -> ReplicationConfig
+mkReplicationConfig
+  computeConfig
+  replicationConfigIdentifier
+  replicationType
+  sourceEndpointArn
+  tableMappings
+  targetEndpointArn
+  = ReplicationConfig
+      {haddock_workaround_ = (), computeConfig = computeConfig,
+       replicationConfigIdentifier = replicationConfigIdentifier,
+       replicationType = replicationType,
+       sourceEndpointArn = sourceEndpointArn,
+       tableMappings = tableMappings,
+       targetEndpointArn = targetEndpointArn,
+       replicationSettings = Prelude.Nothing,
+       resourceIdentifier = Prelude.Nothing,
+       supplementalSettings = Prelude.Nothing, tags = Prelude.Nothing}
+instance ToResourceProperties ReplicationConfig where
+  toResourceProperties ReplicationConfig {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::ReplicationConfig",
+         supportsTags = Prelude.True,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["ComputeConfig" JSON..= computeConfig,
+                            "ReplicationConfigIdentifier" JSON..= replicationConfigIdentifier,
+                            "ReplicationType" JSON..= replicationType,
+                            "SourceEndpointArn" JSON..= sourceEndpointArn,
+                            "TableMappings" JSON..= tableMappings,
+                            "TargetEndpointArn" JSON..= targetEndpointArn]
+                           (Prelude.catMaybes
+                              [(JSON..=) "ReplicationSettings" Prelude.<$> replicationSettings,
+                               (JSON..=) "ResourceIdentifier" Prelude.<$> resourceIdentifier,
+                               (JSON..=) "SupplementalSettings" Prelude.<$> supplementalSettings,
+                               (JSON..=) "Tags" Prelude.<$> tags]))}
+instance JSON.ToJSON ReplicationConfig where
+  toJSON ReplicationConfig {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["ComputeConfig" JSON..= computeConfig,
+               "ReplicationConfigIdentifier" JSON..= replicationConfigIdentifier,
+               "ReplicationType" JSON..= replicationType,
+               "SourceEndpointArn" JSON..= sourceEndpointArn,
+               "TableMappings" JSON..= tableMappings,
+               "TargetEndpointArn" JSON..= targetEndpointArn]
+              (Prelude.catMaybes
+                 [(JSON..=) "ReplicationSettings" Prelude.<$> replicationSettings,
+                  (JSON..=) "ResourceIdentifier" Prelude.<$> resourceIdentifier,
+                  (JSON..=) "SupplementalSettings" Prelude.<$> supplementalSettings,
+                  (JSON..=) "Tags" Prelude.<$> tags])))
+instance Property "ComputeConfig" ReplicationConfig where
+  type PropertyType "ComputeConfig" ReplicationConfig = ComputeConfigProperty
+  set newValue ReplicationConfig {..}
+    = ReplicationConfig {computeConfig = newValue, ..}
+instance Property "ReplicationConfigIdentifier" ReplicationConfig where
+  type PropertyType "ReplicationConfigIdentifier" ReplicationConfig = Value Prelude.Text
+  set newValue ReplicationConfig {..}
+    = ReplicationConfig {replicationConfigIdentifier = newValue, ..}
+instance Property "ReplicationSettings" ReplicationConfig where
+  type PropertyType "ReplicationSettings" ReplicationConfig = JSON.Object
+  set newValue ReplicationConfig {..}
+    = ReplicationConfig
+        {replicationSettings = Prelude.pure newValue, ..}
+instance Property "ReplicationType" ReplicationConfig where
+  type PropertyType "ReplicationType" ReplicationConfig = Value Prelude.Text
+  set newValue ReplicationConfig {..}
+    = ReplicationConfig {replicationType = newValue, ..}
+instance Property "ResourceIdentifier" ReplicationConfig where
+  type PropertyType "ResourceIdentifier" ReplicationConfig = Value Prelude.Text
+  set newValue ReplicationConfig {..}
+    = ReplicationConfig
+        {resourceIdentifier = Prelude.pure newValue, ..}
+instance Property "SourceEndpointArn" ReplicationConfig where
+  type PropertyType "SourceEndpointArn" ReplicationConfig = Value Prelude.Text
+  set newValue ReplicationConfig {..}
+    = ReplicationConfig {sourceEndpointArn = newValue, ..}
+instance Property "SupplementalSettings" ReplicationConfig where
+  type PropertyType "SupplementalSettings" ReplicationConfig = JSON.Object
+  set newValue ReplicationConfig {..}
+    = ReplicationConfig
+        {supplementalSettings = Prelude.pure newValue, ..}
+instance Property "TableMappings" ReplicationConfig where
+  type PropertyType "TableMappings" ReplicationConfig = JSON.Object
+  set newValue ReplicationConfig {..}
+    = ReplicationConfig {tableMappings = newValue, ..}
+instance Property "Tags" ReplicationConfig where
+  type PropertyType "Tags" ReplicationConfig = [Tag]
+  set newValue ReplicationConfig {..}
+    = ReplicationConfig {tags = Prelude.pure newValue, ..}
+instance Property "TargetEndpointArn" ReplicationConfig where
+  type PropertyType "TargetEndpointArn" ReplicationConfig = Value Prelude.Text
+  set newValue ReplicationConfig {..}
+    = ReplicationConfig {targetEndpointArn = newValue, ..}
diff --git a/gen/Stratosphere/DMS/ReplicationConfig/ComputeConfigProperty.hs b/gen/Stratosphere/DMS/ReplicationConfig/ComputeConfigProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/ReplicationConfig/ComputeConfigProperty.hs
@@ -0,0 +1,119 @@
+module Stratosphere.DMS.ReplicationConfig.ComputeConfigProperty (
+        ComputeConfigProperty(..), mkComputeConfigProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data ComputeConfigProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-replicationconfig-computeconfig.html>
+    ComputeConfigProperty {haddock_workaround_ :: (),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-replicationconfig-computeconfig.html#cfn-dms-replicationconfig-computeconfig-availabilityzone>
+                           availabilityZone :: (Prelude.Maybe (Value Prelude.Text)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-replicationconfig-computeconfig.html#cfn-dms-replicationconfig-computeconfig-dnsnameservers>
+                           dnsNameServers :: (Prelude.Maybe (Value Prelude.Text)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-replicationconfig-computeconfig.html#cfn-dms-replicationconfig-computeconfig-kmskeyid>
+                           kmsKeyId :: (Prelude.Maybe (Value Prelude.Text)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-replicationconfig-computeconfig.html#cfn-dms-replicationconfig-computeconfig-maxcapacityunits>
+                           maxCapacityUnits :: (Value Prelude.Integer),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-replicationconfig-computeconfig.html#cfn-dms-replicationconfig-computeconfig-mincapacityunits>
+                           minCapacityUnits :: (Prelude.Maybe (Value Prelude.Integer)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-replicationconfig-computeconfig.html#cfn-dms-replicationconfig-computeconfig-multiaz>
+                           multiAZ :: (Prelude.Maybe (Value Prelude.Bool)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-replicationconfig-computeconfig.html#cfn-dms-replicationconfig-computeconfig-preferredmaintenancewindow>
+                           preferredMaintenanceWindow :: (Prelude.Maybe (Value Prelude.Text)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-replicationconfig-computeconfig.html#cfn-dms-replicationconfig-computeconfig-replicationsubnetgroupid>
+                           replicationSubnetGroupId :: (Prelude.Maybe (Value Prelude.Text)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-replicationconfig-computeconfig.html#cfn-dms-replicationconfig-computeconfig-vpcsecuritygroupids>
+                           vpcSecurityGroupIds :: (Prelude.Maybe (ValueList Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkComputeConfigProperty ::
+  Value Prelude.Integer -> ComputeConfigProperty
+mkComputeConfigProperty maxCapacityUnits
+  = ComputeConfigProperty
+      {haddock_workaround_ = (), maxCapacityUnits = maxCapacityUnits,
+       availabilityZone = Prelude.Nothing,
+       dnsNameServers = Prelude.Nothing, kmsKeyId = Prelude.Nothing,
+       minCapacityUnits = Prelude.Nothing, multiAZ = Prelude.Nothing,
+       preferredMaintenanceWindow = Prelude.Nothing,
+       replicationSubnetGroupId = Prelude.Nothing,
+       vpcSecurityGroupIds = Prelude.Nothing}
+instance ToResourceProperties ComputeConfigProperty where
+  toResourceProperties ComputeConfigProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::ReplicationConfig.ComputeConfig",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["MaxCapacityUnits" JSON..= maxCapacityUnits]
+                           (Prelude.catMaybes
+                              [(JSON..=) "AvailabilityZone" Prelude.<$> availabilityZone,
+                               (JSON..=) "DnsNameServers" Prelude.<$> dnsNameServers,
+                               (JSON..=) "KmsKeyId" Prelude.<$> kmsKeyId,
+                               (JSON..=) "MinCapacityUnits" Prelude.<$> minCapacityUnits,
+                               (JSON..=) "MultiAZ" Prelude.<$> multiAZ,
+                               (JSON..=) "PreferredMaintenanceWindow"
+                                 Prelude.<$> preferredMaintenanceWindow,
+                               (JSON..=) "ReplicationSubnetGroupId"
+                                 Prelude.<$> replicationSubnetGroupId,
+                               (JSON..=) "VpcSecurityGroupIds" Prelude.<$> vpcSecurityGroupIds]))}
+instance JSON.ToJSON ComputeConfigProperty where
+  toJSON ComputeConfigProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["MaxCapacityUnits" JSON..= maxCapacityUnits]
+              (Prelude.catMaybes
+                 [(JSON..=) "AvailabilityZone" Prelude.<$> availabilityZone,
+                  (JSON..=) "DnsNameServers" Prelude.<$> dnsNameServers,
+                  (JSON..=) "KmsKeyId" Prelude.<$> kmsKeyId,
+                  (JSON..=) "MinCapacityUnits" Prelude.<$> minCapacityUnits,
+                  (JSON..=) "MultiAZ" Prelude.<$> multiAZ,
+                  (JSON..=) "PreferredMaintenanceWindow"
+                    Prelude.<$> preferredMaintenanceWindow,
+                  (JSON..=) "ReplicationSubnetGroupId"
+                    Prelude.<$> replicationSubnetGroupId,
+                  (JSON..=) "VpcSecurityGroupIds" Prelude.<$> vpcSecurityGroupIds])))
+instance Property "AvailabilityZone" ComputeConfigProperty where
+  type PropertyType "AvailabilityZone" ComputeConfigProperty = Value Prelude.Text
+  set newValue ComputeConfigProperty {..}
+    = ComputeConfigProperty
+        {availabilityZone = Prelude.pure newValue, ..}
+instance Property "DnsNameServers" ComputeConfigProperty where
+  type PropertyType "DnsNameServers" ComputeConfigProperty = Value Prelude.Text
+  set newValue ComputeConfigProperty {..}
+    = ComputeConfigProperty
+        {dnsNameServers = Prelude.pure newValue, ..}
+instance Property "KmsKeyId" ComputeConfigProperty where
+  type PropertyType "KmsKeyId" ComputeConfigProperty = Value Prelude.Text
+  set newValue ComputeConfigProperty {..}
+    = ComputeConfigProperty {kmsKeyId = Prelude.pure newValue, ..}
+instance Property "MaxCapacityUnits" ComputeConfigProperty where
+  type PropertyType "MaxCapacityUnits" ComputeConfigProperty = Value Prelude.Integer
+  set newValue ComputeConfigProperty {..}
+    = ComputeConfigProperty {maxCapacityUnits = newValue, ..}
+instance Property "MinCapacityUnits" ComputeConfigProperty where
+  type PropertyType "MinCapacityUnits" ComputeConfigProperty = Value Prelude.Integer
+  set newValue ComputeConfigProperty {..}
+    = ComputeConfigProperty
+        {minCapacityUnits = Prelude.pure newValue, ..}
+instance Property "MultiAZ" ComputeConfigProperty where
+  type PropertyType "MultiAZ" ComputeConfigProperty = Value Prelude.Bool
+  set newValue ComputeConfigProperty {..}
+    = ComputeConfigProperty {multiAZ = Prelude.pure newValue, ..}
+instance Property "PreferredMaintenanceWindow" ComputeConfigProperty where
+  type PropertyType "PreferredMaintenanceWindow" ComputeConfigProperty = Value Prelude.Text
+  set newValue ComputeConfigProperty {..}
+    = ComputeConfigProperty
+        {preferredMaintenanceWindow = Prelude.pure newValue, ..}
+instance Property "ReplicationSubnetGroupId" ComputeConfigProperty where
+  type PropertyType "ReplicationSubnetGroupId" ComputeConfigProperty = Value Prelude.Text
+  set newValue ComputeConfigProperty {..}
+    = ComputeConfigProperty
+        {replicationSubnetGroupId = Prelude.pure newValue, ..}
+instance Property "VpcSecurityGroupIds" ComputeConfigProperty where
+  type PropertyType "VpcSecurityGroupIds" ComputeConfigProperty = ValueList Prelude.Text
+  set newValue ComputeConfigProperty {..}
+    = ComputeConfigProperty
+        {vpcSecurityGroupIds = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DMS/ReplicationConfig/ComputeConfigProperty.hs-boot b/gen/Stratosphere/DMS/ReplicationConfig/ComputeConfigProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/ReplicationConfig/ComputeConfigProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DMS.ReplicationConfig.ComputeConfigProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data ComputeConfigProperty :: Prelude.Type
+instance ToResourceProperties ComputeConfigProperty
+instance Prelude.Eq ComputeConfigProperty
+instance Prelude.Show ComputeConfigProperty
+instance JSON.ToJSON ComputeConfigProperty
diff --git a/gen/Stratosphere/DMS/ReplicationInstance.hs b/gen/Stratosphere/DMS/ReplicationInstance.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/ReplicationInstance.hs
@@ -0,0 +1,201 @@
+module Stratosphere.DMS.ReplicationInstance (
+        ReplicationInstance(..), mkReplicationInstance
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Tag
+import Stratosphere.Value
+data ReplicationInstance
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html>
+    ReplicationInstance {haddock_workaround_ :: (),
+                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-allocatedstorage>
+                         allocatedStorage :: (Prelude.Maybe (Value Prelude.Integer)),
+                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-allowmajorversionupgrade>
+                         allowMajorVersionUpgrade :: (Prelude.Maybe (Value Prelude.Bool)),
+                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-autominorversionupgrade>
+                         autoMinorVersionUpgrade :: (Prelude.Maybe (Value Prelude.Bool)),
+                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-availabilityzone>
+                         availabilityZone :: (Prelude.Maybe (Value Prelude.Text)),
+                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-dnsnameservers>
+                         dnsNameServers :: (Prelude.Maybe (Value Prelude.Text)),
+                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-engineversion>
+                         engineVersion :: (Prelude.Maybe (Value Prelude.Text)),
+                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-kmskeyid>
+                         kmsKeyId :: (Prelude.Maybe (Value Prelude.Text)),
+                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-multiaz>
+                         multiAZ :: (Prelude.Maybe (Value Prelude.Bool)),
+                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-networktype>
+                         networkType :: (Prelude.Maybe (Value Prelude.Text)),
+                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-preferredmaintenancewindow>
+                         preferredMaintenanceWindow :: (Prelude.Maybe (Value Prelude.Text)),
+                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-publiclyaccessible>
+                         publiclyAccessible :: (Prelude.Maybe (Value Prelude.Bool)),
+                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-replicationinstanceclass>
+                         replicationInstanceClass :: (Value Prelude.Text),
+                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-replicationinstanceidentifier>
+                         replicationInstanceIdentifier :: (Prelude.Maybe (Value Prelude.Text)),
+                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-replicationsubnetgroupidentifier>
+                         replicationSubnetGroupIdentifier :: (Prelude.Maybe (Value Prelude.Text)),
+                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-resourceidentifier>
+                         resourceIdentifier :: (Prelude.Maybe (Value Prelude.Text)),
+                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-tags>
+                         tags :: (Prelude.Maybe [Tag]),
+                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-vpcsecuritygroupids>
+                         vpcSecurityGroupIds :: (Prelude.Maybe (ValueList Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkReplicationInstance :: Value Prelude.Text -> ReplicationInstance
+mkReplicationInstance replicationInstanceClass
+  = ReplicationInstance
+      {haddock_workaround_ = (),
+       replicationInstanceClass = replicationInstanceClass,
+       allocatedStorage = Prelude.Nothing,
+       allowMajorVersionUpgrade = Prelude.Nothing,
+       autoMinorVersionUpgrade = Prelude.Nothing,
+       availabilityZone = Prelude.Nothing,
+       dnsNameServers = Prelude.Nothing, engineVersion = Prelude.Nothing,
+       kmsKeyId = Prelude.Nothing, multiAZ = Prelude.Nothing,
+       networkType = Prelude.Nothing,
+       preferredMaintenanceWindow = Prelude.Nothing,
+       publiclyAccessible = Prelude.Nothing,
+       replicationInstanceIdentifier = Prelude.Nothing,
+       replicationSubnetGroupIdentifier = Prelude.Nothing,
+       resourceIdentifier = Prelude.Nothing, tags = Prelude.Nothing,
+       vpcSecurityGroupIds = Prelude.Nothing}
+instance ToResourceProperties ReplicationInstance where
+  toResourceProperties ReplicationInstance {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::ReplicationInstance",
+         supportsTags = Prelude.True,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["ReplicationInstanceClass" JSON..= replicationInstanceClass]
+                           (Prelude.catMaybes
+                              [(JSON..=) "AllocatedStorage" Prelude.<$> allocatedStorage,
+                               (JSON..=) "AllowMajorVersionUpgrade"
+                                 Prelude.<$> allowMajorVersionUpgrade,
+                               (JSON..=) "AutoMinorVersionUpgrade"
+                                 Prelude.<$> autoMinorVersionUpgrade,
+                               (JSON..=) "AvailabilityZone" Prelude.<$> availabilityZone,
+                               (JSON..=) "DnsNameServers" Prelude.<$> dnsNameServers,
+                               (JSON..=) "EngineVersion" Prelude.<$> engineVersion,
+                               (JSON..=) "KmsKeyId" Prelude.<$> kmsKeyId,
+                               (JSON..=) "MultiAZ" Prelude.<$> multiAZ,
+                               (JSON..=) "NetworkType" Prelude.<$> networkType,
+                               (JSON..=) "PreferredMaintenanceWindow"
+                                 Prelude.<$> preferredMaintenanceWindow,
+                               (JSON..=) "PubliclyAccessible" Prelude.<$> publiclyAccessible,
+                               (JSON..=) "ReplicationInstanceIdentifier"
+                                 Prelude.<$> replicationInstanceIdentifier,
+                               (JSON..=) "ReplicationSubnetGroupIdentifier"
+                                 Prelude.<$> replicationSubnetGroupIdentifier,
+                               (JSON..=) "ResourceIdentifier" Prelude.<$> resourceIdentifier,
+                               (JSON..=) "Tags" Prelude.<$> tags,
+                               (JSON..=) "VpcSecurityGroupIds" Prelude.<$> vpcSecurityGroupIds]))}
+instance JSON.ToJSON ReplicationInstance where
+  toJSON ReplicationInstance {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["ReplicationInstanceClass" JSON..= replicationInstanceClass]
+              (Prelude.catMaybes
+                 [(JSON..=) "AllocatedStorage" Prelude.<$> allocatedStorage,
+                  (JSON..=) "AllowMajorVersionUpgrade"
+                    Prelude.<$> allowMajorVersionUpgrade,
+                  (JSON..=) "AutoMinorVersionUpgrade"
+                    Prelude.<$> autoMinorVersionUpgrade,
+                  (JSON..=) "AvailabilityZone" Prelude.<$> availabilityZone,
+                  (JSON..=) "DnsNameServers" Prelude.<$> dnsNameServers,
+                  (JSON..=) "EngineVersion" Prelude.<$> engineVersion,
+                  (JSON..=) "KmsKeyId" Prelude.<$> kmsKeyId,
+                  (JSON..=) "MultiAZ" Prelude.<$> multiAZ,
+                  (JSON..=) "NetworkType" Prelude.<$> networkType,
+                  (JSON..=) "PreferredMaintenanceWindow"
+                    Prelude.<$> preferredMaintenanceWindow,
+                  (JSON..=) "PubliclyAccessible" Prelude.<$> publiclyAccessible,
+                  (JSON..=) "ReplicationInstanceIdentifier"
+                    Prelude.<$> replicationInstanceIdentifier,
+                  (JSON..=) "ReplicationSubnetGroupIdentifier"
+                    Prelude.<$> replicationSubnetGroupIdentifier,
+                  (JSON..=) "ResourceIdentifier" Prelude.<$> resourceIdentifier,
+                  (JSON..=) "Tags" Prelude.<$> tags,
+                  (JSON..=) "VpcSecurityGroupIds" Prelude.<$> vpcSecurityGroupIds])))
+instance Property "AllocatedStorage" ReplicationInstance where
+  type PropertyType "AllocatedStorage" ReplicationInstance = Value Prelude.Integer
+  set newValue ReplicationInstance {..}
+    = ReplicationInstance
+        {allocatedStorage = Prelude.pure newValue, ..}
+instance Property "AllowMajorVersionUpgrade" ReplicationInstance where
+  type PropertyType "AllowMajorVersionUpgrade" ReplicationInstance = Value Prelude.Bool
+  set newValue ReplicationInstance {..}
+    = ReplicationInstance
+        {allowMajorVersionUpgrade = Prelude.pure newValue, ..}
+instance Property "AutoMinorVersionUpgrade" ReplicationInstance where
+  type PropertyType "AutoMinorVersionUpgrade" ReplicationInstance = Value Prelude.Bool
+  set newValue ReplicationInstance {..}
+    = ReplicationInstance
+        {autoMinorVersionUpgrade = Prelude.pure newValue, ..}
+instance Property "AvailabilityZone" ReplicationInstance where
+  type PropertyType "AvailabilityZone" ReplicationInstance = Value Prelude.Text
+  set newValue ReplicationInstance {..}
+    = ReplicationInstance
+        {availabilityZone = Prelude.pure newValue, ..}
+instance Property "DnsNameServers" ReplicationInstance where
+  type PropertyType "DnsNameServers" ReplicationInstance = Value Prelude.Text
+  set newValue ReplicationInstance {..}
+    = ReplicationInstance {dnsNameServers = Prelude.pure newValue, ..}
+instance Property "EngineVersion" ReplicationInstance where
+  type PropertyType "EngineVersion" ReplicationInstance = Value Prelude.Text
+  set newValue ReplicationInstance {..}
+    = ReplicationInstance {engineVersion = Prelude.pure newValue, ..}
+instance Property "KmsKeyId" ReplicationInstance where
+  type PropertyType "KmsKeyId" ReplicationInstance = Value Prelude.Text
+  set newValue ReplicationInstance {..}
+    = ReplicationInstance {kmsKeyId = Prelude.pure newValue, ..}
+instance Property "MultiAZ" ReplicationInstance where
+  type PropertyType "MultiAZ" ReplicationInstance = Value Prelude.Bool
+  set newValue ReplicationInstance {..}
+    = ReplicationInstance {multiAZ = Prelude.pure newValue, ..}
+instance Property "NetworkType" ReplicationInstance where
+  type PropertyType "NetworkType" ReplicationInstance = Value Prelude.Text
+  set newValue ReplicationInstance {..}
+    = ReplicationInstance {networkType = Prelude.pure newValue, ..}
+instance Property "PreferredMaintenanceWindow" ReplicationInstance where
+  type PropertyType "PreferredMaintenanceWindow" ReplicationInstance = Value Prelude.Text
+  set newValue ReplicationInstance {..}
+    = ReplicationInstance
+        {preferredMaintenanceWindow = Prelude.pure newValue, ..}
+instance Property "PubliclyAccessible" ReplicationInstance where
+  type PropertyType "PubliclyAccessible" ReplicationInstance = Value Prelude.Bool
+  set newValue ReplicationInstance {..}
+    = ReplicationInstance
+        {publiclyAccessible = Prelude.pure newValue, ..}
+instance Property "ReplicationInstanceClass" ReplicationInstance where
+  type PropertyType "ReplicationInstanceClass" ReplicationInstance = Value Prelude.Text
+  set newValue ReplicationInstance {..}
+    = ReplicationInstance {replicationInstanceClass = newValue, ..}
+instance Property "ReplicationInstanceIdentifier" ReplicationInstance where
+  type PropertyType "ReplicationInstanceIdentifier" ReplicationInstance = Value Prelude.Text
+  set newValue ReplicationInstance {..}
+    = ReplicationInstance
+        {replicationInstanceIdentifier = Prelude.pure newValue, ..}
+instance Property "ReplicationSubnetGroupIdentifier" ReplicationInstance where
+  type PropertyType "ReplicationSubnetGroupIdentifier" ReplicationInstance = Value Prelude.Text
+  set newValue ReplicationInstance {..}
+    = ReplicationInstance
+        {replicationSubnetGroupIdentifier = Prelude.pure newValue, ..}
+instance Property "ResourceIdentifier" ReplicationInstance where
+  type PropertyType "ResourceIdentifier" ReplicationInstance = Value Prelude.Text
+  set newValue ReplicationInstance {..}
+    = ReplicationInstance
+        {resourceIdentifier = Prelude.pure newValue, ..}
+instance Property "Tags" ReplicationInstance where
+  type PropertyType "Tags" ReplicationInstance = [Tag]
+  set newValue ReplicationInstance {..}
+    = ReplicationInstance {tags = Prelude.pure newValue, ..}
+instance Property "VpcSecurityGroupIds" ReplicationInstance where
+  type PropertyType "VpcSecurityGroupIds" ReplicationInstance = ValueList Prelude.Text
+  set newValue ReplicationInstance {..}
+    = ReplicationInstance
+        {vpcSecurityGroupIds = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DMS/ReplicationSubnetGroup.hs b/gen/Stratosphere/DMS/ReplicationSubnetGroup.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/ReplicationSubnetGroup.hs
@@ -0,0 +1,77 @@
+module Stratosphere.DMS.ReplicationSubnetGroup (
+        ReplicationSubnetGroup(..), mkReplicationSubnetGroup
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Tag
+import Stratosphere.Value
+data ReplicationSubnetGroup
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationsubnetgroup.html>
+    ReplicationSubnetGroup {haddock_workaround_ :: (),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationsubnetgroup.html#cfn-dms-replicationsubnetgroup-replicationsubnetgroupdescription>
+                            replicationSubnetGroupDescription :: (Value Prelude.Text),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationsubnetgroup.html#cfn-dms-replicationsubnetgroup-replicationsubnetgroupidentifier>
+                            replicationSubnetGroupIdentifier :: (Prelude.Maybe (Value Prelude.Text)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationsubnetgroup.html#cfn-dms-replicationsubnetgroup-subnetids>
+                            subnetIds :: (ValueList Prelude.Text),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationsubnetgroup.html#cfn-dms-replicationsubnetgroup-tags>
+                            tags :: (Prelude.Maybe [Tag])}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkReplicationSubnetGroup ::
+  Value Prelude.Text
+  -> ValueList Prelude.Text -> ReplicationSubnetGroup
+mkReplicationSubnetGroup
+  replicationSubnetGroupDescription
+  subnetIds
+  = ReplicationSubnetGroup
+      {haddock_workaround_ = (),
+       replicationSubnetGroupDescription = replicationSubnetGroupDescription,
+       subnetIds = subnetIds,
+       replicationSubnetGroupIdentifier = Prelude.Nothing,
+       tags = Prelude.Nothing}
+instance ToResourceProperties ReplicationSubnetGroup where
+  toResourceProperties ReplicationSubnetGroup {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::ReplicationSubnetGroup",
+         supportsTags = Prelude.True,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["ReplicationSubnetGroupDescription"
+                              JSON..= replicationSubnetGroupDescription,
+                            "SubnetIds" JSON..= subnetIds]
+                           (Prelude.catMaybes
+                              [(JSON..=) "ReplicationSubnetGroupIdentifier"
+                                 Prelude.<$> replicationSubnetGroupIdentifier,
+                               (JSON..=) "Tags" Prelude.<$> tags]))}
+instance JSON.ToJSON ReplicationSubnetGroup where
+  toJSON ReplicationSubnetGroup {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["ReplicationSubnetGroupDescription"
+                 JSON..= replicationSubnetGroupDescription,
+               "SubnetIds" JSON..= subnetIds]
+              (Prelude.catMaybes
+                 [(JSON..=) "ReplicationSubnetGroupIdentifier"
+                    Prelude.<$> replicationSubnetGroupIdentifier,
+                  (JSON..=) "Tags" Prelude.<$> tags])))
+instance Property "ReplicationSubnetGroupDescription" ReplicationSubnetGroup where
+  type PropertyType "ReplicationSubnetGroupDescription" ReplicationSubnetGroup = Value Prelude.Text
+  set newValue ReplicationSubnetGroup {..}
+    = ReplicationSubnetGroup
+        {replicationSubnetGroupDescription = newValue, ..}
+instance Property "ReplicationSubnetGroupIdentifier" ReplicationSubnetGroup where
+  type PropertyType "ReplicationSubnetGroupIdentifier" ReplicationSubnetGroup = Value Prelude.Text
+  set newValue ReplicationSubnetGroup {..}
+    = ReplicationSubnetGroup
+        {replicationSubnetGroupIdentifier = Prelude.pure newValue, ..}
+instance Property "SubnetIds" ReplicationSubnetGroup where
+  type PropertyType "SubnetIds" ReplicationSubnetGroup = ValueList Prelude.Text
+  set newValue ReplicationSubnetGroup {..}
+    = ReplicationSubnetGroup {subnetIds = newValue, ..}
+instance Property "Tags" ReplicationSubnetGroup where
+  type PropertyType "Tags" ReplicationSubnetGroup = [Tag]
+  set newValue ReplicationSubnetGroup {..}
+    = ReplicationSubnetGroup {tags = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DMS/ReplicationTask.hs b/gen/Stratosphere/DMS/ReplicationTask.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DMS/ReplicationTask.hs
@@ -0,0 +1,160 @@
+module Stratosphere.DMS.ReplicationTask (
+        ReplicationTask(..), mkReplicationTask
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Tag
+import Stratosphere.Value
+data ReplicationTask
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html>
+    ReplicationTask {haddock_workaround_ :: (),
+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-cdcstartposition>
+                     cdcStartPosition :: (Prelude.Maybe (Value Prelude.Text)),
+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-cdcstarttime>
+                     cdcStartTime :: (Prelude.Maybe (Value Prelude.Double)),
+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-cdcstopposition>
+                     cdcStopPosition :: (Prelude.Maybe (Value Prelude.Text)),
+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-migrationtype>
+                     migrationType :: (Value Prelude.Text),
+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-replicationinstancearn>
+                     replicationInstanceArn :: (Value Prelude.Text),
+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-replicationtaskidentifier>
+                     replicationTaskIdentifier :: (Prelude.Maybe (Value Prelude.Text)),
+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-replicationtasksettings>
+                     replicationTaskSettings :: (Prelude.Maybe (Value Prelude.Text)),
+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-resourceidentifier>
+                     resourceIdentifier :: (Prelude.Maybe (Value Prelude.Text)),
+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-sourceendpointarn>
+                     sourceEndpointArn :: (Value Prelude.Text),
+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-tablemappings>
+                     tableMappings :: (Value Prelude.Text),
+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-tags>
+                     tags :: (Prelude.Maybe [Tag]),
+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-targetendpointarn>
+                     targetEndpointArn :: (Value Prelude.Text),
+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-taskdata>
+                     taskData :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkReplicationTask ::
+  Value Prelude.Text
+  -> Value Prelude.Text
+     -> Value Prelude.Text
+        -> Value Prelude.Text -> Value Prelude.Text -> ReplicationTask
+mkReplicationTask
+  migrationType
+  replicationInstanceArn
+  sourceEndpointArn
+  tableMappings
+  targetEndpointArn
+  = ReplicationTask
+      {haddock_workaround_ = (), migrationType = migrationType,
+       replicationInstanceArn = replicationInstanceArn,
+       sourceEndpointArn = sourceEndpointArn,
+       tableMappings = tableMappings,
+       targetEndpointArn = targetEndpointArn,
+       cdcStartPosition = Prelude.Nothing, cdcStartTime = Prelude.Nothing,
+       cdcStopPosition = Prelude.Nothing,
+       replicationTaskIdentifier = Prelude.Nothing,
+       replicationTaskSettings = Prelude.Nothing,
+       resourceIdentifier = Prelude.Nothing, tags = Prelude.Nothing,
+       taskData = Prelude.Nothing}
+instance ToResourceProperties ReplicationTask where
+  toResourceProperties ReplicationTask {..}
+    = ResourceProperties
+        {awsType = "AWS::DMS::ReplicationTask",
+         supportsTags = Prelude.True,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["MigrationType" JSON..= migrationType,
+                            "ReplicationInstanceArn" JSON..= replicationInstanceArn,
+                            "SourceEndpointArn" JSON..= sourceEndpointArn,
+                            "TableMappings" JSON..= tableMappings,
+                            "TargetEndpointArn" JSON..= targetEndpointArn]
+                           (Prelude.catMaybes
+                              [(JSON..=) "CdcStartPosition" Prelude.<$> cdcStartPosition,
+                               (JSON..=) "CdcStartTime" Prelude.<$> cdcStartTime,
+                               (JSON..=) "CdcStopPosition" Prelude.<$> cdcStopPosition,
+                               (JSON..=) "ReplicationTaskIdentifier"
+                                 Prelude.<$> replicationTaskIdentifier,
+                               (JSON..=) "ReplicationTaskSettings"
+                                 Prelude.<$> replicationTaskSettings,
+                               (JSON..=) "ResourceIdentifier" Prelude.<$> resourceIdentifier,
+                               (JSON..=) "Tags" Prelude.<$> tags,
+                               (JSON..=) "TaskData" Prelude.<$> taskData]))}
+instance JSON.ToJSON ReplicationTask where
+  toJSON ReplicationTask {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["MigrationType" JSON..= migrationType,
+               "ReplicationInstanceArn" JSON..= replicationInstanceArn,
+               "SourceEndpointArn" JSON..= sourceEndpointArn,
+               "TableMappings" JSON..= tableMappings,
+               "TargetEndpointArn" JSON..= targetEndpointArn]
+              (Prelude.catMaybes
+                 [(JSON..=) "CdcStartPosition" Prelude.<$> cdcStartPosition,
+                  (JSON..=) "CdcStartTime" Prelude.<$> cdcStartTime,
+                  (JSON..=) "CdcStopPosition" Prelude.<$> cdcStopPosition,
+                  (JSON..=) "ReplicationTaskIdentifier"
+                    Prelude.<$> replicationTaskIdentifier,
+                  (JSON..=) "ReplicationTaskSettings"
+                    Prelude.<$> replicationTaskSettings,
+                  (JSON..=) "ResourceIdentifier" Prelude.<$> resourceIdentifier,
+                  (JSON..=) "Tags" Prelude.<$> tags,
+                  (JSON..=) "TaskData" Prelude.<$> taskData])))
+instance Property "CdcStartPosition" ReplicationTask where
+  type PropertyType "CdcStartPosition" ReplicationTask = Value Prelude.Text
+  set newValue ReplicationTask {..}
+    = ReplicationTask {cdcStartPosition = Prelude.pure newValue, ..}
+instance Property "CdcStartTime" ReplicationTask where
+  type PropertyType "CdcStartTime" ReplicationTask = Value Prelude.Double
+  set newValue ReplicationTask {..}
+    = ReplicationTask {cdcStartTime = Prelude.pure newValue, ..}
+instance Property "CdcStopPosition" ReplicationTask where
+  type PropertyType "CdcStopPosition" ReplicationTask = Value Prelude.Text
+  set newValue ReplicationTask {..}
+    = ReplicationTask {cdcStopPosition = Prelude.pure newValue, ..}
+instance Property "MigrationType" ReplicationTask where
+  type PropertyType "MigrationType" ReplicationTask = Value Prelude.Text
+  set newValue ReplicationTask {..}
+    = ReplicationTask {migrationType = newValue, ..}
+instance Property "ReplicationInstanceArn" ReplicationTask where
+  type PropertyType "ReplicationInstanceArn" ReplicationTask = Value Prelude.Text
+  set newValue ReplicationTask {..}
+    = ReplicationTask {replicationInstanceArn = newValue, ..}
+instance Property "ReplicationTaskIdentifier" ReplicationTask where
+  type PropertyType "ReplicationTaskIdentifier" ReplicationTask = Value Prelude.Text
+  set newValue ReplicationTask {..}
+    = ReplicationTask
+        {replicationTaskIdentifier = Prelude.pure newValue, ..}
+instance Property "ReplicationTaskSettings" ReplicationTask where
+  type PropertyType "ReplicationTaskSettings" ReplicationTask = Value Prelude.Text
+  set newValue ReplicationTask {..}
+    = ReplicationTask
+        {replicationTaskSettings = Prelude.pure newValue, ..}
+instance Property "ResourceIdentifier" ReplicationTask where
+  type PropertyType "ResourceIdentifier" ReplicationTask = Value Prelude.Text
+  set newValue ReplicationTask {..}
+    = ReplicationTask {resourceIdentifier = Prelude.pure newValue, ..}
+instance Property "SourceEndpointArn" ReplicationTask where
+  type PropertyType "SourceEndpointArn" ReplicationTask = Value Prelude.Text
+  set newValue ReplicationTask {..}
+    = ReplicationTask {sourceEndpointArn = newValue, ..}
+instance Property "TableMappings" ReplicationTask where
+  type PropertyType "TableMappings" ReplicationTask = Value Prelude.Text
+  set newValue ReplicationTask {..}
+    = ReplicationTask {tableMappings = newValue, ..}
+instance Property "Tags" ReplicationTask where
+  type PropertyType "Tags" ReplicationTask = [Tag]
+  set newValue ReplicationTask {..}
+    = ReplicationTask {tags = Prelude.pure newValue, ..}
+instance Property "TargetEndpointArn" ReplicationTask where
+  type PropertyType "TargetEndpointArn" ReplicationTask = Value Prelude.Text
+  set newValue ReplicationTask {..}
+    = ReplicationTask {targetEndpointArn = newValue, ..}
+instance Property "TaskData" ReplicationTask where
+  type PropertyType "TaskData" ReplicationTask = Value Prelude.Text
+  set newValue ReplicationTask {..}
+    = ReplicationTask {taskData = Prelude.pure newValue, ..}
diff --git a/stratosphere-dms.cabal b/stratosphere-dms.cabal
new file mode 100644
--- /dev/null
+++ b/stratosphere-dms.cabal
@@ -0,0 +1,116 @@
+cabal-version: 1.12
+
+-- This file has been generated from package.yaml by hpack version 0.38.2.
+--
+-- see: https://github.com/sol/hpack
+
+name:           stratosphere-dms
+version:        1.0.0
+synopsis:       Stratosphere integration for AWS DMS.
+description:    Integration into stratosphere to generate resources and properties for AWS DMS
+category:       AWS, Cloud, DMS
+stability:      experimental
+homepage:       https://github.com/mbj/stratosphere#readme
+bug-reports:    https://github.com/mbj/stratosphere/issues
+maintainer:     Markus Schirp
+license:        MIT
+license-file:   LICENSE.md
+build-type:     Simple
+
+source-repository head
+  type: git
+  location: https://github.com/mbj/stratosphere
+
+flag development
+  description: Run GHC with development flags
+  manual: True
+  default: False
+
+library
+  exposed-modules:
+      Stratosphere.DMS.Certificate
+      Stratosphere.DMS.DataMigration
+      Stratosphere.DMS.DataMigration.DataMigrationSettingsProperty
+      Stratosphere.DMS.DataMigration.SourceDataSettingsProperty
+      Stratosphere.DMS.DataProvider
+      Stratosphere.DMS.DataProvider.DocDbSettingsProperty
+      Stratosphere.DMS.DataProvider.IbmDb2LuwSettingsProperty
+      Stratosphere.DMS.DataProvider.IbmDb2zOsSettingsProperty
+      Stratosphere.DMS.DataProvider.MariaDbSettingsProperty
+      Stratosphere.DMS.DataProvider.MicrosoftSqlServerSettingsProperty
+      Stratosphere.DMS.DataProvider.MongoDbSettingsProperty
+      Stratosphere.DMS.DataProvider.MySqlSettingsProperty
+      Stratosphere.DMS.DataProvider.OracleSettingsProperty
+      Stratosphere.DMS.DataProvider.PostgreSqlSettingsProperty
+      Stratosphere.DMS.DataProvider.RedshiftSettingsProperty
+      Stratosphere.DMS.DataProvider.SettingsProperty
+      Stratosphere.DMS.Endpoint
+      Stratosphere.DMS.Endpoint.DocDbSettingsProperty
+      Stratosphere.DMS.Endpoint.DynamoDbSettingsProperty
+      Stratosphere.DMS.Endpoint.ElasticsearchSettingsProperty
+      Stratosphere.DMS.Endpoint.GcpMySQLSettingsProperty
+      Stratosphere.DMS.Endpoint.IbmDb2SettingsProperty
+      Stratosphere.DMS.Endpoint.KafkaSettingsProperty
+      Stratosphere.DMS.Endpoint.KinesisSettingsProperty
+      Stratosphere.DMS.Endpoint.MicrosoftSqlServerSettingsProperty
+      Stratosphere.DMS.Endpoint.MongoDbSettingsProperty
+      Stratosphere.DMS.Endpoint.MySqlSettingsProperty
+      Stratosphere.DMS.Endpoint.NeptuneSettingsProperty
+      Stratosphere.DMS.Endpoint.OracleSettingsProperty
+      Stratosphere.DMS.Endpoint.PostgreSqlSettingsProperty
+      Stratosphere.DMS.Endpoint.RedisSettingsProperty
+      Stratosphere.DMS.Endpoint.RedshiftSettingsProperty
+      Stratosphere.DMS.Endpoint.S3SettingsProperty
+      Stratosphere.DMS.Endpoint.SybaseSettingsProperty
+      Stratosphere.DMS.EventSubscription
+      Stratosphere.DMS.InstanceProfile
+      Stratosphere.DMS.MigrationProject
+      Stratosphere.DMS.MigrationProject.DataProviderDescriptorProperty
+      Stratosphere.DMS.MigrationProject.SchemaConversionApplicationAttributesProperty
+      Stratosphere.DMS.ReplicationConfig
+      Stratosphere.DMS.ReplicationConfig.ComputeConfigProperty
+      Stratosphere.DMS.ReplicationInstance
+      Stratosphere.DMS.ReplicationSubnetGroup
+      Stratosphere.DMS.ReplicationTask
+  other-modules:
+      Paths_stratosphere_dms
+  hs-source-dirs:
+      gen
+  default-extensions:
+      DataKinds
+      DeriveGeneric
+      DerivingStrategies
+      DerivingVia
+      DuplicateRecordFields
+      FlexibleContexts
+      FlexibleInstances
+      GADTs
+      GeneralizedNewtypeDeriving
+      InstanceSigs
+      LambdaCase
+      MultiParamTypeClasses
+      NoFieldSelectors
+      NoImplicitPrelude
+      NumericUnderscores
+      OverloadedLists
+      OverloadedRecordDot
+      OverloadedStrings
+      PolyKinds
+      RecordWildCards
+      ScopedTypeVariables
+      StandaloneDeriving
+      Strict
+      TemplateHaskell
+      TupleSections
+      TypeApplications
+      TypeFamilies
+  ghc-options: -Wall -Wcompat -Widentities -Wimplicit-prelude -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-local-signatures -Wmissing-signatures -Wmonomorphism-restriction -Wredundant-constraints -fhide-source-paths -funbox-strict-fields -optP-Wno-nonportable-include-path -Wno-unused-imports
+  build-depends:
+      aeson ==2.*
+    , base >=4.8 && <4.22
+    , stratosphere ==1.0.0
+  default-language: Haskell2010
+  if flag(development)
+    ghc-options: -Werror
+  else
+    ghc-options: -Wwarn
