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/DocDB/DBCluster.hs b/gen/Stratosphere/DocDB/DBCluster.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DocDB/DBCluster.hs
@@ -0,0 +1,321 @@
+module Stratosphere.DocDB.DBCluster (
+        module Exports, DBCluster(..), mkDBCluster
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.DocDB.DBCluster.ServerlessV2ScalingConfigurationProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Tag
+import Stratosphere.Value
+data DBCluster
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html>
+    DBCluster {haddock_workaround_ :: (),
+               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-availabilityzones>
+               availabilityZones :: (Prelude.Maybe (ValueList Prelude.Text)),
+               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-backupretentionperiod>
+               backupRetentionPeriod :: (Prelude.Maybe (Value Prelude.Integer)),
+               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-copytagstosnapshot>
+               copyTagsToSnapshot :: (Prelude.Maybe (Value Prelude.Bool)),
+               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-dbclusteridentifier>
+               dBClusterIdentifier :: (Prelude.Maybe (Value Prelude.Text)),
+               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-dbclusterparametergroupname>
+               dBClusterParameterGroupName :: (Prelude.Maybe (Value Prelude.Text)),
+               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-dbsubnetgroupname>
+               dBSubnetGroupName :: (Prelude.Maybe (Value Prelude.Text)),
+               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-deletionprotection>
+               deletionProtection :: (Prelude.Maybe (Value Prelude.Bool)),
+               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-enablecloudwatchlogsexports>
+               enableCloudwatchLogsExports :: (Prelude.Maybe (ValueList Prelude.Text)),
+               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-engineversion>
+               engineVersion :: (Prelude.Maybe (Value Prelude.Text)),
+               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-globalclusteridentifier>
+               globalClusterIdentifier :: (Prelude.Maybe (Value Prelude.Text)),
+               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-kmskeyid>
+               kmsKeyId :: (Prelude.Maybe (Value Prelude.Text)),
+               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-managemasteruserpassword>
+               manageMasterUserPassword :: (Prelude.Maybe (Value Prelude.Bool)),
+               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-masteruserpassword>
+               masterUserPassword :: (Prelude.Maybe (Value Prelude.Text)),
+               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-masterusersecretkmskeyid>
+               masterUserSecretKmsKeyId :: (Prelude.Maybe (Value Prelude.Text)),
+               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-masterusername>
+               masterUsername :: (Prelude.Maybe (Value Prelude.Text)),
+               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-networktype>
+               networkType :: (Prelude.Maybe (Value Prelude.Text)),
+               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-port>
+               port :: (Prelude.Maybe (Value Prelude.Integer)),
+               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-preferredbackupwindow>
+               preferredBackupWindow :: (Prelude.Maybe (Value Prelude.Text)),
+               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-preferredmaintenancewindow>
+               preferredMaintenanceWindow :: (Prelude.Maybe (Value Prelude.Text)),
+               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-restoretotime>
+               restoreToTime :: (Prelude.Maybe (Value Prelude.Text)),
+               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-restoretype>
+               restoreType :: (Prelude.Maybe (Value Prelude.Text)),
+               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-rotatemasteruserpassword>
+               rotateMasterUserPassword :: (Prelude.Maybe (Value Prelude.Bool)),
+               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-serverlessv2scalingconfiguration>
+               serverlessV2ScalingConfiguration :: (Prelude.Maybe ServerlessV2ScalingConfigurationProperty),
+               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-snapshotidentifier>
+               snapshotIdentifier :: (Prelude.Maybe (Value Prelude.Text)),
+               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-sourcedbclusteridentifier>
+               sourceDBClusterIdentifier :: (Prelude.Maybe (Value Prelude.Text)),
+               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-storageencrypted>
+               storageEncrypted :: (Prelude.Maybe (Value Prelude.Bool)),
+               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-storagetype>
+               storageType :: (Prelude.Maybe (Value Prelude.Text)),
+               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-tags>
+               tags :: (Prelude.Maybe [Tag]),
+               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-uselatestrestorabletime>
+               useLatestRestorableTime :: (Prelude.Maybe (Value Prelude.Bool)),
+               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-vpcsecuritygroupids>
+               vpcSecurityGroupIds :: (Prelude.Maybe (ValueList Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkDBCluster :: DBCluster
+mkDBCluster
+  = DBCluster
+      {haddock_workaround_ = (), availabilityZones = Prelude.Nothing,
+       backupRetentionPeriod = Prelude.Nothing,
+       copyTagsToSnapshot = Prelude.Nothing,
+       dBClusterIdentifier = Prelude.Nothing,
+       dBClusterParameterGroupName = Prelude.Nothing,
+       dBSubnetGroupName = Prelude.Nothing,
+       deletionProtection = Prelude.Nothing,
+       enableCloudwatchLogsExports = Prelude.Nothing,
+       engineVersion = Prelude.Nothing,
+       globalClusterIdentifier = Prelude.Nothing,
+       kmsKeyId = Prelude.Nothing,
+       manageMasterUserPassword = Prelude.Nothing,
+       masterUserPassword = Prelude.Nothing,
+       masterUserSecretKmsKeyId = Prelude.Nothing,
+       masterUsername = Prelude.Nothing, networkType = Prelude.Nothing,
+       port = Prelude.Nothing, preferredBackupWindow = Prelude.Nothing,
+       preferredMaintenanceWindow = Prelude.Nothing,
+       restoreToTime = Prelude.Nothing, restoreType = Prelude.Nothing,
+       rotateMasterUserPassword = Prelude.Nothing,
+       serverlessV2ScalingConfiguration = Prelude.Nothing,
+       snapshotIdentifier = Prelude.Nothing,
+       sourceDBClusterIdentifier = Prelude.Nothing,
+       storageEncrypted = Prelude.Nothing, storageType = Prelude.Nothing,
+       tags = Prelude.Nothing, useLatestRestorableTime = Prelude.Nothing,
+       vpcSecurityGroupIds = Prelude.Nothing}
+instance ToResourceProperties DBCluster where
+  toResourceProperties DBCluster {..}
+    = ResourceProperties
+        {awsType = "AWS::DocDB::DBCluster", supportsTags = Prelude.True,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "AvailabilityZones" Prelude.<$> availabilityZones,
+                            (JSON..=) "BackupRetentionPeriod"
+                              Prelude.<$> backupRetentionPeriod,
+                            (JSON..=) "CopyTagsToSnapshot" Prelude.<$> copyTagsToSnapshot,
+                            (JSON..=) "DBClusterIdentifier" Prelude.<$> dBClusterIdentifier,
+                            (JSON..=) "DBClusterParameterGroupName"
+                              Prelude.<$> dBClusterParameterGroupName,
+                            (JSON..=) "DBSubnetGroupName" Prelude.<$> dBSubnetGroupName,
+                            (JSON..=) "DeletionProtection" Prelude.<$> deletionProtection,
+                            (JSON..=) "EnableCloudwatchLogsExports"
+                              Prelude.<$> enableCloudwatchLogsExports,
+                            (JSON..=) "EngineVersion" Prelude.<$> engineVersion,
+                            (JSON..=) "GlobalClusterIdentifier"
+                              Prelude.<$> globalClusterIdentifier,
+                            (JSON..=) "KmsKeyId" Prelude.<$> kmsKeyId,
+                            (JSON..=) "ManageMasterUserPassword"
+                              Prelude.<$> manageMasterUserPassword,
+                            (JSON..=) "MasterUserPassword" Prelude.<$> masterUserPassword,
+                            (JSON..=) "MasterUserSecretKmsKeyId"
+                              Prelude.<$> masterUserSecretKmsKeyId,
+                            (JSON..=) "MasterUsername" Prelude.<$> masterUsername,
+                            (JSON..=) "NetworkType" Prelude.<$> networkType,
+                            (JSON..=) "Port" Prelude.<$> port,
+                            (JSON..=) "PreferredBackupWindow"
+                              Prelude.<$> preferredBackupWindow,
+                            (JSON..=) "PreferredMaintenanceWindow"
+                              Prelude.<$> preferredMaintenanceWindow,
+                            (JSON..=) "RestoreToTime" Prelude.<$> restoreToTime,
+                            (JSON..=) "RestoreType" Prelude.<$> restoreType,
+                            (JSON..=) "RotateMasterUserPassword"
+                              Prelude.<$> rotateMasterUserPassword,
+                            (JSON..=) "ServerlessV2ScalingConfiguration"
+                              Prelude.<$> serverlessV2ScalingConfiguration,
+                            (JSON..=) "SnapshotIdentifier" Prelude.<$> snapshotIdentifier,
+                            (JSON..=) "SourceDBClusterIdentifier"
+                              Prelude.<$> sourceDBClusterIdentifier,
+                            (JSON..=) "StorageEncrypted" Prelude.<$> storageEncrypted,
+                            (JSON..=) "StorageType" Prelude.<$> storageType,
+                            (JSON..=) "Tags" Prelude.<$> tags,
+                            (JSON..=) "UseLatestRestorableTime"
+                              Prelude.<$> useLatestRestorableTime,
+                            (JSON..=) "VpcSecurityGroupIds" Prelude.<$> vpcSecurityGroupIds])}
+instance JSON.ToJSON DBCluster where
+  toJSON DBCluster {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "AvailabilityZones" Prelude.<$> availabilityZones,
+               (JSON..=) "BackupRetentionPeriod"
+                 Prelude.<$> backupRetentionPeriod,
+               (JSON..=) "CopyTagsToSnapshot" Prelude.<$> copyTagsToSnapshot,
+               (JSON..=) "DBClusterIdentifier" Prelude.<$> dBClusterIdentifier,
+               (JSON..=) "DBClusterParameterGroupName"
+                 Prelude.<$> dBClusterParameterGroupName,
+               (JSON..=) "DBSubnetGroupName" Prelude.<$> dBSubnetGroupName,
+               (JSON..=) "DeletionProtection" Prelude.<$> deletionProtection,
+               (JSON..=) "EnableCloudwatchLogsExports"
+                 Prelude.<$> enableCloudwatchLogsExports,
+               (JSON..=) "EngineVersion" Prelude.<$> engineVersion,
+               (JSON..=) "GlobalClusterIdentifier"
+                 Prelude.<$> globalClusterIdentifier,
+               (JSON..=) "KmsKeyId" Prelude.<$> kmsKeyId,
+               (JSON..=) "ManageMasterUserPassword"
+                 Prelude.<$> manageMasterUserPassword,
+               (JSON..=) "MasterUserPassword" Prelude.<$> masterUserPassword,
+               (JSON..=) "MasterUserSecretKmsKeyId"
+                 Prelude.<$> masterUserSecretKmsKeyId,
+               (JSON..=) "MasterUsername" Prelude.<$> masterUsername,
+               (JSON..=) "NetworkType" Prelude.<$> networkType,
+               (JSON..=) "Port" Prelude.<$> port,
+               (JSON..=) "PreferredBackupWindow"
+                 Prelude.<$> preferredBackupWindow,
+               (JSON..=) "PreferredMaintenanceWindow"
+                 Prelude.<$> preferredMaintenanceWindow,
+               (JSON..=) "RestoreToTime" Prelude.<$> restoreToTime,
+               (JSON..=) "RestoreType" Prelude.<$> restoreType,
+               (JSON..=) "RotateMasterUserPassword"
+                 Prelude.<$> rotateMasterUserPassword,
+               (JSON..=) "ServerlessV2ScalingConfiguration"
+                 Prelude.<$> serverlessV2ScalingConfiguration,
+               (JSON..=) "SnapshotIdentifier" Prelude.<$> snapshotIdentifier,
+               (JSON..=) "SourceDBClusterIdentifier"
+                 Prelude.<$> sourceDBClusterIdentifier,
+               (JSON..=) "StorageEncrypted" Prelude.<$> storageEncrypted,
+               (JSON..=) "StorageType" Prelude.<$> storageType,
+               (JSON..=) "Tags" Prelude.<$> tags,
+               (JSON..=) "UseLatestRestorableTime"
+                 Prelude.<$> useLatestRestorableTime,
+               (JSON..=) "VpcSecurityGroupIds" Prelude.<$> vpcSecurityGroupIds]))
+instance Property "AvailabilityZones" DBCluster where
+  type PropertyType "AvailabilityZones" DBCluster = ValueList Prelude.Text
+  set newValue DBCluster {..}
+    = DBCluster {availabilityZones = Prelude.pure newValue, ..}
+instance Property "BackupRetentionPeriod" DBCluster where
+  type PropertyType "BackupRetentionPeriod" DBCluster = Value Prelude.Integer
+  set newValue DBCluster {..}
+    = DBCluster {backupRetentionPeriod = Prelude.pure newValue, ..}
+instance Property "CopyTagsToSnapshot" DBCluster where
+  type PropertyType "CopyTagsToSnapshot" DBCluster = Value Prelude.Bool
+  set newValue DBCluster {..}
+    = DBCluster {copyTagsToSnapshot = Prelude.pure newValue, ..}
+instance Property "DBClusterIdentifier" DBCluster where
+  type PropertyType "DBClusterIdentifier" DBCluster = Value Prelude.Text
+  set newValue DBCluster {..}
+    = DBCluster {dBClusterIdentifier = Prelude.pure newValue, ..}
+instance Property "DBClusterParameterGroupName" DBCluster where
+  type PropertyType "DBClusterParameterGroupName" DBCluster = Value Prelude.Text
+  set newValue DBCluster {..}
+    = DBCluster
+        {dBClusterParameterGroupName = Prelude.pure newValue, ..}
+instance Property "DBSubnetGroupName" DBCluster where
+  type PropertyType "DBSubnetGroupName" DBCluster = Value Prelude.Text
+  set newValue DBCluster {..}
+    = DBCluster {dBSubnetGroupName = Prelude.pure newValue, ..}
+instance Property "DeletionProtection" DBCluster where
+  type PropertyType "DeletionProtection" DBCluster = Value Prelude.Bool
+  set newValue DBCluster {..}
+    = DBCluster {deletionProtection = Prelude.pure newValue, ..}
+instance Property "EnableCloudwatchLogsExports" DBCluster where
+  type PropertyType "EnableCloudwatchLogsExports" DBCluster = ValueList Prelude.Text
+  set newValue DBCluster {..}
+    = DBCluster
+        {enableCloudwatchLogsExports = Prelude.pure newValue, ..}
+instance Property "EngineVersion" DBCluster where
+  type PropertyType "EngineVersion" DBCluster = Value Prelude.Text
+  set newValue DBCluster {..}
+    = DBCluster {engineVersion = Prelude.pure newValue, ..}
+instance Property "GlobalClusterIdentifier" DBCluster where
+  type PropertyType "GlobalClusterIdentifier" DBCluster = Value Prelude.Text
+  set newValue DBCluster {..}
+    = DBCluster {globalClusterIdentifier = Prelude.pure newValue, ..}
+instance Property "KmsKeyId" DBCluster where
+  type PropertyType "KmsKeyId" DBCluster = Value Prelude.Text
+  set newValue DBCluster {..}
+    = DBCluster {kmsKeyId = Prelude.pure newValue, ..}
+instance Property "ManageMasterUserPassword" DBCluster where
+  type PropertyType "ManageMasterUserPassword" DBCluster = Value Prelude.Bool
+  set newValue DBCluster {..}
+    = DBCluster {manageMasterUserPassword = Prelude.pure newValue, ..}
+instance Property "MasterUserPassword" DBCluster where
+  type PropertyType "MasterUserPassword" DBCluster = Value Prelude.Text
+  set newValue DBCluster {..}
+    = DBCluster {masterUserPassword = Prelude.pure newValue, ..}
+instance Property "MasterUserSecretKmsKeyId" DBCluster where
+  type PropertyType "MasterUserSecretKmsKeyId" DBCluster = Value Prelude.Text
+  set newValue DBCluster {..}
+    = DBCluster {masterUserSecretKmsKeyId = Prelude.pure newValue, ..}
+instance Property "MasterUsername" DBCluster where
+  type PropertyType "MasterUsername" DBCluster = Value Prelude.Text
+  set newValue DBCluster {..}
+    = DBCluster {masterUsername = Prelude.pure newValue, ..}
+instance Property "NetworkType" DBCluster where
+  type PropertyType "NetworkType" DBCluster = Value Prelude.Text
+  set newValue DBCluster {..}
+    = DBCluster {networkType = Prelude.pure newValue, ..}
+instance Property "Port" DBCluster where
+  type PropertyType "Port" DBCluster = Value Prelude.Integer
+  set newValue DBCluster {..}
+    = DBCluster {port = Prelude.pure newValue, ..}
+instance Property "PreferredBackupWindow" DBCluster where
+  type PropertyType "PreferredBackupWindow" DBCluster = Value Prelude.Text
+  set newValue DBCluster {..}
+    = DBCluster {preferredBackupWindow = Prelude.pure newValue, ..}
+instance Property "PreferredMaintenanceWindow" DBCluster where
+  type PropertyType "PreferredMaintenanceWindow" DBCluster = Value Prelude.Text
+  set newValue DBCluster {..}
+    = DBCluster
+        {preferredMaintenanceWindow = Prelude.pure newValue, ..}
+instance Property "RestoreToTime" DBCluster where
+  type PropertyType "RestoreToTime" DBCluster = Value Prelude.Text
+  set newValue DBCluster {..}
+    = DBCluster {restoreToTime = Prelude.pure newValue, ..}
+instance Property "RestoreType" DBCluster where
+  type PropertyType "RestoreType" DBCluster = Value Prelude.Text
+  set newValue DBCluster {..}
+    = DBCluster {restoreType = Prelude.pure newValue, ..}
+instance Property "RotateMasterUserPassword" DBCluster where
+  type PropertyType "RotateMasterUserPassword" DBCluster = Value Prelude.Bool
+  set newValue DBCluster {..}
+    = DBCluster {rotateMasterUserPassword = Prelude.pure newValue, ..}
+instance Property "ServerlessV2ScalingConfiguration" DBCluster where
+  type PropertyType "ServerlessV2ScalingConfiguration" DBCluster = ServerlessV2ScalingConfigurationProperty
+  set newValue DBCluster {..}
+    = DBCluster
+        {serverlessV2ScalingConfiguration = Prelude.pure newValue, ..}
+instance Property "SnapshotIdentifier" DBCluster where
+  type PropertyType "SnapshotIdentifier" DBCluster = Value Prelude.Text
+  set newValue DBCluster {..}
+    = DBCluster {snapshotIdentifier = Prelude.pure newValue, ..}
+instance Property "SourceDBClusterIdentifier" DBCluster where
+  type PropertyType "SourceDBClusterIdentifier" DBCluster = Value Prelude.Text
+  set newValue DBCluster {..}
+    = DBCluster {sourceDBClusterIdentifier = Prelude.pure newValue, ..}
+instance Property "StorageEncrypted" DBCluster where
+  type PropertyType "StorageEncrypted" DBCluster = Value Prelude.Bool
+  set newValue DBCluster {..}
+    = DBCluster {storageEncrypted = Prelude.pure newValue, ..}
+instance Property "StorageType" DBCluster where
+  type PropertyType "StorageType" DBCluster = Value Prelude.Text
+  set newValue DBCluster {..}
+    = DBCluster {storageType = Prelude.pure newValue, ..}
+instance Property "Tags" DBCluster where
+  type PropertyType "Tags" DBCluster = [Tag]
+  set newValue DBCluster {..}
+    = DBCluster {tags = Prelude.pure newValue, ..}
+instance Property "UseLatestRestorableTime" DBCluster where
+  type PropertyType "UseLatestRestorableTime" DBCluster = Value Prelude.Bool
+  set newValue DBCluster {..}
+    = DBCluster {useLatestRestorableTime = Prelude.pure newValue, ..}
+instance Property "VpcSecurityGroupIds" DBCluster where
+  type PropertyType "VpcSecurityGroupIds" DBCluster = ValueList Prelude.Text
+  set newValue DBCluster {..}
+    = DBCluster {vpcSecurityGroupIds = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DocDB/DBCluster/ServerlessV2ScalingConfigurationProperty.hs b/gen/Stratosphere/DocDB/DBCluster/ServerlessV2ScalingConfigurationProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DocDB/DBCluster/ServerlessV2ScalingConfigurationProperty.hs
@@ -0,0 +1,46 @@
+module Stratosphere.DocDB.DBCluster.ServerlessV2ScalingConfigurationProperty (
+        ServerlessV2ScalingConfigurationProperty(..),
+        mkServerlessV2ScalingConfigurationProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data ServerlessV2ScalingConfigurationProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-docdb-dbcluster-serverlessv2scalingconfiguration.html>
+    ServerlessV2ScalingConfigurationProperty {haddock_workaround_ :: (),
+                                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-docdb-dbcluster-serverlessv2scalingconfiguration.html#cfn-docdb-dbcluster-serverlessv2scalingconfiguration-maxcapacity>
+                                              maxCapacity :: (Value Prelude.Double),
+                                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-docdb-dbcluster-serverlessv2scalingconfiguration.html#cfn-docdb-dbcluster-serverlessv2scalingconfiguration-mincapacity>
+                                              minCapacity :: (Value Prelude.Double)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkServerlessV2ScalingConfigurationProperty ::
+  Value Prelude.Double
+  -> Value Prelude.Double -> ServerlessV2ScalingConfigurationProperty
+mkServerlessV2ScalingConfigurationProperty maxCapacity minCapacity
+  = ServerlessV2ScalingConfigurationProperty
+      {haddock_workaround_ = (), maxCapacity = maxCapacity,
+       minCapacity = minCapacity}
+instance ToResourceProperties ServerlessV2ScalingConfigurationProperty where
+  toResourceProperties ServerlessV2ScalingConfigurationProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DocDB::DBCluster.ServerlessV2ScalingConfiguration",
+         supportsTags = Prelude.False,
+         properties = ["MaxCapacity" JSON..= maxCapacity,
+                       "MinCapacity" JSON..= minCapacity]}
+instance JSON.ToJSON ServerlessV2ScalingConfigurationProperty where
+  toJSON ServerlessV2ScalingConfigurationProperty {..}
+    = JSON.object
+        ["MaxCapacity" JSON..= maxCapacity,
+         "MinCapacity" JSON..= minCapacity]
+instance Property "MaxCapacity" ServerlessV2ScalingConfigurationProperty where
+  type PropertyType "MaxCapacity" ServerlessV2ScalingConfigurationProperty = Value Prelude.Double
+  set newValue ServerlessV2ScalingConfigurationProperty {..}
+    = ServerlessV2ScalingConfigurationProperty
+        {maxCapacity = newValue, ..}
+instance Property "MinCapacity" ServerlessV2ScalingConfigurationProperty where
+  type PropertyType "MinCapacity" ServerlessV2ScalingConfigurationProperty = Value Prelude.Double
+  set newValue ServerlessV2ScalingConfigurationProperty {..}
+    = ServerlessV2ScalingConfigurationProperty
+        {minCapacity = newValue, ..}
diff --git a/gen/Stratosphere/DocDB/DBCluster/ServerlessV2ScalingConfigurationProperty.hs-boot b/gen/Stratosphere/DocDB/DBCluster/ServerlessV2ScalingConfigurationProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DocDB/DBCluster/ServerlessV2ScalingConfigurationProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DocDB.DBCluster.ServerlessV2ScalingConfigurationProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data ServerlessV2ScalingConfigurationProperty :: Prelude.Type
+instance ToResourceProperties ServerlessV2ScalingConfigurationProperty
+instance Prelude.Eq ServerlessV2ScalingConfigurationProperty
+instance Prelude.Show ServerlessV2ScalingConfigurationProperty
+instance JSON.ToJSON ServerlessV2ScalingConfigurationProperty
diff --git a/gen/Stratosphere/DocDB/DBClusterParameterGroup.hs b/gen/Stratosphere/DocDB/DBClusterParameterGroup.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DocDB/DBClusterParameterGroup.hs
@@ -0,0 +1,73 @@
+module Stratosphere.DocDB.DBClusterParameterGroup (
+        DBClusterParameterGroup(..), mkDBClusterParameterGroup
+    ) 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 DBClusterParameterGroup
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbclusterparametergroup.html>
+    DBClusterParameterGroup {haddock_workaround_ :: (),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbclusterparametergroup.html#cfn-docdb-dbclusterparametergroup-description>
+                             description :: (Value Prelude.Text),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbclusterparametergroup.html#cfn-docdb-dbclusterparametergroup-family>
+                             family :: (Value Prelude.Text),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbclusterparametergroup.html#cfn-docdb-dbclusterparametergroup-name>
+                             name :: (Prelude.Maybe (Value Prelude.Text)),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbclusterparametergroup.html#cfn-docdb-dbclusterparametergroup-parameters>
+                             parameters :: JSON.Object,
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbclusterparametergroup.html#cfn-docdb-dbclusterparametergroup-tags>
+                             tags :: (Prelude.Maybe [Tag])}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkDBClusterParameterGroup ::
+  Value Prelude.Text
+  -> Value Prelude.Text -> JSON.Object -> DBClusterParameterGroup
+mkDBClusterParameterGroup description family parameters
+  = DBClusterParameterGroup
+      {haddock_workaround_ = (), description = description,
+       family = family, parameters = parameters, name = Prelude.Nothing,
+       tags = Prelude.Nothing}
+instance ToResourceProperties DBClusterParameterGroup where
+  toResourceProperties DBClusterParameterGroup {..}
+    = ResourceProperties
+        {awsType = "AWS::DocDB::DBClusterParameterGroup",
+         supportsTags = Prelude.True,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["Description" JSON..= description, "Family" JSON..= family,
+                            "Parameters" JSON..= parameters]
+                           (Prelude.catMaybes
+                              [(JSON..=) "Name" Prelude.<$> name,
+                               (JSON..=) "Tags" Prelude.<$> tags]))}
+instance JSON.ToJSON DBClusterParameterGroup where
+  toJSON DBClusterParameterGroup {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["Description" JSON..= description, "Family" JSON..= family,
+               "Parameters" JSON..= parameters]
+              (Prelude.catMaybes
+                 [(JSON..=) "Name" Prelude.<$> name,
+                  (JSON..=) "Tags" Prelude.<$> tags])))
+instance Property "Description" DBClusterParameterGroup where
+  type PropertyType "Description" DBClusterParameterGroup = Value Prelude.Text
+  set newValue DBClusterParameterGroup {..}
+    = DBClusterParameterGroup {description = newValue, ..}
+instance Property "Family" DBClusterParameterGroup where
+  type PropertyType "Family" DBClusterParameterGroup = Value Prelude.Text
+  set newValue DBClusterParameterGroup {..}
+    = DBClusterParameterGroup {family = newValue, ..}
+instance Property "Name" DBClusterParameterGroup where
+  type PropertyType "Name" DBClusterParameterGroup = Value Prelude.Text
+  set newValue DBClusterParameterGroup {..}
+    = DBClusterParameterGroup {name = Prelude.pure newValue, ..}
+instance Property "Parameters" DBClusterParameterGroup where
+  type PropertyType "Parameters" DBClusterParameterGroup = JSON.Object
+  set newValue DBClusterParameterGroup {..}
+    = DBClusterParameterGroup {parameters = newValue, ..}
+instance Property "Tags" DBClusterParameterGroup where
+  type PropertyType "Tags" DBClusterParameterGroup = [Tag]
+  set newValue DBClusterParameterGroup {..}
+    = DBClusterParameterGroup {tags = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DocDB/DBInstance.hs b/gen/Stratosphere/DocDB/DBInstance.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DocDB/DBInstance.hs
@@ -0,0 +1,134 @@
+module Stratosphere.DocDB.DBInstance (
+        DBInstance(..), mkDBInstance
+    ) 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 DBInstance
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbinstance.html>
+    DBInstance {haddock_workaround_ :: (),
+                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbinstance.html#cfn-docdb-dbinstance-autominorversionupgrade>
+                autoMinorVersionUpgrade :: (Prelude.Maybe (Value Prelude.Bool)),
+                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbinstance.html#cfn-docdb-dbinstance-availabilityzone>
+                availabilityZone :: (Prelude.Maybe (Value Prelude.Text)),
+                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbinstance.html#cfn-docdb-dbinstance-cacertificateidentifier>
+                cACertificateIdentifier :: (Prelude.Maybe (Value Prelude.Text)),
+                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbinstance.html#cfn-docdb-dbinstance-certificaterotationrestart>
+                certificateRotationRestart :: (Prelude.Maybe (Value Prelude.Bool)),
+                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbinstance.html#cfn-docdb-dbinstance-dbclusteridentifier>
+                dBClusterIdentifier :: (Value Prelude.Text),
+                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbinstance.html#cfn-docdb-dbinstance-dbinstanceclass>
+                dBInstanceClass :: (Value Prelude.Text),
+                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbinstance.html#cfn-docdb-dbinstance-dbinstanceidentifier>
+                dBInstanceIdentifier :: (Prelude.Maybe (Value Prelude.Text)),
+                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbinstance.html#cfn-docdb-dbinstance-enableperformanceinsights>
+                enablePerformanceInsights :: (Prelude.Maybe (Value Prelude.Bool)),
+                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbinstance.html#cfn-docdb-dbinstance-preferredmaintenancewindow>
+                preferredMaintenanceWindow :: (Prelude.Maybe (Value Prelude.Text)),
+                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbinstance.html#cfn-docdb-dbinstance-tags>
+                tags :: (Prelude.Maybe [Tag])}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkDBInstance ::
+  Value Prelude.Text -> Value Prelude.Text -> DBInstance
+mkDBInstance dBClusterIdentifier dBInstanceClass
+  = DBInstance
+      {haddock_workaround_ = (),
+       dBClusterIdentifier = dBClusterIdentifier,
+       dBInstanceClass = dBInstanceClass,
+       autoMinorVersionUpgrade = Prelude.Nothing,
+       availabilityZone = Prelude.Nothing,
+       cACertificateIdentifier = Prelude.Nothing,
+       certificateRotationRestart = Prelude.Nothing,
+       dBInstanceIdentifier = Prelude.Nothing,
+       enablePerformanceInsights = Prelude.Nothing,
+       preferredMaintenanceWindow = Prelude.Nothing,
+       tags = Prelude.Nothing}
+instance ToResourceProperties DBInstance where
+  toResourceProperties DBInstance {..}
+    = ResourceProperties
+        {awsType = "AWS::DocDB::DBInstance", supportsTags = Prelude.True,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["DBClusterIdentifier" JSON..= dBClusterIdentifier,
+                            "DBInstanceClass" JSON..= dBInstanceClass]
+                           (Prelude.catMaybes
+                              [(JSON..=) "AutoMinorVersionUpgrade"
+                                 Prelude.<$> autoMinorVersionUpgrade,
+                               (JSON..=) "AvailabilityZone" Prelude.<$> availabilityZone,
+                               (JSON..=) "CACertificateIdentifier"
+                                 Prelude.<$> cACertificateIdentifier,
+                               (JSON..=) "CertificateRotationRestart"
+                                 Prelude.<$> certificateRotationRestart,
+                               (JSON..=) "DBInstanceIdentifier" Prelude.<$> dBInstanceIdentifier,
+                               (JSON..=) "EnablePerformanceInsights"
+                                 Prelude.<$> enablePerformanceInsights,
+                               (JSON..=) "PreferredMaintenanceWindow"
+                                 Prelude.<$> preferredMaintenanceWindow,
+                               (JSON..=) "Tags" Prelude.<$> tags]))}
+instance JSON.ToJSON DBInstance where
+  toJSON DBInstance {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["DBClusterIdentifier" JSON..= dBClusterIdentifier,
+               "DBInstanceClass" JSON..= dBInstanceClass]
+              (Prelude.catMaybes
+                 [(JSON..=) "AutoMinorVersionUpgrade"
+                    Prelude.<$> autoMinorVersionUpgrade,
+                  (JSON..=) "AvailabilityZone" Prelude.<$> availabilityZone,
+                  (JSON..=) "CACertificateIdentifier"
+                    Prelude.<$> cACertificateIdentifier,
+                  (JSON..=) "CertificateRotationRestart"
+                    Prelude.<$> certificateRotationRestart,
+                  (JSON..=) "DBInstanceIdentifier" Prelude.<$> dBInstanceIdentifier,
+                  (JSON..=) "EnablePerformanceInsights"
+                    Prelude.<$> enablePerformanceInsights,
+                  (JSON..=) "PreferredMaintenanceWindow"
+                    Prelude.<$> preferredMaintenanceWindow,
+                  (JSON..=) "Tags" Prelude.<$> tags])))
+instance Property "AutoMinorVersionUpgrade" DBInstance where
+  type PropertyType "AutoMinorVersionUpgrade" DBInstance = Value Prelude.Bool
+  set newValue DBInstance {..}
+    = DBInstance {autoMinorVersionUpgrade = Prelude.pure newValue, ..}
+instance Property "AvailabilityZone" DBInstance where
+  type PropertyType "AvailabilityZone" DBInstance = Value Prelude.Text
+  set newValue DBInstance {..}
+    = DBInstance {availabilityZone = Prelude.pure newValue, ..}
+instance Property "CACertificateIdentifier" DBInstance where
+  type PropertyType "CACertificateIdentifier" DBInstance = Value Prelude.Text
+  set newValue DBInstance {..}
+    = DBInstance {cACertificateIdentifier = Prelude.pure newValue, ..}
+instance Property "CertificateRotationRestart" DBInstance where
+  type PropertyType "CertificateRotationRestart" DBInstance = Value Prelude.Bool
+  set newValue DBInstance {..}
+    = DBInstance
+        {certificateRotationRestart = Prelude.pure newValue, ..}
+instance Property "DBClusterIdentifier" DBInstance where
+  type PropertyType "DBClusterIdentifier" DBInstance = Value Prelude.Text
+  set newValue DBInstance {..}
+    = DBInstance {dBClusterIdentifier = newValue, ..}
+instance Property "DBInstanceClass" DBInstance where
+  type PropertyType "DBInstanceClass" DBInstance = Value Prelude.Text
+  set newValue DBInstance {..}
+    = DBInstance {dBInstanceClass = newValue, ..}
+instance Property "DBInstanceIdentifier" DBInstance where
+  type PropertyType "DBInstanceIdentifier" DBInstance = Value Prelude.Text
+  set newValue DBInstance {..}
+    = DBInstance {dBInstanceIdentifier = Prelude.pure newValue, ..}
+instance Property "EnablePerformanceInsights" DBInstance where
+  type PropertyType "EnablePerformanceInsights" DBInstance = Value Prelude.Bool
+  set newValue DBInstance {..}
+    = DBInstance
+        {enablePerformanceInsights = Prelude.pure newValue, ..}
+instance Property "PreferredMaintenanceWindow" DBInstance where
+  type PropertyType "PreferredMaintenanceWindow" DBInstance = Value Prelude.Text
+  set newValue DBInstance {..}
+    = DBInstance
+        {preferredMaintenanceWindow = Prelude.pure newValue, ..}
+instance Property "Tags" DBInstance where
+  type PropertyType "Tags" DBInstance = [Tag]
+  set newValue DBInstance {..}
+    = DBInstance {tags = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DocDB/DBSubnetGroup.hs b/gen/Stratosphere/DocDB/DBSubnetGroup.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DocDB/DBSubnetGroup.hs
@@ -0,0 +1,67 @@
+module Stratosphere.DocDB.DBSubnetGroup (
+        DBSubnetGroup(..), mkDBSubnetGroup
+    ) 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 DBSubnetGroup
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbsubnetgroup.html>
+    DBSubnetGroup {haddock_workaround_ :: (),
+                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbsubnetgroup.html#cfn-docdb-dbsubnetgroup-dbsubnetgroupdescription>
+                   dBSubnetGroupDescription :: (Value Prelude.Text),
+                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbsubnetgroup.html#cfn-docdb-dbsubnetgroup-dbsubnetgroupname>
+                   dBSubnetGroupName :: (Prelude.Maybe (Value Prelude.Text)),
+                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbsubnetgroup.html#cfn-docdb-dbsubnetgroup-subnetids>
+                   subnetIds :: (ValueList Prelude.Text),
+                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbsubnetgroup.html#cfn-docdb-dbsubnetgroup-tags>
+                   tags :: (Prelude.Maybe [Tag])}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkDBSubnetGroup ::
+  Value Prelude.Text -> ValueList Prelude.Text -> DBSubnetGroup
+mkDBSubnetGroup dBSubnetGroupDescription subnetIds
+  = DBSubnetGroup
+      {haddock_workaround_ = (),
+       dBSubnetGroupDescription = dBSubnetGroupDescription,
+       subnetIds = subnetIds, dBSubnetGroupName = Prelude.Nothing,
+       tags = Prelude.Nothing}
+instance ToResourceProperties DBSubnetGroup where
+  toResourceProperties DBSubnetGroup {..}
+    = ResourceProperties
+        {awsType = "AWS::DocDB::DBSubnetGroup",
+         supportsTags = Prelude.True,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["DBSubnetGroupDescription" JSON..= dBSubnetGroupDescription,
+                            "SubnetIds" JSON..= subnetIds]
+                           (Prelude.catMaybes
+                              [(JSON..=) "DBSubnetGroupName" Prelude.<$> dBSubnetGroupName,
+                               (JSON..=) "Tags" Prelude.<$> tags]))}
+instance JSON.ToJSON DBSubnetGroup where
+  toJSON DBSubnetGroup {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["DBSubnetGroupDescription" JSON..= dBSubnetGroupDescription,
+               "SubnetIds" JSON..= subnetIds]
+              (Prelude.catMaybes
+                 [(JSON..=) "DBSubnetGroupName" Prelude.<$> dBSubnetGroupName,
+                  (JSON..=) "Tags" Prelude.<$> tags])))
+instance Property "DBSubnetGroupDescription" DBSubnetGroup where
+  type PropertyType "DBSubnetGroupDescription" DBSubnetGroup = Value Prelude.Text
+  set newValue DBSubnetGroup {..}
+    = DBSubnetGroup {dBSubnetGroupDescription = newValue, ..}
+instance Property "DBSubnetGroupName" DBSubnetGroup where
+  type PropertyType "DBSubnetGroupName" DBSubnetGroup = Value Prelude.Text
+  set newValue DBSubnetGroup {..}
+    = DBSubnetGroup {dBSubnetGroupName = Prelude.pure newValue, ..}
+instance Property "SubnetIds" DBSubnetGroup where
+  type PropertyType "SubnetIds" DBSubnetGroup = ValueList Prelude.Text
+  set newValue DBSubnetGroup {..}
+    = DBSubnetGroup {subnetIds = newValue, ..}
+instance Property "Tags" DBSubnetGroup where
+  type PropertyType "Tags" DBSubnetGroup = [Tag]
+  set newValue DBSubnetGroup {..}
+    = DBSubnetGroup {tags = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DocDB/EventSubscription.hs b/gen/Stratosphere/DocDB/EventSubscription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DocDB/EventSubscription.hs
@@ -0,0 +1,81 @@
+module Stratosphere.DocDB.EventSubscription (
+        EventSubscription(..), mkEventSubscription
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data EventSubscription
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-eventsubscription.html>
+    EventSubscription {haddock_workaround_ :: (),
+                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-eventsubscription.html#cfn-docdb-eventsubscription-enabled>
+                       enabled :: (Prelude.Maybe (Value Prelude.Bool)),
+                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-eventsubscription.html#cfn-docdb-eventsubscription-eventcategories>
+                       eventCategories :: (Prelude.Maybe (ValueList Prelude.Text)),
+                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-eventsubscription.html#cfn-docdb-eventsubscription-snstopicarn>
+                       snsTopicArn :: (Value Prelude.Text),
+                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-eventsubscription.html#cfn-docdb-eventsubscription-sourceids>
+                       sourceIds :: (Prelude.Maybe (ValueList Prelude.Text)),
+                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-eventsubscription.html#cfn-docdb-eventsubscription-sourcetype>
+                       sourceType :: (Prelude.Maybe (Value Prelude.Text)),
+                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-eventsubscription.html#cfn-docdb-eventsubscription-subscriptionname>
+                       subscriptionName :: (Prelude.Maybe (Value Prelude.Text))}
+  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}
+instance ToResourceProperties EventSubscription where
+  toResourceProperties EventSubscription {..}
+    = ResourceProperties
+        {awsType = "AWS::DocDB::EventSubscription",
+         supportsTags = Prelude.False,
+         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]))}
+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])))
+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, ..}
diff --git a/stratosphere-docdb.cabal b/stratosphere-docdb.cabal
new file mode 100644
--- /dev/null
+++ b/stratosphere-docdb.cabal
@@ -0,0 +1,78 @@
+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-docdb
+version:        1.0.0
+synopsis:       Stratosphere integration for AWS DocDB.
+description:    Integration into stratosphere to generate resources and properties for AWS DocDB
+category:       AWS, Cloud, DocDB
+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.DocDB.DBCluster
+      Stratosphere.DocDB.DBCluster.ServerlessV2ScalingConfigurationProperty
+      Stratosphere.DocDB.DBClusterParameterGroup
+      Stratosphere.DocDB.DBInstance
+      Stratosphere.DocDB.DBSubnetGroup
+      Stratosphere.DocDB.EventSubscription
+  other-modules:
+      Paths_stratosphere_docdb
+  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
