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/EMRServerless/Application.hs b/gen/Stratosphere/EMRServerless/Application.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/EMRServerless/Application.hs
@@ -0,0 +1,207 @@
+module Stratosphere.EMRServerless.Application (
+        module Exports, Application(..), mkApplication
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.EMRServerless.Application.AutoStartConfigurationProperty as Exports
+import {-# SOURCE #-} Stratosphere.EMRServerless.Application.AutoStopConfigurationProperty as Exports
+import {-# SOURCE #-} Stratosphere.EMRServerless.Application.ConfigurationObjectProperty as Exports
+import {-# SOURCE #-} Stratosphere.EMRServerless.Application.IdentityCenterConfigurationProperty as Exports
+import {-# SOURCE #-} Stratosphere.EMRServerless.Application.ImageConfigurationInputProperty as Exports
+import {-# SOURCE #-} Stratosphere.EMRServerless.Application.InitialCapacityConfigKeyValuePairProperty as Exports
+import {-# SOURCE #-} Stratosphere.EMRServerless.Application.InteractiveConfigurationProperty as Exports
+import {-# SOURCE #-} Stratosphere.EMRServerless.Application.MaximumAllowedResourcesProperty as Exports
+import {-# SOURCE #-} Stratosphere.EMRServerless.Application.MonitoringConfigurationProperty as Exports
+import {-# SOURCE #-} Stratosphere.EMRServerless.Application.NetworkConfigurationProperty as Exports
+import {-# SOURCE #-} Stratosphere.EMRServerless.Application.SchedulerConfigurationProperty as Exports
+import {-# SOURCE #-} Stratosphere.EMRServerless.Application.WorkerTypeSpecificationInputProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Tag
+import Stratosphere.Value
+data Application
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrserverless-application.html>
+    Application {haddock_workaround_ :: (),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrserverless-application.html#cfn-emrserverless-application-architecture>
+                 architecture :: (Prelude.Maybe (Value Prelude.Text)),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrserverless-application.html#cfn-emrserverless-application-autostartconfiguration>
+                 autoStartConfiguration :: (Prelude.Maybe AutoStartConfigurationProperty),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrserverless-application.html#cfn-emrserverless-application-autostopconfiguration>
+                 autoStopConfiguration :: (Prelude.Maybe AutoStopConfigurationProperty),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrserverless-application.html#cfn-emrserverless-application-identitycenterconfiguration>
+                 identityCenterConfiguration :: (Prelude.Maybe IdentityCenterConfigurationProperty),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrserverless-application.html#cfn-emrserverless-application-imageconfiguration>
+                 imageConfiguration :: (Prelude.Maybe ImageConfigurationInputProperty),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrserverless-application.html#cfn-emrserverless-application-initialcapacity>
+                 initialCapacity :: (Prelude.Maybe [InitialCapacityConfigKeyValuePairProperty]),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrserverless-application.html#cfn-emrserverless-application-interactiveconfiguration>
+                 interactiveConfiguration :: (Prelude.Maybe InteractiveConfigurationProperty),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrserverless-application.html#cfn-emrserverless-application-maximumcapacity>
+                 maximumCapacity :: (Prelude.Maybe MaximumAllowedResourcesProperty),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrserverless-application.html#cfn-emrserverless-application-monitoringconfiguration>
+                 monitoringConfiguration :: (Prelude.Maybe MonitoringConfigurationProperty),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrserverless-application.html#cfn-emrserverless-application-name>
+                 name :: (Prelude.Maybe (Value Prelude.Text)),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrserverless-application.html#cfn-emrserverless-application-networkconfiguration>
+                 networkConfiguration :: (Prelude.Maybe NetworkConfigurationProperty),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrserverless-application.html#cfn-emrserverless-application-releaselabel>
+                 releaseLabel :: (Value Prelude.Text),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrserverless-application.html#cfn-emrserverless-application-runtimeconfiguration>
+                 runtimeConfiguration :: (Prelude.Maybe [ConfigurationObjectProperty]),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrserverless-application.html#cfn-emrserverless-application-schedulerconfiguration>
+                 schedulerConfiguration :: (Prelude.Maybe SchedulerConfigurationProperty),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrserverless-application.html#cfn-emrserverless-application-tags>
+                 tags :: (Prelude.Maybe [Tag]),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrserverless-application.html#cfn-emrserverless-application-type>
+                 type' :: (Value Prelude.Text),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrserverless-application.html#cfn-emrserverless-application-workertypespecifications>
+                 workerTypeSpecifications :: (Prelude.Maybe (Prelude.Map Prelude.Text WorkerTypeSpecificationInputProperty))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkApplication ::
+  Value Prelude.Text -> Value Prelude.Text -> Application
+mkApplication releaseLabel type'
+  = Application
+      {haddock_workaround_ = (), releaseLabel = releaseLabel,
+       type' = type', architecture = Prelude.Nothing,
+       autoStartConfiguration = Prelude.Nothing,
+       autoStopConfiguration = Prelude.Nothing,
+       identityCenterConfiguration = Prelude.Nothing,
+       imageConfiguration = Prelude.Nothing,
+       initialCapacity = Prelude.Nothing,
+       interactiveConfiguration = Prelude.Nothing,
+       maximumCapacity = Prelude.Nothing,
+       monitoringConfiguration = Prelude.Nothing, name = Prelude.Nothing,
+       networkConfiguration = Prelude.Nothing,
+       runtimeConfiguration = Prelude.Nothing,
+       schedulerConfiguration = Prelude.Nothing, tags = Prelude.Nothing,
+       workerTypeSpecifications = Prelude.Nothing}
+instance ToResourceProperties Application where
+  toResourceProperties Application {..}
+    = ResourceProperties
+        {awsType = "AWS::EMRServerless::Application",
+         supportsTags = Prelude.True,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["ReleaseLabel" JSON..= releaseLabel, "Type" JSON..= type']
+                           (Prelude.catMaybes
+                              [(JSON..=) "Architecture" Prelude.<$> architecture,
+                               (JSON..=) "AutoStartConfiguration"
+                                 Prelude.<$> autoStartConfiguration,
+                               (JSON..=) "AutoStopConfiguration"
+                                 Prelude.<$> autoStopConfiguration,
+                               (JSON..=) "IdentityCenterConfiguration"
+                                 Prelude.<$> identityCenterConfiguration,
+                               (JSON..=) "ImageConfiguration" Prelude.<$> imageConfiguration,
+                               (JSON..=) "InitialCapacity" Prelude.<$> initialCapacity,
+                               (JSON..=) "InteractiveConfiguration"
+                                 Prelude.<$> interactiveConfiguration,
+                               (JSON..=) "MaximumCapacity" Prelude.<$> maximumCapacity,
+                               (JSON..=) "MonitoringConfiguration"
+                                 Prelude.<$> monitoringConfiguration,
+                               (JSON..=) "Name" Prelude.<$> name,
+                               (JSON..=) "NetworkConfiguration" Prelude.<$> networkConfiguration,
+                               (JSON..=) "RuntimeConfiguration" Prelude.<$> runtimeConfiguration,
+                               (JSON..=) "SchedulerConfiguration"
+                                 Prelude.<$> schedulerConfiguration,
+                               (JSON..=) "Tags" Prelude.<$> tags,
+                               (JSON..=) "WorkerTypeSpecifications"
+                                 Prelude.<$> workerTypeSpecifications]))}
+instance JSON.ToJSON Application where
+  toJSON Application {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["ReleaseLabel" JSON..= releaseLabel, "Type" JSON..= type']
+              (Prelude.catMaybes
+                 [(JSON..=) "Architecture" Prelude.<$> architecture,
+                  (JSON..=) "AutoStartConfiguration"
+                    Prelude.<$> autoStartConfiguration,
+                  (JSON..=) "AutoStopConfiguration"
+                    Prelude.<$> autoStopConfiguration,
+                  (JSON..=) "IdentityCenterConfiguration"
+                    Prelude.<$> identityCenterConfiguration,
+                  (JSON..=) "ImageConfiguration" Prelude.<$> imageConfiguration,
+                  (JSON..=) "InitialCapacity" Prelude.<$> initialCapacity,
+                  (JSON..=) "InteractiveConfiguration"
+                    Prelude.<$> interactiveConfiguration,
+                  (JSON..=) "MaximumCapacity" Prelude.<$> maximumCapacity,
+                  (JSON..=) "MonitoringConfiguration"
+                    Prelude.<$> monitoringConfiguration,
+                  (JSON..=) "Name" Prelude.<$> name,
+                  (JSON..=) "NetworkConfiguration" Prelude.<$> networkConfiguration,
+                  (JSON..=) "RuntimeConfiguration" Prelude.<$> runtimeConfiguration,
+                  (JSON..=) "SchedulerConfiguration"
+                    Prelude.<$> schedulerConfiguration,
+                  (JSON..=) "Tags" Prelude.<$> tags,
+                  (JSON..=) "WorkerTypeSpecifications"
+                    Prelude.<$> workerTypeSpecifications])))
+instance Property "Architecture" Application where
+  type PropertyType "Architecture" Application = Value Prelude.Text
+  set newValue Application {..}
+    = Application {architecture = Prelude.pure newValue, ..}
+instance Property "AutoStartConfiguration" Application where
+  type PropertyType "AutoStartConfiguration" Application = AutoStartConfigurationProperty
+  set newValue Application {..}
+    = Application {autoStartConfiguration = Prelude.pure newValue, ..}
+instance Property "AutoStopConfiguration" Application where
+  type PropertyType "AutoStopConfiguration" Application = AutoStopConfigurationProperty
+  set newValue Application {..}
+    = Application {autoStopConfiguration = Prelude.pure newValue, ..}
+instance Property "IdentityCenterConfiguration" Application where
+  type PropertyType "IdentityCenterConfiguration" Application = IdentityCenterConfigurationProperty
+  set newValue Application {..}
+    = Application
+        {identityCenterConfiguration = Prelude.pure newValue, ..}
+instance Property "ImageConfiguration" Application where
+  type PropertyType "ImageConfiguration" Application = ImageConfigurationInputProperty
+  set newValue Application {..}
+    = Application {imageConfiguration = Prelude.pure newValue, ..}
+instance Property "InitialCapacity" Application where
+  type PropertyType "InitialCapacity" Application = [InitialCapacityConfigKeyValuePairProperty]
+  set newValue Application {..}
+    = Application {initialCapacity = Prelude.pure newValue, ..}
+instance Property "InteractiveConfiguration" Application where
+  type PropertyType "InteractiveConfiguration" Application = InteractiveConfigurationProperty
+  set newValue Application {..}
+    = Application
+        {interactiveConfiguration = Prelude.pure newValue, ..}
+instance Property "MaximumCapacity" Application where
+  type PropertyType "MaximumCapacity" Application = MaximumAllowedResourcesProperty
+  set newValue Application {..}
+    = Application {maximumCapacity = Prelude.pure newValue, ..}
+instance Property "MonitoringConfiguration" Application where
+  type PropertyType "MonitoringConfiguration" Application = MonitoringConfigurationProperty
+  set newValue Application {..}
+    = Application {monitoringConfiguration = Prelude.pure newValue, ..}
+instance Property "Name" Application where
+  type PropertyType "Name" Application = Value Prelude.Text
+  set newValue Application {..}
+    = Application {name = Prelude.pure newValue, ..}
+instance Property "NetworkConfiguration" Application where
+  type PropertyType "NetworkConfiguration" Application = NetworkConfigurationProperty
+  set newValue Application {..}
+    = Application {networkConfiguration = Prelude.pure newValue, ..}
+instance Property "ReleaseLabel" Application where
+  type PropertyType "ReleaseLabel" Application = Value Prelude.Text
+  set newValue Application {..}
+    = Application {releaseLabel = newValue, ..}
+instance Property "RuntimeConfiguration" Application where
+  type PropertyType "RuntimeConfiguration" Application = [ConfigurationObjectProperty]
+  set newValue Application {..}
+    = Application {runtimeConfiguration = Prelude.pure newValue, ..}
+instance Property "SchedulerConfiguration" Application where
+  type PropertyType "SchedulerConfiguration" Application = SchedulerConfigurationProperty
+  set newValue Application {..}
+    = Application {schedulerConfiguration = Prelude.pure newValue, ..}
+instance Property "Tags" Application where
+  type PropertyType "Tags" Application = [Tag]
+  set newValue Application {..}
+    = Application {tags = Prelude.pure newValue, ..}
+instance Property "Type" Application where
+  type PropertyType "Type" Application = Value Prelude.Text
+  set newValue Application {..} = Application {type' = newValue, ..}
+instance Property "WorkerTypeSpecifications" Application where
+  type PropertyType "WorkerTypeSpecifications" Application = Prelude.Map Prelude.Text WorkerTypeSpecificationInputProperty
+  set newValue Application {..}
+    = Application
+        {workerTypeSpecifications = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/EMRServerless/Application/AutoStartConfigurationProperty.hs b/gen/Stratosphere/EMRServerless/Application/AutoStartConfigurationProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/EMRServerless/Application/AutoStartConfigurationProperty.hs
@@ -0,0 +1,36 @@
+module Stratosphere.EMRServerless.Application.AutoStartConfigurationProperty (
+        AutoStartConfigurationProperty(..),
+        mkAutoStartConfigurationProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data AutoStartConfigurationProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-autostartconfiguration.html>
+    AutoStartConfigurationProperty {haddock_workaround_ :: (),
+                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-autostartconfiguration.html#cfn-emrserverless-application-autostartconfiguration-enabled>
+                                    enabled :: (Prelude.Maybe (Value Prelude.Bool))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkAutoStartConfigurationProperty :: AutoStartConfigurationProperty
+mkAutoStartConfigurationProperty
+  = AutoStartConfigurationProperty
+      {haddock_workaround_ = (), enabled = Prelude.Nothing}
+instance ToResourceProperties AutoStartConfigurationProperty where
+  toResourceProperties AutoStartConfigurationProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::EMRServerless::Application.AutoStartConfiguration",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes [(JSON..=) "Enabled" Prelude.<$> enabled])}
+instance JSON.ToJSON AutoStartConfigurationProperty where
+  toJSON AutoStartConfigurationProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes [(JSON..=) "Enabled" Prelude.<$> enabled]))
+instance Property "Enabled" AutoStartConfigurationProperty where
+  type PropertyType "Enabled" AutoStartConfigurationProperty = Value Prelude.Bool
+  set newValue AutoStartConfigurationProperty {..}
+    = AutoStartConfigurationProperty
+        {enabled = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/EMRServerless/Application/AutoStartConfigurationProperty.hs-boot b/gen/Stratosphere/EMRServerless/Application/AutoStartConfigurationProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/EMRServerless/Application/AutoStartConfigurationProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.EMRServerless.Application.AutoStartConfigurationProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data AutoStartConfigurationProperty :: Prelude.Type
+instance ToResourceProperties AutoStartConfigurationProperty
+instance Prelude.Eq AutoStartConfigurationProperty
+instance Prelude.Show AutoStartConfigurationProperty
+instance JSON.ToJSON AutoStartConfigurationProperty
diff --git a/gen/Stratosphere/EMRServerless/Application/AutoStopConfigurationProperty.hs b/gen/Stratosphere/EMRServerless/Application/AutoStopConfigurationProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/EMRServerless/Application/AutoStopConfigurationProperty.hs
@@ -0,0 +1,47 @@
+module Stratosphere.EMRServerless.Application.AutoStopConfigurationProperty (
+        AutoStopConfigurationProperty(..), mkAutoStopConfigurationProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data AutoStopConfigurationProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-autostopconfiguration.html>
+    AutoStopConfigurationProperty {haddock_workaround_ :: (),
+                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-autostopconfiguration.html#cfn-emrserverless-application-autostopconfiguration-enabled>
+                                   enabled :: (Prelude.Maybe (Value Prelude.Bool)),
+                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-autostopconfiguration.html#cfn-emrserverless-application-autostopconfiguration-idletimeoutminutes>
+                                   idleTimeoutMinutes :: (Prelude.Maybe (Value Prelude.Integer))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkAutoStopConfigurationProperty :: AutoStopConfigurationProperty
+mkAutoStopConfigurationProperty
+  = AutoStopConfigurationProperty
+      {haddock_workaround_ = (), enabled = Prelude.Nothing,
+       idleTimeoutMinutes = Prelude.Nothing}
+instance ToResourceProperties AutoStopConfigurationProperty where
+  toResourceProperties AutoStopConfigurationProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::EMRServerless::Application.AutoStopConfiguration",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "Enabled" Prelude.<$> enabled,
+                            (JSON..=) "IdleTimeoutMinutes" Prelude.<$> idleTimeoutMinutes])}
+instance JSON.ToJSON AutoStopConfigurationProperty where
+  toJSON AutoStopConfigurationProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "Enabled" Prelude.<$> enabled,
+               (JSON..=) "IdleTimeoutMinutes" Prelude.<$> idleTimeoutMinutes]))
+instance Property "Enabled" AutoStopConfigurationProperty where
+  type PropertyType "Enabled" AutoStopConfigurationProperty = Value Prelude.Bool
+  set newValue AutoStopConfigurationProperty {..}
+    = AutoStopConfigurationProperty
+        {enabled = Prelude.pure newValue, ..}
+instance Property "IdleTimeoutMinutes" AutoStopConfigurationProperty where
+  type PropertyType "IdleTimeoutMinutes" AutoStopConfigurationProperty = Value Prelude.Integer
+  set newValue AutoStopConfigurationProperty {..}
+    = AutoStopConfigurationProperty
+        {idleTimeoutMinutes = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/EMRServerless/Application/AutoStopConfigurationProperty.hs-boot b/gen/Stratosphere/EMRServerless/Application/AutoStopConfigurationProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/EMRServerless/Application/AutoStopConfigurationProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.EMRServerless.Application.AutoStopConfigurationProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data AutoStopConfigurationProperty :: Prelude.Type
+instance ToResourceProperties AutoStopConfigurationProperty
+instance Prelude.Eq AutoStopConfigurationProperty
+instance Prelude.Show AutoStopConfigurationProperty
+instance JSON.ToJSON AutoStopConfigurationProperty
diff --git a/gen/Stratosphere/EMRServerless/Application/CloudWatchLoggingConfigurationProperty.hs b/gen/Stratosphere/EMRServerless/Application/CloudWatchLoggingConfigurationProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/EMRServerless/Application/CloudWatchLoggingConfigurationProperty.hs
@@ -0,0 +1,79 @@
+module Stratosphere.EMRServerless.Application.CloudWatchLoggingConfigurationProperty (
+        module Exports, CloudWatchLoggingConfigurationProperty(..),
+        mkCloudWatchLoggingConfigurationProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.EMRServerless.Application.LogTypeMapKeyValuePairProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data CloudWatchLoggingConfigurationProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-cloudwatchloggingconfiguration.html>
+    CloudWatchLoggingConfigurationProperty {haddock_workaround_ :: (),
+                                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-cloudwatchloggingconfiguration.html#cfn-emrserverless-application-cloudwatchloggingconfiguration-enabled>
+                                            enabled :: (Prelude.Maybe (Value Prelude.Bool)),
+                                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-cloudwatchloggingconfiguration.html#cfn-emrserverless-application-cloudwatchloggingconfiguration-encryptionkeyarn>
+                                            encryptionKeyArn :: (Prelude.Maybe (Value Prelude.Text)),
+                                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-cloudwatchloggingconfiguration.html#cfn-emrserverless-application-cloudwatchloggingconfiguration-loggroupname>
+                                            logGroupName :: (Prelude.Maybe (Value Prelude.Text)),
+                                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-cloudwatchloggingconfiguration.html#cfn-emrserverless-application-cloudwatchloggingconfiguration-logstreamnameprefix>
+                                            logStreamNamePrefix :: (Prelude.Maybe (Value Prelude.Text)),
+                                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-cloudwatchloggingconfiguration.html#cfn-emrserverless-application-cloudwatchloggingconfiguration-logtypemap>
+                                            logTypeMap :: (Prelude.Maybe [LogTypeMapKeyValuePairProperty])}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkCloudWatchLoggingConfigurationProperty ::
+  CloudWatchLoggingConfigurationProperty
+mkCloudWatchLoggingConfigurationProperty
+  = CloudWatchLoggingConfigurationProperty
+      {haddock_workaround_ = (), enabled = Prelude.Nothing,
+       encryptionKeyArn = Prelude.Nothing, logGroupName = Prelude.Nothing,
+       logStreamNamePrefix = Prelude.Nothing,
+       logTypeMap = Prelude.Nothing}
+instance ToResourceProperties CloudWatchLoggingConfigurationProperty where
+  toResourceProperties CloudWatchLoggingConfigurationProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::EMRServerless::Application.CloudWatchLoggingConfiguration",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "Enabled" Prelude.<$> enabled,
+                            (JSON..=) "EncryptionKeyArn" Prelude.<$> encryptionKeyArn,
+                            (JSON..=) "LogGroupName" Prelude.<$> logGroupName,
+                            (JSON..=) "LogStreamNamePrefix" Prelude.<$> logStreamNamePrefix,
+                            (JSON..=) "LogTypeMap" Prelude.<$> logTypeMap])}
+instance JSON.ToJSON CloudWatchLoggingConfigurationProperty where
+  toJSON CloudWatchLoggingConfigurationProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "Enabled" Prelude.<$> enabled,
+               (JSON..=) "EncryptionKeyArn" Prelude.<$> encryptionKeyArn,
+               (JSON..=) "LogGroupName" Prelude.<$> logGroupName,
+               (JSON..=) "LogStreamNamePrefix" Prelude.<$> logStreamNamePrefix,
+               (JSON..=) "LogTypeMap" Prelude.<$> logTypeMap]))
+instance Property "Enabled" CloudWatchLoggingConfigurationProperty where
+  type PropertyType "Enabled" CloudWatchLoggingConfigurationProperty = Value Prelude.Bool
+  set newValue CloudWatchLoggingConfigurationProperty {..}
+    = CloudWatchLoggingConfigurationProperty
+        {enabled = Prelude.pure newValue, ..}
+instance Property "EncryptionKeyArn" CloudWatchLoggingConfigurationProperty where
+  type PropertyType "EncryptionKeyArn" CloudWatchLoggingConfigurationProperty = Value Prelude.Text
+  set newValue CloudWatchLoggingConfigurationProperty {..}
+    = CloudWatchLoggingConfigurationProperty
+        {encryptionKeyArn = Prelude.pure newValue, ..}
+instance Property "LogGroupName" CloudWatchLoggingConfigurationProperty where
+  type PropertyType "LogGroupName" CloudWatchLoggingConfigurationProperty = Value Prelude.Text
+  set newValue CloudWatchLoggingConfigurationProperty {..}
+    = CloudWatchLoggingConfigurationProperty
+        {logGroupName = Prelude.pure newValue, ..}
+instance Property "LogStreamNamePrefix" CloudWatchLoggingConfigurationProperty where
+  type PropertyType "LogStreamNamePrefix" CloudWatchLoggingConfigurationProperty = Value Prelude.Text
+  set newValue CloudWatchLoggingConfigurationProperty {..}
+    = CloudWatchLoggingConfigurationProperty
+        {logStreamNamePrefix = Prelude.pure newValue, ..}
+instance Property "LogTypeMap" CloudWatchLoggingConfigurationProperty where
+  type PropertyType "LogTypeMap" CloudWatchLoggingConfigurationProperty = [LogTypeMapKeyValuePairProperty]
+  set newValue CloudWatchLoggingConfigurationProperty {..}
+    = CloudWatchLoggingConfigurationProperty
+        {logTypeMap = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/EMRServerless/Application/CloudWatchLoggingConfigurationProperty.hs-boot b/gen/Stratosphere/EMRServerless/Application/CloudWatchLoggingConfigurationProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/EMRServerless/Application/CloudWatchLoggingConfigurationProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.EMRServerless.Application.CloudWatchLoggingConfigurationProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data CloudWatchLoggingConfigurationProperty :: Prelude.Type
+instance ToResourceProperties CloudWatchLoggingConfigurationProperty
+instance Prelude.Eq CloudWatchLoggingConfigurationProperty
+instance Prelude.Show CloudWatchLoggingConfigurationProperty
+instance JSON.ToJSON CloudWatchLoggingConfigurationProperty
diff --git a/gen/Stratosphere/EMRServerless/Application/ConfigurationObjectProperty.hs b/gen/Stratosphere/EMRServerless/Application/ConfigurationObjectProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/EMRServerless/Application/ConfigurationObjectProperty.hs
@@ -0,0 +1,58 @@
+module Stratosphere.EMRServerless.Application.ConfigurationObjectProperty (
+        ConfigurationObjectProperty(..), mkConfigurationObjectProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data ConfigurationObjectProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-configurationobject.html>
+    ConfigurationObjectProperty {haddock_workaround_ :: (),
+                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-configurationobject.html#cfn-emrserverless-application-configurationobject-classification>
+                                 classification :: (Value Prelude.Text),
+                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-configurationobject.html#cfn-emrserverless-application-configurationobject-configurations>
+                                 configurations :: (Prelude.Maybe [ConfigurationObjectProperty]),
+                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-configurationobject.html#cfn-emrserverless-application-configurationobject-properties>
+                                 properties :: (Prelude.Maybe (Prelude.Map Prelude.Text (Value Prelude.Text)))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkConfigurationObjectProperty ::
+  Value Prelude.Text -> ConfigurationObjectProperty
+mkConfigurationObjectProperty classification
+  = ConfigurationObjectProperty
+      {haddock_workaround_ = (), classification = classification,
+       configurations = Prelude.Nothing, properties = Prelude.Nothing}
+instance ToResourceProperties ConfigurationObjectProperty where
+  toResourceProperties ConfigurationObjectProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::EMRServerless::Application.ConfigurationObject",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["Classification" JSON..= classification]
+                           (Prelude.catMaybes
+                              [(JSON..=) "Configurations" Prelude.<$> configurations,
+                               (JSON..=) "Properties" Prelude.<$> properties]))}
+instance JSON.ToJSON ConfigurationObjectProperty where
+  toJSON ConfigurationObjectProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["Classification" JSON..= classification]
+              (Prelude.catMaybes
+                 [(JSON..=) "Configurations" Prelude.<$> configurations,
+                  (JSON..=) "Properties" Prelude.<$> properties])))
+instance Property "Classification" ConfigurationObjectProperty where
+  type PropertyType "Classification" ConfigurationObjectProperty = Value Prelude.Text
+  set newValue ConfigurationObjectProperty {..}
+    = ConfigurationObjectProperty {classification = newValue, ..}
+instance Property "Configurations" ConfigurationObjectProperty where
+  type PropertyType "Configurations" ConfigurationObjectProperty = [ConfigurationObjectProperty]
+  set newValue ConfigurationObjectProperty {..}
+    = ConfigurationObjectProperty
+        {configurations = Prelude.pure newValue, ..}
+instance Property "Properties" ConfigurationObjectProperty where
+  type PropertyType "Properties" ConfigurationObjectProperty = Prelude.Map Prelude.Text (Value Prelude.Text)
+  set newValue ConfigurationObjectProperty {..}
+    = ConfigurationObjectProperty
+        {properties = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/EMRServerless/Application/ConfigurationObjectProperty.hs-boot b/gen/Stratosphere/EMRServerless/Application/ConfigurationObjectProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/EMRServerless/Application/ConfigurationObjectProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.EMRServerless.Application.ConfigurationObjectProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data ConfigurationObjectProperty :: Prelude.Type
+instance ToResourceProperties ConfigurationObjectProperty
+instance Prelude.Eq ConfigurationObjectProperty
+instance Prelude.Show ConfigurationObjectProperty
+instance JSON.ToJSON ConfigurationObjectProperty
diff --git a/gen/Stratosphere/EMRServerless/Application/IdentityCenterConfigurationProperty.hs b/gen/Stratosphere/EMRServerless/Application/IdentityCenterConfigurationProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/EMRServerless/Application/IdentityCenterConfigurationProperty.hs
@@ -0,0 +1,42 @@
+module Stratosphere.EMRServerless.Application.IdentityCenterConfigurationProperty (
+        IdentityCenterConfigurationProperty(..),
+        mkIdentityCenterConfigurationProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data IdentityCenterConfigurationProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-identitycenterconfiguration.html>
+    IdentityCenterConfigurationProperty {haddock_workaround_ :: (),
+                                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-identitycenterconfiguration.html#cfn-emrserverless-application-identitycenterconfiguration-identitycenterinstancearn>
+                                         identityCenterInstanceArn :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkIdentityCenterConfigurationProperty ::
+  IdentityCenterConfigurationProperty
+mkIdentityCenterConfigurationProperty
+  = IdentityCenterConfigurationProperty
+      {haddock_workaround_ = (),
+       identityCenterInstanceArn = Prelude.Nothing}
+instance ToResourceProperties IdentityCenterConfigurationProperty where
+  toResourceProperties IdentityCenterConfigurationProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::EMRServerless::Application.IdentityCenterConfiguration",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "IdentityCenterInstanceArn"
+                              Prelude.<$> identityCenterInstanceArn])}
+instance JSON.ToJSON IdentityCenterConfigurationProperty where
+  toJSON IdentityCenterConfigurationProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "IdentityCenterInstanceArn"
+                 Prelude.<$> identityCenterInstanceArn]))
+instance Property "IdentityCenterInstanceArn" IdentityCenterConfigurationProperty where
+  type PropertyType "IdentityCenterInstanceArn" IdentityCenterConfigurationProperty = Value Prelude.Text
+  set newValue IdentityCenterConfigurationProperty {..}
+    = IdentityCenterConfigurationProperty
+        {identityCenterInstanceArn = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/EMRServerless/Application/IdentityCenterConfigurationProperty.hs-boot b/gen/Stratosphere/EMRServerless/Application/IdentityCenterConfigurationProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/EMRServerless/Application/IdentityCenterConfigurationProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.EMRServerless.Application.IdentityCenterConfigurationProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data IdentityCenterConfigurationProperty :: Prelude.Type
+instance ToResourceProperties IdentityCenterConfigurationProperty
+instance Prelude.Eq IdentityCenterConfigurationProperty
+instance Prelude.Show IdentityCenterConfigurationProperty
+instance JSON.ToJSON IdentityCenterConfigurationProperty
diff --git a/gen/Stratosphere/EMRServerless/Application/ImageConfigurationInputProperty.hs b/gen/Stratosphere/EMRServerless/Application/ImageConfigurationInputProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/EMRServerless/Application/ImageConfigurationInputProperty.hs
@@ -0,0 +1,37 @@
+module Stratosphere.EMRServerless.Application.ImageConfigurationInputProperty (
+        ImageConfigurationInputProperty(..),
+        mkImageConfigurationInputProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data ImageConfigurationInputProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-imageconfigurationinput.html>
+    ImageConfigurationInputProperty {haddock_workaround_ :: (),
+                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-imageconfigurationinput.html#cfn-emrserverless-application-imageconfigurationinput-imageuri>
+                                     imageUri :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkImageConfigurationInputProperty ::
+  ImageConfigurationInputProperty
+mkImageConfigurationInputProperty
+  = ImageConfigurationInputProperty
+      {haddock_workaround_ = (), imageUri = Prelude.Nothing}
+instance ToResourceProperties ImageConfigurationInputProperty where
+  toResourceProperties ImageConfigurationInputProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::EMRServerless::Application.ImageConfigurationInput",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes [(JSON..=) "ImageUri" Prelude.<$> imageUri])}
+instance JSON.ToJSON ImageConfigurationInputProperty where
+  toJSON ImageConfigurationInputProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes [(JSON..=) "ImageUri" Prelude.<$> imageUri]))
+instance Property "ImageUri" ImageConfigurationInputProperty where
+  type PropertyType "ImageUri" ImageConfigurationInputProperty = Value Prelude.Text
+  set newValue ImageConfigurationInputProperty {..}
+    = ImageConfigurationInputProperty
+        {imageUri = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/EMRServerless/Application/ImageConfigurationInputProperty.hs-boot b/gen/Stratosphere/EMRServerless/Application/ImageConfigurationInputProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/EMRServerless/Application/ImageConfigurationInputProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.EMRServerless.Application.ImageConfigurationInputProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data ImageConfigurationInputProperty :: Prelude.Type
+instance ToResourceProperties ImageConfigurationInputProperty
+instance Prelude.Eq ImageConfigurationInputProperty
+instance Prelude.Show ImageConfigurationInputProperty
+instance JSON.ToJSON ImageConfigurationInputProperty
diff --git a/gen/Stratosphere/EMRServerless/Application/InitialCapacityConfigKeyValuePairProperty.hs b/gen/Stratosphere/EMRServerless/Application/InitialCapacityConfigKeyValuePairProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/EMRServerless/Application/InitialCapacityConfigKeyValuePairProperty.hs
@@ -0,0 +1,42 @@
+module Stratosphere.EMRServerless.Application.InitialCapacityConfigKeyValuePairProperty (
+        module Exports, InitialCapacityConfigKeyValuePairProperty(..),
+        mkInitialCapacityConfigKeyValuePairProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.EMRServerless.Application.InitialCapacityConfigProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data InitialCapacityConfigKeyValuePairProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-initialcapacityconfigkeyvaluepair.html>
+    InitialCapacityConfigKeyValuePairProperty {haddock_workaround_ :: (),
+                                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-initialcapacityconfigkeyvaluepair.html#cfn-emrserverless-application-initialcapacityconfigkeyvaluepair-key>
+                                               key :: (Value Prelude.Text),
+                                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-initialcapacityconfigkeyvaluepair.html#cfn-emrserverless-application-initialcapacityconfigkeyvaluepair-value>
+                                               value :: InitialCapacityConfigProperty}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkInitialCapacityConfigKeyValuePairProperty ::
+  Value Prelude.Text
+  -> InitialCapacityConfigProperty
+     -> InitialCapacityConfigKeyValuePairProperty
+mkInitialCapacityConfigKeyValuePairProperty key value
+  = InitialCapacityConfigKeyValuePairProperty
+      {haddock_workaround_ = (), key = key, value = value}
+instance ToResourceProperties InitialCapacityConfigKeyValuePairProperty where
+  toResourceProperties InitialCapacityConfigKeyValuePairProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::EMRServerless::Application.InitialCapacityConfigKeyValuePair",
+         supportsTags = Prelude.False,
+         properties = ["Key" JSON..= key, "Value" JSON..= value]}
+instance JSON.ToJSON InitialCapacityConfigKeyValuePairProperty where
+  toJSON InitialCapacityConfigKeyValuePairProperty {..}
+    = JSON.object ["Key" JSON..= key, "Value" JSON..= value]
+instance Property "Key" InitialCapacityConfigKeyValuePairProperty where
+  type PropertyType "Key" InitialCapacityConfigKeyValuePairProperty = Value Prelude.Text
+  set newValue InitialCapacityConfigKeyValuePairProperty {..}
+    = InitialCapacityConfigKeyValuePairProperty {key = newValue, ..}
+instance Property "Value" InitialCapacityConfigKeyValuePairProperty where
+  type PropertyType "Value" InitialCapacityConfigKeyValuePairProperty = InitialCapacityConfigProperty
+  set newValue InitialCapacityConfigKeyValuePairProperty {..}
+    = InitialCapacityConfigKeyValuePairProperty {value = newValue, ..}
diff --git a/gen/Stratosphere/EMRServerless/Application/InitialCapacityConfigKeyValuePairProperty.hs-boot b/gen/Stratosphere/EMRServerless/Application/InitialCapacityConfigKeyValuePairProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/EMRServerless/Application/InitialCapacityConfigKeyValuePairProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.EMRServerless.Application.InitialCapacityConfigKeyValuePairProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data InitialCapacityConfigKeyValuePairProperty :: Prelude.Type
+instance ToResourceProperties InitialCapacityConfigKeyValuePairProperty
+instance Prelude.Eq InitialCapacityConfigKeyValuePairProperty
+instance Prelude.Show InitialCapacityConfigKeyValuePairProperty
+instance JSON.ToJSON InitialCapacityConfigKeyValuePairProperty
diff --git a/gen/Stratosphere/EMRServerless/Application/InitialCapacityConfigProperty.hs b/gen/Stratosphere/EMRServerless/Application/InitialCapacityConfigProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/EMRServerless/Application/InitialCapacityConfigProperty.hs
@@ -0,0 +1,47 @@
+module Stratosphere.EMRServerless.Application.InitialCapacityConfigProperty (
+        module Exports, InitialCapacityConfigProperty(..),
+        mkInitialCapacityConfigProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.EMRServerless.Application.WorkerConfigurationProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data InitialCapacityConfigProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-initialcapacityconfig.html>
+    InitialCapacityConfigProperty {haddock_workaround_ :: (),
+                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-initialcapacityconfig.html#cfn-emrserverless-application-initialcapacityconfig-workerconfiguration>
+                                   workerConfiguration :: WorkerConfigurationProperty,
+                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-initialcapacityconfig.html#cfn-emrserverless-application-initialcapacityconfig-workercount>
+                                   workerCount :: (Value Prelude.Integer)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkInitialCapacityConfigProperty ::
+  WorkerConfigurationProperty
+  -> Value Prelude.Integer -> InitialCapacityConfigProperty
+mkInitialCapacityConfigProperty workerConfiguration workerCount
+  = InitialCapacityConfigProperty
+      {haddock_workaround_ = (),
+       workerConfiguration = workerConfiguration,
+       workerCount = workerCount}
+instance ToResourceProperties InitialCapacityConfigProperty where
+  toResourceProperties InitialCapacityConfigProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::EMRServerless::Application.InitialCapacityConfig",
+         supportsTags = Prelude.False,
+         properties = ["WorkerConfiguration" JSON..= workerConfiguration,
+                       "WorkerCount" JSON..= workerCount]}
+instance JSON.ToJSON InitialCapacityConfigProperty where
+  toJSON InitialCapacityConfigProperty {..}
+    = JSON.object
+        ["WorkerConfiguration" JSON..= workerConfiguration,
+         "WorkerCount" JSON..= workerCount]
+instance Property "WorkerConfiguration" InitialCapacityConfigProperty where
+  type PropertyType "WorkerConfiguration" InitialCapacityConfigProperty = WorkerConfigurationProperty
+  set newValue InitialCapacityConfigProperty {..}
+    = InitialCapacityConfigProperty
+        {workerConfiguration = newValue, ..}
+instance Property "WorkerCount" InitialCapacityConfigProperty where
+  type PropertyType "WorkerCount" InitialCapacityConfigProperty = Value Prelude.Integer
+  set newValue InitialCapacityConfigProperty {..}
+    = InitialCapacityConfigProperty {workerCount = newValue, ..}
diff --git a/gen/Stratosphere/EMRServerless/Application/InitialCapacityConfigProperty.hs-boot b/gen/Stratosphere/EMRServerless/Application/InitialCapacityConfigProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/EMRServerless/Application/InitialCapacityConfigProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.EMRServerless.Application.InitialCapacityConfigProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data InitialCapacityConfigProperty :: Prelude.Type
+instance ToResourceProperties InitialCapacityConfigProperty
+instance Prelude.Eq InitialCapacityConfigProperty
+instance Prelude.Show InitialCapacityConfigProperty
+instance JSON.ToJSON InitialCapacityConfigProperty
diff --git a/gen/Stratosphere/EMRServerless/Application/InteractiveConfigurationProperty.hs b/gen/Stratosphere/EMRServerless/Application/InteractiveConfigurationProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/EMRServerless/Application/InteractiveConfigurationProperty.hs
@@ -0,0 +1,49 @@
+module Stratosphere.EMRServerless.Application.InteractiveConfigurationProperty (
+        InteractiveConfigurationProperty(..),
+        mkInteractiveConfigurationProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data InteractiveConfigurationProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-interactiveconfiguration.html>
+    InteractiveConfigurationProperty {haddock_workaround_ :: (),
+                                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-interactiveconfiguration.html#cfn-emrserverless-application-interactiveconfiguration-livyendpointenabled>
+                                      livyEndpointEnabled :: (Prelude.Maybe (Value Prelude.Bool)),
+                                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-interactiveconfiguration.html#cfn-emrserverless-application-interactiveconfiguration-studioenabled>
+                                      studioEnabled :: (Prelude.Maybe (Value Prelude.Bool))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkInteractiveConfigurationProperty ::
+  InteractiveConfigurationProperty
+mkInteractiveConfigurationProperty
+  = InteractiveConfigurationProperty
+      {haddock_workaround_ = (), livyEndpointEnabled = Prelude.Nothing,
+       studioEnabled = Prelude.Nothing}
+instance ToResourceProperties InteractiveConfigurationProperty where
+  toResourceProperties InteractiveConfigurationProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::EMRServerless::Application.InteractiveConfiguration",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "LivyEndpointEnabled" Prelude.<$> livyEndpointEnabled,
+                            (JSON..=) "StudioEnabled" Prelude.<$> studioEnabled])}
+instance JSON.ToJSON InteractiveConfigurationProperty where
+  toJSON InteractiveConfigurationProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "LivyEndpointEnabled" Prelude.<$> livyEndpointEnabled,
+               (JSON..=) "StudioEnabled" Prelude.<$> studioEnabled]))
+instance Property "LivyEndpointEnabled" InteractiveConfigurationProperty where
+  type PropertyType "LivyEndpointEnabled" InteractiveConfigurationProperty = Value Prelude.Bool
+  set newValue InteractiveConfigurationProperty {..}
+    = InteractiveConfigurationProperty
+        {livyEndpointEnabled = Prelude.pure newValue, ..}
+instance Property "StudioEnabled" InteractiveConfigurationProperty where
+  type PropertyType "StudioEnabled" InteractiveConfigurationProperty = Value Prelude.Bool
+  set newValue InteractiveConfigurationProperty {..}
+    = InteractiveConfigurationProperty
+        {studioEnabled = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/EMRServerless/Application/InteractiveConfigurationProperty.hs-boot b/gen/Stratosphere/EMRServerless/Application/InteractiveConfigurationProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/EMRServerless/Application/InteractiveConfigurationProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.EMRServerless.Application.InteractiveConfigurationProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data InteractiveConfigurationProperty :: Prelude.Type
+instance ToResourceProperties InteractiveConfigurationProperty
+instance Prelude.Eq InteractiveConfigurationProperty
+instance Prelude.Show InteractiveConfigurationProperty
+instance JSON.ToJSON InteractiveConfigurationProperty
diff --git a/gen/Stratosphere/EMRServerless/Application/LogTypeMapKeyValuePairProperty.hs b/gen/Stratosphere/EMRServerless/Application/LogTypeMapKeyValuePairProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/EMRServerless/Application/LogTypeMapKeyValuePairProperty.hs
@@ -0,0 +1,40 @@
+module Stratosphere.EMRServerless.Application.LogTypeMapKeyValuePairProperty (
+        LogTypeMapKeyValuePairProperty(..),
+        mkLogTypeMapKeyValuePairProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data LogTypeMapKeyValuePairProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-logtypemapkeyvaluepair.html>
+    LogTypeMapKeyValuePairProperty {haddock_workaround_ :: (),
+                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-logtypemapkeyvaluepair.html#cfn-emrserverless-application-logtypemapkeyvaluepair-key>
+                                    key :: (Value Prelude.Text),
+                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-logtypemapkeyvaluepair.html#cfn-emrserverless-application-logtypemapkeyvaluepair-value>
+                                    value :: (ValueList Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkLogTypeMapKeyValuePairProperty ::
+  Value Prelude.Text
+  -> ValueList Prelude.Text -> LogTypeMapKeyValuePairProperty
+mkLogTypeMapKeyValuePairProperty key value
+  = LogTypeMapKeyValuePairProperty
+      {haddock_workaround_ = (), key = key, value = value}
+instance ToResourceProperties LogTypeMapKeyValuePairProperty where
+  toResourceProperties LogTypeMapKeyValuePairProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::EMRServerless::Application.LogTypeMapKeyValuePair",
+         supportsTags = Prelude.False,
+         properties = ["Key" JSON..= key, "Value" JSON..= value]}
+instance JSON.ToJSON LogTypeMapKeyValuePairProperty where
+  toJSON LogTypeMapKeyValuePairProperty {..}
+    = JSON.object ["Key" JSON..= key, "Value" JSON..= value]
+instance Property "Key" LogTypeMapKeyValuePairProperty where
+  type PropertyType "Key" LogTypeMapKeyValuePairProperty = Value Prelude.Text
+  set newValue LogTypeMapKeyValuePairProperty {..}
+    = LogTypeMapKeyValuePairProperty {key = newValue, ..}
+instance Property "Value" LogTypeMapKeyValuePairProperty where
+  type PropertyType "Value" LogTypeMapKeyValuePairProperty = ValueList Prelude.Text
+  set newValue LogTypeMapKeyValuePairProperty {..}
+    = LogTypeMapKeyValuePairProperty {value = newValue, ..}
diff --git a/gen/Stratosphere/EMRServerless/Application/LogTypeMapKeyValuePairProperty.hs-boot b/gen/Stratosphere/EMRServerless/Application/LogTypeMapKeyValuePairProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/EMRServerless/Application/LogTypeMapKeyValuePairProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.EMRServerless.Application.LogTypeMapKeyValuePairProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data LogTypeMapKeyValuePairProperty :: Prelude.Type
+instance ToResourceProperties LogTypeMapKeyValuePairProperty
+instance Prelude.Eq LogTypeMapKeyValuePairProperty
+instance Prelude.Show LogTypeMapKeyValuePairProperty
+instance JSON.ToJSON LogTypeMapKeyValuePairProperty
diff --git a/gen/Stratosphere/EMRServerless/Application/ManagedPersistenceMonitoringConfigurationProperty.hs b/gen/Stratosphere/EMRServerless/Application/ManagedPersistenceMonitoringConfigurationProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/EMRServerless/Application/ManagedPersistenceMonitoringConfigurationProperty.hs
@@ -0,0 +1,50 @@
+module Stratosphere.EMRServerless.Application.ManagedPersistenceMonitoringConfigurationProperty (
+        ManagedPersistenceMonitoringConfigurationProperty(..),
+        mkManagedPersistenceMonitoringConfigurationProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data ManagedPersistenceMonitoringConfigurationProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-managedpersistencemonitoringconfiguration.html>
+    ManagedPersistenceMonitoringConfigurationProperty {haddock_workaround_ :: (),
+                                                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-managedpersistencemonitoringconfiguration.html#cfn-emrserverless-application-managedpersistencemonitoringconfiguration-enabled>
+                                                       enabled :: (Prelude.Maybe (Value Prelude.Bool)),
+                                                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-managedpersistencemonitoringconfiguration.html#cfn-emrserverless-application-managedpersistencemonitoringconfiguration-encryptionkeyarn>
+                                                       encryptionKeyArn :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkManagedPersistenceMonitoringConfigurationProperty ::
+  ManagedPersistenceMonitoringConfigurationProperty
+mkManagedPersistenceMonitoringConfigurationProperty
+  = ManagedPersistenceMonitoringConfigurationProperty
+      {haddock_workaround_ = (), enabled = Prelude.Nothing,
+       encryptionKeyArn = Prelude.Nothing}
+instance ToResourceProperties ManagedPersistenceMonitoringConfigurationProperty where
+  toResourceProperties
+    ManagedPersistenceMonitoringConfigurationProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::EMRServerless::Application.ManagedPersistenceMonitoringConfiguration",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "Enabled" Prelude.<$> enabled,
+                            (JSON..=) "EncryptionKeyArn" Prelude.<$> encryptionKeyArn])}
+instance JSON.ToJSON ManagedPersistenceMonitoringConfigurationProperty where
+  toJSON ManagedPersistenceMonitoringConfigurationProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "Enabled" Prelude.<$> enabled,
+               (JSON..=) "EncryptionKeyArn" Prelude.<$> encryptionKeyArn]))
+instance Property "Enabled" ManagedPersistenceMonitoringConfigurationProperty where
+  type PropertyType "Enabled" ManagedPersistenceMonitoringConfigurationProperty = Value Prelude.Bool
+  set newValue ManagedPersistenceMonitoringConfigurationProperty {..}
+    = ManagedPersistenceMonitoringConfigurationProperty
+        {enabled = Prelude.pure newValue, ..}
+instance Property "EncryptionKeyArn" ManagedPersistenceMonitoringConfigurationProperty where
+  type PropertyType "EncryptionKeyArn" ManagedPersistenceMonitoringConfigurationProperty = Value Prelude.Text
+  set newValue ManagedPersistenceMonitoringConfigurationProperty {..}
+    = ManagedPersistenceMonitoringConfigurationProperty
+        {encryptionKeyArn = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/EMRServerless/Application/ManagedPersistenceMonitoringConfigurationProperty.hs-boot b/gen/Stratosphere/EMRServerless/Application/ManagedPersistenceMonitoringConfigurationProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/EMRServerless/Application/ManagedPersistenceMonitoringConfigurationProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.EMRServerless.Application.ManagedPersistenceMonitoringConfigurationProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data ManagedPersistenceMonitoringConfigurationProperty :: Prelude.Type
+instance ToResourceProperties ManagedPersistenceMonitoringConfigurationProperty
+instance Prelude.Eq ManagedPersistenceMonitoringConfigurationProperty
+instance Prelude.Show ManagedPersistenceMonitoringConfigurationProperty
+instance JSON.ToJSON ManagedPersistenceMonitoringConfigurationProperty
diff --git a/gen/Stratosphere/EMRServerless/Application/MaximumAllowedResourcesProperty.hs b/gen/Stratosphere/EMRServerless/Application/MaximumAllowedResourcesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/EMRServerless/Application/MaximumAllowedResourcesProperty.hs
@@ -0,0 +1,55 @@
+module Stratosphere.EMRServerless.Application.MaximumAllowedResourcesProperty (
+        MaximumAllowedResourcesProperty(..),
+        mkMaximumAllowedResourcesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data MaximumAllowedResourcesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-maximumallowedresources.html>
+    MaximumAllowedResourcesProperty {haddock_workaround_ :: (),
+                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-maximumallowedresources.html#cfn-emrserverless-application-maximumallowedresources-cpu>
+                                     cpu :: (Value Prelude.Text),
+                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-maximumallowedresources.html#cfn-emrserverless-application-maximumallowedresources-disk>
+                                     disk :: (Prelude.Maybe (Value Prelude.Text)),
+                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-maximumallowedresources.html#cfn-emrserverless-application-maximumallowedresources-memory>
+                                     memory :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkMaximumAllowedResourcesProperty ::
+  Value Prelude.Text
+  -> Value Prelude.Text -> MaximumAllowedResourcesProperty
+mkMaximumAllowedResourcesProperty cpu memory
+  = MaximumAllowedResourcesProperty
+      {haddock_workaround_ = (), cpu = cpu, memory = memory,
+       disk = Prelude.Nothing}
+instance ToResourceProperties MaximumAllowedResourcesProperty where
+  toResourceProperties MaximumAllowedResourcesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::EMRServerless::Application.MaximumAllowedResources",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["Cpu" JSON..= cpu, "Memory" JSON..= memory]
+                           (Prelude.catMaybes [(JSON..=) "Disk" Prelude.<$> disk]))}
+instance JSON.ToJSON MaximumAllowedResourcesProperty where
+  toJSON MaximumAllowedResourcesProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["Cpu" JSON..= cpu, "Memory" JSON..= memory]
+              (Prelude.catMaybes [(JSON..=) "Disk" Prelude.<$> disk])))
+instance Property "Cpu" MaximumAllowedResourcesProperty where
+  type PropertyType "Cpu" MaximumAllowedResourcesProperty = Value Prelude.Text
+  set newValue MaximumAllowedResourcesProperty {..}
+    = MaximumAllowedResourcesProperty {cpu = newValue, ..}
+instance Property "Disk" MaximumAllowedResourcesProperty where
+  type PropertyType "Disk" MaximumAllowedResourcesProperty = Value Prelude.Text
+  set newValue MaximumAllowedResourcesProperty {..}
+    = MaximumAllowedResourcesProperty
+        {disk = Prelude.pure newValue, ..}
+instance Property "Memory" MaximumAllowedResourcesProperty where
+  type PropertyType "Memory" MaximumAllowedResourcesProperty = Value Prelude.Text
+  set newValue MaximumAllowedResourcesProperty {..}
+    = MaximumAllowedResourcesProperty {memory = newValue, ..}
diff --git a/gen/Stratosphere/EMRServerless/Application/MaximumAllowedResourcesProperty.hs-boot b/gen/Stratosphere/EMRServerless/Application/MaximumAllowedResourcesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/EMRServerless/Application/MaximumAllowedResourcesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.EMRServerless.Application.MaximumAllowedResourcesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data MaximumAllowedResourcesProperty :: Prelude.Type
+instance ToResourceProperties MaximumAllowedResourcesProperty
+instance Prelude.Eq MaximumAllowedResourcesProperty
+instance Prelude.Show MaximumAllowedResourcesProperty
+instance JSON.ToJSON MaximumAllowedResourcesProperty
diff --git a/gen/Stratosphere/EMRServerless/Application/MonitoringConfigurationProperty.hs b/gen/Stratosphere/EMRServerless/Application/MonitoringConfigurationProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/EMRServerless/Application/MonitoringConfigurationProperty.hs
@@ -0,0 +1,82 @@
+module Stratosphere.EMRServerless.Application.MonitoringConfigurationProperty (
+        module Exports, MonitoringConfigurationProperty(..),
+        mkMonitoringConfigurationProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.EMRServerless.Application.CloudWatchLoggingConfigurationProperty as Exports
+import {-# SOURCE #-} Stratosphere.EMRServerless.Application.ManagedPersistenceMonitoringConfigurationProperty as Exports
+import {-# SOURCE #-} Stratosphere.EMRServerless.Application.PrometheusMonitoringConfigurationProperty as Exports
+import {-# SOURCE #-} Stratosphere.EMRServerless.Application.S3MonitoringConfigurationProperty as Exports
+import Stratosphere.ResourceProperties
+data MonitoringConfigurationProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-monitoringconfiguration.html>
+    MonitoringConfigurationProperty {haddock_workaround_ :: (),
+                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-monitoringconfiguration.html#cfn-emrserverless-application-monitoringconfiguration-cloudwatchloggingconfiguration>
+                                     cloudWatchLoggingConfiguration :: (Prelude.Maybe CloudWatchLoggingConfigurationProperty),
+                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-monitoringconfiguration.html#cfn-emrserverless-application-monitoringconfiguration-managedpersistencemonitoringconfiguration>
+                                     managedPersistenceMonitoringConfiguration :: (Prelude.Maybe ManagedPersistenceMonitoringConfigurationProperty),
+                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-monitoringconfiguration.html#cfn-emrserverless-application-monitoringconfiguration-prometheusmonitoringconfiguration>
+                                     prometheusMonitoringConfiguration :: (Prelude.Maybe PrometheusMonitoringConfigurationProperty),
+                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-monitoringconfiguration.html#cfn-emrserverless-application-monitoringconfiguration-s3monitoringconfiguration>
+                                     s3MonitoringConfiguration :: (Prelude.Maybe S3MonitoringConfigurationProperty)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkMonitoringConfigurationProperty ::
+  MonitoringConfigurationProperty
+mkMonitoringConfigurationProperty
+  = MonitoringConfigurationProperty
+      {haddock_workaround_ = (),
+       cloudWatchLoggingConfiguration = Prelude.Nothing,
+       managedPersistenceMonitoringConfiguration = Prelude.Nothing,
+       prometheusMonitoringConfiguration = Prelude.Nothing,
+       s3MonitoringConfiguration = Prelude.Nothing}
+instance ToResourceProperties MonitoringConfigurationProperty where
+  toResourceProperties MonitoringConfigurationProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::EMRServerless::Application.MonitoringConfiguration",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "CloudWatchLoggingConfiguration"
+                              Prelude.<$> cloudWatchLoggingConfiguration,
+                            (JSON..=) "ManagedPersistenceMonitoringConfiguration"
+                              Prelude.<$> managedPersistenceMonitoringConfiguration,
+                            (JSON..=) "PrometheusMonitoringConfiguration"
+                              Prelude.<$> prometheusMonitoringConfiguration,
+                            (JSON..=) "S3MonitoringConfiguration"
+                              Prelude.<$> s3MonitoringConfiguration])}
+instance JSON.ToJSON MonitoringConfigurationProperty where
+  toJSON MonitoringConfigurationProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "CloudWatchLoggingConfiguration"
+                 Prelude.<$> cloudWatchLoggingConfiguration,
+               (JSON..=) "ManagedPersistenceMonitoringConfiguration"
+                 Prelude.<$> managedPersistenceMonitoringConfiguration,
+               (JSON..=) "PrometheusMonitoringConfiguration"
+                 Prelude.<$> prometheusMonitoringConfiguration,
+               (JSON..=) "S3MonitoringConfiguration"
+                 Prelude.<$> s3MonitoringConfiguration]))
+instance Property "CloudWatchLoggingConfiguration" MonitoringConfigurationProperty where
+  type PropertyType "CloudWatchLoggingConfiguration" MonitoringConfigurationProperty = CloudWatchLoggingConfigurationProperty
+  set newValue MonitoringConfigurationProperty {..}
+    = MonitoringConfigurationProperty
+        {cloudWatchLoggingConfiguration = Prelude.pure newValue, ..}
+instance Property "ManagedPersistenceMonitoringConfiguration" MonitoringConfigurationProperty where
+  type PropertyType "ManagedPersistenceMonitoringConfiguration" MonitoringConfigurationProperty = ManagedPersistenceMonitoringConfigurationProperty
+  set newValue MonitoringConfigurationProperty {..}
+    = MonitoringConfigurationProperty
+        {managedPersistenceMonitoringConfiguration = Prelude.pure newValue,
+         ..}
+instance Property "PrometheusMonitoringConfiguration" MonitoringConfigurationProperty where
+  type PropertyType "PrometheusMonitoringConfiguration" MonitoringConfigurationProperty = PrometheusMonitoringConfigurationProperty
+  set newValue MonitoringConfigurationProperty {..}
+    = MonitoringConfigurationProperty
+        {prometheusMonitoringConfiguration = Prelude.pure newValue, ..}
+instance Property "S3MonitoringConfiguration" MonitoringConfigurationProperty where
+  type PropertyType "S3MonitoringConfiguration" MonitoringConfigurationProperty = S3MonitoringConfigurationProperty
+  set newValue MonitoringConfigurationProperty {..}
+    = MonitoringConfigurationProperty
+        {s3MonitoringConfiguration = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/EMRServerless/Application/MonitoringConfigurationProperty.hs-boot b/gen/Stratosphere/EMRServerless/Application/MonitoringConfigurationProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/EMRServerless/Application/MonitoringConfigurationProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.EMRServerless.Application.MonitoringConfigurationProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data MonitoringConfigurationProperty :: Prelude.Type
+instance ToResourceProperties MonitoringConfigurationProperty
+instance Prelude.Eq MonitoringConfigurationProperty
+instance Prelude.Show MonitoringConfigurationProperty
+instance JSON.ToJSON MonitoringConfigurationProperty
diff --git a/gen/Stratosphere/EMRServerless/Application/NetworkConfigurationProperty.hs b/gen/Stratosphere/EMRServerless/Application/NetworkConfigurationProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/EMRServerless/Application/NetworkConfigurationProperty.hs
@@ -0,0 +1,47 @@
+module Stratosphere.EMRServerless.Application.NetworkConfigurationProperty (
+        NetworkConfigurationProperty(..), mkNetworkConfigurationProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data NetworkConfigurationProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-networkconfiguration.html>
+    NetworkConfigurationProperty {haddock_workaround_ :: (),
+                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-networkconfiguration.html#cfn-emrserverless-application-networkconfiguration-securitygroupids>
+                                  securityGroupIds :: (Prelude.Maybe (ValueList Prelude.Text)),
+                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-networkconfiguration.html#cfn-emrserverless-application-networkconfiguration-subnetids>
+                                  subnetIds :: (Prelude.Maybe (ValueList Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkNetworkConfigurationProperty :: NetworkConfigurationProperty
+mkNetworkConfigurationProperty
+  = NetworkConfigurationProperty
+      {haddock_workaround_ = (), securityGroupIds = Prelude.Nothing,
+       subnetIds = Prelude.Nothing}
+instance ToResourceProperties NetworkConfigurationProperty where
+  toResourceProperties NetworkConfigurationProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::EMRServerless::Application.NetworkConfiguration",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "SecurityGroupIds" Prelude.<$> securityGroupIds,
+                            (JSON..=) "SubnetIds" Prelude.<$> subnetIds])}
+instance JSON.ToJSON NetworkConfigurationProperty where
+  toJSON NetworkConfigurationProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "SecurityGroupIds" Prelude.<$> securityGroupIds,
+               (JSON..=) "SubnetIds" Prelude.<$> subnetIds]))
+instance Property "SecurityGroupIds" NetworkConfigurationProperty where
+  type PropertyType "SecurityGroupIds" NetworkConfigurationProperty = ValueList Prelude.Text
+  set newValue NetworkConfigurationProperty {..}
+    = NetworkConfigurationProperty
+        {securityGroupIds = Prelude.pure newValue, ..}
+instance Property "SubnetIds" NetworkConfigurationProperty where
+  type PropertyType "SubnetIds" NetworkConfigurationProperty = ValueList Prelude.Text
+  set newValue NetworkConfigurationProperty {..}
+    = NetworkConfigurationProperty
+        {subnetIds = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/EMRServerless/Application/NetworkConfigurationProperty.hs-boot b/gen/Stratosphere/EMRServerless/Application/NetworkConfigurationProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/EMRServerless/Application/NetworkConfigurationProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.EMRServerless.Application.NetworkConfigurationProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data NetworkConfigurationProperty :: Prelude.Type
+instance ToResourceProperties NetworkConfigurationProperty
+instance Prelude.Eq NetworkConfigurationProperty
+instance Prelude.Show NetworkConfigurationProperty
+instance JSON.ToJSON NetworkConfigurationProperty
diff --git a/gen/Stratosphere/EMRServerless/Application/PrometheusMonitoringConfigurationProperty.hs b/gen/Stratosphere/EMRServerless/Application/PrometheusMonitoringConfigurationProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/EMRServerless/Application/PrometheusMonitoringConfigurationProperty.hs
@@ -0,0 +1,39 @@
+module Stratosphere.EMRServerless.Application.PrometheusMonitoringConfigurationProperty (
+        PrometheusMonitoringConfigurationProperty(..),
+        mkPrometheusMonitoringConfigurationProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data PrometheusMonitoringConfigurationProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-prometheusmonitoringconfiguration.html>
+    PrometheusMonitoringConfigurationProperty {haddock_workaround_ :: (),
+                                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-prometheusmonitoringconfiguration.html#cfn-emrserverless-application-prometheusmonitoringconfiguration-remotewriteurl>
+                                               remoteWriteUrl :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkPrometheusMonitoringConfigurationProperty ::
+  PrometheusMonitoringConfigurationProperty
+mkPrometheusMonitoringConfigurationProperty
+  = PrometheusMonitoringConfigurationProperty
+      {haddock_workaround_ = (), remoteWriteUrl = Prelude.Nothing}
+instance ToResourceProperties PrometheusMonitoringConfigurationProperty where
+  toResourceProperties PrometheusMonitoringConfigurationProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::EMRServerless::Application.PrometheusMonitoringConfiguration",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "RemoteWriteUrl" Prelude.<$> remoteWriteUrl])}
+instance JSON.ToJSON PrometheusMonitoringConfigurationProperty where
+  toJSON PrometheusMonitoringConfigurationProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "RemoteWriteUrl" Prelude.<$> remoteWriteUrl]))
+instance Property "RemoteWriteUrl" PrometheusMonitoringConfigurationProperty where
+  type PropertyType "RemoteWriteUrl" PrometheusMonitoringConfigurationProperty = Value Prelude.Text
+  set newValue PrometheusMonitoringConfigurationProperty {..}
+    = PrometheusMonitoringConfigurationProperty
+        {remoteWriteUrl = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/EMRServerless/Application/PrometheusMonitoringConfigurationProperty.hs-boot b/gen/Stratosphere/EMRServerless/Application/PrometheusMonitoringConfigurationProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/EMRServerless/Application/PrometheusMonitoringConfigurationProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.EMRServerless.Application.PrometheusMonitoringConfigurationProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data PrometheusMonitoringConfigurationProperty :: Prelude.Type
+instance ToResourceProperties PrometheusMonitoringConfigurationProperty
+instance Prelude.Eq PrometheusMonitoringConfigurationProperty
+instance Prelude.Show PrometheusMonitoringConfigurationProperty
+instance JSON.ToJSON PrometheusMonitoringConfigurationProperty
diff --git a/gen/Stratosphere/EMRServerless/Application/S3MonitoringConfigurationProperty.hs b/gen/Stratosphere/EMRServerless/Application/S3MonitoringConfigurationProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/EMRServerless/Application/S3MonitoringConfigurationProperty.hs
@@ -0,0 +1,49 @@
+module Stratosphere.EMRServerless.Application.S3MonitoringConfigurationProperty (
+        S3MonitoringConfigurationProperty(..),
+        mkS3MonitoringConfigurationProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data S3MonitoringConfigurationProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-s3monitoringconfiguration.html>
+    S3MonitoringConfigurationProperty {haddock_workaround_ :: (),
+                                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-s3monitoringconfiguration.html#cfn-emrserverless-application-s3monitoringconfiguration-encryptionkeyarn>
+                                       encryptionKeyArn :: (Prelude.Maybe (Value Prelude.Text)),
+                                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-s3monitoringconfiguration.html#cfn-emrserverless-application-s3monitoringconfiguration-loguri>
+                                       logUri :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkS3MonitoringConfigurationProperty ::
+  S3MonitoringConfigurationProperty
+mkS3MonitoringConfigurationProperty
+  = S3MonitoringConfigurationProperty
+      {haddock_workaround_ = (), encryptionKeyArn = Prelude.Nothing,
+       logUri = Prelude.Nothing}
+instance ToResourceProperties S3MonitoringConfigurationProperty where
+  toResourceProperties S3MonitoringConfigurationProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::EMRServerless::Application.S3MonitoringConfiguration",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "EncryptionKeyArn" Prelude.<$> encryptionKeyArn,
+                            (JSON..=) "LogUri" Prelude.<$> logUri])}
+instance JSON.ToJSON S3MonitoringConfigurationProperty where
+  toJSON S3MonitoringConfigurationProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "EncryptionKeyArn" Prelude.<$> encryptionKeyArn,
+               (JSON..=) "LogUri" Prelude.<$> logUri]))
+instance Property "EncryptionKeyArn" S3MonitoringConfigurationProperty where
+  type PropertyType "EncryptionKeyArn" S3MonitoringConfigurationProperty = Value Prelude.Text
+  set newValue S3MonitoringConfigurationProperty {..}
+    = S3MonitoringConfigurationProperty
+        {encryptionKeyArn = Prelude.pure newValue, ..}
+instance Property "LogUri" S3MonitoringConfigurationProperty where
+  type PropertyType "LogUri" S3MonitoringConfigurationProperty = Value Prelude.Text
+  set newValue S3MonitoringConfigurationProperty {..}
+    = S3MonitoringConfigurationProperty
+        {logUri = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/EMRServerless/Application/S3MonitoringConfigurationProperty.hs-boot b/gen/Stratosphere/EMRServerless/Application/S3MonitoringConfigurationProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/EMRServerless/Application/S3MonitoringConfigurationProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.EMRServerless.Application.S3MonitoringConfigurationProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data S3MonitoringConfigurationProperty :: Prelude.Type
+instance ToResourceProperties S3MonitoringConfigurationProperty
+instance Prelude.Eq S3MonitoringConfigurationProperty
+instance Prelude.Show S3MonitoringConfigurationProperty
+instance JSON.ToJSON S3MonitoringConfigurationProperty
diff --git a/gen/Stratosphere/EMRServerless/Application/SchedulerConfigurationProperty.hs b/gen/Stratosphere/EMRServerless/Application/SchedulerConfigurationProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/EMRServerless/Application/SchedulerConfigurationProperty.hs
@@ -0,0 +1,48 @@
+module Stratosphere.EMRServerless.Application.SchedulerConfigurationProperty (
+        SchedulerConfigurationProperty(..),
+        mkSchedulerConfigurationProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data SchedulerConfigurationProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-schedulerconfiguration.html>
+    SchedulerConfigurationProperty {haddock_workaround_ :: (),
+                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-schedulerconfiguration.html#cfn-emrserverless-application-schedulerconfiguration-maxconcurrentruns>
+                                    maxConcurrentRuns :: (Prelude.Maybe (Value Prelude.Integer)),
+                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-schedulerconfiguration.html#cfn-emrserverless-application-schedulerconfiguration-queuetimeoutminutes>
+                                    queueTimeoutMinutes :: (Prelude.Maybe (Value Prelude.Integer))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkSchedulerConfigurationProperty :: SchedulerConfigurationProperty
+mkSchedulerConfigurationProperty
+  = SchedulerConfigurationProperty
+      {haddock_workaround_ = (), maxConcurrentRuns = Prelude.Nothing,
+       queueTimeoutMinutes = Prelude.Nothing}
+instance ToResourceProperties SchedulerConfigurationProperty where
+  toResourceProperties SchedulerConfigurationProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::EMRServerless::Application.SchedulerConfiguration",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "MaxConcurrentRuns" Prelude.<$> maxConcurrentRuns,
+                            (JSON..=) "QueueTimeoutMinutes" Prelude.<$> queueTimeoutMinutes])}
+instance JSON.ToJSON SchedulerConfigurationProperty where
+  toJSON SchedulerConfigurationProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "MaxConcurrentRuns" Prelude.<$> maxConcurrentRuns,
+               (JSON..=) "QueueTimeoutMinutes" Prelude.<$> queueTimeoutMinutes]))
+instance Property "MaxConcurrentRuns" SchedulerConfigurationProperty where
+  type PropertyType "MaxConcurrentRuns" SchedulerConfigurationProperty = Value Prelude.Integer
+  set newValue SchedulerConfigurationProperty {..}
+    = SchedulerConfigurationProperty
+        {maxConcurrentRuns = Prelude.pure newValue, ..}
+instance Property "QueueTimeoutMinutes" SchedulerConfigurationProperty where
+  type PropertyType "QueueTimeoutMinutes" SchedulerConfigurationProperty = Value Prelude.Integer
+  set newValue SchedulerConfigurationProperty {..}
+    = SchedulerConfigurationProperty
+        {queueTimeoutMinutes = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/EMRServerless/Application/SchedulerConfigurationProperty.hs-boot b/gen/Stratosphere/EMRServerless/Application/SchedulerConfigurationProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/EMRServerless/Application/SchedulerConfigurationProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.EMRServerless.Application.SchedulerConfigurationProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data SchedulerConfigurationProperty :: Prelude.Type
+instance ToResourceProperties SchedulerConfigurationProperty
+instance Prelude.Eq SchedulerConfigurationProperty
+instance Prelude.Show SchedulerConfigurationProperty
+instance JSON.ToJSON SchedulerConfigurationProperty
diff --git a/gen/Stratosphere/EMRServerless/Application/WorkerConfigurationProperty.hs b/gen/Stratosphere/EMRServerless/Application/WorkerConfigurationProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/EMRServerless/Application/WorkerConfigurationProperty.hs
@@ -0,0 +1,64 @@
+module Stratosphere.EMRServerless.Application.WorkerConfigurationProperty (
+        WorkerConfigurationProperty(..), mkWorkerConfigurationProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data WorkerConfigurationProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-workerconfiguration.html>
+    WorkerConfigurationProperty {haddock_workaround_ :: (),
+                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-workerconfiguration.html#cfn-emrserverless-application-workerconfiguration-cpu>
+                                 cpu :: (Value Prelude.Text),
+                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-workerconfiguration.html#cfn-emrserverless-application-workerconfiguration-disk>
+                                 disk :: (Prelude.Maybe (Value Prelude.Text)),
+                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-workerconfiguration.html#cfn-emrserverless-application-workerconfiguration-disktype>
+                                 diskType :: (Prelude.Maybe (Value Prelude.Text)),
+                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-workerconfiguration.html#cfn-emrserverless-application-workerconfiguration-memory>
+                                 memory :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkWorkerConfigurationProperty ::
+  Value Prelude.Text
+  -> Value Prelude.Text -> WorkerConfigurationProperty
+mkWorkerConfigurationProperty cpu memory
+  = WorkerConfigurationProperty
+      {haddock_workaround_ = (), cpu = cpu, memory = memory,
+       disk = Prelude.Nothing, diskType = Prelude.Nothing}
+instance ToResourceProperties WorkerConfigurationProperty where
+  toResourceProperties WorkerConfigurationProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::EMRServerless::Application.WorkerConfiguration",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["Cpu" JSON..= cpu, "Memory" JSON..= memory]
+                           (Prelude.catMaybes
+                              [(JSON..=) "Disk" Prelude.<$> disk,
+                               (JSON..=) "DiskType" Prelude.<$> diskType]))}
+instance JSON.ToJSON WorkerConfigurationProperty where
+  toJSON WorkerConfigurationProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["Cpu" JSON..= cpu, "Memory" JSON..= memory]
+              (Prelude.catMaybes
+                 [(JSON..=) "Disk" Prelude.<$> disk,
+                  (JSON..=) "DiskType" Prelude.<$> diskType])))
+instance Property "Cpu" WorkerConfigurationProperty where
+  type PropertyType "Cpu" WorkerConfigurationProperty = Value Prelude.Text
+  set newValue WorkerConfigurationProperty {..}
+    = WorkerConfigurationProperty {cpu = newValue, ..}
+instance Property "Disk" WorkerConfigurationProperty where
+  type PropertyType "Disk" WorkerConfigurationProperty = Value Prelude.Text
+  set newValue WorkerConfigurationProperty {..}
+    = WorkerConfigurationProperty {disk = Prelude.pure newValue, ..}
+instance Property "DiskType" WorkerConfigurationProperty where
+  type PropertyType "DiskType" WorkerConfigurationProperty = Value Prelude.Text
+  set newValue WorkerConfigurationProperty {..}
+    = WorkerConfigurationProperty
+        {diskType = Prelude.pure newValue, ..}
+instance Property "Memory" WorkerConfigurationProperty where
+  type PropertyType "Memory" WorkerConfigurationProperty = Value Prelude.Text
+  set newValue WorkerConfigurationProperty {..}
+    = WorkerConfigurationProperty {memory = newValue, ..}
diff --git a/gen/Stratosphere/EMRServerless/Application/WorkerConfigurationProperty.hs-boot b/gen/Stratosphere/EMRServerless/Application/WorkerConfigurationProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/EMRServerless/Application/WorkerConfigurationProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.EMRServerless.Application.WorkerConfigurationProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data WorkerConfigurationProperty :: Prelude.Type
+instance ToResourceProperties WorkerConfigurationProperty
+instance Prelude.Eq WorkerConfigurationProperty
+instance Prelude.Show WorkerConfigurationProperty
+instance JSON.ToJSON WorkerConfigurationProperty
diff --git a/gen/Stratosphere/EMRServerless/Application/WorkerTypeSpecificationInputProperty.hs b/gen/Stratosphere/EMRServerless/Application/WorkerTypeSpecificationInputProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/EMRServerless/Application/WorkerTypeSpecificationInputProperty.hs
@@ -0,0 +1,39 @@
+module Stratosphere.EMRServerless.Application.WorkerTypeSpecificationInputProperty (
+        module Exports, WorkerTypeSpecificationInputProperty(..),
+        mkWorkerTypeSpecificationInputProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.EMRServerless.Application.ImageConfigurationInputProperty as Exports
+import Stratosphere.ResourceProperties
+data WorkerTypeSpecificationInputProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-workertypespecificationinput.html>
+    WorkerTypeSpecificationInputProperty {haddock_workaround_ :: (),
+                                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-workertypespecificationinput.html#cfn-emrserverless-application-workertypespecificationinput-imageconfiguration>
+                                          imageConfiguration :: (Prelude.Maybe ImageConfigurationInputProperty)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkWorkerTypeSpecificationInputProperty ::
+  WorkerTypeSpecificationInputProperty
+mkWorkerTypeSpecificationInputProperty
+  = WorkerTypeSpecificationInputProperty
+      {haddock_workaround_ = (), imageConfiguration = Prelude.Nothing}
+instance ToResourceProperties WorkerTypeSpecificationInputProperty where
+  toResourceProperties WorkerTypeSpecificationInputProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::EMRServerless::Application.WorkerTypeSpecificationInput",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "ImageConfiguration" Prelude.<$> imageConfiguration])}
+instance JSON.ToJSON WorkerTypeSpecificationInputProperty where
+  toJSON WorkerTypeSpecificationInputProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "ImageConfiguration" Prelude.<$> imageConfiguration]))
+instance Property "ImageConfiguration" WorkerTypeSpecificationInputProperty where
+  type PropertyType "ImageConfiguration" WorkerTypeSpecificationInputProperty = ImageConfigurationInputProperty
+  set newValue WorkerTypeSpecificationInputProperty {..}
+    = WorkerTypeSpecificationInputProperty
+        {imageConfiguration = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/EMRServerless/Application/WorkerTypeSpecificationInputProperty.hs-boot b/gen/Stratosphere/EMRServerless/Application/WorkerTypeSpecificationInputProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/EMRServerless/Application/WorkerTypeSpecificationInputProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.EMRServerless.Application.WorkerTypeSpecificationInputProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data WorkerTypeSpecificationInputProperty :: Prelude.Type
+instance ToResourceProperties WorkerTypeSpecificationInputProperty
+instance Prelude.Eq WorkerTypeSpecificationInputProperty
+instance Prelude.Show WorkerTypeSpecificationInputProperty
+instance JSON.ToJSON WorkerTypeSpecificationInputProperty
diff --git a/stratosphere-emrserverless.cabal b/stratosphere-emrserverless.cabal
new file mode 100644
--- /dev/null
+++ b/stratosphere-emrserverless.cabal
@@ -0,0 +1,92 @@
+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-emrserverless
+version:        1.0.0
+synopsis:       Stratosphere integration for AWS EMRServerless.
+description:    Integration into stratosphere to generate resources and properties for AWS EMRServerless
+category:       AWS, Cloud, EMRServerless
+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.EMRServerless.Application
+      Stratosphere.EMRServerless.Application.AutoStartConfigurationProperty
+      Stratosphere.EMRServerless.Application.AutoStopConfigurationProperty
+      Stratosphere.EMRServerless.Application.CloudWatchLoggingConfigurationProperty
+      Stratosphere.EMRServerless.Application.ConfigurationObjectProperty
+      Stratosphere.EMRServerless.Application.IdentityCenterConfigurationProperty
+      Stratosphere.EMRServerless.Application.ImageConfigurationInputProperty
+      Stratosphere.EMRServerless.Application.InitialCapacityConfigKeyValuePairProperty
+      Stratosphere.EMRServerless.Application.InitialCapacityConfigProperty
+      Stratosphere.EMRServerless.Application.InteractiveConfigurationProperty
+      Stratosphere.EMRServerless.Application.LogTypeMapKeyValuePairProperty
+      Stratosphere.EMRServerless.Application.ManagedPersistenceMonitoringConfigurationProperty
+      Stratosphere.EMRServerless.Application.MaximumAllowedResourcesProperty
+      Stratosphere.EMRServerless.Application.MonitoringConfigurationProperty
+      Stratosphere.EMRServerless.Application.NetworkConfigurationProperty
+      Stratosphere.EMRServerless.Application.PrometheusMonitoringConfigurationProperty
+      Stratosphere.EMRServerless.Application.S3MonitoringConfigurationProperty
+      Stratosphere.EMRServerless.Application.SchedulerConfigurationProperty
+      Stratosphere.EMRServerless.Application.WorkerConfigurationProperty
+      Stratosphere.EMRServerless.Application.WorkerTypeSpecificationInputProperty
+  other-modules:
+      Paths_stratosphere_emrserverless
+  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
