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/ElasticBeanstalk/Application.hs b/gen/Stratosphere/ElasticBeanstalk/Application.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/ElasticBeanstalk/Application.hs
@@ -0,0 +1,57 @@
+module Stratosphere.ElasticBeanstalk.Application (
+        module Exports, Application(..), mkApplication
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.ElasticBeanstalk.Application.ApplicationResourceLifecycleConfigProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data Application
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-application.html>
+    Application {haddock_workaround_ :: (),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-application.html#cfn-elasticbeanstalk-application-applicationname>
+                 applicationName :: (Prelude.Maybe (Value Prelude.Text)),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-application.html#cfn-elasticbeanstalk-application-description>
+                 description :: (Prelude.Maybe (Value Prelude.Text)),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-application.html#cfn-elasticbeanstalk-application-resourcelifecycleconfig>
+                 resourceLifecycleConfig :: (Prelude.Maybe ApplicationResourceLifecycleConfigProperty)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkApplication :: Application
+mkApplication
+  = Application
+      {haddock_workaround_ = (), applicationName = Prelude.Nothing,
+       description = Prelude.Nothing,
+       resourceLifecycleConfig = Prelude.Nothing}
+instance ToResourceProperties Application where
+  toResourceProperties Application {..}
+    = ResourceProperties
+        {awsType = "AWS::ElasticBeanstalk::Application",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "ApplicationName" Prelude.<$> applicationName,
+                            (JSON..=) "Description" Prelude.<$> description,
+                            (JSON..=) "ResourceLifecycleConfig"
+                              Prelude.<$> resourceLifecycleConfig])}
+instance JSON.ToJSON Application where
+  toJSON Application {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "ApplicationName" Prelude.<$> applicationName,
+               (JSON..=) "Description" Prelude.<$> description,
+               (JSON..=) "ResourceLifecycleConfig"
+                 Prelude.<$> resourceLifecycleConfig]))
+instance Property "ApplicationName" Application where
+  type PropertyType "ApplicationName" Application = Value Prelude.Text
+  set newValue Application {..}
+    = Application {applicationName = Prelude.pure newValue, ..}
+instance Property "Description" Application where
+  type PropertyType "Description" Application = Value Prelude.Text
+  set newValue Application {..}
+    = Application {description = Prelude.pure newValue, ..}
+instance Property "ResourceLifecycleConfig" Application where
+  type PropertyType "ResourceLifecycleConfig" Application = ApplicationResourceLifecycleConfigProperty
+  set newValue Application {..}
+    = Application {resourceLifecycleConfig = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/ElasticBeanstalk/Application/ApplicationResourceLifecycleConfigProperty.hs b/gen/Stratosphere/ElasticBeanstalk/Application/ApplicationResourceLifecycleConfigProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/ElasticBeanstalk/Application/ApplicationResourceLifecycleConfigProperty.hs
@@ -0,0 +1,53 @@
+module Stratosphere.ElasticBeanstalk.Application.ApplicationResourceLifecycleConfigProperty (
+        module Exports, ApplicationResourceLifecycleConfigProperty(..),
+        mkApplicationResourceLifecycleConfigProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.ElasticBeanstalk.Application.ApplicationVersionLifecycleConfigProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data ApplicationResourceLifecycleConfigProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-applicationresourcelifecycleconfig.html>
+    ApplicationResourceLifecycleConfigProperty {haddock_workaround_ :: (),
+                                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-applicationresourcelifecycleconfig.html#cfn-elasticbeanstalk-application-applicationresourcelifecycleconfig-servicerole>
+                                                serviceRole :: (Prelude.Maybe (Value Prelude.Text)),
+                                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-applicationresourcelifecycleconfig.html#cfn-elasticbeanstalk-application-applicationresourcelifecycleconfig-versionlifecycleconfig>
+                                                versionLifecycleConfig :: (Prelude.Maybe ApplicationVersionLifecycleConfigProperty)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkApplicationResourceLifecycleConfigProperty ::
+  ApplicationResourceLifecycleConfigProperty
+mkApplicationResourceLifecycleConfigProperty
+  = ApplicationResourceLifecycleConfigProperty
+      {haddock_workaround_ = (), serviceRole = Prelude.Nothing,
+       versionLifecycleConfig = Prelude.Nothing}
+instance ToResourceProperties ApplicationResourceLifecycleConfigProperty where
+  toResourceProperties
+    ApplicationResourceLifecycleConfigProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::ElasticBeanstalk::Application.ApplicationResourceLifecycleConfig",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "ServiceRole" Prelude.<$> serviceRole,
+                            (JSON..=) "VersionLifecycleConfig"
+                              Prelude.<$> versionLifecycleConfig])}
+instance JSON.ToJSON ApplicationResourceLifecycleConfigProperty where
+  toJSON ApplicationResourceLifecycleConfigProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "ServiceRole" Prelude.<$> serviceRole,
+               (JSON..=) "VersionLifecycleConfig"
+                 Prelude.<$> versionLifecycleConfig]))
+instance Property "ServiceRole" ApplicationResourceLifecycleConfigProperty where
+  type PropertyType "ServiceRole" ApplicationResourceLifecycleConfigProperty = Value Prelude.Text
+  set newValue ApplicationResourceLifecycleConfigProperty {..}
+    = ApplicationResourceLifecycleConfigProperty
+        {serviceRole = Prelude.pure newValue, ..}
+instance Property "VersionLifecycleConfig" ApplicationResourceLifecycleConfigProperty where
+  type PropertyType "VersionLifecycleConfig" ApplicationResourceLifecycleConfigProperty = ApplicationVersionLifecycleConfigProperty
+  set newValue ApplicationResourceLifecycleConfigProperty {..}
+    = ApplicationResourceLifecycleConfigProperty
+        {versionLifecycleConfig = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/ElasticBeanstalk/Application/ApplicationResourceLifecycleConfigProperty.hs-boot b/gen/Stratosphere/ElasticBeanstalk/Application/ApplicationResourceLifecycleConfigProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/ElasticBeanstalk/Application/ApplicationResourceLifecycleConfigProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.ElasticBeanstalk.Application.ApplicationResourceLifecycleConfigProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data ApplicationResourceLifecycleConfigProperty :: Prelude.Type
+instance ToResourceProperties ApplicationResourceLifecycleConfigProperty
+instance Prelude.Eq ApplicationResourceLifecycleConfigProperty
+instance Prelude.Show ApplicationResourceLifecycleConfigProperty
+instance JSON.ToJSON ApplicationResourceLifecycleConfigProperty
diff --git a/gen/Stratosphere/ElasticBeanstalk/Application/ApplicationVersionLifecycleConfigProperty.hs b/gen/Stratosphere/ElasticBeanstalk/Application/ApplicationVersionLifecycleConfigProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/ElasticBeanstalk/Application/ApplicationVersionLifecycleConfigProperty.hs
@@ -0,0 +1,50 @@
+module Stratosphere.ElasticBeanstalk.Application.ApplicationVersionLifecycleConfigProperty (
+        module Exports, ApplicationVersionLifecycleConfigProperty(..),
+        mkApplicationVersionLifecycleConfigProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.ElasticBeanstalk.Application.MaxAgeRuleProperty as Exports
+import {-# SOURCE #-} Stratosphere.ElasticBeanstalk.Application.MaxCountRuleProperty as Exports
+import Stratosphere.ResourceProperties
+data ApplicationVersionLifecycleConfigProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-applicationversionlifecycleconfig.html>
+    ApplicationVersionLifecycleConfigProperty {haddock_workaround_ :: (),
+                                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-applicationversionlifecycleconfig.html#cfn-elasticbeanstalk-application-applicationversionlifecycleconfig-maxagerule>
+                                               maxAgeRule :: (Prelude.Maybe MaxAgeRuleProperty),
+                                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-applicationversionlifecycleconfig.html#cfn-elasticbeanstalk-application-applicationversionlifecycleconfig-maxcountrule>
+                                               maxCountRule :: (Prelude.Maybe MaxCountRuleProperty)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkApplicationVersionLifecycleConfigProperty ::
+  ApplicationVersionLifecycleConfigProperty
+mkApplicationVersionLifecycleConfigProperty
+  = ApplicationVersionLifecycleConfigProperty
+      {haddock_workaround_ = (), maxAgeRule = Prelude.Nothing,
+       maxCountRule = Prelude.Nothing}
+instance ToResourceProperties ApplicationVersionLifecycleConfigProperty where
+  toResourceProperties ApplicationVersionLifecycleConfigProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::ElasticBeanstalk::Application.ApplicationVersionLifecycleConfig",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "MaxAgeRule" Prelude.<$> maxAgeRule,
+                            (JSON..=) "MaxCountRule" Prelude.<$> maxCountRule])}
+instance JSON.ToJSON ApplicationVersionLifecycleConfigProperty where
+  toJSON ApplicationVersionLifecycleConfigProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "MaxAgeRule" Prelude.<$> maxAgeRule,
+               (JSON..=) "MaxCountRule" Prelude.<$> maxCountRule]))
+instance Property "MaxAgeRule" ApplicationVersionLifecycleConfigProperty where
+  type PropertyType "MaxAgeRule" ApplicationVersionLifecycleConfigProperty = MaxAgeRuleProperty
+  set newValue ApplicationVersionLifecycleConfigProperty {..}
+    = ApplicationVersionLifecycleConfigProperty
+        {maxAgeRule = Prelude.pure newValue, ..}
+instance Property "MaxCountRule" ApplicationVersionLifecycleConfigProperty where
+  type PropertyType "MaxCountRule" ApplicationVersionLifecycleConfigProperty = MaxCountRuleProperty
+  set newValue ApplicationVersionLifecycleConfigProperty {..}
+    = ApplicationVersionLifecycleConfigProperty
+        {maxCountRule = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/ElasticBeanstalk/Application/ApplicationVersionLifecycleConfigProperty.hs-boot b/gen/Stratosphere/ElasticBeanstalk/Application/ApplicationVersionLifecycleConfigProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/ElasticBeanstalk/Application/ApplicationVersionLifecycleConfigProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.ElasticBeanstalk.Application.ApplicationVersionLifecycleConfigProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data ApplicationVersionLifecycleConfigProperty :: Prelude.Type
+instance ToResourceProperties ApplicationVersionLifecycleConfigProperty
+instance Prelude.Eq ApplicationVersionLifecycleConfigProperty
+instance Prelude.Show ApplicationVersionLifecycleConfigProperty
+instance JSON.ToJSON ApplicationVersionLifecycleConfigProperty
diff --git a/gen/Stratosphere/ElasticBeanstalk/Application/MaxAgeRuleProperty.hs b/gen/Stratosphere/ElasticBeanstalk/Application/MaxAgeRuleProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/ElasticBeanstalk/Application/MaxAgeRuleProperty.hs
@@ -0,0 +1,54 @@
+module Stratosphere.ElasticBeanstalk.Application.MaxAgeRuleProperty (
+        MaxAgeRuleProperty(..), mkMaxAgeRuleProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data MaxAgeRuleProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-maxagerule.html>
+    MaxAgeRuleProperty {haddock_workaround_ :: (),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-maxagerule.html#cfn-elasticbeanstalk-application-maxagerule-deletesourcefroms3>
+                        deleteSourceFromS3 :: (Prelude.Maybe (Value Prelude.Bool)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-maxagerule.html#cfn-elasticbeanstalk-application-maxagerule-enabled>
+                        enabled :: (Prelude.Maybe (Value Prelude.Bool)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-maxagerule.html#cfn-elasticbeanstalk-application-maxagerule-maxageindays>
+                        maxAgeInDays :: (Prelude.Maybe (Value Prelude.Integer))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkMaxAgeRuleProperty :: MaxAgeRuleProperty
+mkMaxAgeRuleProperty
+  = MaxAgeRuleProperty
+      {haddock_workaround_ = (), deleteSourceFromS3 = Prelude.Nothing,
+       enabled = Prelude.Nothing, maxAgeInDays = Prelude.Nothing}
+instance ToResourceProperties MaxAgeRuleProperty where
+  toResourceProperties MaxAgeRuleProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::ElasticBeanstalk::Application.MaxAgeRule",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "DeleteSourceFromS3" Prelude.<$> deleteSourceFromS3,
+                            (JSON..=) "Enabled" Prelude.<$> enabled,
+                            (JSON..=) "MaxAgeInDays" Prelude.<$> maxAgeInDays])}
+instance JSON.ToJSON MaxAgeRuleProperty where
+  toJSON MaxAgeRuleProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "DeleteSourceFromS3" Prelude.<$> deleteSourceFromS3,
+               (JSON..=) "Enabled" Prelude.<$> enabled,
+               (JSON..=) "MaxAgeInDays" Prelude.<$> maxAgeInDays]))
+instance Property "DeleteSourceFromS3" MaxAgeRuleProperty where
+  type PropertyType "DeleteSourceFromS3" MaxAgeRuleProperty = Value Prelude.Bool
+  set newValue MaxAgeRuleProperty {..}
+    = MaxAgeRuleProperty
+        {deleteSourceFromS3 = Prelude.pure newValue, ..}
+instance Property "Enabled" MaxAgeRuleProperty where
+  type PropertyType "Enabled" MaxAgeRuleProperty = Value Prelude.Bool
+  set newValue MaxAgeRuleProperty {..}
+    = MaxAgeRuleProperty {enabled = Prelude.pure newValue, ..}
+instance Property "MaxAgeInDays" MaxAgeRuleProperty where
+  type PropertyType "MaxAgeInDays" MaxAgeRuleProperty = Value Prelude.Integer
+  set newValue MaxAgeRuleProperty {..}
+    = MaxAgeRuleProperty {maxAgeInDays = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/ElasticBeanstalk/Application/MaxAgeRuleProperty.hs-boot b/gen/Stratosphere/ElasticBeanstalk/Application/MaxAgeRuleProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/ElasticBeanstalk/Application/MaxAgeRuleProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.ElasticBeanstalk.Application.MaxAgeRuleProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data MaxAgeRuleProperty :: Prelude.Type
+instance ToResourceProperties MaxAgeRuleProperty
+instance Prelude.Eq MaxAgeRuleProperty
+instance Prelude.Show MaxAgeRuleProperty
+instance JSON.ToJSON MaxAgeRuleProperty
diff --git a/gen/Stratosphere/ElasticBeanstalk/Application/MaxCountRuleProperty.hs b/gen/Stratosphere/ElasticBeanstalk/Application/MaxCountRuleProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/ElasticBeanstalk/Application/MaxCountRuleProperty.hs
@@ -0,0 +1,54 @@
+module Stratosphere.ElasticBeanstalk.Application.MaxCountRuleProperty (
+        MaxCountRuleProperty(..), mkMaxCountRuleProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data MaxCountRuleProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-maxcountrule.html>
+    MaxCountRuleProperty {haddock_workaround_ :: (),
+                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-maxcountrule.html#cfn-elasticbeanstalk-application-maxcountrule-deletesourcefroms3>
+                          deleteSourceFromS3 :: (Prelude.Maybe (Value Prelude.Bool)),
+                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-maxcountrule.html#cfn-elasticbeanstalk-application-maxcountrule-enabled>
+                          enabled :: (Prelude.Maybe (Value Prelude.Bool)),
+                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-maxcountrule.html#cfn-elasticbeanstalk-application-maxcountrule-maxcount>
+                          maxCount :: (Prelude.Maybe (Value Prelude.Integer))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkMaxCountRuleProperty :: MaxCountRuleProperty
+mkMaxCountRuleProperty
+  = MaxCountRuleProperty
+      {haddock_workaround_ = (), deleteSourceFromS3 = Prelude.Nothing,
+       enabled = Prelude.Nothing, maxCount = Prelude.Nothing}
+instance ToResourceProperties MaxCountRuleProperty where
+  toResourceProperties MaxCountRuleProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::ElasticBeanstalk::Application.MaxCountRule",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "DeleteSourceFromS3" Prelude.<$> deleteSourceFromS3,
+                            (JSON..=) "Enabled" Prelude.<$> enabled,
+                            (JSON..=) "MaxCount" Prelude.<$> maxCount])}
+instance JSON.ToJSON MaxCountRuleProperty where
+  toJSON MaxCountRuleProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "DeleteSourceFromS3" Prelude.<$> deleteSourceFromS3,
+               (JSON..=) "Enabled" Prelude.<$> enabled,
+               (JSON..=) "MaxCount" Prelude.<$> maxCount]))
+instance Property "DeleteSourceFromS3" MaxCountRuleProperty where
+  type PropertyType "DeleteSourceFromS3" MaxCountRuleProperty = Value Prelude.Bool
+  set newValue MaxCountRuleProperty {..}
+    = MaxCountRuleProperty
+        {deleteSourceFromS3 = Prelude.pure newValue, ..}
+instance Property "Enabled" MaxCountRuleProperty where
+  type PropertyType "Enabled" MaxCountRuleProperty = Value Prelude.Bool
+  set newValue MaxCountRuleProperty {..}
+    = MaxCountRuleProperty {enabled = Prelude.pure newValue, ..}
+instance Property "MaxCount" MaxCountRuleProperty where
+  type PropertyType "MaxCount" MaxCountRuleProperty = Value Prelude.Integer
+  set newValue MaxCountRuleProperty {..}
+    = MaxCountRuleProperty {maxCount = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/ElasticBeanstalk/Application/MaxCountRuleProperty.hs-boot b/gen/Stratosphere/ElasticBeanstalk/Application/MaxCountRuleProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/ElasticBeanstalk/Application/MaxCountRuleProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.ElasticBeanstalk.Application.MaxCountRuleProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data MaxCountRuleProperty :: Prelude.Type
+instance ToResourceProperties MaxCountRuleProperty
+instance Prelude.Eq MaxCountRuleProperty
+instance Prelude.Show MaxCountRuleProperty
+instance JSON.ToJSON MaxCountRuleProperty
diff --git a/gen/Stratosphere/ElasticBeanstalk/ApplicationVersion.hs b/gen/Stratosphere/ElasticBeanstalk/ApplicationVersion.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/ElasticBeanstalk/ApplicationVersion.hs
@@ -0,0 +1,57 @@
+module Stratosphere.ElasticBeanstalk.ApplicationVersion (
+        module Exports, ApplicationVersion(..), mkApplicationVersion
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.ElasticBeanstalk.ApplicationVersion.SourceBundleProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data ApplicationVersion
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-applicationversion.html>
+    ApplicationVersion {haddock_workaround_ :: (),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-applicationversion.html#cfn-elasticbeanstalk-applicationversion-applicationname>
+                        applicationName :: (Value Prelude.Text),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-applicationversion.html#cfn-elasticbeanstalk-applicationversion-description>
+                        description :: (Prelude.Maybe (Value Prelude.Text)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-applicationversion.html#cfn-elasticbeanstalk-applicationversion-sourcebundle>
+                        sourceBundle :: SourceBundleProperty}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkApplicationVersion ::
+  Value Prelude.Text -> SourceBundleProperty -> ApplicationVersion
+mkApplicationVersion applicationName sourceBundle
+  = ApplicationVersion
+      {haddock_workaround_ = (), applicationName = applicationName,
+       sourceBundle = sourceBundle, description = Prelude.Nothing}
+instance ToResourceProperties ApplicationVersion where
+  toResourceProperties ApplicationVersion {..}
+    = ResourceProperties
+        {awsType = "AWS::ElasticBeanstalk::ApplicationVersion",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["ApplicationName" JSON..= applicationName,
+                            "SourceBundle" JSON..= sourceBundle]
+                           (Prelude.catMaybes
+                              [(JSON..=) "Description" Prelude.<$> description]))}
+instance JSON.ToJSON ApplicationVersion where
+  toJSON ApplicationVersion {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["ApplicationName" JSON..= applicationName,
+               "SourceBundle" JSON..= sourceBundle]
+              (Prelude.catMaybes
+                 [(JSON..=) "Description" Prelude.<$> description])))
+instance Property "ApplicationName" ApplicationVersion where
+  type PropertyType "ApplicationName" ApplicationVersion = Value Prelude.Text
+  set newValue ApplicationVersion {..}
+    = ApplicationVersion {applicationName = newValue, ..}
+instance Property "Description" ApplicationVersion where
+  type PropertyType "Description" ApplicationVersion = Value Prelude.Text
+  set newValue ApplicationVersion {..}
+    = ApplicationVersion {description = Prelude.pure newValue, ..}
+instance Property "SourceBundle" ApplicationVersion where
+  type PropertyType "SourceBundle" ApplicationVersion = SourceBundleProperty
+  set newValue ApplicationVersion {..}
+    = ApplicationVersion {sourceBundle = newValue, ..}
diff --git a/gen/Stratosphere/ElasticBeanstalk/ApplicationVersion/SourceBundleProperty.hs b/gen/Stratosphere/ElasticBeanstalk/ApplicationVersion/SourceBundleProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/ElasticBeanstalk/ApplicationVersion/SourceBundleProperty.hs
@@ -0,0 +1,38 @@
+module Stratosphere.ElasticBeanstalk.ApplicationVersion.SourceBundleProperty (
+        SourceBundleProperty(..), mkSourceBundleProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data SourceBundleProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-applicationversion-sourcebundle.html>
+    SourceBundleProperty {haddock_workaround_ :: (),
+                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-applicationversion-sourcebundle.html#cfn-elasticbeanstalk-applicationversion-sourcebundle-s3bucket>
+                          s3Bucket :: (Value Prelude.Text),
+                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-applicationversion-sourcebundle.html#cfn-elasticbeanstalk-applicationversion-sourcebundle-s3key>
+                          s3Key :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkSourceBundleProperty ::
+  Value Prelude.Text -> Value Prelude.Text -> SourceBundleProperty
+mkSourceBundleProperty s3Bucket s3Key
+  = SourceBundleProperty
+      {haddock_workaround_ = (), s3Bucket = s3Bucket, s3Key = s3Key}
+instance ToResourceProperties SourceBundleProperty where
+  toResourceProperties SourceBundleProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::ElasticBeanstalk::ApplicationVersion.SourceBundle",
+         supportsTags = Prelude.False,
+         properties = ["S3Bucket" JSON..= s3Bucket, "S3Key" JSON..= s3Key]}
+instance JSON.ToJSON SourceBundleProperty where
+  toJSON SourceBundleProperty {..}
+    = JSON.object ["S3Bucket" JSON..= s3Bucket, "S3Key" JSON..= s3Key]
+instance Property "S3Bucket" SourceBundleProperty where
+  type PropertyType "S3Bucket" SourceBundleProperty = Value Prelude.Text
+  set newValue SourceBundleProperty {..}
+    = SourceBundleProperty {s3Bucket = newValue, ..}
+instance Property "S3Key" SourceBundleProperty where
+  type PropertyType "S3Key" SourceBundleProperty = Value Prelude.Text
+  set newValue SourceBundleProperty {..}
+    = SourceBundleProperty {s3Key = newValue, ..}
diff --git a/gen/Stratosphere/ElasticBeanstalk/ApplicationVersion/SourceBundleProperty.hs-boot b/gen/Stratosphere/ElasticBeanstalk/ApplicationVersion/SourceBundleProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/ElasticBeanstalk/ApplicationVersion/SourceBundleProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.ElasticBeanstalk.ApplicationVersion.SourceBundleProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data SourceBundleProperty :: Prelude.Type
+instance ToResourceProperties SourceBundleProperty
+instance Prelude.Eq SourceBundleProperty
+instance Prelude.Show SourceBundleProperty
+instance JSON.ToJSON SourceBundleProperty
diff --git a/gen/Stratosphere/ElasticBeanstalk/ConfigurationTemplate.hs b/gen/Stratosphere/ElasticBeanstalk/ConfigurationTemplate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/ElasticBeanstalk/ConfigurationTemplate.hs
@@ -0,0 +1,96 @@
+module Stratosphere.ElasticBeanstalk.ConfigurationTemplate (
+        module Exports, ConfigurationTemplate(..), mkConfigurationTemplate
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.ElasticBeanstalk.ConfigurationTemplate.ConfigurationOptionSettingProperty as Exports
+import {-# SOURCE #-} Stratosphere.ElasticBeanstalk.ConfigurationTemplate.SourceConfigurationProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data ConfigurationTemplate
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-configurationtemplate.html>
+    ConfigurationTemplate {haddock_workaround_ :: (),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-configurationtemplate.html#cfn-elasticbeanstalk-configurationtemplate-applicationname>
+                           applicationName :: (Value Prelude.Text),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-configurationtemplate.html#cfn-elasticbeanstalk-configurationtemplate-description>
+                           description :: (Prelude.Maybe (Value Prelude.Text)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-configurationtemplate.html#cfn-elasticbeanstalk-configurationtemplate-environmentid>
+                           environmentId :: (Prelude.Maybe (Value Prelude.Text)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-configurationtemplate.html#cfn-elasticbeanstalk-configurationtemplate-optionsettings>
+                           optionSettings :: (Prelude.Maybe [ConfigurationOptionSettingProperty]),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-configurationtemplate.html#cfn-elasticbeanstalk-configurationtemplate-platformarn>
+                           platformArn :: (Prelude.Maybe (Value Prelude.Text)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-configurationtemplate.html#cfn-elasticbeanstalk-configurationtemplate-solutionstackname>
+                           solutionStackName :: (Prelude.Maybe (Value Prelude.Text)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-configurationtemplate.html#cfn-elasticbeanstalk-configurationtemplate-sourceconfiguration>
+                           sourceConfiguration :: (Prelude.Maybe SourceConfigurationProperty)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkConfigurationTemplate ::
+  Value Prelude.Text -> ConfigurationTemplate
+mkConfigurationTemplate applicationName
+  = ConfigurationTemplate
+      {haddock_workaround_ = (), applicationName = applicationName,
+       description = Prelude.Nothing, environmentId = Prelude.Nothing,
+       optionSettings = Prelude.Nothing, platformArn = Prelude.Nothing,
+       solutionStackName = Prelude.Nothing,
+       sourceConfiguration = Prelude.Nothing}
+instance ToResourceProperties ConfigurationTemplate where
+  toResourceProperties ConfigurationTemplate {..}
+    = ResourceProperties
+        {awsType = "AWS::ElasticBeanstalk::ConfigurationTemplate",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["ApplicationName" JSON..= applicationName]
+                           (Prelude.catMaybes
+                              [(JSON..=) "Description" Prelude.<$> description,
+                               (JSON..=) "EnvironmentId" Prelude.<$> environmentId,
+                               (JSON..=) "OptionSettings" Prelude.<$> optionSettings,
+                               (JSON..=) "PlatformArn" Prelude.<$> platformArn,
+                               (JSON..=) "SolutionStackName" Prelude.<$> solutionStackName,
+                               (JSON..=) "SourceConfiguration" Prelude.<$> sourceConfiguration]))}
+instance JSON.ToJSON ConfigurationTemplate where
+  toJSON ConfigurationTemplate {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["ApplicationName" JSON..= applicationName]
+              (Prelude.catMaybes
+                 [(JSON..=) "Description" Prelude.<$> description,
+                  (JSON..=) "EnvironmentId" Prelude.<$> environmentId,
+                  (JSON..=) "OptionSettings" Prelude.<$> optionSettings,
+                  (JSON..=) "PlatformArn" Prelude.<$> platformArn,
+                  (JSON..=) "SolutionStackName" Prelude.<$> solutionStackName,
+                  (JSON..=) "SourceConfiguration" Prelude.<$> sourceConfiguration])))
+instance Property "ApplicationName" ConfigurationTemplate where
+  type PropertyType "ApplicationName" ConfigurationTemplate = Value Prelude.Text
+  set newValue ConfigurationTemplate {..}
+    = ConfigurationTemplate {applicationName = newValue, ..}
+instance Property "Description" ConfigurationTemplate where
+  type PropertyType "Description" ConfigurationTemplate = Value Prelude.Text
+  set newValue ConfigurationTemplate {..}
+    = ConfigurationTemplate {description = Prelude.pure newValue, ..}
+instance Property "EnvironmentId" ConfigurationTemplate where
+  type PropertyType "EnvironmentId" ConfigurationTemplate = Value Prelude.Text
+  set newValue ConfigurationTemplate {..}
+    = ConfigurationTemplate {environmentId = Prelude.pure newValue, ..}
+instance Property "OptionSettings" ConfigurationTemplate where
+  type PropertyType "OptionSettings" ConfigurationTemplate = [ConfigurationOptionSettingProperty]
+  set newValue ConfigurationTemplate {..}
+    = ConfigurationTemplate
+        {optionSettings = Prelude.pure newValue, ..}
+instance Property "PlatformArn" ConfigurationTemplate where
+  type PropertyType "PlatformArn" ConfigurationTemplate = Value Prelude.Text
+  set newValue ConfigurationTemplate {..}
+    = ConfigurationTemplate {platformArn = Prelude.pure newValue, ..}
+instance Property "SolutionStackName" ConfigurationTemplate where
+  type PropertyType "SolutionStackName" ConfigurationTemplate = Value Prelude.Text
+  set newValue ConfigurationTemplate {..}
+    = ConfigurationTemplate
+        {solutionStackName = Prelude.pure newValue, ..}
+instance Property "SourceConfiguration" ConfigurationTemplate where
+  type PropertyType "SourceConfiguration" ConfigurationTemplate = SourceConfigurationProperty
+  set newValue ConfigurationTemplate {..}
+    = ConfigurationTemplate
+        {sourceConfiguration = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/ElasticBeanstalk/ConfigurationTemplate/ConfigurationOptionSettingProperty.hs b/gen/Stratosphere/ElasticBeanstalk/ConfigurationTemplate/ConfigurationOptionSettingProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/ElasticBeanstalk/ConfigurationTemplate/ConfigurationOptionSettingProperty.hs
@@ -0,0 +1,67 @@
+module Stratosphere.ElasticBeanstalk.ConfigurationTemplate.ConfigurationOptionSettingProperty (
+        ConfigurationOptionSettingProperty(..),
+        mkConfigurationOptionSettingProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data ConfigurationOptionSettingProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-configurationtemplate-configurationoptionsetting.html>
+    ConfigurationOptionSettingProperty {haddock_workaround_ :: (),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-configurationtemplate-configurationoptionsetting.html#cfn-elasticbeanstalk-configurationtemplate-configurationoptionsetting-namespace>
+                                        namespace :: (Value Prelude.Text),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-configurationtemplate-configurationoptionsetting.html#cfn-elasticbeanstalk-configurationtemplate-configurationoptionsetting-optionname>
+                                        optionName :: (Value Prelude.Text),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-configurationtemplate-configurationoptionsetting.html#cfn-elasticbeanstalk-configurationtemplate-configurationoptionsetting-resourcename>
+                                        resourceName :: (Prelude.Maybe (Value Prelude.Text)),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-configurationtemplate-configurationoptionsetting.html#cfn-elasticbeanstalk-configurationtemplate-configurationoptionsetting-value>
+                                        value :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkConfigurationOptionSettingProperty ::
+  Value Prelude.Text
+  -> Value Prelude.Text -> ConfigurationOptionSettingProperty
+mkConfigurationOptionSettingProperty namespace optionName
+  = ConfigurationOptionSettingProperty
+      {haddock_workaround_ = (), namespace = namespace,
+       optionName = optionName, resourceName = Prelude.Nothing,
+       value = Prelude.Nothing}
+instance ToResourceProperties ConfigurationOptionSettingProperty where
+  toResourceProperties ConfigurationOptionSettingProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::ElasticBeanstalk::ConfigurationTemplate.ConfigurationOptionSetting",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["Namespace" JSON..= namespace, "OptionName" JSON..= optionName]
+                           (Prelude.catMaybes
+                              [(JSON..=) "ResourceName" Prelude.<$> resourceName,
+                               (JSON..=) "Value" Prelude.<$> value]))}
+instance JSON.ToJSON ConfigurationOptionSettingProperty where
+  toJSON ConfigurationOptionSettingProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["Namespace" JSON..= namespace, "OptionName" JSON..= optionName]
+              (Prelude.catMaybes
+                 [(JSON..=) "ResourceName" Prelude.<$> resourceName,
+                  (JSON..=) "Value" Prelude.<$> value])))
+instance Property "Namespace" ConfigurationOptionSettingProperty where
+  type PropertyType "Namespace" ConfigurationOptionSettingProperty = Value Prelude.Text
+  set newValue ConfigurationOptionSettingProperty {..}
+    = ConfigurationOptionSettingProperty {namespace = newValue, ..}
+instance Property "OptionName" ConfigurationOptionSettingProperty where
+  type PropertyType "OptionName" ConfigurationOptionSettingProperty = Value Prelude.Text
+  set newValue ConfigurationOptionSettingProperty {..}
+    = ConfigurationOptionSettingProperty {optionName = newValue, ..}
+instance Property "ResourceName" ConfigurationOptionSettingProperty where
+  type PropertyType "ResourceName" ConfigurationOptionSettingProperty = Value Prelude.Text
+  set newValue ConfigurationOptionSettingProperty {..}
+    = ConfigurationOptionSettingProperty
+        {resourceName = Prelude.pure newValue, ..}
+instance Property "Value" ConfigurationOptionSettingProperty where
+  type PropertyType "Value" ConfigurationOptionSettingProperty = Value Prelude.Text
+  set newValue ConfigurationOptionSettingProperty {..}
+    = ConfigurationOptionSettingProperty
+        {value = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/ElasticBeanstalk/ConfigurationTemplate/ConfigurationOptionSettingProperty.hs-boot b/gen/Stratosphere/ElasticBeanstalk/ConfigurationTemplate/ConfigurationOptionSettingProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/ElasticBeanstalk/ConfigurationTemplate/ConfigurationOptionSettingProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.ElasticBeanstalk.ConfigurationTemplate.ConfigurationOptionSettingProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data ConfigurationOptionSettingProperty :: Prelude.Type
+instance ToResourceProperties ConfigurationOptionSettingProperty
+instance Prelude.Eq ConfigurationOptionSettingProperty
+instance Prelude.Show ConfigurationOptionSettingProperty
+instance JSON.ToJSON ConfigurationOptionSettingProperty
diff --git a/gen/Stratosphere/ElasticBeanstalk/ConfigurationTemplate/SourceConfigurationProperty.hs b/gen/Stratosphere/ElasticBeanstalk/ConfigurationTemplate/SourceConfigurationProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/ElasticBeanstalk/ConfigurationTemplate/SourceConfigurationProperty.hs
@@ -0,0 +1,43 @@
+module Stratosphere.ElasticBeanstalk.ConfigurationTemplate.SourceConfigurationProperty (
+        SourceConfigurationProperty(..), mkSourceConfigurationProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data SourceConfigurationProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-configurationtemplate-sourceconfiguration.html>
+    SourceConfigurationProperty {haddock_workaround_ :: (),
+                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-configurationtemplate-sourceconfiguration.html#cfn-elasticbeanstalk-configurationtemplate-sourceconfiguration-applicationname>
+                                 applicationName :: (Value Prelude.Text),
+                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-configurationtemplate-sourceconfiguration.html#cfn-elasticbeanstalk-configurationtemplate-sourceconfiguration-templatename>
+                                 templateName :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkSourceConfigurationProperty ::
+  Value Prelude.Text
+  -> Value Prelude.Text -> SourceConfigurationProperty
+mkSourceConfigurationProperty applicationName templateName
+  = SourceConfigurationProperty
+      {haddock_workaround_ = (), applicationName = applicationName,
+       templateName = templateName}
+instance ToResourceProperties SourceConfigurationProperty where
+  toResourceProperties SourceConfigurationProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::ElasticBeanstalk::ConfigurationTemplate.SourceConfiguration",
+         supportsTags = Prelude.False,
+         properties = ["ApplicationName" JSON..= applicationName,
+                       "TemplateName" JSON..= templateName]}
+instance JSON.ToJSON SourceConfigurationProperty where
+  toJSON SourceConfigurationProperty {..}
+    = JSON.object
+        ["ApplicationName" JSON..= applicationName,
+         "TemplateName" JSON..= templateName]
+instance Property "ApplicationName" SourceConfigurationProperty where
+  type PropertyType "ApplicationName" SourceConfigurationProperty = Value Prelude.Text
+  set newValue SourceConfigurationProperty {..}
+    = SourceConfigurationProperty {applicationName = newValue, ..}
+instance Property "TemplateName" SourceConfigurationProperty where
+  type PropertyType "TemplateName" SourceConfigurationProperty = Value Prelude.Text
+  set newValue SourceConfigurationProperty {..}
+    = SourceConfigurationProperty {templateName = newValue, ..}
diff --git a/gen/Stratosphere/ElasticBeanstalk/ConfigurationTemplate/SourceConfigurationProperty.hs-boot b/gen/Stratosphere/ElasticBeanstalk/ConfigurationTemplate/SourceConfigurationProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/ElasticBeanstalk/ConfigurationTemplate/SourceConfigurationProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.ElasticBeanstalk.ConfigurationTemplate.SourceConfigurationProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data SourceConfigurationProperty :: Prelude.Type
+instance ToResourceProperties SourceConfigurationProperty
+instance Prelude.Eq SourceConfigurationProperty
+instance Prelude.Show SourceConfigurationProperty
+instance JSON.ToJSON SourceConfigurationProperty
diff --git a/gen/Stratosphere/ElasticBeanstalk/Environment.hs b/gen/Stratosphere/ElasticBeanstalk/Environment.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/ElasticBeanstalk/Environment.hs
@@ -0,0 +1,135 @@
+module Stratosphere.ElasticBeanstalk.Environment (
+        module Exports, Environment(..), mkEnvironment
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.ElasticBeanstalk.Environment.OptionSettingProperty as Exports
+import {-# SOURCE #-} Stratosphere.ElasticBeanstalk.Environment.TierProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Tag
+import Stratosphere.Value
+data Environment
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-environment.html>
+    Environment {haddock_workaround_ :: (),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-environment.html#cfn-elasticbeanstalk-environment-applicationname>
+                 applicationName :: (Value Prelude.Text),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-environment.html#cfn-elasticbeanstalk-environment-cnameprefix>
+                 cNAMEPrefix :: (Prelude.Maybe (Value Prelude.Text)),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-environment.html#cfn-elasticbeanstalk-environment-description>
+                 description :: (Prelude.Maybe (Value Prelude.Text)),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-environment.html#cfn-elasticbeanstalk-environment-environmentname>
+                 environmentName :: (Prelude.Maybe (Value Prelude.Text)),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-environment.html#cfn-elasticbeanstalk-environment-operationsrole>
+                 operationsRole :: (Prelude.Maybe (Value Prelude.Text)),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-environment.html#cfn-elasticbeanstalk-environment-optionsettings>
+                 optionSettings :: (Prelude.Maybe [OptionSettingProperty]),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-environment.html#cfn-elasticbeanstalk-environment-platformarn>
+                 platformArn :: (Prelude.Maybe (Value Prelude.Text)),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-environment.html#cfn-elasticbeanstalk-environment-solutionstackname>
+                 solutionStackName :: (Prelude.Maybe (Value Prelude.Text)),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-environment.html#cfn-elasticbeanstalk-environment-tags>
+                 tags :: (Prelude.Maybe [Tag]),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-environment.html#cfn-elasticbeanstalk-environment-templatename>
+                 templateName :: (Prelude.Maybe (Value Prelude.Text)),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-environment.html#cfn-elasticbeanstalk-environment-tier>
+                 tier :: (Prelude.Maybe TierProperty),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-environment.html#cfn-elasticbeanstalk-environment-versionlabel>
+                 versionLabel :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkEnvironment :: Value Prelude.Text -> Environment
+mkEnvironment applicationName
+  = Environment
+      {haddock_workaround_ = (), applicationName = applicationName,
+       cNAMEPrefix = Prelude.Nothing, description = Prelude.Nothing,
+       environmentName = Prelude.Nothing,
+       operationsRole = Prelude.Nothing, optionSettings = Prelude.Nothing,
+       platformArn = Prelude.Nothing, solutionStackName = Prelude.Nothing,
+       tags = Prelude.Nothing, templateName = Prelude.Nothing,
+       tier = Prelude.Nothing, versionLabel = Prelude.Nothing}
+instance ToResourceProperties Environment where
+  toResourceProperties Environment {..}
+    = ResourceProperties
+        {awsType = "AWS::ElasticBeanstalk::Environment",
+         supportsTags = Prelude.True,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["ApplicationName" JSON..= applicationName]
+                           (Prelude.catMaybes
+                              [(JSON..=) "CNAMEPrefix" Prelude.<$> cNAMEPrefix,
+                               (JSON..=) "Description" Prelude.<$> description,
+                               (JSON..=) "EnvironmentName" Prelude.<$> environmentName,
+                               (JSON..=) "OperationsRole" Prelude.<$> operationsRole,
+                               (JSON..=) "OptionSettings" Prelude.<$> optionSettings,
+                               (JSON..=) "PlatformArn" Prelude.<$> platformArn,
+                               (JSON..=) "SolutionStackName" Prelude.<$> solutionStackName,
+                               (JSON..=) "Tags" Prelude.<$> tags,
+                               (JSON..=) "TemplateName" Prelude.<$> templateName,
+                               (JSON..=) "Tier" Prelude.<$> tier,
+                               (JSON..=) "VersionLabel" Prelude.<$> versionLabel]))}
+instance JSON.ToJSON Environment where
+  toJSON Environment {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["ApplicationName" JSON..= applicationName]
+              (Prelude.catMaybes
+                 [(JSON..=) "CNAMEPrefix" Prelude.<$> cNAMEPrefix,
+                  (JSON..=) "Description" Prelude.<$> description,
+                  (JSON..=) "EnvironmentName" Prelude.<$> environmentName,
+                  (JSON..=) "OperationsRole" Prelude.<$> operationsRole,
+                  (JSON..=) "OptionSettings" Prelude.<$> optionSettings,
+                  (JSON..=) "PlatformArn" Prelude.<$> platformArn,
+                  (JSON..=) "SolutionStackName" Prelude.<$> solutionStackName,
+                  (JSON..=) "Tags" Prelude.<$> tags,
+                  (JSON..=) "TemplateName" Prelude.<$> templateName,
+                  (JSON..=) "Tier" Prelude.<$> tier,
+                  (JSON..=) "VersionLabel" Prelude.<$> versionLabel])))
+instance Property "ApplicationName" Environment where
+  type PropertyType "ApplicationName" Environment = Value Prelude.Text
+  set newValue Environment {..}
+    = Environment {applicationName = newValue, ..}
+instance Property "CNAMEPrefix" Environment where
+  type PropertyType "CNAMEPrefix" Environment = Value Prelude.Text
+  set newValue Environment {..}
+    = Environment {cNAMEPrefix = Prelude.pure newValue, ..}
+instance Property "Description" Environment where
+  type PropertyType "Description" Environment = Value Prelude.Text
+  set newValue Environment {..}
+    = Environment {description = Prelude.pure newValue, ..}
+instance Property "EnvironmentName" Environment where
+  type PropertyType "EnvironmentName" Environment = Value Prelude.Text
+  set newValue Environment {..}
+    = Environment {environmentName = Prelude.pure newValue, ..}
+instance Property "OperationsRole" Environment where
+  type PropertyType "OperationsRole" Environment = Value Prelude.Text
+  set newValue Environment {..}
+    = Environment {operationsRole = Prelude.pure newValue, ..}
+instance Property "OptionSettings" Environment where
+  type PropertyType "OptionSettings" Environment = [OptionSettingProperty]
+  set newValue Environment {..}
+    = Environment {optionSettings = Prelude.pure newValue, ..}
+instance Property "PlatformArn" Environment where
+  type PropertyType "PlatformArn" Environment = Value Prelude.Text
+  set newValue Environment {..}
+    = Environment {platformArn = Prelude.pure newValue, ..}
+instance Property "SolutionStackName" Environment where
+  type PropertyType "SolutionStackName" Environment = Value Prelude.Text
+  set newValue Environment {..}
+    = Environment {solutionStackName = Prelude.pure newValue, ..}
+instance Property "Tags" Environment where
+  type PropertyType "Tags" Environment = [Tag]
+  set newValue Environment {..}
+    = Environment {tags = Prelude.pure newValue, ..}
+instance Property "TemplateName" Environment where
+  type PropertyType "TemplateName" Environment = Value Prelude.Text
+  set newValue Environment {..}
+    = Environment {templateName = Prelude.pure newValue, ..}
+instance Property "Tier" Environment where
+  type PropertyType "Tier" Environment = TierProperty
+  set newValue Environment {..}
+    = Environment {tier = Prelude.pure newValue, ..}
+instance Property "VersionLabel" Environment where
+  type PropertyType "VersionLabel" Environment = Value Prelude.Text
+  set newValue Environment {..}
+    = Environment {versionLabel = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/ElasticBeanstalk/Environment/OptionSettingProperty.hs b/gen/Stratosphere/ElasticBeanstalk/Environment/OptionSettingProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/ElasticBeanstalk/Environment/OptionSettingProperty.hs
@@ -0,0 +1,63 @@
+module Stratosphere.ElasticBeanstalk.Environment.OptionSettingProperty (
+        OptionSettingProperty(..), mkOptionSettingProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data OptionSettingProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-environment-optionsetting.html>
+    OptionSettingProperty {haddock_workaround_ :: (),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-environment-optionsetting.html#cfn-elasticbeanstalk-environment-optionsetting-namespace>
+                           namespace :: (Value Prelude.Text),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-environment-optionsetting.html#cfn-elasticbeanstalk-environment-optionsetting-optionname>
+                           optionName :: (Value Prelude.Text),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-environment-optionsetting.html#cfn-elasticbeanstalk-environment-optionsetting-resourcename>
+                           resourceName :: (Prelude.Maybe (Value Prelude.Text)),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-environment-optionsetting.html#cfn-elasticbeanstalk-environment-optionsetting-value>
+                           value :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkOptionSettingProperty ::
+  Value Prelude.Text -> Value Prelude.Text -> OptionSettingProperty
+mkOptionSettingProperty namespace optionName
+  = OptionSettingProperty
+      {haddock_workaround_ = (), namespace = namespace,
+       optionName = optionName, resourceName = Prelude.Nothing,
+       value = Prelude.Nothing}
+instance ToResourceProperties OptionSettingProperty where
+  toResourceProperties OptionSettingProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::ElasticBeanstalk::Environment.OptionSetting",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["Namespace" JSON..= namespace, "OptionName" JSON..= optionName]
+                           (Prelude.catMaybes
+                              [(JSON..=) "ResourceName" Prelude.<$> resourceName,
+                               (JSON..=) "Value" Prelude.<$> value]))}
+instance JSON.ToJSON OptionSettingProperty where
+  toJSON OptionSettingProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["Namespace" JSON..= namespace, "OptionName" JSON..= optionName]
+              (Prelude.catMaybes
+                 [(JSON..=) "ResourceName" Prelude.<$> resourceName,
+                  (JSON..=) "Value" Prelude.<$> value])))
+instance Property "Namespace" OptionSettingProperty where
+  type PropertyType "Namespace" OptionSettingProperty = Value Prelude.Text
+  set newValue OptionSettingProperty {..}
+    = OptionSettingProperty {namespace = newValue, ..}
+instance Property "OptionName" OptionSettingProperty where
+  type PropertyType "OptionName" OptionSettingProperty = Value Prelude.Text
+  set newValue OptionSettingProperty {..}
+    = OptionSettingProperty {optionName = newValue, ..}
+instance Property "ResourceName" OptionSettingProperty where
+  type PropertyType "ResourceName" OptionSettingProperty = Value Prelude.Text
+  set newValue OptionSettingProperty {..}
+    = OptionSettingProperty {resourceName = Prelude.pure newValue, ..}
+instance Property "Value" OptionSettingProperty where
+  type PropertyType "Value" OptionSettingProperty = Value Prelude.Text
+  set newValue OptionSettingProperty {..}
+    = OptionSettingProperty {value = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/ElasticBeanstalk/Environment/OptionSettingProperty.hs-boot b/gen/Stratosphere/ElasticBeanstalk/Environment/OptionSettingProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/ElasticBeanstalk/Environment/OptionSettingProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.ElasticBeanstalk.Environment.OptionSettingProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data OptionSettingProperty :: Prelude.Type
+instance ToResourceProperties OptionSettingProperty
+instance Prelude.Eq OptionSettingProperty
+instance Prelude.Show OptionSettingProperty
+instance JSON.ToJSON OptionSettingProperty
diff --git a/gen/Stratosphere/ElasticBeanstalk/Environment/TierProperty.hs b/gen/Stratosphere/ElasticBeanstalk/Environment/TierProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/ElasticBeanstalk/Environment/TierProperty.hs
@@ -0,0 +1,53 @@
+module Stratosphere.ElasticBeanstalk.Environment.TierProperty (
+        TierProperty(..), mkTierProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data TierProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-environment-tier.html>
+    TierProperty {haddock_workaround_ :: (),
+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-environment-tier.html#cfn-elasticbeanstalk-environment-tier-name>
+                  name :: (Prelude.Maybe (Value Prelude.Text)),
+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-environment-tier.html#cfn-elasticbeanstalk-environment-tier-type>
+                  type' :: (Prelude.Maybe (Value Prelude.Text)),
+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-environment-tier.html#cfn-elasticbeanstalk-environment-tier-version>
+                  version :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkTierProperty :: TierProperty
+mkTierProperty
+  = TierProperty
+      {haddock_workaround_ = (), name = Prelude.Nothing,
+       type' = Prelude.Nothing, version = Prelude.Nothing}
+instance ToResourceProperties TierProperty where
+  toResourceProperties TierProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::ElasticBeanstalk::Environment.Tier",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "Name" Prelude.<$> name,
+                            (JSON..=) "Type" Prelude.<$> type',
+                            (JSON..=) "Version" Prelude.<$> version])}
+instance JSON.ToJSON TierProperty where
+  toJSON TierProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "Name" Prelude.<$> name,
+               (JSON..=) "Type" Prelude.<$> type',
+               (JSON..=) "Version" Prelude.<$> version]))
+instance Property "Name" TierProperty where
+  type PropertyType "Name" TierProperty = Value Prelude.Text
+  set newValue TierProperty {..}
+    = TierProperty {name = Prelude.pure newValue, ..}
+instance Property "Type" TierProperty where
+  type PropertyType "Type" TierProperty = Value Prelude.Text
+  set newValue TierProperty {..}
+    = TierProperty {type' = Prelude.pure newValue, ..}
+instance Property "Version" TierProperty where
+  type PropertyType "Version" TierProperty = Value Prelude.Text
+  set newValue TierProperty {..}
+    = TierProperty {version = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/ElasticBeanstalk/Environment/TierProperty.hs-boot b/gen/Stratosphere/ElasticBeanstalk/Environment/TierProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/ElasticBeanstalk/Environment/TierProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.ElasticBeanstalk.Environment.TierProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data TierProperty :: Prelude.Type
+instance ToResourceProperties TierProperty
+instance Prelude.Eq TierProperty
+instance Prelude.Show TierProperty
+instance JSON.ToJSON TierProperty
diff --git a/stratosphere-elasticbeanstalk.cabal b/stratosphere-elasticbeanstalk.cabal
new file mode 100644
--- /dev/null
+++ b/stratosphere-elasticbeanstalk.cabal
@@ -0,0 +1,85 @@
+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-elasticbeanstalk
+version:        1.0.0
+synopsis:       Stratosphere integration for AWS ElasticBeanstalk.
+description:    Integration into stratosphere to generate resources and properties for AWS ElasticBeanstalk
+category:       AWS, Cloud, ElasticBeanstalk
+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.ElasticBeanstalk.Application
+      Stratosphere.ElasticBeanstalk.Application.ApplicationResourceLifecycleConfigProperty
+      Stratosphere.ElasticBeanstalk.Application.ApplicationVersionLifecycleConfigProperty
+      Stratosphere.ElasticBeanstalk.Application.MaxAgeRuleProperty
+      Stratosphere.ElasticBeanstalk.Application.MaxCountRuleProperty
+      Stratosphere.ElasticBeanstalk.ApplicationVersion
+      Stratosphere.ElasticBeanstalk.ApplicationVersion.SourceBundleProperty
+      Stratosphere.ElasticBeanstalk.ConfigurationTemplate
+      Stratosphere.ElasticBeanstalk.ConfigurationTemplate.ConfigurationOptionSettingProperty
+      Stratosphere.ElasticBeanstalk.ConfigurationTemplate.SourceConfigurationProperty
+      Stratosphere.ElasticBeanstalk.Environment
+      Stratosphere.ElasticBeanstalk.Environment.OptionSettingProperty
+      Stratosphere.ElasticBeanstalk.Environment.TierProperty
+  other-modules:
+      Paths_stratosphere_elasticbeanstalk
+  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
