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/AIOps/InvestigationGroup.hs b/gen/Stratosphere/AIOps/InvestigationGroup.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AIOps/InvestigationGroup.hs
@@ -0,0 +1,133 @@
+module Stratosphere.AIOps.InvestigationGroup (
+        module Exports, InvestigationGroup(..), mkInvestigationGroup
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AIOps.InvestigationGroup.ChatbotNotificationChannelProperty as Exports
+import {-# SOURCE #-} Stratosphere.AIOps.InvestigationGroup.CrossAccountConfigurationProperty as Exports
+import {-# SOURCE #-} Stratosphere.AIOps.InvestigationGroup.EncryptionConfigMapProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Tag
+import Stratosphere.Value
+data InvestigationGroup
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aiops-investigationgroup.html>
+    InvestigationGroup {haddock_workaround_ :: (),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aiops-investigationgroup.html#cfn-aiops-investigationgroup-chatbotnotificationchannels>
+                        chatbotNotificationChannels :: (Prelude.Maybe [ChatbotNotificationChannelProperty]),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aiops-investigationgroup.html#cfn-aiops-investigationgroup-crossaccountconfigurations>
+                        crossAccountConfigurations :: (Prelude.Maybe [CrossAccountConfigurationProperty]),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aiops-investigationgroup.html#cfn-aiops-investigationgroup-encryptionconfig>
+                        encryptionConfig :: (Prelude.Maybe EncryptionConfigMapProperty),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aiops-investigationgroup.html#cfn-aiops-investigationgroup-investigationgrouppolicy>
+                        investigationGroupPolicy :: (Prelude.Maybe (Value Prelude.Text)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aiops-investigationgroup.html#cfn-aiops-investigationgroup-iscloudtraileventhistoryenabled>
+                        isCloudTrailEventHistoryEnabled :: (Prelude.Maybe (Value Prelude.Bool)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aiops-investigationgroup.html#cfn-aiops-investigationgroup-name>
+                        name :: (Value Prelude.Text),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aiops-investigationgroup.html#cfn-aiops-investigationgroup-retentionindays>
+                        retentionInDays :: (Prelude.Maybe (Value Prelude.Integer)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aiops-investigationgroup.html#cfn-aiops-investigationgroup-rolearn>
+                        roleArn :: (Prelude.Maybe (Value Prelude.Text)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aiops-investigationgroup.html#cfn-aiops-investigationgroup-tagkeyboundaries>
+                        tagKeyBoundaries :: (Prelude.Maybe (ValueList Prelude.Text)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aiops-investigationgroup.html#cfn-aiops-investigationgroup-tags>
+                        tags :: (Prelude.Maybe [Tag])}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkInvestigationGroup :: Value Prelude.Text -> InvestigationGroup
+mkInvestigationGroup name
+  = InvestigationGroup
+      {haddock_workaround_ = (), name = name,
+       chatbotNotificationChannels = Prelude.Nothing,
+       crossAccountConfigurations = Prelude.Nothing,
+       encryptionConfig = Prelude.Nothing,
+       investigationGroupPolicy = Prelude.Nothing,
+       isCloudTrailEventHistoryEnabled = Prelude.Nothing,
+       retentionInDays = Prelude.Nothing, roleArn = Prelude.Nothing,
+       tagKeyBoundaries = Prelude.Nothing, tags = Prelude.Nothing}
+instance ToResourceProperties InvestigationGroup where
+  toResourceProperties InvestigationGroup {..}
+    = ResourceProperties
+        {awsType = "AWS::AIOps::InvestigationGroup",
+         supportsTags = Prelude.True,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["Name" JSON..= name]
+                           (Prelude.catMaybes
+                              [(JSON..=) "ChatbotNotificationChannels"
+                                 Prelude.<$> chatbotNotificationChannels,
+                               (JSON..=) "CrossAccountConfigurations"
+                                 Prelude.<$> crossAccountConfigurations,
+                               (JSON..=) "EncryptionConfig" Prelude.<$> encryptionConfig,
+                               (JSON..=) "InvestigationGroupPolicy"
+                                 Prelude.<$> investigationGroupPolicy,
+                               (JSON..=) "IsCloudTrailEventHistoryEnabled"
+                                 Prelude.<$> isCloudTrailEventHistoryEnabled,
+                               (JSON..=) "RetentionInDays" Prelude.<$> retentionInDays,
+                               (JSON..=) "RoleArn" Prelude.<$> roleArn,
+                               (JSON..=) "TagKeyBoundaries" Prelude.<$> tagKeyBoundaries,
+                               (JSON..=) "Tags" Prelude.<$> tags]))}
+instance JSON.ToJSON InvestigationGroup where
+  toJSON InvestigationGroup {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["Name" JSON..= name]
+              (Prelude.catMaybes
+                 [(JSON..=) "ChatbotNotificationChannels"
+                    Prelude.<$> chatbotNotificationChannels,
+                  (JSON..=) "CrossAccountConfigurations"
+                    Prelude.<$> crossAccountConfigurations,
+                  (JSON..=) "EncryptionConfig" Prelude.<$> encryptionConfig,
+                  (JSON..=) "InvestigationGroupPolicy"
+                    Prelude.<$> investigationGroupPolicy,
+                  (JSON..=) "IsCloudTrailEventHistoryEnabled"
+                    Prelude.<$> isCloudTrailEventHistoryEnabled,
+                  (JSON..=) "RetentionInDays" Prelude.<$> retentionInDays,
+                  (JSON..=) "RoleArn" Prelude.<$> roleArn,
+                  (JSON..=) "TagKeyBoundaries" Prelude.<$> tagKeyBoundaries,
+                  (JSON..=) "Tags" Prelude.<$> tags])))
+instance Property "ChatbotNotificationChannels" InvestigationGroup where
+  type PropertyType "ChatbotNotificationChannels" InvestigationGroup = [ChatbotNotificationChannelProperty]
+  set newValue InvestigationGroup {..}
+    = InvestigationGroup
+        {chatbotNotificationChannels = Prelude.pure newValue, ..}
+instance Property "CrossAccountConfigurations" InvestigationGroup where
+  type PropertyType "CrossAccountConfigurations" InvestigationGroup = [CrossAccountConfigurationProperty]
+  set newValue InvestigationGroup {..}
+    = InvestigationGroup
+        {crossAccountConfigurations = Prelude.pure newValue, ..}
+instance Property "EncryptionConfig" InvestigationGroup where
+  type PropertyType "EncryptionConfig" InvestigationGroup = EncryptionConfigMapProperty
+  set newValue InvestigationGroup {..}
+    = InvestigationGroup {encryptionConfig = Prelude.pure newValue, ..}
+instance Property "InvestigationGroupPolicy" InvestigationGroup where
+  type PropertyType "InvestigationGroupPolicy" InvestigationGroup = Value Prelude.Text
+  set newValue InvestigationGroup {..}
+    = InvestigationGroup
+        {investigationGroupPolicy = Prelude.pure newValue, ..}
+instance Property "IsCloudTrailEventHistoryEnabled" InvestigationGroup where
+  type PropertyType "IsCloudTrailEventHistoryEnabled" InvestigationGroup = Value Prelude.Bool
+  set newValue InvestigationGroup {..}
+    = InvestigationGroup
+        {isCloudTrailEventHistoryEnabled = Prelude.pure newValue, ..}
+instance Property "Name" InvestigationGroup where
+  type PropertyType "Name" InvestigationGroup = Value Prelude.Text
+  set newValue InvestigationGroup {..}
+    = InvestigationGroup {name = newValue, ..}
+instance Property "RetentionInDays" InvestigationGroup where
+  type PropertyType "RetentionInDays" InvestigationGroup = Value Prelude.Integer
+  set newValue InvestigationGroup {..}
+    = InvestigationGroup {retentionInDays = Prelude.pure newValue, ..}
+instance Property "RoleArn" InvestigationGroup where
+  type PropertyType "RoleArn" InvestigationGroup = Value Prelude.Text
+  set newValue InvestigationGroup {..}
+    = InvestigationGroup {roleArn = Prelude.pure newValue, ..}
+instance Property "TagKeyBoundaries" InvestigationGroup where
+  type PropertyType "TagKeyBoundaries" InvestigationGroup = ValueList Prelude.Text
+  set newValue InvestigationGroup {..}
+    = InvestigationGroup {tagKeyBoundaries = Prelude.pure newValue, ..}
+instance Property "Tags" InvestigationGroup where
+  type PropertyType "Tags" InvestigationGroup = [Tag]
+  set newValue InvestigationGroup {..}
+    = InvestigationGroup {tags = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AIOps/InvestigationGroup/ChatbotNotificationChannelProperty.hs b/gen/Stratosphere/AIOps/InvestigationGroup/ChatbotNotificationChannelProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AIOps/InvestigationGroup/ChatbotNotificationChannelProperty.hs
@@ -0,0 +1,51 @@
+module Stratosphere.AIOps.InvestigationGroup.ChatbotNotificationChannelProperty (
+        ChatbotNotificationChannelProperty(..),
+        mkChatbotNotificationChannelProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data ChatbotNotificationChannelProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-aiops-investigationgroup-chatbotnotificationchannel.html>
+    ChatbotNotificationChannelProperty {haddock_workaround_ :: (),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-aiops-investigationgroup-chatbotnotificationchannel.html#cfn-aiops-investigationgroup-chatbotnotificationchannel-chatconfigurationarns>
+                                        chatConfigurationArns :: (Prelude.Maybe (ValueList Prelude.Text)),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-aiops-investigationgroup-chatbotnotificationchannel.html#cfn-aiops-investigationgroup-chatbotnotificationchannel-snstopicarn>
+                                        sNSTopicArn :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkChatbotNotificationChannelProperty ::
+  ChatbotNotificationChannelProperty
+mkChatbotNotificationChannelProperty
+  = ChatbotNotificationChannelProperty
+      {haddock_workaround_ = (), chatConfigurationArns = Prelude.Nothing,
+       sNSTopicArn = Prelude.Nothing}
+instance ToResourceProperties ChatbotNotificationChannelProperty where
+  toResourceProperties ChatbotNotificationChannelProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AIOps::InvestigationGroup.ChatbotNotificationChannel",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "ChatConfigurationArns"
+                              Prelude.<$> chatConfigurationArns,
+                            (JSON..=) "SNSTopicArn" Prelude.<$> sNSTopicArn])}
+instance JSON.ToJSON ChatbotNotificationChannelProperty where
+  toJSON ChatbotNotificationChannelProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "ChatConfigurationArns"
+                 Prelude.<$> chatConfigurationArns,
+               (JSON..=) "SNSTopicArn" Prelude.<$> sNSTopicArn]))
+instance Property "ChatConfigurationArns" ChatbotNotificationChannelProperty where
+  type PropertyType "ChatConfigurationArns" ChatbotNotificationChannelProperty = ValueList Prelude.Text
+  set newValue ChatbotNotificationChannelProperty {..}
+    = ChatbotNotificationChannelProperty
+        {chatConfigurationArns = Prelude.pure newValue, ..}
+instance Property "SNSTopicArn" ChatbotNotificationChannelProperty where
+  type PropertyType "SNSTopicArn" ChatbotNotificationChannelProperty = Value Prelude.Text
+  set newValue ChatbotNotificationChannelProperty {..}
+    = ChatbotNotificationChannelProperty
+        {sNSTopicArn = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AIOps/InvestigationGroup/ChatbotNotificationChannelProperty.hs-boot b/gen/Stratosphere/AIOps/InvestigationGroup/ChatbotNotificationChannelProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AIOps/InvestigationGroup/ChatbotNotificationChannelProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AIOps.InvestigationGroup.ChatbotNotificationChannelProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data ChatbotNotificationChannelProperty :: Prelude.Type
+instance ToResourceProperties ChatbotNotificationChannelProperty
+instance Prelude.Eq ChatbotNotificationChannelProperty
+instance Prelude.Show ChatbotNotificationChannelProperty
+instance JSON.ToJSON ChatbotNotificationChannelProperty
diff --git a/gen/Stratosphere/AIOps/InvestigationGroup/CrossAccountConfigurationProperty.hs b/gen/Stratosphere/AIOps/InvestigationGroup/CrossAccountConfigurationProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AIOps/InvestigationGroup/CrossAccountConfigurationProperty.hs
@@ -0,0 +1,39 @@
+module Stratosphere.AIOps.InvestigationGroup.CrossAccountConfigurationProperty (
+        CrossAccountConfigurationProperty(..),
+        mkCrossAccountConfigurationProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data CrossAccountConfigurationProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-aiops-investigationgroup-crossaccountconfiguration.html>
+    CrossAccountConfigurationProperty {haddock_workaround_ :: (),
+                                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-aiops-investigationgroup-crossaccountconfiguration.html#cfn-aiops-investigationgroup-crossaccountconfiguration-sourcerolearn>
+                                       sourceRoleArn :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkCrossAccountConfigurationProperty ::
+  CrossAccountConfigurationProperty
+mkCrossAccountConfigurationProperty
+  = CrossAccountConfigurationProperty
+      {haddock_workaround_ = (), sourceRoleArn = Prelude.Nothing}
+instance ToResourceProperties CrossAccountConfigurationProperty where
+  toResourceProperties CrossAccountConfigurationProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AIOps::InvestigationGroup.CrossAccountConfiguration",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "SourceRoleArn" Prelude.<$> sourceRoleArn])}
+instance JSON.ToJSON CrossAccountConfigurationProperty where
+  toJSON CrossAccountConfigurationProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "SourceRoleArn" Prelude.<$> sourceRoleArn]))
+instance Property "SourceRoleArn" CrossAccountConfigurationProperty where
+  type PropertyType "SourceRoleArn" CrossAccountConfigurationProperty = Value Prelude.Text
+  set newValue CrossAccountConfigurationProperty {..}
+    = CrossAccountConfigurationProperty
+        {sourceRoleArn = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AIOps/InvestigationGroup/CrossAccountConfigurationProperty.hs-boot b/gen/Stratosphere/AIOps/InvestigationGroup/CrossAccountConfigurationProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AIOps/InvestigationGroup/CrossAccountConfigurationProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AIOps.InvestigationGroup.CrossAccountConfigurationProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data CrossAccountConfigurationProperty :: Prelude.Type
+instance ToResourceProperties CrossAccountConfigurationProperty
+instance Prelude.Eq CrossAccountConfigurationProperty
+instance Prelude.Show CrossAccountConfigurationProperty
+instance JSON.ToJSON CrossAccountConfigurationProperty
diff --git a/gen/Stratosphere/AIOps/InvestigationGroup/EncryptionConfigMapProperty.hs b/gen/Stratosphere/AIOps/InvestigationGroup/EncryptionConfigMapProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AIOps/InvestigationGroup/EncryptionConfigMapProperty.hs
@@ -0,0 +1,50 @@
+module Stratosphere.AIOps.InvestigationGroup.EncryptionConfigMapProperty (
+        EncryptionConfigMapProperty(..), mkEncryptionConfigMapProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data EncryptionConfigMapProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-aiops-investigationgroup-encryptionconfigmap.html>
+    EncryptionConfigMapProperty {haddock_workaround_ :: (),
+                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-aiops-investigationgroup-encryptionconfigmap.html#cfn-aiops-investigationgroup-encryptionconfigmap-encryptionconfigurationtype>
+                                 encryptionConfigurationType :: (Prelude.Maybe (Value Prelude.Text)),
+                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-aiops-investigationgroup-encryptionconfigmap.html#cfn-aiops-investigationgroup-encryptionconfigmap-kmskeyid>
+                                 kmsKeyId :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkEncryptionConfigMapProperty :: EncryptionConfigMapProperty
+mkEncryptionConfigMapProperty
+  = EncryptionConfigMapProperty
+      {haddock_workaround_ = (),
+       encryptionConfigurationType = Prelude.Nothing,
+       kmsKeyId = Prelude.Nothing}
+instance ToResourceProperties EncryptionConfigMapProperty where
+  toResourceProperties EncryptionConfigMapProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AIOps::InvestigationGroup.EncryptionConfigMap",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "EncryptionConfigurationType"
+                              Prelude.<$> encryptionConfigurationType,
+                            (JSON..=) "KmsKeyId" Prelude.<$> kmsKeyId])}
+instance JSON.ToJSON EncryptionConfigMapProperty where
+  toJSON EncryptionConfigMapProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "EncryptionConfigurationType"
+                 Prelude.<$> encryptionConfigurationType,
+               (JSON..=) "KmsKeyId" Prelude.<$> kmsKeyId]))
+instance Property "EncryptionConfigurationType" EncryptionConfigMapProperty where
+  type PropertyType "EncryptionConfigurationType" EncryptionConfigMapProperty = Value Prelude.Text
+  set newValue EncryptionConfigMapProperty {..}
+    = EncryptionConfigMapProperty
+        {encryptionConfigurationType = Prelude.pure newValue, ..}
+instance Property "KmsKeyId" EncryptionConfigMapProperty where
+  type PropertyType "KmsKeyId" EncryptionConfigMapProperty = Value Prelude.Text
+  set newValue EncryptionConfigMapProperty {..}
+    = EncryptionConfigMapProperty
+        {kmsKeyId = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AIOps/InvestigationGroup/EncryptionConfigMapProperty.hs-boot b/gen/Stratosphere/AIOps/InvestigationGroup/EncryptionConfigMapProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AIOps/InvestigationGroup/EncryptionConfigMapProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AIOps.InvestigationGroup.EncryptionConfigMapProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data EncryptionConfigMapProperty :: Prelude.Type
+instance ToResourceProperties EncryptionConfigMapProperty
+instance Prelude.Eq EncryptionConfigMapProperty
+instance Prelude.Show EncryptionConfigMapProperty
+instance JSON.ToJSON EncryptionConfigMapProperty
diff --git a/stratosphere-aiops.cabal b/stratosphere-aiops.cabal
new file mode 100644
--- /dev/null
+++ b/stratosphere-aiops.cabal
@@ -0,0 +1,76 @@
+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-aiops
+version:        1.0.0
+synopsis:       Stratosphere integration for AWS AIOps.
+description:    Integration into stratosphere to generate resources and properties for AWS AIOps
+category:       AWS, Cloud, AIOps
+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.AIOps.InvestigationGroup
+      Stratosphere.AIOps.InvestigationGroup.ChatbotNotificationChannelProperty
+      Stratosphere.AIOps.InvestigationGroup.CrossAccountConfigurationProperty
+      Stratosphere.AIOps.InvestigationGroup.EncryptionConfigMapProperty
+  other-modules:
+      Paths_stratosphere_aiops
+  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
