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/AuditManager/Assessment.hs b/gen/Stratosphere/AuditManager/Assessment.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AuditManager/Assessment.hs
@@ -0,0 +1,123 @@
+module Stratosphere.AuditManager.Assessment (
+        module Exports, Assessment(..), mkAssessment
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AuditManager.Assessment.AWSAccountProperty as Exports
+import {-# SOURCE #-} Stratosphere.AuditManager.Assessment.AssessmentReportsDestinationProperty as Exports
+import {-# SOURCE #-} Stratosphere.AuditManager.Assessment.DelegationProperty as Exports
+import {-# SOURCE #-} Stratosphere.AuditManager.Assessment.RoleProperty as Exports
+import {-# SOURCE #-} Stratosphere.AuditManager.Assessment.ScopeProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Tag
+import Stratosphere.Value
+data Assessment
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-auditmanager-assessment.html>
+    Assessment {haddock_workaround_ :: (),
+                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-auditmanager-assessment.html#cfn-auditmanager-assessment-assessmentreportsdestination>
+                assessmentReportsDestination :: (Prelude.Maybe AssessmentReportsDestinationProperty),
+                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-auditmanager-assessment.html#cfn-auditmanager-assessment-awsaccount>
+                awsAccount :: (Prelude.Maybe AWSAccountProperty),
+                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-auditmanager-assessment.html#cfn-auditmanager-assessment-delegations>
+                delegations :: (Prelude.Maybe [DelegationProperty]),
+                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-auditmanager-assessment.html#cfn-auditmanager-assessment-description>
+                description :: (Prelude.Maybe (Value Prelude.Text)),
+                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-auditmanager-assessment.html#cfn-auditmanager-assessment-frameworkid>
+                frameworkId :: (Prelude.Maybe (Value Prelude.Text)),
+                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-auditmanager-assessment.html#cfn-auditmanager-assessment-name>
+                name :: (Prelude.Maybe (Value Prelude.Text)),
+                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-auditmanager-assessment.html#cfn-auditmanager-assessment-roles>
+                roles :: (Prelude.Maybe [RoleProperty]),
+                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-auditmanager-assessment.html#cfn-auditmanager-assessment-scope>
+                scope :: (Prelude.Maybe ScopeProperty),
+                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-auditmanager-assessment.html#cfn-auditmanager-assessment-status>
+                status :: (Prelude.Maybe (Value Prelude.Text)),
+                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-auditmanager-assessment.html#cfn-auditmanager-assessment-tags>
+                tags :: (Prelude.Maybe [Tag])}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkAssessment :: Assessment
+mkAssessment
+  = Assessment
+      {haddock_workaround_ = (),
+       assessmentReportsDestination = Prelude.Nothing,
+       awsAccount = Prelude.Nothing, delegations = Prelude.Nothing,
+       description = Prelude.Nothing, frameworkId = Prelude.Nothing,
+       name = Prelude.Nothing, roles = Prelude.Nothing,
+       scope = Prelude.Nothing, status = Prelude.Nothing,
+       tags = Prelude.Nothing}
+instance ToResourceProperties Assessment where
+  toResourceProperties Assessment {..}
+    = ResourceProperties
+        {awsType = "AWS::AuditManager::Assessment",
+         supportsTags = Prelude.True,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "AssessmentReportsDestination"
+                              Prelude.<$> assessmentReportsDestination,
+                            (JSON..=) "AwsAccount" Prelude.<$> awsAccount,
+                            (JSON..=) "Delegations" Prelude.<$> delegations,
+                            (JSON..=) "Description" Prelude.<$> description,
+                            (JSON..=) "FrameworkId" Prelude.<$> frameworkId,
+                            (JSON..=) "Name" Prelude.<$> name,
+                            (JSON..=) "Roles" Prelude.<$> roles,
+                            (JSON..=) "Scope" Prelude.<$> scope,
+                            (JSON..=) "Status" Prelude.<$> status,
+                            (JSON..=) "Tags" Prelude.<$> tags])}
+instance JSON.ToJSON Assessment where
+  toJSON Assessment {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "AssessmentReportsDestination"
+                 Prelude.<$> assessmentReportsDestination,
+               (JSON..=) "AwsAccount" Prelude.<$> awsAccount,
+               (JSON..=) "Delegations" Prelude.<$> delegations,
+               (JSON..=) "Description" Prelude.<$> description,
+               (JSON..=) "FrameworkId" Prelude.<$> frameworkId,
+               (JSON..=) "Name" Prelude.<$> name,
+               (JSON..=) "Roles" Prelude.<$> roles,
+               (JSON..=) "Scope" Prelude.<$> scope,
+               (JSON..=) "Status" Prelude.<$> status,
+               (JSON..=) "Tags" Prelude.<$> tags]))
+instance Property "AssessmentReportsDestination" Assessment where
+  type PropertyType "AssessmentReportsDestination" Assessment = AssessmentReportsDestinationProperty
+  set newValue Assessment {..}
+    = Assessment
+        {assessmentReportsDestination = Prelude.pure newValue, ..}
+instance Property "AwsAccount" Assessment where
+  type PropertyType "AwsAccount" Assessment = AWSAccountProperty
+  set newValue Assessment {..}
+    = Assessment {awsAccount = Prelude.pure newValue, ..}
+instance Property "Delegations" Assessment where
+  type PropertyType "Delegations" Assessment = [DelegationProperty]
+  set newValue Assessment {..}
+    = Assessment {delegations = Prelude.pure newValue, ..}
+instance Property "Description" Assessment where
+  type PropertyType "Description" Assessment = Value Prelude.Text
+  set newValue Assessment {..}
+    = Assessment {description = Prelude.pure newValue, ..}
+instance Property "FrameworkId" Assessment where
+  type PropertyType "FrameworkId" Assessment = Value Prelude.Text
+  set newValue Assessment {..}
+    = Assessment {frameworkId = Prelude.pure newValue, ..}
+instance Property "Name" Assessment where
+  type PropertyType "Name" Assessment = Value Prelude.Text
+  set newValue Assessment {..}
+    = Assessment {name = Prelude.pure newValue, ..}
+instance Property "Roles" Assessment where
+  type PropertyType "Roles" Assessment = [RoleProperty]
+  set newValue Assessment {..}
+    = Assessment {roles = Prelude.pure newValue, ..}
+instance Property "Scope" Assessment where
+  type PropertyType "Scope" Assessment = ScopeProperty
+  set newValue Assessment {..}
+    = Assessment {scope = Prelude.pure newValue, ..}
+instance Property "Status" Assessment where
+  type PropertyType "Status" Assessment = Value Prelude.Text
+  set newValue Assessment {..}
+    = Assessment {status = Prelude.pure newValue, ..}
+instance Property "Tags" Assessment where
+  type PropertyType "Tags" Assessment = [Tag]
+  set newValue Assessment {..}
+    = Assessment {tags = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AuditManager/Assessment/AWSAccountProperty.hs b/gen/Stratosphere/AuditManager/Assessment/AWSAccountProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AuditManager/Assessment/AWSAccountProperty.hs
@@ -0,0 +1,51 @@
+module Stratosphere.AuditManager.Assessment.AWSAccountProperty (
+        AWSAccountProperty(..), mkAWSAccountProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data AWSAccountProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-awsaccount.html>
+    AWSAccountProperty {haddock_workaround_ :: (),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-awsaccount.html#cfn-auditmanager-assessment-awsaccount-emailaddress>
+                        emailAddress :: (Prelude.Maybe (Value Prelude.Text)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-awsaccount.html#cfn-auditmanager-assessment-awsaccount-id>
+                        id :: (Prelude.Maybe (Value Prelude.Text)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-awsaccount.html#cfn-auditmanager-assessment-awsaccount-name>
+                        name :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkAWSAccountProperty :: AWSAccountProperty
+mkAWSAccountProperty
+  = AWSAccountProperty
+      {haddock_workaround_ = (), emailAddress = Prelude.Nothing,
+       id = Prelude.Nothing, name = Prelude.Nothing}
+instance ToResourceProperties AWSAccountProperty where
+  toResourceProperties AWSAccountProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AuditManager::Assessment.AWSAccount",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "EmailAddress" Prelude.<$> emailAddress,
+                            (JSON..=) "Id" Prelude.<$> id, (JSON..=) "Name" Prelude.<$> name])}
+instance JSON.ToJSON AWSAccountProperty where
+  toJSON AWSAccountProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "EmailAddress" Prelude.<$> emailAddress,
+               (JSON..=) "Id" Prelude.<$> id, (JSON..=) "Name" Prelude.<$> name]))
+instance Property "EmailAddress" AWSAccountProperty where
+  type PropertyType "EmailAddress" AWSAccountProperty = Value Prelude.Text
+  set newValue AWSAccountProperty {..}
+    = AWSAccountProperty {emailAddress = Prelude.pure newValue, ..}
+instance Property "Id" AWSAccountProperty where
+  type PropertyType "Id" AWSAccountProperty = Value Prelude.Text
+  set newValue AWSAccountProperty {..}
+    = AWSAccountProperty {id = Prelude.pure newValue, ..}
+instance Property "Name" AWSAccountProperty where
+  type PropertyType "Name" AWSAccountProperty = Value Prelude.Text
+  set newValue AWSAccountProperty {..}
+    = AWSAccountProperty {name = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AuditManager/Assessment/AWSAccountProperty.hs-boot b/gen/Stratosphere/AuditManager/Assessment/AWSAccountProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AuditManager/Assessment/AWSAccountProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AuditManager.Assessment.AWSAccountProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data AWSAccountProperty :: Prelude.Type
+instance ToResourceProperties AWSAccountProperty
+instance Prelude.Eq AWSAccountProperty
+instance Prelude.Show AWSAccountProperty
+instance JSON.ToJSON AWSAccountProperty
diff --git a/gen/Stratosphere/AuditManager/Assessment/AWSServiceProperty.hs b/gen/Stratosphere/AuditManager/Assessment/AWSServiceProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AuditManager/Assessment/AWSServiceProperty.hs
@@ -0,0 +1,36 @@
+module Stratosphere.AuditManager.Assessment.AWSServiceProperty (
+        AWSServiceProperty(..), mkAWSServiceProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data AWSServiceProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-awsservice.html>
+    AWSServiceProperty {haddock_workaround_ :: (),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-awsservice.html#cfn-auditmanager-assessment-awsservice-servicename>
+                        serviceName :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkAWSServiceProperty :: AWSServiceProperty
+mkAWSServiceProperty
+  = AWSServiceProperty
+      {haddock_workaround_ = (), serviceName = Prelude.Nothing}
+instance ToResourceProperties AWSServiceProperty where
+  toResourceProperties AWSServiceProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AuditManager::Assessment.AWSService",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "ServiceName" Prelude.<$> serviceName])}
+instance JSON.ToJSON AWSServiceProperty where
+  toJSON AWSServiceProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "ServiceName" Prelude.<$> serviceName]))
+instance Property "ServiceName" AWSServiceProperty where
+  type PropertyType "ServiceName" AWSServiceProperty = Value Prelude.Text
+  set newValue AWSServiceProperty {..}
+    = AWSServiceProperty {serviceName = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AuditManager/Assessment/AWSServiceProperty.hs-boot b/gen/Stratosphere/AuditManager/Assessment/AWSServiceProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AuditManager/Assessment/AWSServiceProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AuditManager.Assessment.AWSServiceProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data AWSServiceProperty :: Prelude.Type
+instance ToResourceProperties AWSServiceProperty
+instance Prelude.Eq AWSServiceProperty
+instance Prelude.Show AWSServiceProperty
+instance JSON.ToJSON AWSServiceProperty
diff --git a/gen/Stratosphere/AuditManager/Assessment/AssessmentReportsDestinationProperty.hs b/gen/Stratosphere/AuditManager/Assessment/AssessmentReportsDestinationProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AuditManager/Assessment/AssessmentReportsDestinationProperty.hs
@@ -0,0 +1,49 @@
+module Stratosphere.AuditManager.Assessment.AssessmentReportsDestinationProperty (
+        AssessmentReportsDestinationProperty(..),
+        mkAssessmentReportsDestinationProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data AssessmentReportsDestinationProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-assessmentreportsdestination.html>
+    AssessmentReportsDestinationProperty {haddock_workaround_ :: (),
+                                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-assessmentreportsdestination.html#cfn-auditmanager-assessment-assessmentreportsdestination-destination>
+                                          destination :: (Prelude.Maybe (Value Prelude.Text)),
+                                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-assessmentreportsdestination.html#cfn-auditmanager-assessment-assessmentreportsdestination-destinationtype>
+                                          destinationType :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkAssessmentReportsDestinationProperty ::
+  AssessmentReportsDestinationProperty
+mkAssessmentReportsDestinationProperty
+  = AssessmentReportsDestinationProperty
+      {haddock_workaround_ = (), destination = Prelude.Nothing,
+       destinationType = Prelude.Nothing}
+instance ToResourceProperties AssessmentReportsDestinationProperty where
+  toResourceProperties AssessmentReportsDestinationProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AuditManager::Assessment.AssessmentReportsDestination",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "Destination" Prelude.<$> destination,
+                            (JSON..=) "DestinationType" Prelude.<$> destinationType])}
+instance JSON.ToJSON AssessmentReportsDestinationProperty where
+  toJSON AssessmentReportsDestinationProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "Destination" Prelude.<$> destination,
+               (JSON..=) "DestinationType" Prelude.<$> destinationType]))
+instance Property "Destination" AssessmentReportsDestinationProperty where
+  type PropertyType "Destination" AssessmentReportsDestinationProperty = Value Prelude.Text
+  set newValue AssessmentReportsDestinationProperty {..}
+    = AssessmentReportsDestinationProperty
+        {destination = Prelude.pure newValue, ..}
+instance Property "DestinationType" AssessmentReportsDestinationProperty where
+  type PropertyType "DestinationType" AssessmentReportsDestinationProperty = Value Prelude.Text
+  set newValue AssessmentReportsDestinationProperty {..}
+    = AssessmentReportsDestinationProperty
+        {destinationType = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AuditManager/Assessment/AssessmentReportsDestinationProperty.hs-boot b/gen/Stratosphere/AuditManager/Assessment/AssessmentReportsDestinationProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AuditManager/Assessment/AssessmentReportsDestinationProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AuditManager.Assessment.AssessmentReportsDestinationProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data AssessmentReportsDestinationProperty :: Prelude.Type
+instance ToResourceProperties AssessmentReportsDestinationProperty
+instance Prelude.Eq AssessmentReportsDestinationProperty
+instance Prelude.Show AssessmentReportsDestinationProperty
+instance JSON.ToJSON AssessmentReportsDestinationProperty
diff --git a/gen/Stratosphere/AuditManager/Assessment/DelegationProperty.hs b/gen/Stratosphere/AuditManager/Assessment/DelegationProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AuditManager/Assessment/DelegationProperty.hs
@@ -0,0 +1,121 @@
+module Stratosphere.AuditManager.Assessment.DelegationProperty (
+        DelegationProperty(..), mkDelegationProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data DelegationProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-delegation.html>
+    DelegationProperty {haddock_workaround_ :: (),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-delegation.html#cfn-auditmanager-assessment-delegation-assessmentid>
+                        assessmentId :: (Prelude.Maybe (Value Prelude.Text)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-delegation.html#cfn-auditmanager-assessment-delegation-assessmentname>
+                        assessmentName :: (Prelude.Maybe (Value Prelude.Text)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-delegation.html#cfn-auditmanager-assessment-delegation-comment>
+                        comment :: (Prelude.Maybe (Value Prelude.Text)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-delegation.html#cfn-auditmanager-assessment-delegation-controlsetid>
+                        controlSetId :: (Prelude.Maybe (Value Prelude.Text)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-delegation.html#cfn-auditmanager-assessment-delegation-createdby>
+                        createdBy :: (Prelude.Maybe (Value Prelude.Text)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-delegation.html#cfn-auditmanager-assessment-delegation-creationtime>
+                        creationTime :: (Prelude.Maybe (Value Prelude.Double)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-delegation.html#cfn-auditmanager-assessment-delegation-id>
+                        id :: (Prelude.Maybe (Value Prelude.Text)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-delegation.html#cfn-auditmanager-assessment-delegation-lastupdated>
+                        lastUpdated :: (Prelude.Maybe (Value Prelude.Double)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-delegation.html#cfn-auditmanager-assessment-delegation-rolearn>
+                        roleArn :: (Prelude.Maybe (Value Prelude.Text)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-delegation.html#cfn-auditmanager-assessment-delegation-roletype>
+                        roleType :: (Prelude.Maybe (Value Prelude.Text)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-delegation.html#cfn-auditmanager-assessment-delegation-status>
+                        status :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkDelegationProperty :: DelegationProperty
+mkDelegationProperty
+  = DelegationProperty
+      {haddock_workaround_ = (), assessmentId = Prelude.Nothing,
+       assessmentName = Prelude.Nothing, comment = Prelude.Nothing,
+       controlSetId = Prelude.Nothing, createdBy = Prelude.Nothing,
+       creationTime = Prelude.Nothing, id = Prelude.Nothing,
+       lastUpdated = Prelude.Nothing, roleArn = Prelude.Nothing,
+       roleType = Prelude.Nothing, status = Prelude.Nothing}
+instance ToResourceProperties DelegationProperty where
+  toResourceProperties DelegationProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AuditManager::Assessment.Delegation",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "AssessmentId" Prelude.<$> assessmentId,
+                            (JSON..=) "AssessmentName" Prelude.<$> assessmentName,
+                            (JSON..=) "Comment" Prelude.<$> comment,
+                            (JSON..=) "ControlSetId" Prelude.<$> controlSetId,
+                            (JSON..=) "CreatedBy" Prelude.<$> createdBy,
+                            (JSON..=) "CreationTime" Prelude.<$> creationTime,
+                            (JSON..=) "Id" Prelude.<$> id,
+                            (JSON..=) "LastUpdated" Prelude.<$> lastUpdated,
+                            (JSON..=) "RoleArn" Prelude.<$> roleArn,
+                            (JSON..=) "RoleType" Prelude.<$> roleType,
+                            (JSON..=) "Status" Prelude.<$> status])}
+instance JSON.ToJSON DelegationProperty where
+  toJSON DelegationProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "AssessmentId" Prelude.<$> assessmentId,
+               (JSON..=) "AssessmentName" Prelude.<$> assessmentName,
+               (JSON..=) "Comment" Prelude.<$> comment,
+               (JSON..=) "ControlSetId" Prelude.<$> controlSetId,
+               (JSON..=) "CreatedBy" Prelude.<$> createdBy,
+               (JSON..=) "CreationTime" Prelude.<$> creationTime,
+               (JSON..=) "Id" Prelude.<$> id,
+               (JSON..=) "LastUpdated" Prelude.<$> lastUpdated,
+               (JSON..=) "RoleArn" Prelude.<$> roleArn,
+               (JSON..=) "RoleType" Prelude.<$> roleType,
+               (JSON..=) "Status" Prelude.<$> status]))
+instance Property "AssessmentId" DelegationProperty where
+  type PropertyType "AssessmentId" DelegationProperty = Value Prelude.Text
+  set newValue DelegationProperty {..}
+    = DelegationProperty {assessmentId = Prelude.pure newValue, ..}
+instance Property "AssessmentName" DelegationProperty where
+  type PropertyType "AssessmentName" DelegationProperty = Value Prelude.Text
+  set newValue DelegationProperty {..}
+    = DelegationProperty {assessmentName = Prelude.pure newValue, ..}
+instance Property "Comment" DelegationProperty where
+  type PropertyType "Comment" DelegationProperty = Value Prelude.Text
+  set newValue DelegationProperty {..}
+    = DelegationProperty {comment = Prelude.pure newValue, ..}
+instance Property "ControlSetId" DelegationProperty where
+  type PropertyType "ControlSetId" DelegationProperty = Value Prelude.Text
+  set newValue DelegationProperty {..}
+    = DelegationProperty {controlSetId = Prelude.pure newValue, ..}
+instance Property "CreatedBy" DelegationProperty where
+  type PropertyType "CreatedBy" DelegationProperty = Value Prelude.Text
+  set newValue DelegationProperty {..}
+    = DelegationProperty {createdBy = Prelude.pure newValue, ..}
+instance Property "CreationTime" DelegationProperty where
+  type PropertyType "CreationTime" DelegationProperty = Value Prelude.Double
+  set newValue DelegationProperty {..}
+    = DelegationProperty {creationTime = Prelude.pure newValue, ..}
+instance Property "Id" DelegationProperty where
+  type PropertyType "Id" DelegationProperty = Value Prelude.Text
+  set newValue DelegationProperty {..}
+    = DelegationProperty {id = Prelude.pure newValue, ..}
+instance Property "LastUpdated" DelegationProperty where
+  type PropertyType "LastUpdated" DelegationProperty = Value Prelude.Double
+  set newValue DelegationProperty {..}
+    = DelegationProperty {lastUpdated = Prelude.pure newValue, ..}
+instance Property "RoleArn" DelegationProperty where
+  type PropertyType "RoleArn" DelegationProperty = Value Prelude.Text
+  set newValue DelegationProperty {..}
+    = DelegationProperty {roleArn = Prelude.pure newValue, ..}
+instance Property "RoleType" DelegationProperty where
+  type PropertyType "RoleType" DelegationProperty = Value Prelude.Text
+  set newValue DelegationProperty {..}
+    = DelegationProperty {roleType = Prelude.pure newValue, ..}
+instance Property "Status" DelegationProperty where
+  type PropertyType "Status" DelegationProperty = Value Prelude.Text
+  set newValue DelegationProperty {..}
+    = DelegationProperty {status = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AuditManager/Assessment/DelegationProperty.hs-boot b/gen/Stratosphere/AuditManager/Assessment/DelegationProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AuditManager/Assessment/DelegationProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AuditManager.Assessment.DelegationProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data DelegationProperty :: Prelude.Type
+instance ToResourceProperties DelegationProperty
+instance Prelude.Eq DelegationProperty
+instance Prelude.Show DelegationProperty
+instance JSON.ToJSON DelegationProperty
diff --git a/gen/Stratosphere/AuditManager/Assessment/RoleProperty.hs b/gen/Stratosphere/AuditManager/Assessment/RoleProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AuditManager/Assessment/RoleProperty.hs
@@ -0,0 +1,45 @@
+module Stratosphere.AuditManager.Assessment.RoleProperty (
+        RoleProperty(..), mkRoleProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data RoleProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-role.html>
+    RoleProperty {haddock_workaround_ :: (),
+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-role.html#cfn-auditmanager-assessment-role-rolearn>
+                  roleArn :: (Prelude.Maybe (Value Prelude.Text)),
+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-role.html#cfn-auditmanager-assessment-role-roletype>
+                  roleType :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkRoleProperty :: RoleProperty
+mkRoleProperty
+  = RoleProperty
+      {haddock_workaround_ = (), roleArn = Prelude.Nothing,
+       roleType = Prelude.Nothing}
+instance ToResourceProperties RoleProperty where
+  toResourceProperties RoleProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AuditManager::Assessment.Role",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "RoleArn" Prelude.<$> roleArn,
+                            (JSON..=) "RoleType" Prelude.<$> roleType])}
+instance JSON.ToJSON RoleProperty where
+  toJSON RoleProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "RoleArn" Prelude.<$> roleArn,
+               (JSON..=) "RoleType" Prelude.<$> roleType]))
+instance Property "RoleArn" RoleProperty where
+  type PropertyType "RoleArn" RoleProperty = Value Prelude.Text
+  set newValue RoleProperty {..}
+    = RoleProperty {roleArn = Prelude.pure newValue, ..}
+instance Property "RoleType" RoleProperty where
+  type PropertyType "RoleType" RoleProperty = Value Prelude.Text
+  set newValue RoleProperty {..}
+    = RoleProperty {roleType = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AuditManager/Assessment/RoleProperty.hs-boot b/gen/Stratosphere/AuditManager/Assessment/RoleProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AuditManager/Assessment/RoleProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AuditManager.Assessment.RoleProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data RoleProperty :: Prelude.Type
+instance ToResourceProperties RoleProperty
+instance Prelude.Eq RoleProperty
+instance Prelude.Show RoleProperty
+instance JSON.ToJSON RoleProperty
diff --git a/gen/Stratosphere/AuditManager/Assessment/ScopeProperty.hs b/gen/Stratosphere/AuditManager/Assessment/ScopeProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AuditManager/Assessment/ScopeProperty.hs
@@ -0,0 +1,46 @@
+module Stratosphere.AuditManager.Assessment.ScopeProperty (
+        module Exports, ScopeProperty(..), mkScopeProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AuditManager.Assessment.AWSAccountProperty as Exports
+import {-# SOURCE #-} Stratosphere.AuditManager.Assessment.AWSServiceProperty as Exports
+import Stratosphere.ResourceProperties
+data ScopeProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-scope.html>
+    ScopeProperty {haddock_workaround_ :: (),
+                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-scope.html#cfn-auditmanager-assessment-scope-awsaccounts>
+                   awsAccounts :: (Prelude.Maybe [AWSAccountProperty]),
+                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-scope.html#cfn-auditmanager-assessment-scope-awsservices>
+                   awsServices :: (Prelude.Maybe [AWSServiceProperty])}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkScopeProperty :: ScopeProperty
+mkScopeProperty
+  = ScopeProperty
+      {haddock_workaround_ = (), awsAccounts = Prelude.Nothing,
+       awsServices = Prelude.Nothing}
+instance ToResourceProperties ScopeProperty where
+  toResourceProperties ScopeProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AuditManager::Assessment.Scope",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "AwsAccounts" Prelude.<$> awsAccounts,
+                            (JSON..=) "AwsServices" Prelude.<$> awsServices])}
+instance JSON.ToJSON ScopeProperty where
+  toJSON ScopeProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "AwsAccounts" Prelude.<$> awsAccounts,
+               (JSON..=) "AwsServices" Prelude.<$> awsServices]))
+instance Property "AwsAccounts" ScopeProperty where
+  type PropertyType "AwsAccounts" ScopeProperty = [AWSAccountProperty]
+  set newValue ScopeProperty {..}
+    = ScopeProperty {awsAccounts = Prelude.pure newValue, ..}
+instance Property "AwsServices" ScopeProperty where
+  type PropertyType "AwsServices" ScopeProperty = [AWSServiceProperty]
+  set newValue ScopeProperty {..}
+    = ScopeProperty {awsServices = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AuditManager/Assessment/ScopeProperty.hs-boot b/gen/Stratosphere/AuditManager/Assessment/ScopeProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AuditManager/Assessment/ScopeProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AuditManager.Assessment.ScopeProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data ScopeProperty :: Prelude.Type
+instance ToResourceProperties ScopeProperty
+instance Prelude.Eq ScopeProperty
+instance Prelude.Show ScopeProperty
+instance JSON.ToJSON ScopeProperty
diff --git a/stratosphere-auditmanager.cabal b/stratosphere-auditmanager.cabal
new file mode 100644
--- /dev/null
+++ b/stratosphere-auditmanager.cabal
@@ -0,0 +1,79 @@
+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-auditmanager
+version:        1.0.0
+synopsis:       Stratosphere integration for AWS AuditManager.
+description:    Integration into stratosphere to generate resources and properties for AWS AuditManager
+category:       AWS, Cloud, AuditManager
+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.AuditManager.Assessment
+      Stratosphere.AuditManager.Assessment.AssessmentReportsDestinationProperty
+      Stratosphere.AuditManager.Assessment.AWSAccountProperty
+      Stratosphere.AuditManager.Assessment.AWSServiceProperty
+      Stratosphere.AuditManager.Assessment.DelegationProperty
+      Stratosphere.AuditManager.Assessment.RoleProperty
+      Stratosphere.AuditManager.Assessment.ScopeProperty
+  other-modules:
+      Paths_stratosphere_auditmanager
+  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
