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/BCMDataExports/Export.hs b/gen/Stratosphere/BCMDataExports/Export.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/BCMDataExports/Export.hs
@@ -0,0 +1,44 @@
+module Stratosphere.BCMDataExports.Export (
+        module Exports, Export(..), mkExport
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.BCMDataExports.Export.ExportProperty as Exports
+import {-# SOURCE #-} Stratosphere.BCMDataExports.Export.ResourceTagProperty as Exports
+import Stratosphere.ResourceProperties
+data Export
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bcmdataexports-export.html>
+    Export {haddock_workaround_ :: (),
+            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bcmdataexports-export.html#cfn-bcmdataexports-export-export>
+            export :: ExportProperty,
+            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bcmdataexports-export.html#cfn-bcmdataexports-export-tags>
+            tags :: (Prelude.Maybe [ResourceTagProperty])}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkExport :: ExportProperty -> Export
+mkExport export
+  = Export
+      {haddock_workaround_ = (), export = export, tags = Prelude.Nothing}
+instance ToResourceProperties Export where
+  toResourceProperties Export {..}
+    = ResourceProperties
+        {awsType = "AWS::BCMDataExports::Export",
+         supportsTags = Prelude.True,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["Export" JSON..= export]
+                           (Prelude.catMaybes [(JSON..=) "Tags" Prelude.<$> tags]))}
+instance JSON.ToJSON Export where
+  toJSON Export {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["Export" JSON..= export]
+              (Prelude.catMaybes [(JSON..=) "Tags" Prelude.<$> tags])))
+instance Property "Export" Export where
+  type PropertyType "Export" Export = ExportProperty
+  set newValue Export {..} = Export {export = newValue, ..}
+instance Property "Tags" Export where
+  type PropertyType "Tags" Export = [ResourceTagProperty]
+  set newValue Export {..}
+    = Export {tags = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/BCMDataExports/Export/DataQueryProperty.hs b/gen/Stratosphere/BCMDataExports/Export/DataQueryProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/BCMDataExports/Export/DataQueryProperty.hs
@@ -0,0 +1,50 @@
+module Stratosphere.BCMDataExports.Export.DataQueryProperty (
+        DataQueryProperty(..), mkDataQueryProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data DataQueryProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-dataquery.html>
+    DataQueryProperty {haddock_workaround_ :: (),
+                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-dataquery.html#cfn-bcmdataexports-export-dataquery-querystatement>
+                       queryStatement :: (Value Prelude.Text),
+                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-dataquery.html#cfn-bcmdataexports-export-dataquery-tableconfigurations>
+                       tableConfigurations :: (Prelude.Maybe JSON.Object)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkDataQueryProperty :: Value Prelude.Text -> DataQueryProperty
+mkDataQueryProperty queryStatement
+  = DataQueryProperty
+      {haddock_workaround_ = (), queryStatement = queryStatement,
+       tableConfigurations = Prelude.Nothing}
+instance ToResourceProperties DataQueryProperty where
+  toResourceProperties DataQueryProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::BCMDataExports::Export.DataQuery",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["QueryStatement" JSON..= queryStatement]
+                           (Prelude.catMaybes
+                              [(JSON..=) "TableConfigurations"
+                                 Prelude.<$> tableConfigurations]))}
+instance JSON.ToJSON DataQueryProperty where
+  toJSON DataQueryProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["QueryStatement" JSON..= queryStatement]
+              (Prelude.catMaybes
+                 [(JSON..=) "TableConfigurations"
+                    Prelude.<$> tableConfigurations])))
+instance Property "QueryStatement" DataQueryProperty where
+  type PropertyType "QueryStatement" DataQueryProperty = Value Prelude.Text
+  set newValue DataQueryProperty {..}
+    = DataQueryProperty {queryStatement = newValue, ..}
+instance Property "TableConfigurations" DataQueryProperty where
+  type PropertyType "TableConfigurations" DataQueryProperty = JSON.Object
+  set newValue DataQueryProperty {..}
+    = DataQueryProperty
+        {tableConfigurations = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/BCMDataExports/Export/DataQueryProperty.hs-boot b/gen/Stratosphere/BCMDataExports/Export/DataQueryProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/BCMDataExports/Export/DataQueryProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.BCMDataExports.Export.DataQueryProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data DataQueryProperty :: Prelude.Type
+instance ToResourceProperties DataQueryProperty
+instance Prelude.Eq DataQueryProperty
+instance Prelude.Show DataQueryProperty
+instance JSON.ToJSON DataQueryProperty
diff --git a/gen/Stratosphere/BCMDataExports/Export/DestinationConfigurationsProperty.hs b/gen/Stratosphere/BCMDataExports/Export/DestinationConfigurationsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/BCMDataExports/Export/DestinationConfigurationsProperty.hs
@@ -0,0 +1,33 @@
+module Stratosphere.BCMDataExports.Export.DestinationConfigurationsProperty (
+        module Exports, DestinationConfigurationsProperty(..),
+        mkDestinationConfigurationsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.BCMDataExports.Export.S3DestinationProperty as Exports
+import Stratosphere.ResourceProperties
+data DestinationConfigurationsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-destinationconfigurations.html>
+    DestinationConfigurationsProperty {haddock_workaround_ :: (),
+                                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-destinationconfigurations.html#cfn-bcmdataexports-export-destinationconfigurations-s3destination>
+                                       s3Destination :: S3DestinationProperty}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkDestinationConfigurationsProperty ::
+  S3DestinationProperty -> DestinationConfigurationsProperty
+mkDestinationConfigurationsProperty s3Destination
+  = DestinationConfigurationsProperty
+      {haddock_workaround_ = (), s3Destination = s3Destination}
+instance ToResourceProperties DestinationConfigurationsProperty where
+  toResourceProperties DestinationConfigurationsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::BCMDataExports::Export.DestinationConfigurations",
+         supportsTags = Prelude.False,
+         properties = ["S3Destination" JSON..= s3Destination]}
+instance JSON.ToJSON DestinationConfigurationsProperty where
+  toJSON DestinationConfigurationsProperty {..}
+    = JSON.object ["S3Destination" JSON..= s3Destination]
+instance Property "S3Destination" DestinationConfigurationsProperty where
+  type PropertyType "S3Destination" DestinationConfigurationsProperty = S3DestinationProperty
+  set newValue DestinationConfigurationsProperty {..}
+    = DestinationConfigurationsProperty {s3Destination = newValue, ..}
diff --git a/gen/Stratosphere/BCMDataExports/Export/DestinationConfigurationsProperty.hs-boot b/gen/Stratosphere/BCMDataExports/Export/DestinationConfigurationsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/BCMDataExports/Export/DestinationConfigurationsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.BCMDataExports.Export.DestinationConfigurationsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data DestinationConfigurationsProperty :: Prelude.Type
+instance ToResourceProperties DestinationConfigurationsProperty
+instance Prelude.Eq DestinationConfigurationsProperty
+instance Prelude.Show DestinationConfigurationsProperty
+instance JSON.ToJSON DestinationConfigurationsProperty
diff --git a/gen/Stratosphere/BCMDataExports/Export/ExportProperty.hs b/gen/Stratosphere/BCMDataExports/Export/ExportProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/BCMDataExports/Export/ExportProperty.hs
@@ -0,0 +1,89 @@
+module Stratosphere.BCMDataExports.Export.ExportProperty (
+        module Exports, ExportProperty(..), mkExportProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.BCMDataExports.Export.DataQueryProperty as Exports
+import {-# SOURCE #-} Stratosphere.BCMDataExports.Export.DestinationConfigurationsProperty as Exports
+import {-# SOURCE #-} Stratosphere.BCMDataExports.Export.RefreshCadenceProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data ExportProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-export.html>
+    ExportProperty {haddock_workaround_ :: (),
+                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-export.html#cfn-bcmdataexports-export-export-dataquery>
+                    dataQuery :: DataQueryProperty,
+                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-export.html#cfn-bcmdataexports-export-export-description>
+                    description :: (Prelude.Maybe (Value Prelude.Text)),
+                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-export.html#cfn-bcmdataexports-export-export-destinationconfigurations>
+                    destinationConfigurations :: DestinationConfigurationsProperty,
+                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-export.html#cfn-bcmdataexports-export-export-exportarn>
+                    exportArn :: (Prelude.Maybe (Value Prelude.Text)),
+                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-export.html#cfn-bcmdataexports-export-export-name>
+                    name :: (Value Prelude.Text),
+                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-export.html#cfn-bcmdataexports-export-export-refreshcadence>
+                    refreshCadence :: RefreshCadenceProperty}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkExportProperty ::
+  DataQueryProperty
+  -> DestinationConfigurationsProperty
+     -> Value Prelude.Text -> RefreshCadenceProperty -> ExportProperty
+mkExportProperty
+  dataQuery
+  destinationConfigurations
+  name
+  refreshCadence
+  = ExportProperty
+      {haddock_workaround_ = (), dataQuery = dataQuery,
+       destinationConfigurations = destinationConfigurations, name = name,
+       refreshCadence = refreshCadence, description = Prelude.Nothing,
+       exportArn = Prelude.Nothing}
+instance ToResourceProperties ExportProperty where
+  toResourceProperties ExportProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::BCMDataExports::Export.Export",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["DataQuery" JSON..= dataQuery,
+                            "DestinationConfigurations" JSON..= destinationConfigurations,
+                            "Name" JSON..= name, "RefreshCadence" JSON..= refreshCadence]
+                           (Prelude.catMaybes
+                              [(JSON..=) "Description" Prelude.<$> description,
+                               (JSON..=) "ExportArn" Prelude.<$> exportArn]))}
+instance JSON.ToJSON ExportProperty where
+  toJSON ExportProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["DataQuery" JSON..= dataQuery,
+               "DestinationConfigurations" JSON..= destinationConfigurations,
+               "Name" JSON..= name, "RefreshCadence" JSON..= refreshCadence]
+              (Prelude.catMaybes
+                 [(JSON..=) "Description" Prelude.<$> description,
+                  (JSON..=) "ExportArn" Prelude.<$> exportArn])))
+instance Property "DataQuery" ExportProperty where
+  type PropertyType "DataQuery" ExportProperty = DataQueryProperty
+  set newValue ExportProperty {..}
+    = ExportProperty {dataQuery = newValue, ..}
+instance Property "Description" ExportProperty where
+  type PropertyType "Description" ExportProperty = Value Prelude.Text
+  set newValue ExportProperty {..}
+    = ExportProperty {description = Prelude.pure newValue, ..}
+instance Property "DestinationConfigurations" ExportProperty where
+  type PropertyType "DestinationConfigurations" ExportProperty = DestinationConfigurationsProperty
+  set newValue ExportProperty {..}
+    = ExportProperty {destinationConfigurations = newValue, ..}
+instance Property "ExportArn" ExportProperty where
+  type PropertyType "ExportArn" ExportProperty = Value Prelude.Text
+  set newValue ExportProperty {..}
+    = ExportProperty {exportArn = Prelude.pure newValue, ..}
+instance Property "Name" ExportProperty where
+  type PropertyType "Name" ExportProperty = Value Prelude.Text
+  set newValue ExportProperty {..}
+    = ExportProperty {name = newValue, ..}
+instance Property "RefreshCadence" ExportProperty where
+  type PropertyType "RefreshCadence" ExportProperty = RefreshCadenceProperty
+  set newValue ExportProperty {..}
+    = ExportProperty {refreshCadence = newValue, ..}
diff --git a/gen/Stratosphere/BCMDataExports/Export/ExportProperty.hs-boot b/gen/Stratosphere/BCMDataExports/Export/ExportProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/BCMDataExports/Export/ExportProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.BCMDataExports.Export.ExportProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data ExportProperty :: Prelude.Type
+instance ToResourceProperties ExportProperty
+instance Prelude.Eq ExportProperty
+instance Prelude.Show ExportProperty
+instance JSON.ToJSON ExportProperty
diff --git a/gen/Stratosphere/BCMDataExports/Export/RefreshCadenceProperty.hs b/gen/Stratosphere/BCMDataExports/Export/RefreshCadenceProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/BCMDataExports/Export/RefreshCadenceProperty.hs
@@ -0,0 +1,32 @@
+module Stratosphere.BCMDataExports.Export.RefreshCadenceProperty (
+        RefreshCadenceProperty(..), mkRefreshCadenceProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data RefreshCadenceProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-refreshcadence.html>
+    RefreshCadenceProperty {haddock_workaround_ :: (),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-refreshcadence.html#cfn-bcmdataexports-export-refreshcadence-frequency>
+                            frequency :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkRefreshCadenceProperty ::
+  Value Prelude.Text -> RefreshCadenceProperty
+mkRefreshCadenceProperty frequency
+  = RefreshCadenceProperty
+      {haddock_workaround_ = (), frequency = frequency}
+instance ToResourceProperties RefreshCadenceProperty where
+  toResourceProperties RefreshCadenceProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::BCMDataExports::Export.RefreshCadence",
+         supportsTags = Prelude.False,
+         properties = ["Frequency" JSON..= frequency]}
+instance JSON.ToJSON RefreshCadenceProperty where
+  toJSON RefreshCadenceProperty {..}
+    = JSON.object ["Frequency" JSON..= frequency]
+instance Property "Frequency" RefreshCadenceProperty where
+  type PropertyType "Frequency" RefreshCadenceProperty = Value Prelude.Text
+  set newValue RefreshCadenceProperty {..}
+    = RefreshCadenceProperty {frequency = newValue, ..}
diff --git a/gen/Stratosphere/BCMDataExports/Export/RefreshCadenceProperty.hs-boot b/gen/Stratosphere/BCMDataExports/Export/RefreshCadenceProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/BCMDataExports/Export/RefreshCadenceProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.BCMDataExports.Export.RefreshCadenceProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data RefreshCadenceProperty :: Prelude.Type
+instance ToResourceProperties RefreshCadenceProperty
+instance Prelude.Eq RefreshCadenceProperty
+instance Prelude.Show RefreshCadenceProperty
+instance JSON.ToJSON RefreshCadenceProperty
diff --git a/gen/Stratosphere/BCMDataExports/Export/ResourceTagProperty.hs b/gen/Stratosphere/BCMDataExports/Export/ResourceTagProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/BCMDataExports/Export/ResourceTagProperty.hs
@@ -0,0 +1,38 @@
+module Stratosphere.BCMDataExports.Export.ResourceTagProperty (
+        ResourceTagProperty(..), mkResourceTagProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data ResourceTagProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-resourcetag.html>
+    ResourceTagProperty {haddock_workaround_ :: (),
+                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-resourcetag.html#cfn-bcmdataexports-export-resourcetag-key>
+                         key :: (Value Prelude.Text),
+                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-resourcetag.html#cfn-bcmdataexports-export-resourcetag-value>
+                         value :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkResourceTagProperty ::
+  Value Prelude.Text -> Value Prelude.Text -> ResourceTagProperty
+mkResourceTagProperty key value
+  = ResourceTagProperty
+      {haddock_workaround_ = (), key = key, value = value}
+instance ToResourceProperties ResourceTagProperty where
+  toResourceProperties ResourceTagProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::BCMDataExports::Export.ResourceTag",
+         supportsTags = Prelude.False,
+         properties = ["Key" JSON..= key, "Value" JSON..= value]}
+instance JSON.ToJSON ResourceTagProperty where
+  toJSON ResourceTagProperty {..}
+    = JSON.object ["Key" JSON..= key, "Value" JSON..= value]
+instance Property "Key" ResourceTagProperty where
+  type PropertyType "Key" ResourceTagProperty = Value Prelude.Text
+  set newValue ResourceTagProperty {..}
+    = ResourceTagProperty {key = newValue, ..}
+instance Property "Value" ResourceTagProperty where
+  type PropertyType "Value" ResourceTagProperty = Value Prelude.Text
+  set newValue ResourceTagProperty {..}
+    = ResourceTagProperty {value = newValue, ..}
diff --git a/gen/Stratosphere/BCMDataExports/Export/ResourceTagProperty.hs-boot b/gen/Stratosphere/BCMDataExports/Export/ResourceTagProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/BCMDataExports/Export/ResourceTagProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.BCMDataExports.Export.ResourceTagProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data ResourceTagProperty :: Prelude.Type
+instance ToResourceProperties ResourceTagProperty
+instance Prelude.Eq ResourceTagProperty
+instance Prelude.Show ResourceTagProperty
+instance JSON.ToJSON ResourceTagProperty
diff --git a/gen/Stratosphere/BCMDataExports/Export/S3DestinationProperty.hs b/gen/Stratosphere/BCMDataExports/Export/S3DestinationProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/BCMDataExports/Export/S3DestinationProperty.hs
@@ -0,0 +1,65 @@
+module Stratosphere.BCMDataExports.Export.S3DestinationProperty (
+        module Exports, S3DestinationProperty(..), mkS3DestinationProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.BCMDataExports.Export.S3OutputConfigurationsProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data S3DestinationProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-s3destination.html>
+    S3DestinationProperty {haddock_workaround_ :: (),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-s3destination.html#cfn-bcmdataexports-export-s3destination-s3bucket>
+                           s3Bucket :: (Value Prelude.Text),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-s3destination.html#cfn-bcmdataexports-export-s3destination-s3outputconfigurations>
+                           s3OutputConfigurations :: S3OutputConfigurationsProperty,
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-s3destination.html#cfn-bcmdataexports-export-s3destination-s3prefix>
+                           s3Prefix :: (Value Prelude.Text),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-s3destination.html#cfn-bcmdataexports-export-s3destination-s3region>
+                           s3Region :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkS3DestinationProperty ::
+  Value Prelude.Text
+  -> S3OutputConfigurationsProperty
+     -> Value Prelude.Text
+        -> Value Prelude.Text -> S3DestinationProperty
+mkS3DestinationProperty
+  s3Bucket
+  s3OutputConfigurations
+  s3Prefix
+  s3Region
+  = S3DestinationProperty
+      {haddock_workaround_ = (), s3Bucket = s3Bucket,
+       s3OutputConfigurations = s3OutputConfigurations,
+       s3Prefix = s3Prefix, s3Region = s3Region}
+instance ToResourceProperties S3DestinationProperty where
+  toResourceProperties S3DestinationProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::BCMDataExports::Export.S3Destination",
+         supportsTags = Prelude.False,
+         properties = ["S3Bucket" JSON..= s3Bucket,
+                       "S3OutputConfigurations" JSON..= s3OutputConfigurations,
+                       "S3Prefix" JSON..= s3Prefix, "S3Region" JSON..= s3Region]}
+instance JSON.ToJSON S3DestinationProperty where
+  toJSON S3DestinationProperty {..}
+    = JSON.object
+        ["S3Bucket" JSON..= s3Bucket,
+         "S3OutputConfigurations" JSON..= s3OutputConfigurations,
+         "S3Prefix" JSON..= s3Prefix, "S3Region" JSON..= s3Region]
+instance Property "S3Bucket" S3DestinationProperty where
+  type PropertyType "S3Bucket" S3DestinationProperty = Value Prelude.Text
+  set newValue S3DestinationProperty {..}
+    = S3DestinationProperty {s3Bucket = newValue, ..}
+instance Property "S3OutputConfigurations" S3DestinationProperty where
+  type PropertyType "S3OutputConfigurations" S3DestinationProperty = S3OutputConfigurationsProperty
+  set newValue S3DestinationProperty {..}
+    = S3DestinationProperty {s3OutputConfigurations = newValue, ..}
+instance Property "S3Prefix" S3DestinationProperty where
+  type PropertyType "S3Prefix" S3DestinationProperty = Value Prelude.Text
+  set newValue S3DestinationProperty {..}
+    = S3DestinationProperty {s3Prefix = newValue, ..}
+instance Property "S3Region" S3DestinationProperty where
+  type PropertyType "S3Region" S3DestinationProperty = Value Prelude.Text
+  set newValue S3DestinationProperty {..}
+    = S3DestinationProperty {s3Region = newValue, ..}
diff --git a/gen/Stratosphere/BCMDataExports/Export/S3DestinationProperty.hs-boot b/gen/Stratosphere/BCMDataExports/Export/S3DestinationProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/BCMDataExports/Export/S3DestinationProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.BCMDataExports.Export.S3DestinationProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data S3DestinationProperty :: Prelude.Type
+instance ToResourceProperties S3DestinationProperty
+instance Prelude.Eq S3DestinationProperty
+instance Prelude.Show S3DestinationProperty
+instance JSON.ToJSON S3DestinationProperty
diff --git a/gen/Stratosphere/BCMDataExports/Export/S3OutputConfigurationsProperty.hs b/gen/Stratosphere/BCMDataExports/Export/S3OutputConfigurationsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/BCMDataExports/Export/S3OutputConfigurationsProperty.hs
@@ -0,0 +1,63 @@
+module Stratosphere.BCMDataExports.Export.S3OutputConfigurationsProperty (
+        S3OutputConfigurationsProperty(..),
+        mkS3OutputConfigurationsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data S3OutputConfigurationsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-s3outputconfigurations.html>
+    S3OutputConfigurationsProperty {haddock_workaround_ :: (),
+                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-s3outputconfigurations.html#cfn-bcmdataexports-export-s3outputconfigurations-compression>
+                                    compression :: (Value Prelude.Text),
+                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-s3outputconfigurations.html#cfn-bcmdataexports-export-s3outputconfigurations-format>
+                                    format :: (Value Prelude.Text),
+                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-s3outputconfigurations.html#cfn-bcmdataexports-export-s3outputconfigurations-outputtype>
+                                    outputType :: (Value Prelude.Text),
+                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-s3outputconfigurations.html#cfn-bcmdataexports-export-s3outputconfigurations-overwrite>
+                                    overwrite :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkS3OutputConfigurationsProperty ::
+  Value Prelude.Text
+  -> Value Prelude.Text
+     -> Value Prelude.Text
+        -> Value Prelude.Text -> S3OutputConfigurationsProperty
+mkS3OutputConfigurationsProperty
+  compression
+  format
+  outputType
+  overwrite
+  = S3OutputConfigurationsProperty
+      {haddock_workaround_ = (), compression = compression,
+       format = format, outputType = outputType, overwrite = overwrite}
+instance ToResourceProperties S3OutputConfigurationsProperty where
+  toResourceProperties S3OutputConfigurationsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::BCMDataExports::Export.S3OutputConfigurations",
+         supportsTags = Prelude.False,
+         properties = ["Compression" JSON..= compression,
+                       "Format" JSON..= format, "OutputType" JSON..= outputType,
+                       "Overwrite" JSON..= overwrite]}
+instance JSON.ToJSON S3OutputConfigurationsProperty where
+  toJSON S3OutputConfigurationsProperty {..}
+    = JSON.object
+        ["Compression" JSON..= compression, "Format" JSON..= format,
+         "OutputType" JSON..= outputType, "Overwrite" JSON..= overwrite]
+instance Property "Compression" S3OutputConfigurationsProperty where
+  type PropertyType "Compression" S3OutputConfigurationsProperty = Value Prelude.Text
+  set newValue S3OutputConfigurationsProperty {..}
+    = S3OutputConfigurationsProperty {compression = newValue, ..}
+instance Property "Format" S3OutputConfigurationsProperty where
+  type PropertyType "Format" S3OutputConfigurationsProperty = Value Prelude.Text
+  set newValue S3OutputConfigurationsProperty {..}
+    = S3OutputConfigurationsProperty {format = newValue, ..}
+instance Property "OutputType" S3OutputConfigurationsProperty where
+  type PropertyType "OutputType" S3OutputConfigurationsProperty = Value Prelude.Text
+  set newValue S3OutputConfigurationsProperty {..}
+    = S3OutputConfigurationsProperty {outputType = newValue, ..}
+instance Property "Overwrite" S3OutputConfigurationsProperty where
+  type PropertyType "Overwrite" S3OutputConfigurationsProperty = Value Prelude.Text
+  set newValue S3OutputConfigurationsProperty {..}
+    = S3OutputConfigurationsProperty {overwrite = newValue, ..}
diff --git a/gen/Stratosphere/BCMDataExports/Export/S3OutputConfigurationsProperty.hs-boot b/gen/Stratosphere/BCMDataExports/Export/S3OutputConfigurationsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/BCMDataExports/Export/S3OutputConfigurationsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.BCMDataExports.Export.S3OutputConfigurationsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data S3OutputConfigurationsProperty :: Prelude.Type
+instance ToResourceProperties S3OutputConfigurationsProperty
+instance Prelude.Eq S3OutputConfigurationsProperty
+instance Prelude.Show S3OutputConfigurationsProperty
+instance JSON.ToJSON S3OutputConfigurationsProperty
diff --git a/stratosphere-bcmdataexports.cabal b/stratosphere-bcmdataexports.cabal
new file mode 100644
--- /dev/null
+++ b/stratosphere-bcmdataexports.cabal
@@ -0,0 +1,80 @@
+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-bcmdataexports
+version:        1.0.0
+synopsis:       Stratosphere integration for AWS BCMDataExports.
+description:    Integration into stratosphere to generate resources and properties for AWS BCMDataExports
+category:       AWS, Cloud, BCMDataExports
+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.BCMDataExports.Export
+      Stratosphere.BCMDataExports.Export.DataQueryProperty
+      Stratosphere.BCMDataExports.Export.DestinationConfigurationsProperty
+      Stratosphere.BCMDataExports.Export.ExportProperty
+      Stratosphere.BCMDataExports.Export.RefreshCadenceProperty
+      Stratosphere.BCMDataExports.Export.ResourceTagProperty
+      Stratosphere.BCMDataExports.Export.S3DestinationProperty
+      Stratosphere.BCMDataExports.Export.S3OutputConfigurationsProperty
+  other-modules:
+      Paths_stratosphere_bcmdataexports
+  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
