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/DataBrew/Dataset.hs b/gen/Stratosphere/DataBrew/Dataset.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Dataset.hs
@@ -0,0 +1,88 @@
+module Stratosphere.DataBrew.Dataset (
+        module Exports, Dataset(..), mkDataset
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.DataBrew.Dataset.FormatOptionsProperty as Exports
+import {-# SOURCE #-} Stratosphere.DataBrew.Dataset.InputProperty as Exports
+import {-# SOURCE #-} Stratosphere.DataBrew.Dataset.PathOptionsProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Tag
+import Stratosphere.Value
+data Dataset
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-dataset.html>
+    Dataset {haddock_workaround_ :: (),
+             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-dataset.html#cfn-databrew-dataset-format>
+             format :: (Prelude.Maybe (Value Prelude.Text)),
+             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-dataset.html#cfn-databrew-dataset-formatoptions>
+             formatOptions :: (Prelude.Maybe FormatOptionsProperty),
+             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-dataset.html#cfn-databrew-dataset-input>
+             input :: InputProperty,
+             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-dataset.html#cfn-databrew-dataset-name>
+             name :: (Value Prelude.Text),
+             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-dataset.html#cfn-databrew-dataset-pathoptions>
+             pathOptions :: (Prelude.Maybe PathOptionsProperty),
+             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-dataset.html#cfn-databrew-dataset-source>
+             source :: (Prelude.Maybe (Value Prelude.Text)),
+             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-dataset.html#cfn-databrew-dataset-tags>
+             tags :: (Prelude.Maybe [Tag])}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkDataset :: InputProperty -> Value Prelude.Text -> Dataset
+mkDataset input name
+  = Dataset
+      {haddock_workaround_ = (), input = input, name = name,
+       format = Prelude.Nothing, formatOptions = Prelude.Nothing,
+       pathOptions = Prelude.Nothing, source = Prelude.Nothing,
+       tags = Prelude.Nothing}
+instance ToResourceProperties Dataset where
+  toResourceProperties Dataset {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Dataset", supportsTags = Prelude.True,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["Input" JSON..= input, "Name" JSON..= name]
+                           (Prelude.catMaybes
+                              [(JSON..=) "Format" Prelude.<$> format,
+                               (JSON..=) "FormatOptions" Prelude.<$> formatOptions,
+                               (JSON..=) "PathOptions" Prelude.<$> pathOptions,
+                               (JSON..=) "Source" Prelude.<$> source,
+                               (JSON..=) "Tags" Prelude.<$> tags]))}
+instance JSON.ToJSON Dataset where
+  toJSON Dataset {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["Input" JSON..= input, "Name" JSON..= name]
+              (Prelude.catMaybes
+                 [(JSON..=) "Format" Prelude.<$> format,
+                  (JSON..=) "FormatOptions" Prelude.<$> formatOptions,
+                  (JSON..=) "PathOptions" Prelude.<$> pathOptions,
+                  (JSON..=) "Source" Prelude.<$> source,
+                  (JSON..=) "Tags" Prelude.<$> tags])))
+instance Property "Format" Dataset where
+  type PropertyType "Format" Dataset = Value Prelude.Text
+  set newValue Dataset {..}
+    = Dataset {format = Prelude.pure newValue, ..}
+instance Property "FormatOptions" Dataset where
+  type PropertyType "FormatOptions" Dataset = FormatOptionsProperty
+  set newValue Dataset {..}
+    = Dataset {formatOptions = Prelude.pure newValue, ..}
+instance Property "Input" Dataset where
+  type PropertyType "Input" Dataset = InputProperty
+  set newValue Dataset {..} = Dataset {input = newValue, ..}
+instance Property "Name" Dataset where
+  type PropertyType "Name" Dataset = Value Prelude.Text
+  set newValue Dataset {..} = Dataset {name = newValue, ..}
+instance Property "PathOptions" Dataset where
+  type PropertyType "PathOptions" Dataset = PathOptionsProperty
+  set newValue Dataset {..}
+    = Dataset {pathOptions = Prelude.pure newValue, ..}
+instance Property "Source" Dataset where
+  type PropertyType "Source" Dataset = Value Prelude.Text
+  set newValue Dataset {..}
+    = Dataset {source = Prelude.pure newValue, ..}
+instance Property "Tags" Dataset where
+  type PropertyType "Tags" Dataset = [Tag]
+  set newValue Dataset {..}
+    = Dataset {tags = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Dataset/CsvOptionsProperty.hs b/gen/Stratosphere/DataBrew/Dataset/CsvOptionsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Dataset/CsvOptionsProperty.hs
@@ -0,0 +1,45 @@
+module Stratosphere.DataBrew.Dataset.CsvOptionsProperty (
+        CsvOptionsProperty(..), mkCsvOptionsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data CsvOptionsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-csvoptions.html>
+    CsvOptionsProperty {haddock_workaround_ :: (),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-csvoptions.html#cfn-databrew-dataset-csvoptions-delimiter>
+                        delimiter :: (Prelude.Maybe (Value Prelude.Text)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-csvoptions.html#cfn-databrew-dataset-csvoptions-headerrow>
+                        headerRow :: (Prelude.Maybe (Value Prelude.Bool))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkCsvOptionsProperty :: CsvOptionsProperty
+mkCsvOptionsProperty
+  = CsvOptionsProperty
+      {haddock_workaround_ = (), delimiter = Prelude.Nothing,
+       headerRow = Prelude.Nothing}
+instance ToResourceProperties CsvOptionsProperty where
+  toResourceProperties CsvOptionsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Dataset.CsvOptions",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "Delimiter" Prelude.<$> delimiter,
+                            (JSON..=) "HeaderRow" Prelude.<$> headerRow])}
+instance JSON.ToJSON CsvOptionsProperty where
+  toJSON CsvOptionsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "Delimiter" Prelude.<$> delimiter,
+               (JSON..=) "HeaderRow" Prelude.<$> headerRow]))
+instance Property "Delimiter" CsvOptionsProperty where
+  type PropertyType "Delimiter" CsvOptionsProperty = Value Prelude.Text
+  set newValue CsvOptionsProperty {..}
+    = CsvOptionsProperty {delimiter = Prelude.pure newValue, ..}
+instance Property "HeaderRow" CsvOptionsProperty where
+  type PropertyType "HeaderRow" CsvOptionsProperty = Value Prelude.Bool
+  set newValue CsvOptionsProperty {..}
+    = CsvOptionsProperty {headerRow = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Dataset/CsvOptionsProperty.hs-boot b/gen/Stratosphere/DataBrew/Dataset/CsvOptionsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Dataset/CsvOptionsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Dataset.CsvOptionsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data CsvOptionsProperty :: Prelude.Type
+instance ToResourceProperties CsvOptionsProperty
+instance Prelude.Eq CsvOptionsProperty
+instance Prelude.Show CsvOptionsProperty
+instance JSON.ToJSON CsvOptionsProperty
diff --git a/gen/Stratosphere/DataBrew/Dataset/DataCatalogInputDefinitionProperty.hs b/gen/Stratosphere/DataBrew/Dataset/DataCatalogInputDefinitionProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Dataset/DataCatalogInputDefinitionProperty.hs
@@ -0,0 +1,69 @@
+module Stratosphere.DataBrew.Dataset.DataCatalogInputDefinitionProperty (
+        module Exports, DataCatalogInputDefinitionProperty(..),
+        mkDataCatalogInputDefinitionProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.DataBrew.Dataset.S3LocationProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data DataCatalogInputDefinitionProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-datacataloginputdefinition.html>
+    DataCatalogInputDefinitionProperty {haddock_workaround_ :: (),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-datacataloginputdefinition.html#cfn-databrew-dataset-datacataloginputdefinition-catalogid>
+                                        catalogId :: (Prelude.Maybe (Value Prelude.Text)),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-datacataloginputdefinition.html#cfn-databrew-dataset-datacataloginputdefinition-databasename>
+                                        databaseName :: (Prelude.Maybe (Value Prelude.Text)),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-datacataloginputdefinition.html#cfn-databrew-dataset-datacataloginputdefinition-tablename>
+                                        tableName :: (Prelude.Maybe (Value Prelude.Text)),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-datacataloginputdefinition.html#cfn-databrew-dataset-datacataloginputdefinition-tempdirectory>
+                                        tempDirectory :: (Prelude.Maybe S3LocationProperty)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkDataCatalogInputDefinitionProperty ::
+  DataCatalogInputDefinitionProperty
+mkDataCatalogInputDefinitionProperty
+  = DataCatalogInputDefinitionProperty
+      {haddock_workaround_ = (), catalogId = Prelude.Nothing,
+       databaseName = Prelude.Nothing, tableName = Prelude.Nothing,
+       tempDirectory = Prelude.Nothing}
+instance ToResourceProperties DataCatalogInputDefinitionProperty where
+  toResourceProperties DataCatalogInputDefinitionProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Dataset.DataCatalogInputDefinition",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "CatalogId" Prelude.<$> catalogId,
+                            (JSON..=) "DatabaseName" Prelude.<$> databaseName,
+                            (JSON..=) "TableName" Prelude.<$> tableName,
+                            (JSON..=) "TempDirectory" Prelude.<$> tempDirectory])}
+instance JSON.ToJSON DataCatalogInputDefinitionProperty where
+  toJSON DataCatalogInputDefinitionProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "CatalogId" Prelude.<$> catalogId,
+               (JSON..=) "DatabaseName" Prelude.<$> databaseName,
+               (JSON..=) "TableName" Prelude.<$> tableName,
+               (JSON..=) "TempDirectory" Prelude.<$> tempDirectory]))
+instance Property "CatalogId" DataCatalogInputDefinitionProperty where
+  type PropertyType "CatalogId" DataCatalogInputDefinitionProperty = Value Prelude.Text
+  set newValue DataCatalogInputDefinitionProperty {..}
+    = DataCatalogInputDefinitionProperty
+        {catalogId = Prelude.pure newValue, ..}
+instance Property "DatabaseName" DataCatalogInputDefinitionProperty where
+  type PropertyType "DatabaseName" DataCatalogInputDefinitionProperty = Value Prelude.Text
+  set newValue DataCatalogInputDefinitionProperty {..}
+    = DataCatalogInputDefinitionProperty
+        {databaseName = Prelude.pure newValue, ..}
+instance Property "TableName" DataCatalogInputDefinitionProperty where
+  type PropertyType "TableName" DataCatalogInputDefinitionProperty = Value Prelude.Text
+  set newValue DataCatalogInputDefinitionProperty {..}
+    = DataCatalogInputDefinitionProperty
+        {tableName = Prelude.pure newValue, ..}
+instance Property "TempDirectory" DataCatalogInputDefinitionProperty where
+  type PropertyType "TempDirectory" DataCatalogInputDefinitionProperty = S3LocationProperty
+  set newValue DataCatalogInputDefinitionProperty {..}
+    = DataCatalogInputDefinitionProperty
+        {tempDirectory = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Dataset/DataCatalogInputDefinitionProperty.hs-boot b/gen/Stratosphere/DataBrew/Dataset/DataCatalogInputDefinitionProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Dataset/DataCatalogInputDefinitionProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Dataset.DataCatalogInputDefinitionProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data DataCatalogInputDefinitionProperty :: Prelude.Type
+instance ToResourceProperties DataCatalogInputDefinitionProperty
+instance Prelude.Eq DataCatalogInputDefinitionProperty
+instance Prelude.Show DataCatalogInputDefinitionProperty
+instance JSON.ToJSON DataCatalogInputDefinitionProperty
diff --git a/gen/Stratosphere/DataBrew/Dataset/DatabaseInputDefinitionProperty.hs b/gen/Stratosphere/DataBrew/Dataset/DatabaseInputDefinitionProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Dataset/DatabaseInputDefinitionProperty.hs
@@ -0,0 +1,71 @@
+module Stratosphere.DataBrew.Dataset.DatabaseInputDefinitionProperty (
+        module Exports, DatabaseInputDefinitionProperty(..),
+        mkDatabaseInputDefinitionProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.DataBrew.Dataset.S3LocationProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data DatabaseInputDefinitionProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-databaseinputdefinition.html>
+    DatabaseInputDefinitionProperty {haddock_workaround_ :: (),
+                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-databaseinputdefinition.html#cfn-databrew-dataset-databaseinputdefinition-databasetablename>
+                                     databaseTableName :: (Prelude.Maybe (Value Prelude.Text)),
+                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-databaseinputdefinition.html#cfn-databrew-dataset-databaseinputdefinition-glueconnectionname>
+                                     glueConnectionName :: (Value Prelude.Text),
+                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-databaseinputdefinition.html#cfn-databrew-dataset-databaseinputdefinition-querystring>
+                                     queryString :: (Prelude.Maybe (Value Prelude.Text)),
+                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-databaseinputdefinition.html#cfn-databrew-dataset-databaseinputdefinition-tempdirectory>
+                                     tempDirectory :: (Prelude.Maybe S3LocationProperty)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkDatabaseInputDefinitionProperty ::
+  Value Prelude.Text -> DatabaseInputDefinitionProperty
+mkDatabaseInputDefinitionProperty glueConnectionName
+  = DatabaseInputDefinitionProperty
+      {haddock_workaround_ = (), glueConnectionName = glueConnectionName,
+       databaseTableName = Prelude.Nothing, queryString = Prelude.Nothing,
+       tempDirectory = Prelude.Nothing}
+instance ToResourceProperties DatabaseInputDefinitionProperty where
+  toResourceProperties DatabaseInputDefinitionProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Dataset.DatabaseInputDefinition",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["GlueConnectionName" JSON..= glueConnectionName]
+                           (Prelude.catMaybes
+                              [(JSON..=) "DatabaseTableName" Prelude.<$> databaseTableName,
+                               (JSON..=) "QueryString" Prelude.<$> queryString,
+                               (JSON..=) "TempDirectory" Prelude.<$> tempDirectory]))}
+instance JSON.ToJSON DatabaseInputDefinitionProperty where
+  toJSON DatabaseInputDefinitionProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["GlueConnectionName" JSON..= glueConnectionName]
+              (Prelude.catMaybes
+                 [(JSON..=) "DatabaseTableName" Prelude.<$> databaseTableName,
+                  (JSON..=) "QueryString" Prelude.<$> queryString,
+                  (JSON..=) "TempDirectory" Prelude.<$> tempDirectory])))
+instance Property "DatabaseTableName" DatabaseInputDefinitionProperty where
+  type PropertyType "DatabaseTableName" DatabaseInputDefinitionProperty = Value Prelude.Text
+  set newValue DatabaseInputDefinitionProperty {..}
+    = DatabaseInputDefinitionProperty
+        {databaseTableName = Prelude.pure newValue, ..}
+instance Property "GlueConnectionName" DatabaseInputDefinitionProperty where
+  type PropertyType "GlueConnectionName" DatabaseInputDefinitionProperty = Value Prelude.Text
+  set newValue DatabaseInputDefinitionProperty {..}
+    = DatabaseInputDefinitionProperty
+        {glueConnectionName = newValue, ..}
+instance Property "QueryString" DatabaseInputDefinitionProperty where
+  type PropertyType "QueryString" DatabaseInputDefinitionProperty = Value Prelude.Text
+  set newValue DatabaseInputDefinitionProperty {..}
+    = DatabaseInputDefinitionProperty
+        {queryString = Prelude.pure newValue, ..}
+instance Property "TempDirectory" DatabaseInputDefinitionProperty where
+  type PropertyType "TempDirectory" DatabaseInputDefinitionProperty = S3LocationProperty
+  set newValue DatabaseInputDefinitionProperty {..}
+    = DatabaseInputDefinitionProperty
+        {tempDirectory = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Dataset/DatabaseInputDefinitionProperty.hs-boot b/gen/Stratosphere/DataBrew/Dataset/DatabaseInputDefinitionProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Dataset/DatabaseInputDefinitionProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Dataset.DatabaseInputDefinitionProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data DatabaseInputDefinitionProperty :: Prelude.Type
+instance ToResourceProperties DatabaseInputDefinitionProperty
+instance Prelude.Eq DatabaseInputDefinitionProperty
+instance Prelude.Show DatabaseInputDefinitionProperty
+instance JSON.ToJSON DatabaseInputDefinitionProperty
diff --git a/gen/Stratosphere/DataBrew/Dataset/DatasetParameterProperty.hs b/gen/Stratosphere/DataBrew/Dataset/DatasetParameterProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Dataset/DatasetParameterProperty.hs
@@ -0,0 +1,77 @@
+module Stratosphere.DataBrew.Dataset.DatasetParameterProperty (
+        module Exports, DatasetParameterProperty(..),
+        mkDatasetParameterProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.DataBrew.Dataset.DatetimeOptionsProperty as Exports
+import {-# SOURCE #-} Stratosphere.DataBrew.Dataset.FilterExpressionProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data DatasetParameterProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-datasetparameter.html>
+    DatasetParameterProperty {haddock_workaround_ :: (),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-datasetparameter.html#cfn-databrew-dataset-datasetparameter-createcolumn>
+                              createColumn :: (Prelude.Maybe (Value Prelude.Bool)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-datasetparameter.html#cfn-databrew-dataset-datasetparameter-datetimeoptions>
+                              datetimeOptions :: (Prelude.Maybe DatetimeOptionsProperty),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-datasetparameter.html#cfn-databrew-dataset-datasetparameter-filter>
+                              filter :: (Prelude.Maybe FilterExpressionProperty),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-datasetparameter.html#cfn-databrew-dataset-datasetparameter-name>
+                              name :: (Value Prelude.Text),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-datasetparameter.html#cfn-databrew-dataset-datasetparameter-type>
+                              type' :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkDatasetParameterProperty ::
+  Value Prelude.Text
+  -> Value Prelude.Text -> DatasetParameterProperty
+mkDatasetParameterProperty name type'
+  = DatasetParameterProperty
+      {haddock_workaround_ = (), name = name, type' = type',
+       createColumn = Prelude.Nothing, datetimeOptions = Prelude.Nothing,
+       filter = Prelude.Nothing}
+instance ToResourceProperties DatasetParameterProperty where
+  toResourceProperties DatasetParameterProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Dataset.DatasetParameter",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["Name" JSON..= name, "Type" JSON..= type']
+                           (Prelude.catMaybes
+                              [(JSON..=) "CreateColumn" Prelude.<$> createColumn,
+                               (JSON..=) "DatetimeOptions" Prelude.<$> datetimeOptions,
+                               (JSON..=) "Filter" Prelude.<$> filter]))}
+instance JSON.ToJSON DatasetParameterProperty where
+  toJSON DatasetParameterProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["Name" JSON..= name, "Type" JSON..= type']
+              (Prelude.catMaybes
+                 [(JSON..=) "CreateColumn" Prelude.<$> createColumn,
+                  (JSON..=) "DatetimeOptions" Prelude.<$> datetimeOptions,
+                  (JSON..=) "Filter" Prelude.<$> filter])))
+instance Property "CreateColumn" DatasetParameterProperty where
+  type PropertyType "CreateColumn" DatasetParameterProperty = Value Prelude.Bool
+  set newValue DatasetParameterProperty {..}
+    = DatasetParameterProperty
+        {createColumn = Prelude.pure newValue, ..}
+instance Property "DatetimeOptions" DatasetParameterProperty where
+  type PropertyType "DatetimeOptions" DatasetParameterProperty = DatetimeOptionsProperty
+  set newValue DatasetParameterProperty {..}
+    = DatasetParameterProperty
+        {datetimeOptions = Prelude.pure newValue, ..}
+instance Property "Filter" DatasetParameterProperty where
+  type PropertyType "Filter" DatasetParameterProperty = FilterExpressionProperty
+  set newValue DatasetParameterProperty {..}
+    = DatasetParameterProperty {filter = Prelude.pure newValue, ..}
+instance Property "Name" DatasetParameterProperty where
+  type PropertyType "Name" DatasetParameterProperty = Value Prelude.Text
+  set newValue DatasetParameterProperty {..}
+    = DatasetParameterProperty {name = newValue, ..}
+instance Property "Type" DatasetParameterProperty where
+  type PropertyType "Type" DatasetParameterProperty = Value Prelude.Text
+  set newValue DatasetParameterProperty {..}
+    = DatasetParameterProperty {type' = newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Dataset/DatasetParameterProperty.hs-boot b/gen/Stratosphere/DataBrew/Dataset/DatasetParameterProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Dataset/DatasetParameterProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Dataset.DatasetParameterProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data DatasetParameterProperty :: Prelude.Type
+instance ToResourceProperties DatasetParameterProperty
+instance Prelude.Eq DatasetParameterProperty
+instance Prelude.Show DatasetParameterProperty
+instance JSON.ToJSON DatasetParameterProperty
diff --git a/gen/Stratosphere/DataBrew/Dataset/DatetimeOptionsProperty.hs b/gen/Stratosphere/DataBrew/Dataset/DatetimeOptionsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Dataset/DatetimeOptionsProperty.hs
@@ -0,0 +1,57 @@
+module Stratosphere.DataBrew.Dataset.DatetimeOptionsProperty (
+        DatetimeOptionsProperty(..), mkDatetimeOptionsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data DatetimeOptionsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-datetimeoptions.html>
+    DatetimeOptionsProperty {haddock_workaround_ :: (),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-datetimeoptions.html#cfn-databrew-dataset-datetimeoptions-format>
+                             format :: (Value Prelude.Text),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-datetimeoptions.html#cfn-databrew-dataset-datetimeoptions-localecode>
+                             localeCode :: (Prelude.Maybe (Value Prelude.Text)),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-datetimeoptions.html#cfn-databrew-dataset-datetimeoptions-timezoneoffset>
+                             timezoneOffset :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkDatetimeOptionsProperty ::
+  Value Prelude.Text -> DatetimeOptionsProperty
+mkDatetimeOptionsProperty format
+  = DatetimeOptionsProperty
+      {haddock_workaround_ = (), format = format,
+       localeCode = Prelude.Nothing, timezoneOffset = Prelude.Nothing}
+instance ToResourceProperties DatetimeOptionsProperty where
+  toResourceProperties DatetimeOptionsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Dataset.DatetimeOptions",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["Format" JSON..= format]
+                           (Prelude.catMaybes
+                              [(JSON..=) "LocaleCode" Prelude.<$> localeCode,
+                               (JSON..=) "TimezoneOffset" Prelude.<$> timezoneOffset]))}
+instance JSON.ToJSON DatetimeOptionsProperty where
+  toJSON DatetimeOptionsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["Format" JSON..= format]
+              (Prelude.catMaybes
+                 [(JSON..=) "LocaleCode" Prelude.<$> localeCode,
+                  (JSON..=) "TimezoneOffset" Prelude.<$> timezoneOffset])))
+instance Property "Format" DatetimeOptionsProperty where
+  type PropertyType "Format" DatetimeOptionsProperty = Value Prelude.Text
+  set newValue DatetimeOptionsProperty {..}
+    = DatetimeOptionsProperty {format = newValue, ..}
+instance Property "LocaleCode" DatetimeOptionsProperty where
+  type PropertyType "LocaleCode" DatetimeOptionsProperty = Value Prelude.Text
+  set newValue DatetimeOptionsProperty {..}
+    = DatetimeOptionsProperty {localeCode = Prelude.pure newValue, ..}
+instance Property "TimezoneOffset" DatetimeOptionsProperty where
+  type PropertyType "TimezoneOffset" DatetimeOptionsProperty = Value Prelude.Text
+  set newValue DatetimeOptionsProperty {..}
+    = DatetimeOptionsProperty
+        {timezoneOffset = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Dataset/DatetimeOptionsProperty.hs-boot b/gen/Stratosphere/DataBrew/Dataset/DatetimeOptionsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Dataset/DatetimeOptionsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Dataset.DatetimeOptionsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data DatetimeOptionsProperty :: Prelude.Type
+instance ToResourceProperties DatetimeOptionsProperty
+instance Prelude.Eq DatetimeOptionsProperty
+instance Prelude.Show DatetimeOptionsProperty
+instance JSON.ToJSON DatetimeOptionsProperty
diff --git a/gen/Stratosphere/DataBrew/Dataset/ExcelOptionsProperty.hs b/gen/Stratosphere/DataBrew/Dataset/ExcelOptionsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Dataset/ExcelOptionsProperty.hs
@@ -0,0 +1,53 @@
+module Stratosphere.DataBrew.Dataset.ExcelOptionsProperty (
+        ExcelOptionsProperty(..), mkExcelOptionsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data ExcelOptionsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-exceloptions.html>
+    ExcelOptionsProperty {haddock_workaround_ :: (),
+                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-exceloptions.html#cfn-databrew-dataset-exceloptions-headerrow>
+                          headerRow :: (Prelude.Maybe (Value Prelude.Bool)),
+                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-exceloptions.html#cfn-databrew-dataset-exceloptions-sheetindexes>
+                          sheetIndexes :: (Prelude.Maybe (ValueList Prelude.Integer)),
+                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-exceloptions.html#cfn-databrew-dataset-exceloptions-sheetnames>
+                          sheetNames :: (Prelude.Maybe (ValueList Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkExcelOptionsProperty :: ExcelOptionsProperty
+mkExcelOptionsProperty
+  = ExcelOptionsProperty
+      {haddock_workaround_ = (), headerRow = Prelude.Nothing,
+       sheetIndexes = Prelude.Nothing, sheetNames = Prelude.Nothing}
+instance ToResourceProperties ExcelOptionsProperty where
+  toResourceProperties ExcelOptionsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Dataset.ExcelOptions",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "HeaderRow" Prelude.<$> headerRow,
+                            (JSON..=) "SheetIndexes" Prelude.<$> sheetIndexes,
+                            (JSON..=) "SheetNames" Prelude.<$> sheetNames])}
+instance JSON.ToJSON ExcelOptionsProperty where
+  toJSON ExcelOptionsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "HeaderRow" Prelude.<$> headerRow,
+               (JSON..=) "SheetIndexes" Prelude.<$> sheetIndexes,
+               (JSON..=) "SheetNames" Prelude.<$> sheetNames]))
+instance Property "HeaderRow" ExcelOptionsProperty where
+  type PropertyType "HeaderRow" ExcelOptionsProperty = Value Prelude.Bool
+  set newValue ExcelOptionsProperty {..}
+    = ExcelOptionsProperty {headerRow = Prelude.pure newValue, ..}
+instance Property "SheetIndexes" ExcelOptionsProperty where
+  type PropertyType "SheetIndexes" ExcelOptionsProperty = ValueList Prelude.Integer
+  set newValue ExcelOptionsProperty {..}
+    = ExcelOptionsProperty {sheetIndexes = Prelude.pure newValue, ..}
+instance Property "SheetNames" ExcelOptionsProperty where
+  type PropertyType "SheetNames" ExcelOptionsProperty = ValueList Prelude.Text
+  set newValue ExcelOptionsProperty {..}
+    = ExcelOptionsProperty {sheetNames = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Dataset/ExcelOptionsProperty.hs-boot b/gen/Stratosphere/DataBrew/Dataset/ExcelOptionsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Dataset/ExcelOptionsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Dataset.ExcelOptionsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data ExcelOptionsProperty :: Prelude.Type
+instance ToResourceProperties ExcelOptionsProperty
+instance Prelude.Eq ExcelOptionsProperty
+instance Prelude.Show ExcelOptionsProperty
+instance JSON.ToJSON ExcelOptionsProperty
diff --git a/gen/Stratosphere/DataBrew/Dataset/FilesLimitProperty.hs b/gen/Stratosphere/DataBrew/Dataset/FilesLimitProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Dataset/FilesLimitProperty.hs
@@ -0,0 +1,55 @@
+module Stratosphere.DataBrew.Dataset.FilesLimitProperty (
+        FilesLimitProperty(..), mkFilesLimitProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data FilesLimitProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-fileslimit.html>
+    FilesLimitProperty {haddock_workaround_ :: (),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-fileslimit.html#cfn-databrew-dataset-fileslimit-maxfiles>
+                        maxFiles :: (Value Prelude.Integer),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-fileslimit.html#cfn-databrew-dataset-fileslimit-order>
+                        order :: (Prelude.Maybe (Value Prelude.Text)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-fileslimit.html#cfn-databrew-dataset-fileslimit-orderedby>
+                        orderedBy :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkFilesLimitProperty :: Value Prelude.Integer -> FilesLimitProperty
+mkFilesLimitProperty maxFiles
+  = FilesLimitProperty
+      {haddock_workaround_ = (), maxFiles = maxFiles,
+       order = Prelude.Nothing, orderedBy = Prelude.Nothing}
+instance ToResourceProperties FilesLimitProperty where
+  toResourceProperties FilesLimitProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Dataset.FilesLimit",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["MaxFiles" JSON..= maxFiles]
+                           (Prelude.catMaybes
+                              [(JSON..=) "Order" Prelude.<$> order,
+                               (JSON..=) "OrderedBy" Prelude.<$> orderedBy]))}
+instance JSON.ToJSON FilesLimitProperty where
+  toJSON FilesLimitProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["MaxFiles" JSON..= maxFiles]
+              (Prelude.catMaybes
+                 [(JSON..=) "Order" Prelude.<$> order,
+                  (JSON..=) "OrderedBy" Prelude.<$> orderedBy])))
+instance Property "MaxFiles" FilesLimitProperty where
+  type PropertyType "MaxFiles" FilesLimitProperty = Value Prelude.Integer
+  set newValue FilesLimitProperty {..}
+    = FilesLimitProperty {maxFiles = newValue, ..}
+instance Property "Order" FilesLimitProperty where
+  type PropertyType "Order" FilesLimitProperty = Value Prelude.Text
+  set newValue FilesLimitProperty {..}
+    = FilesLimitProperty {order = Prelude.pure newValue, ..}
+instance Property "OrderedBy" FilesLimitProperty where
+  type PropertyType "OrderedBy" FilesLimitProperty = Value Prelude.Text
+  set newValue FilesLimitProperty {..}
+    = FilesLimitProperty {orderedBy = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Dataset/FilesLimitProperty.hs-boot b/gen/Stratosphere/DataBrew/Dataset/FilesLimitProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Dataset/FilesLimitProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Dataset.FilesLimitProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data FilesLimitProperty :: Prelude.Type
+instance ToResourceProperties FilesLimitProperty
+instance Prelude.Eq FilesLimitProperty
+instance Prelude.Show FilesLimitProperty
+instance JSON.ToJSON FilesLimitProperty
diff --git a/gen/Stratosphere/DataBrew/Dataset/FilterExpressionProperty.hs b/gen/Stratosphere/DataBrew/Dataset/FilterExpressionProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Dataset/FilterExpressionProperty.hs
@@ -0,0 +1,44 @@
+module Stratosphere.DataBrew.Dataset.FilterExpressionProperty (
+        module Exports, FilterExpressionProperty(..),
+        mkFilterExpressionProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.DataBrew.Dataset.FilterValueProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data FilterExpressionProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-filterexpression.html>
+    FilterExpressionProperty {haddock_workaround_ :: (),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-filterexpression.html#cfn-databrew-dataset-filterexpression-expression>
+                              expression :: (Value Prelude.Text),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-filterexpression.html#cfn-databrew-dataset-filterexpression-valuesmap>
+                              valuesMap :: [FilterValueProperty]}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkFilterExpressionProperty ::
+  Value Prelude.Text
+  -> [FilterValueProperty] -> FilterExpressionProperty
+mkFilterExpressionProperty expression valuesMap
+  = FilterExpressionProperty
+      {haddock_workaround_ = (), expression = expression,
+       valuesMap = valuesMap}
+instance ToResourceProperties FilterExpressionProperty where
+  toResourceProperties FilterExpressionProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Dataset.FilterExpression",
+         supportsTags = Prelude.False,
+         properties = ["Expression" JSON..= expression,
+                       "ValuesMap" JSON..= valuesMap]}
+instance JSON.ToJSON FilterExpressionProperty where
+  toJSON FilterExpressionProperty {..}
+    = JSON.object
+        ["Expression" JSON..= expression, "ValuesMap" JSON..= valuesMap]
+instance Property "Expression" FilterExpressionProperty where
+  type PropertyType "Expression" FilterExpressionProperty = Value Prelude.Text
+  set newValue FilterExpressionProperty {..}
+    = FilterExpressionProperty {expression = newValue, ..}
+instance Property "ValuesMap" FilterExpressionProperty where
+  type PropertyType "ValuesMap" FilterExpressionProperty = [FilterValueProperty]
+  set newValue FilterExpressionProperty {..}
+    = FilterExpressionProperty {valuesMap = newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Dataset/FilterExpressionProperty.hs-boot b/gen/Stratosphere/DataBrew/Dataset/FilterExpressionProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Dataset/FilterExpressionProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Dataset.FilterExpressionProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data FilterExpressionProperty :: Prelude.Type
+instance ToResourceProperties FilterExpressionProperty
+instance Prelude.Eq FilterExpressionProperty
+instance Prelude.Show FilterExpressionProperty
+instance JSON.ToJSON FilterExpressionProperty
diff --git a/gen/Stratosphere/DataBrew/Dataset/FilterValueProperty.hs b/gen/Stratosphere/DataBrew/Dataset/FilterValueProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Dataset/FilterValueProperty.hs
@@ -0,0 +1,41 @@
+module Stratosphere.DataBrew.Dataset.FilterValueProperty (
+        FilterValueProperty(..), mkFilterValueProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data FilterValueProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-filtervalue.html>
+    FilterValueProperty {haddock_workaround_ :: (),
+                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-filtervalue.html#cfn-databrew-dataset-filtervalue-value>
+                         value :: (Value Prelude.Text),
+                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-filtervalue.html#cfn-databrew-dataset-filtervalue-valuereference>
+                         valueReference :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkFilterValueProperty ::
+  Value Prelude.Text -> Value Prelude.Text -> FilterValueProperty
+mkFilterValueProperty value valueReference
+  = FilterValueProperty
+      {haddock_workaround_ = (), value = value,
+       valueReference = valueReference}
+instance ToResourceProperties FilterValueProperty where
+  toResourceProperties FilterValueProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Dataset.FilterValue",
+         supportsTags = Prelude.False,
+         properties = ["Value" JSON..= value,
+                       "ValueReference" JSON..= valueReference]}
+instance JSON.ToJSON FilterValueProperty where
+  toJSON FilterValueProperty {..}
+    = JSON.object
+        ["Value" JSON..= value, "ValueReference" JSON..= valueReference]
+instance Property "Value" FilterValueProperty where
+  type PropertyType "Value" FilterValueProperty = Value Prelude.Text
+  set newValue FilterValueProperty {..}
+    = FilterValueProperty {value = newValue, ..}
+instance Property "ValueReference" FilterValueProperty where
+  type PropertyType "ValueReference" FilterValueProperty = Value Prelude.Text
+  set newValue FilterValueProperty {..}
+    = FilterValueProperty {valueReference = newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Dataset/FilterValueProperty.hs-boot b/gen/Stratosphere/DataBrew/Dataset/FilterValueProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Dataset/FilterValueProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Dataset.FilterValueProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data FilterValueProperty :: Prelude.Type
+instance ToResourceProperties FilterValueProperty
+instance Prelude.Eq FilterValueProperty
+instance Prelude.Show FilterValueProperty
+instance JSON.ToJSON FilterValueProperty
diff --git a/gen/Stratosphere/DataBrew/Dataset/FormatOptionsProperty.hs b/gen/Stratosphere/DataBrew/Dataset/FormatOptionsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Dataset/FormatOptionsProperty.hs
@@ -0,0 +1,55 @@
+module Stratosphere.DataBrew.Dataset.FormatOptionsProperty (
+        module Exports, FormatOptionsProperty(..), mkFormatOptionsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.DataBrew.Dataset.CsvOptionsProperty as Exports
+import {-# SOURCE #-} Stratosphere.DataBrew.Dataset.ExcelOptionsProperty as Exports
+import {-# SOURCE #-} Stratosphere.DataBrew.Dataset.JsonOptionsProperty as Exports
+import Stratosphere.ResourceProperties
+data FormatOptionsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-formatoptions.html>
+    FormatOptionsProperty {haddock_workaround_ :: (),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-formatoptions.html#cfn-databrew-dataset-formatoptions-csv>
+                           csv :: (Prelude.Maybe CsvOptionsProperty),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-formatoptions.html#cfn-databrew-dataset-formatoptions-excel>
+                           excel :: (Prelude.Maybe ExcelOptionsProperty),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-formatoptions.html#cfn-databrew-dataset-formatoptions-json>
+                           json :: (Prelude.Maybe JsonOptionsProperty)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkFormatOptionsProperty :: FormatOptionsProperty
+mkFormatOptionsProperty
+  = FormatOptionsProperty
+      {haddock_workaround_ = (), csv = Prelude.Nothing,
+       excel = Prelude.Nothing, json = Prelude.Nothing}
+instance ToResourceProperties FormatOptionsProperty where
+  toResourceProperties FormatOptionsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Dataset.FormatOptions",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "Csv" Prelude.<$> csv,
+                            (JSON..=) "Excel" Prelude.<$> excel,
+                            (JSON..=) "Json" Prelude.<$> json])}
+instance JSON.ToJSON FormatOptionsProperty where
+  toJSON FormatOptionsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "Csv" Prelude.<$> csv,
+               (JSON..=) "Excel" Prelude.<$> excel,
+               (JSON..=) "Json" Prelude.<$> json]))
+instance Property "Csv" FormatOptionsProperty where
+  type PropertyType "Csv" FormatOptionsProperty = CsvOptionsProperty
+  set newValue FormatOptionsProperty {..}
+    = FormatOptionsProperty {csv = Prelude.pure newValue, ..}
+instance Property "Excel" FormatOptionsProperty where
+  type PropertyType "Excel" FormatOptionsProperty = ExcelOptionsProperty
+  set newValue FormatOptionsProperty {..}
+    = FormatOptionsProperty {excel = Prelude.pure newValue, ..}
+instance Property "Json" FormatOptionsProperty where
+  type PropertyType "Json" FormatOptionsProperty = JsonOptionsProperty
+  set newValue FormatOptionsProperty {..}
+    = FormatOptionsProperty {json = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Dataset/FormatOptionsProperty.hs-boot b/gen/Stratosphere/DataBrew/Dataset/FormatOptionsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Dataset/FormatOptionsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Dataset.FormatOptionsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data FormatOptionsProperty :: Prelude.Type
+instance ToResourceProperties FormatOptionsProperty
+instance Prelude.Eq FormatOptionsProperty
+instance Prelude.Show FormatOptionsProperty
+instance JSON.ToJSON FormatOptionsProperty
diff --git a/gen/Stratosphere/DataBrew/Dataset/InputProperty.hs b/gen/Stratosphere/DataBrew/Dataset/InputProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Dataset/InputProperty.hs
@@ -0,0 +1,72 @@
+module Stratosphere.DataBrew.Dataset.InputProperty (
+        module Exports, InputProperty(..), mkInputProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.DataBrew.Dataset.DataCatalogInputDefinitionProperty as Exports
+import {-# SOURCE #-} Stratosphere.DataBrew.Dataset.DatabaseInputDefinitionProperty as Exports
+import {-# SOURCE #-} Stratosphere.DataBrew.Dataset.MetadataProperty as Exports
+import {-# SOURCE #-} Stratosphere.DataBrew.Dataset.S3LocationProperty as Exports
+import Stratosphere.ResourceProperties
+data InputProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-input.html>
+    InputProperty {haddock_workaround_ :: (),
+                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-input.html#cfn-databrew-dataset-input-datacataloginputdefinition>
+                   dataCatalogInputDefinition :: (Prelude.Maybe DataCatalogInputDefinitionProperty),
+                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-input.html#cfn-databrew-dataset-input-databaseinputdefinition>
+                   databaseInputDefinition :: (Prelude.Maybe DatabaseInputDefinitionProperty),
+                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-input.html#cfn-databrew-dataset-input-metadata>
+                   metadata :: (Prelude.Maybe MetadataProperty),
+                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-input.html#cfn-databrew-dataset-input-s3inputdefinition>
+                   s3InputDefinition :: (Prelude.Maybe S3LocationProperty)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkInputProperty :: InputProperty
+mkInputProperty
+  = InputProperty
+      {haddock_workaround_ = (),
+       dataCatalogInputDefinition = Prelude.Nothing,
+       databaseInputDefinition = Prelude.Nothing,
+       metadata = Prelude.Nothing, s3InputDefinition = Prelude.Nothing}
+instance ToResourceProperties InputProperty where
+  toResourceProperties InputProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Dataset.Input",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "DataCatalogInputDefinition"
+                              Prelude.<$> dataCatalogInputDefinition,
+                            (JSON..=) "DatabaseInputDefinition"
+                              Prelude.<$> databaseInputDefinition,
+                            (JSON..=) "Metadata" Prelude.<$> metadata,
+                            (JSON..=) "S3InputDefinition" Prelude.<$> s3InputDefinition])}
+instance JSON.ToJSON InputProperty where
+  toJSON InputProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "DataCatalogInputDefinition"
+                 Prelude.<$> dataCatalogInputDefinition,
+               (JSON..=) "DatabaseInputDefinition"
+                 Prelude.<$> databaseInputDefinition,
+               (JSON..=) "Metadata" Prelude.<$> metadata,
+               (JSON..=) "S3InputDefinition" Prelude.<$> s3InputDefinition]))
+instance Property "DataCatalogInputDefinition" InputProperty where
+  type PropertyType "DataCatalogInputDefinition" InputProperty = DataCatalogInputDefinitionProperty
+  set newValue InputProperty {..}
+    = InputProperty
+        {dataCatalogInputDefinition = Prelude.pure newValue, ..}
+instance Property "DatabaseInputDefinition" InputProperty where
+  type PropertyType "DatabaseInputDefinition" InputProperty = DatabaseInputDefinitionProperty
+  set newValue InputProperty {..}
+    = InputProperty
+        {databaseInputDefinition = Prelude.pure newValue, ..}
+instance Property "Metadata" InputProperty where
+  type PropertyType "Metadata" InputProperty = MetadataProperty
+  set newValue InputProperty {..}
+    = InputProperty {metadata = Prelude.pure newValue, ..}
+instance Property "S3InputDefinition" InputProperty where
+  type PropertyType "S3InputDefinition" InputProperty = S3LocationProperty
+  set newValue InputProperty {..}
+    = InputProperty {s3InputDefinition = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Dataset/InputProperty.hs-boot b/gen/Stratosphere/DataBrew/Dataset/InputProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Dataset/InputProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Dataset.InputProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data InputProperty :: Prelude.Type
+instance ToResourceProperties InputProperty
+instance Prelude.Eq InputProperty
+instance Prelude.Show InputProperty
+instance JSON.ToJSON InputProperty
diff --git a/gen/Stratosphere/DataBrew/Dataset/JsonOptionsProperty.hs b/gen/Stratosphere/DataBrew/Dataset/JsonOptionsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Dataset/JsonOptionsProperty.hs
@@ -0,0 +1,34 @@
+module Stratosphere.DataBrew.Dataset.JsonOptionsProperty (
+        JsonOptionsProperty(..), mkJsonOptionsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data JsonOptionsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-jsonoptions.html>
+    JsonOptionsProperty {haddock_workaround_ :: (),
+                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-jsonoptions.html#cfn-databrew-dataset-jsonoptions-multiline>
+                         multiLine :: (Prelude.Maybe (Value Prelude.Bool))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkJsonOptionsProperty :: JsonOptionsProperty
+mkJsonOptionsProperty
+  = JsonOptionsProperty
+      {haddock_workaround_ = (), multiLine = Prelude.Nothing}
+instance ToResourceProperties JsonOptionsProperty where
+  toResourceProperties JsonOptionsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Dataset.JsonOptions",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes [(JSON..=) "MultiLine" Prelude.<$> multiLine])}
+instance JSON.ToJSON JsonOptionsProperty where
+  toJSON JsonOptionsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes [(JSON..=) "MultiLine" Prelude.<$> multiLine]))
+instance Property "MultiLine" JsonOptionsProperty where
+  type PropertyType "MultiLine" JsonOptionsProperty = Value Prelude.Bool
+  set newValue JsonOptionsProperty {..}
+    = JsonOptionsProperty {multiLine = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Dataset/JsonOptionsProperty.hs-boot b/gen/Stratosphere/DataBrew/Dataset/JsonOptionsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Dataset/JsonOptionsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Dataset.JsonOptionsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data JsonOptionsProperty :: Prelude.Type
+instance ToResourceProperties JsonOptionsProperty
+instance Prelude.Eq JsonOptionsProperty
+instance Prelude.Show JsonOptionsProperty
+instance JSON.ToJSON JsonOptionsProperty
diff --git a/gen/Stratosphere/DataBrew/Dataset/MetadataProperty.hs b/gen/Stratosphere/DataBrew/Dataset/MetadataProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Dataset/MetadataProperty.hs
@@ -0,0 +1,34 @@
+module Stratosphere.DataBrew.Dataset.MetadataProperty (
+        MetadataProperty(..), mkMetadataProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data MetadataProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-metadata.html>
+    MetadataProperty {haddock_workaround_ :: (),
+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-metadata.html#cfn-databrew-dataset-metadata-sourcearn>
+                      sourceArn :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkMetadataProperty :: MetadataProperty
+mkMetadataProperty
+  = MetadataProperty
+      {haddock_workaround_ = (), sourceArn = Prelude.Nothing}
+instance ToResourceProperties MetadataProperty where
+  toResourceProperties MetadataProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Dataset.Metadata",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes [(JSON..=) "SourceArn" Prelude.<$> sourceArn])}
+instance JSON.ToJSON MetadataProperty where
+  toJSON MetadataProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes [(JSON..=) "SourceArn" Prelude.<$> sourceArn]))
+instance Property "SourceArn" MetadataProperty where
+  type PropertyType "SourceArn" MetadataProperty = Value Prelude.Text
+  set newValue MetadataProperty {..}
+    = MetadataProperty {sourceArn = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Dataset/MetadataProperty.hs-boot b/gen/Stratosphere/DataBrew/Dataset/MetadataProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Dataset/MetadataProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Dataset.MetadataProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data MetadataProperty :: Prelude.Type
+instance ToResourceProperties MetadataProperty
+instance Prelude.Eq MetadataProperty
+instance Prelude.Show MetadataProperty
+instance JSON.ToJSON MetadataProperty
diff --git a/gen/Stratosphere/DataBrew/Dataset/PathOptionsProperty.hs b/gen/Stratosphere/DataBrew/Dataset/PathOptionsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Dataset/PathOptionsProperty.hs
@@ -0,0 +1,59 @@
+module Stratosphere.DataBrew.Dataset.PathOptionsProperty (
+        module Exports, PathOptionsProperty(..), mkPathOptionsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.DataBrew.Dataset.FilesLimitProperty as Exports
+import {-# SOURCE #-} Stratosphere.DataBrew.Dataset.FilterExpressionProperty as Exports
+import {-# SOURCE #-} Stratosphere.DataBrew.Dataset.PathParameterProperty as Exports
+import Stratosphere.ResourceProperties
+data PathOptionsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-pathoptions.html>
+    PathOptionsProperty {haddock_workaround_ :: (),
+                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-pathoptions.html#cfn-databrew-dataset-pathoptions-fileslimit>
+                         filesLimit :: (Prelude.Maybe FilesLimitProperty),
+                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-pathoptions.html#cfn-databrew-dataset-pathoptions-lastmodifieddatecondition>
+                         lastModifiedDateCondition :: (Prelude.Maybe FilterExpressionProperty),
+                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-pathoptions.html#cfn-databrew-dataset-pathoptions-parameters>
+                         parameters :: (Prelude.Maybe [PathParameterProperty])}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkPathOptionsProperty :: PathOptionsProperty
+mkPathOptionsProperty
+  = PathOptionsProperty
+      {haddock_workaround_ = (), filesLimit = Prelude.Nothing,
+       lastModifiedDateCondition = Prelude.Nothing,
+       parameters = Prelude.Nothing}
+instance ToResourceProperties PathOptionsProperty where
+  toResourceProperties PathOptionsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Dataset.PathOptions",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "FilesLimit" Prelude.<$> filesLimit,
+                            (JSON..=) "LastModifiedDateCondition"
+                              Prelude.<$> lastModifiedDateCondition,
+                            (JSON..=) "Parameters" Prelude.<$> parameters])}
+instance JSON.ToJSON PathOptionsProperty where
+  toJSON PathOptionsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "FilesLimit" Prelude.<$> filesLimit,
+               (JSON..=) "LastModifiedDateCondition"
+                 Prelude.<$> lastModifiedDateCondition,
+               (JSON..=) "Parameters" Prelude.<$> parameters]))
+instance Property "FilesLimit" PathOptionsProperty where
+  type PropertyType "FilesLimit" PathOptionsProperty = FilesLimitProperty
+  set newValue PathOptionsProperty {..}
+    = PathOptionsProperty {filesLimit = Prelude.pure newValue, ..}
+instance Property "LastModifiedDateCondition" PathOptionsProperty where
+  type PropertyType "LastModifiedDateCondition" PathOptionsProperty = FilterExpressionProperty
+  set newValue PathOptionsProperty {..}
+    = PathOptionsProperty
+        {lastModifiedDateCondition = Prelude.pure newValue, ..}
+instance Property "Parameters" PathOptionsProperty where
+  type PropertyType "Parameters" PathOptionsProperty = [PathParameterProperty]
+  set newValue PathOptionsProperty {..}
+    = PathOptionsProperty {parameters = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Dataset/PathOptionsProperty.hs-boot b/gen/Stratosphere/DataBrew/Dataset/PathOptionsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Dataset/PathOptionsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Dataset.PathOptionsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data PathOptionsProperty :: Prelude.Type
+instance ToResourceProperties PathOptionsProperty
+instance Prelude.Eq PathOptionsProperty
+instance Prelude.Show PathOptionsProperty
+instance JSON.ToJSON PathOptionsProperty
diff --git a/gen/Stratosphere/DataBrew/Dataset/PathParameterProperty.hs b/gen/Stratosphere/DataBrew/Dataset/PathParameterProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Dataset/PathParameterProperty.hs
@@ -0,0 +1,44 @@
+module Stratosphere.DataBrew.Dataset.PathParameterProperty (
+        module Exports, PathParameterProperty(..), mkPathParameterProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.DataBrew.Dataset.DatasetParameterProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data PathParameterProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-pathparameter.html>
+    PathParameterProperty {haddock_workaround_ :: (),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-pathparameter.html#cfn-databrew-dataset-pathparameter-datasetparameter>
+                           datasetParameter :: DatasetParameterProperty,
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-pathparameter.html#cfn-databrew-dataset-pathparameter-pathparametername>
+                           pathParameterName :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkPathParameterProperty ::
+  DatasetParameterProperty
+  -> Value Prelude.Text -> PathParameterProperty
+mkPathParameterProperty datasetParameter pathParameterName
+  = PathParameterProperty
+      {haddock_workaround_ = (), datasetParameter = datasetParameter,
+       pathParameterName = pathParameterName}
+instance ToResourceProperties PathParameterProperty where
+  toResourceProperties PathParameterProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Dataset.PathParameter",
+         supportsTags = Prelude.False,
+         properties = ["DatasetParameter" JSON..= datasetParameter,
+                       "PathParameterName" JSON..= pathParameterName]}
+instance JSON.ToJSON PathParameterProperty where
+  toJSON PathParameterProperty {..}
+    = JSON.object
+        ["DatasetParameter" JSON..= datasetParameter,
+         "PathParameterName" JSON..= pathParameterName]
+instance Property "DatasetParameter" PathParameterProperty where
+  type PropertyType "DatasetParameter" PathParameterProperty = DatasetParameterProperty
+  set newValue PathParameterProperty {..}
+    = PathParameterProperty {datasetParameter = newValue, ..}
+instance Property "PathParameterName" PathParameterProperty where
+  type PropertyType "PathParameterName" PathParameterProperty = Value Prelude.Text
+  set newValue PathParameterProperty {..}
+    = PathParameterProperty {pathParameterName = newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Dataset/PathParameterProperty.hs-boot b/gen/Stratosphere/DataBrew/Dataset/PathParameterProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Dataset/PathParameterProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Dataset.PathParameterProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data PathParameterProperty :: Prelude.Type
+instance ToResourceProperties PathParameterProperty
+instance Prelude.Eq PathParameterProperty
+instance Prelude.Show PathParameterProperty
+instance JSON.ToJSON PathParameterProperty
diff --git a/gen/Stratosphere/DataBrew/Dataset/S3LocationProperty.hs b/gen/Stratosphere/DataBrew/Dataset/S3LocationProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Dataset/S3LocationProperty.hs
@@ -0,0 +1,55 @@
+module Stratosphere.DataBrew.Dataset.S3LocationProperty (
+        S3LocationProperty(..), mkS3LocationProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data S3LocationProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-s3location.html>
+    S3LocationProperty {haddock_workaround_ :: (),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-s3location.html#cfn-databrew-dataset-s3location-bucket>
+                        bucket :: (Value Prelude.Text),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-s3location.html#cfn-databrew-dataset-s3location-bucketowner>
+                        bucketOwner :: (Prelude.Maybe (Value Prelude.Text)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-s3location.html#cfn-databrew-dataset-s3location-key>
+                        key :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkS3LocationProperty :: Value Prelude.Text -> S3LocationProperty
+mkS3LocationProperty bucket
+  = S3LocationProperty
+      {haddock_workaround_ = (), bucket = bucket,
+       bucketOwner = Prelude.Nothing, key = Prelude.Nothing}
+instance ToResourceProperties S3LocationProperty where
+  toResourceProperties S3LocationProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Dataset.S3Location",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["Bucket" JSON..= bucket]
+                           (Prelude.catMaybes
+                              [(JSON..=) "BucketOwner" Prelude.<$> bucketOwner,
+                               (JSON..=) "Key" Prelude.<$> key]))}
+instance JSON.ToJSON S3LocationProperty where
+  toJSON S3LocationProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["Bucket" JSON..= bucket]
+              (Prelude.catMaybes
+                 [(JSON..=) "BucketOwner" Prelude.<$> bucketOwner,
+                  (JSON..=) "Key" Prelude.<$> key])))
+instance Property "Bucket" S3LocationProperty where
+  type PropertyType "Bucket" S3LocationProperty = Value Prelude.Text
+  set newValue S3LocationProperty {..}
+    = S3LocationProperty {bucket = newValue, ..}
+instance Property "BucketOwner" S3LocationProperty where
+  type PropertyType "BucketOwner" S3LocationProperty = Value Prelude.Text
+  set newValue S3LocationProperty {..}
+    = S3LocationProperty {bucketOwner = Prelude.pure newValue, ..}
+instance Property "Key" S3LocationProperty where
+  type PropertyType "Key" S3LocationProperty = Value Prelude.Text
+  set newValue S3LocationProperty {..}
+    = S3LocationProperty {key = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Dataset/S3LocationProperty.hs-boot b/gen/Stratosphere/DataBrew/Dataset/S3LocationProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Dataset/S3LocationProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Dataset.S3LocationProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data S3LocationProperty :: Prelude.Type
+instance ToResourceProperties S3LocationProperty
+instance Prelude.Eq S3LocationProperty
+instance Prelude.Show S3LocationProperty
+instance JSON.ToJSON S3LocationProperty
diff --git a/gen/Stratosphere/DataBrew/Job.hs b/gen/Stratosphere/DataBrew/Job.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Job.hs
@@ -0,0 +1,202 @@
+module Stratosphere.DataBrew.Job (
+        module Exports, Job(..), mkJob
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.DataBrew.Job.DataCatalogOutputProperty as Exports
+import {-# SOURCE #-} Stratosphere.DataBrew.Job.DatabaseOutputProperty as Exports
+import {-# SOURCE #-} Stratosphere.DataBrew.Job.JobSampleProperty as Exports
+import {-# SOURCE #-} Stratosphere.DataBrew.Job.OutputProperty as Exports
+import {-# SOURCE #-} Stratosphere.DataBrew.Job.OutputLocationProperty as Exports
+import {-# SOURCE #-} Stratosphere.DataBrew.Job.ProfileConfigurationProperty as Exports
+import {-# SOURCE #-} Stratosphere.DataBrew.Job.RecipeProperty as Exports
+import {-# SOURCE #-} Stratosphere.DataBrew.Job.ValidationConfigurationProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Tag
+import Stratosphere.Value
+data Job
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html>
+    Job {haddock_workaround_ :: (),
+         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-datacatalogoutputs>
+         dataCatalogOutputs :: (Prelude.Maybe [DataCatalogOutputProperty]),
+         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-databaseoutputs>
+         databaseOutputs :: (Prelude.Maybe [DatabaseOutputProperty]),
+         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-datasetname>
+         datasetName :: (Prelude.Maybe (Value Prelude.Text)),
+         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-encryptionkeyarn>
+         encryptionKeyArn :: (Prelude.Maybe (Value Prelude.Text)),
+         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-encryptionmode>
+         encryptionMode :: (Prelude.Maybe (Value Prelude.Text)),
+         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-jobsample>
+         jobSample :: (Prelude.Maybe JobSampleProperty),
+         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-logsubscription>
+         logSubscription :: (Prelude.Maybe (Value Prelude.Text)),
+         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-maxcapacity>
+         maxCapacity :: (Prelude.Maybe (Value Prelude.Integer)),
+         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-maxretries>
+         maxRetries :: (Prelude.Maybe (Value Prelude.Integer)),
+         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-name>
+         name :: (Value Prelude.Text),
+         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-outputlocation>
+         outputLocation :: (Prelude.Maybe OutputLocationProperty),
+         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-outputs>
+         outputs :: (Prelude.Maybe [OutputProperty]),
+         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-profileconfiguration>
+         profileConfiguration :: (Prelude.Maybe ProfileConfigurationProperty),
+         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-projectname>
+         projectName :: (Prelude.Maybe (Value Prelude.Text)),
+         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-recipe>
+         recipe :: (Prelude.Maybe RecipeProperty),
+         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-rolearn>
+         roleArn :: (Value Prelude.Text),
+         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-tags>
+         tags :: (Prelude.Maybe [Tag]),
+         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-timeout>
+         timeout :: (Prelude.Maybe (Value Prelude.Integer)),
+         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-type>
+         type' :: (Value Prelude.Text),
+         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-validationconfigurations>
+         validationConfigurations :: (Prelude.Maybe [ValidationConfigurationProperty])}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkJob ::
+  Value Prelude.Text
+  -> Value Prelude.Text -> Value Prelude.Text -> Job
+mkJob name roleArn type'
+  = Job
+      {haddock_workaround_ = (), name = name, roleArn = roleArn,
+       type' = type', dataCatalogOutputs = Prelude.Nothing,
+       databaseOutputs = Prelude.Nothing, datasetName = Prelude.Nothing,
+       encryptionKeyArn = Prelude.Nothing,
+       encryptionMode = Prelude.Nothing, jobSample = Prelude.Nothing,
+       logSubscription = Prelude.Nothing, maxCapacity = Prelude.Nothing,
+       maxRetries = Prelude.Nothing, outputLocation = Prelude.Nothing,
+       outputs = Prelude.Nothing, profileConfiguration = Prelude.Nothing,
+       projectName = Prelude.Nothing, recipe = Prelude.Nothing,
+       tags = Prelude.Nothing, timeout = Prelude.Nothing,
+       validationConfigurations = Prelude.Nothing}
+instance ToResourceProperties Job where
+  toResourceProperties Job {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Job", supportsTags = Prelude.True,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["Name" JSON..= name, "RoleArn" JSON..= roleArn,
+                            "Type" JSON..= type']
+                           (Prelude.catMaybes
+                              [(JSON..=) "DataCatalogOutputs" Prelude.<$> dataCatalogOutputs,
+                               (JSON..=) "DatabaseOutputs" Prelude.<$> databaseOutputs,
+                               (JSON..=) "DatasetName" Prelude.<$> datasetName,
+                               (JSON..=) "EncryptionKeyArn" Prelude.<$> encryptionKeyArn,
+                               (JSON..=) "EncryptionMode" Prelude.<$> encryptionMode,
+                               (JSON..=) "JobSample" Prelude.<$> jobSample,
+                               (JSON..=) "LogSubscription" Prelude.<$> logSubscription,
+                               (JSON..=) "MaxCapacity" Prelude.<$> maxCapacity,
+                               (JSON..=) "MaxRetries" Prelude.<$> maxRetries,
+                               (JSON..=) "OutputLocation" Prelude.<$> outputLocation,
+                               (JSON..=) "Outputs" Prelude.<$> outputs,
+                               (JSON..=) "ProfileConfiguration" Prelude.<$> profileConfiguration,
+                               (JSON..=) "ProjectName" Prelude.<$> projectName,
+                               (JSON..=) "Recipe" Prelude.<$> recipe,
+                               (JSON..=) "Tags" Prelude.<$> tags,
+                               (JSON..=) "Timeout" Prelude.<$> timeout,
+                               (JSON..=) "ValidationConfigurations"
+                                 Prelude.<$> validationConfigurations]))}
+instance JSON.ToJSON Job where
+  toJSON Job {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["Name" JSON..= name, "RoleArn" JSON..= roleArn,
+               "Type" JSON..= type']
+              (Prelude.catMaybes
+                 [(JSON..=) "DataCatalogOutputs" Prelude.<$> dataCatalogOutputs,
+                  (JSON..=) "DatabaseOutputs" Prelude.<$> databaseOutputs,
+                  (JSON..=) "DatasetName" Prelude.<$> datasetName,
+                  (JSON..=) "EncryptionKeyArn" Prelude.<$> encryptionKeyArn,
+                  (JSON..=) "EncryptionMode" Prelude.<$> encryptionMode,
+                  (JSON..=) "JobSample" Prelude.<$> jobSample,
+                  (JSON..=) "LogSubscription" Prelude.<$> logSubscription,
+                  (JSON..=) "MaxCapacity" Prelude.<$> maxCapacity,
+                  (JSON..=) "MaxRetries" Prelude.<$> maxRetries,
+                  (JSON..=) "OutputLocation" Prelude.<$> outputLocation,
+                  (JSON..=) "Outputs" Prelude.<$> outputs,
+                  (JSON..=) "ProfileConfiguration" Prelude.<$> profileConfiguration,
+                  (JSON..=) "ProjectName" Prelude.<$> projectName,
+                  (JSON..=) "Recipe" Prelude.<$> recipe,
+                  (JSON..=) "Tags" Prelude.<$> tags,
+                  (JSON..=) "Timeout" Prelude.<$> timeout,
+                  (JSON..=) "ValidationConfigurations"
+                    Prelude.<$> validationConfigurations])))
+instance Property "DataCatalogOutputs" Job where
+  type PropertyType "DataCatalogOutputs" Job = [DataCatalogOutputProperty]
+  set newValue Job {..}
+    = Job {dataCatalogOutputs = Prelude.pure newValue, ..}
+instance Property "DatabaseOutputs" Job where
+  type PropertyType "DatabaseOutputs" Job = [DatabaseOutputProperty]
+  set newValue Job {..}
+    = Job {databaseOutputs = Prelude.pure newValue, ..}
+instance Property "DatasetName" Job where
+  type PropertyType "DatasetName" Job = Value Prelude.Text
+  set newValue Job {..}
+    = Job {datasetName = Prelude.pure newValue, ..}
+instance Property "EncryptionKeyArn" Job where
+  type PropertyType "EncryptionKeyArn" Job = Value Prelude.Text
+  set newValue Job {..}
+    = Job {encryptionKeyArn = Prelude.pure newValue, ..}
+instance Property "EncryptionMode" Job where
+  type PropertyType "EncryptionMode" Job = Value Prelude.Text
+  set newValue Job {..}
+    = Job {encryptionMode = Prelude.pure newValue, ..}
+instance Property "JobSample" Job where
+  type PropertyType "JobSample" Job = JobSampleProperty
+  set newValue Job {..} = Job {jobSample = Prelude.pure newValue, ..}
+instance Property "LogSubscription" Job where
+  type PropertyType "LogSubscription" Job = Value Prelude.Text
+  set newValue Job {..}
+    = Job {logSubscription = Prelude.pure newValue, ..}
+instance Property "MaxCapacity" Job where
+  type PropertyType "MaxCapacity" Job = Value Prelude.Integer
+  set newValue Job {..}
+    = Job {maxCapacity = Prelude.pure newValue, ..}
+instance Property "MaxRetries" Job where
+  type PropertyType "MaxRetries" Job = Value Prelude.Integer
+  set newValue Job {..}
+    = Job {maxRetries = Prelude.pure newValue, ..}
+instance Property "Name" Job where
+  type PropertyType "Name" Job = Value Prelude.Text
+  set newValue Job {..} = Job {name = newValue, ..}
+instance Property "OutputLocation" Job where
+  type PropertyType "OutputLocation" Job = OutputLocationProperty
+  set newValue Job {..}
+    = Job {outputLocation = Prelude.pure newValue, ..}
+instance Property "Outputs" Job where
+  type PropertyType "Outputs" Job = [OutputProperty]
+  set newValue Job {..} = Job {outputs = Prelude.pure newValue, ..}
+instance Property "ProfileConfiguration" Job where
+  type PropertyType "ProfileConfiguration" Job = ProfileConfigurationProperty
+  set newValue Job {..}
+    = Job {profileConfiguration = Prelude.pure newValue, ..}
+instance Property "ProjectName" Job where
+  type PropertyType "ProjectName" Job = Value Prelude.Text
+  set newValue Job {..}
+    = Job {projectName = Prelude.pure newValue, ..}
+instance Property "Recipe" Job where
+  type PropertyType "Recipe" Job = RecipeProperty
+  set newValue Job {..} = Job {recipe = Prelude.pure newValue, ..}
+instance Property "RoleArn" Job where
+  type PropertyType "RoleArn" Job = Value Prelude.Text
+  set newValue Job {..} = Job {roleArn = newValue, ..}
+instance Property "Tags" Job where
+  type PropertyType "Tags" Job = [Tag]
+  set newValue Job {..} = Job {tags = Prelude.pure newValue, ..}
+instance Property "Timeout" Job where
+  type PropertyType "Timeout" Job = Value Prelude.Integer
+  set newValue Job {..} = Job {timeout = Prelude.pure newValue, ..}
+instance Property "Type" Job where
+  type PropertyType "Type" Job = Value Prelude.Text
+  set newValue Job {..} = Job {type' = newValue, ..}
+instance Property "ValidationConfigurations" Job where
+  type PropertyType "ValidationConfigurations" Job = [ValidationConfigurationProperty]
+  set newValue Job {..}
+    = Job {validationConfigurations = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Job/AllowedStatisticsProperty.hs b/gen/Stratosphere/DataBrew/Job/AllowedStatisticsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Job/AllowedStatisticsProperty.hs
@@ -0,0 +1,32 @@
+module Stratosphere.DataBrew.Job.AllowedStatisticsProperty (
+        AllowedStatisticsProperty(..), mkAllowedStatisticsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data AllowedStatisticsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-allowedstatistics.html>
+    AllowedStatisticsProperty {haddock_workaround_ :: (),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-allowedstatistics.html#cfn-databrew-job-allowedstatistics-statistics>
+                               statistics :: (ValueList Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkAllowedStatisticsProperty ::
+  ValueList Prelude.Text -> AllowedStatisticsProperty
+mkAllowedStatisticsProperty statistics
+  = AllowedStatisticsProperty
+      {haddock_workaround_ = (), statistics = statistics}
+instance ToResourceProperties AllowedStatisticsProperty where
+  toResourceProperties AllowedStatisticsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Job.AllowedStatistics",
+         supportsTags = Prelude.False,
+         properties = ["Statistics" JSON..= statistics]}
+instance JSON.ToJSON AllowedStatisticsProperty where
+  toJSON AllowedStatisticsProperty {..}
+    = JSON.object ["Statistics" JSON..= statistics]
+instance Property "Statistics" AllowedStatisticsProperty where
+  type PropertyType "Statistics" AllowedStatisticsProperty = ValueList Prelude.Text
+  set newValue AllowedStatisticsProperty {..}
+    = AllowedStatisticsProperty {statistics = newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Job/AllowedStatisticsProperty.hs-boot b/gen/Stratosphere/DataBrew/Job/AllowedStatisticsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Job/AllowedStatisticsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Job.AllowedStatisticsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data AllowedStatisticsProperty :: Prelude.Type
+instance ToResourceProperties AllowedStatisticsProperty
+instance Prelude.Eq AllowedStatisticsProperty
+instance Prelude.Show AllowedStatisticsProperty
+instance JSON.ToJSON AllowedStatisticsProperty
diff --git a/gen/Stratosphere/DataBrew/Job/ColumnSelectorProperty.hs b/gen/Stratosphere/DataBrew/Job/ColumnSelectorProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Job/ColumnSelectorProperty.hs
@@ -0,0 +1,45 @@
+module Stratosphere.DataBrew.Job.ColumnSelectorProperty (
+        ColumnSelectorProperty(..), mkColumnSelectorProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data ColumnSelectorProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-columnselector.html>
+    ColumnSelectorProperty {haddock_workaround_ :: (),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-columnselector.html#cfn-databrew-job-columnselector-name>
+                            name :: (Prelude.Maybe (Value Prelude.Text)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-columnselector.html#cfn-databrew-job-columnselector-regex>
+                            regex :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkColumnSelectorProperty :: ColumnSelectorProperty
+mkColumnSelectorProperty
+  = ColumnSelectorProperty
+      {haddock_workaround_ = (), name = Prelude.Nothing,
+       regex = Prelude.Nothing}
+instance ToResourceProperties ColumnSelectorProperty where
+  toResourceProperties ColumnSelectorProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Job.ColumnSelector",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "Name" Prelude.<$> name,
+                            (JSON..=) "Regex" Prelude.<$> regex])}
+instance JSON.ToJSON ColumnSelectorProperty where
+  toJSON ColumnSelectorProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "Name" Prelude.<$> name,
+               (JSON..=) "Regex" Prelude.<$> regex]))
+instance Property "Name" ColumnSelectorProperty where
+  type PropertyType "Name" ColumnSelectorProperty = Value Prelude.Text
+  set newValue ColumnSelectorProperty {..}
+    = ColumnSelectorProperty {name = Prelude.pure newValue, ..}
+instance Property "Regex" ColumnSelectorProperty where
+  type PropertyType "Regex" ColumnSelectorProperty = Value Prelude.Text
+  set newValue ColumnSelectorProperty {..}
+    = ColumnSelectorProperty {regex = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Job/ColumnSelectorProperty.hs-boot b/gen/Stratosphere/DataBrew/Job/ColumnSelectorProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Job/ColumnSelectorProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Job.ColumnSelectorProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data ColumnSelectorProperty :: Prelude.Type
+instance ToResourceProperties ColumnSelectorProperty
+instance Prelude.Eq ColumnSelectorProperty
+instance Prelude.Show ColumnSelectorProperty
+instance JSON.ToJSON ColumnSelectorProperty
diff --git a/gen/Stratosphere/DataBrew/Job/ColumnStatisticsConfigurationProperty.hs b/gen/Stratosphere/DataBrew/Job/ColumnStatisticsConfigurationProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Job/ColumnStatisticsConfigurationProperty.hs
@@ -0,0 +1,50 @@
+module Stratosphere.DataBrew.Job.ColumnStatisticsConfigurationProperty (
+        module Exports, ColumnStatisticsConfigurationProperty(..),
+        mkColumnStatisticsConfigurationProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.DataBrew.Job.ColumnSelectorProperty as Exports
+import {-# SOURCE #-} Stratosphere.DataBrew.Job.StatisticsConfigurationProperty as Exports
+import Stratosphere.ResourceProperties
+data ColumnStatisticsConfigurationProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-columnstatisticsconfiguration.html>
+    ColumnStatisticsConfigurationProperty {haddock_workaround_ :: (),
+                                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-columnstatisticsconfiguration.html#cfn-databrew-job-columnstatisticsconfiguration-selectors>
+                                           selectors :: (Prelude.Maybe [ColumnSelectorProperty]),
+                                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-columnstatisticsconfiguration.html#cfn-databrew-job-columnstatisticsconfiguration-statistics>
+                                           statistics :: StatisticsConfigurationProperty}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkColumnStatisticsConfigurationProperty ::
+  StatisticsConfigurationProperty
+  -> ColumnStatisticsConfigurationProperty
+mkColumnStatisticsConfigurationProperty statistics
+  = ColumnStatisticsConfigurationProperty
+      {haddock_workaround_ = (), statistics = statistics,
+       selectors = Prelude.Nothing}
+instance ToResourceProperties ColumnStatisticsConfigurationProperty where
+  toResourceProperties ColumnStatisticsConfigurationProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Job.ColumnStatisticsConfiguration",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["Statistics" JSON..= statistics]
+                           (Prelude.catMaybes [(JSON..=) "Selectors" Prelude.<$> selectors]))}
+instance JSON.ToJSON ColumnStatisticsConfigurationProperty where
+  toJSON ColumnStatisticsConfigurationProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["Statistics" JSON..= statistics]
+              (Prelude.catMaybes [(JSON..=) "Selectors" Prelude.<$> selectors])))
+instance Property "Selectors" ColumnStatisticsConfigurationProperty where
+  type PropertyType "Selectors" ColumnStatisticsConfigurationProperty = [ColumnSelectorProperty]
+  set newValue ColumnStatisticsConfigurationProperty {..}
+    = ColumnStatisticsConfigurationProperty
+        {selectors = Prelude.pure newValue, ..}
+instance Property "Statistics" ColumnStatisticsConfigurationProperty where
+  type PropertyType "Statistics" ColumnStatisticsConfigurationProperty = StatisticsConfigurationProperty
+  set newValue ColumnStatisticsConfigurationProperty {..}
+    = ColumnStatisticsConfigurationProperty {statistics = newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Job/ColumnStatisticsConfigurationProperty.hs-boot b/gen/Stratosphere/DataBrew/Job/ColumnStatisticsConfigurationProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Job/ColumnStatisticsConfigurationProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Job.ColumnStatisticsConfigurationProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data ColumnStatisticsConfigurationProperty :: Prelude.Type
+instance ToResourceProperties ColumnStatisticsConfigurationProperty
+instance Prelude.Eq ColumnStatisticsConfigurationProperty
+instance Prelude.Show ColumnStatisticsConfigurationProperty
+instance JSON.ToJSON ColumnStatisticsConfigurationProperty
diff --git a/gen/Stratosphere/DataBrew/Job/CsvOutputOptionsProperty.hs b/gen/Stratosphere/DataBrew/Job/CsvOutputOptionsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Job/CsvOutputOptionsProperty.hs
@@ -0,0 +1,34 @@
+module Stratosphere.DataBrew.Job.CsvOutputOptionsProperty (
+        CsvOutputOptionsProperty(..), mkCsvOutputOptionsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data CsvOutputOptionsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-csvoutputoptions.html>
+    CsvOutputOptionsProperty {haddock_workaround_ :: (),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-csvoutputoptions.html#cfn-databrew-job-csvoutputoptions-delimiter>
+                              delimiter :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkCsvOutputOptionsProperty :: CsvOutputOptionsProperty
+mkCsvOutputOptionsProperty
+  = CsvOutputOptionsProperty
+      {haddock_workaround_ = (), delimiter = Prelude.Nothing}
+instance ToResourceProperties CsvOutputOptionsProperty where
+  toResourceProperties CsvOutputOptionsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Job.CsvOutputOptions",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes [(JSON..=) "Delimiter" Prelude.<$> delimiter])}
+instance JSON.ToJSON CsvOutputOptionsProperty where
+  toJSON CsvOutputOptionsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes [(JSON..=) "Delimiter" Prelude.<$> delimiter]))
+instance Property "Delimiter" CsvOutputOptionsProperty where
+  type PropertyType "Delimiter" CsvOutputOptionsProperty = Value Prelude.Text
+  set newValue CsvOutputOptionsProperty {..}
+    = CsvOutputOptionsProperty {delimiter = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Job/CsvOutputOptionsProperty.hs-boot b/gen/Stratosphere/DataBrew/Job/CsvOutputOptionsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Job/CsvOutputOptionsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Job.CsvOutputOptionsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data CsvOutputOptionsProperty :: Prelude.Type
+instance ToResourceProperties CsvOutputOptionsProperty
+instance Prelude.Eq CsvOutputOptionsProperty
+instance Prelude.Show CsvOutputOptionsProperty
+instance JSON.ToJSON CsvOutputOptionsProperty
diff --git a/gen/Stratosphere/DataBrew/Job/DataCatalogOutputProperty.hs b/gen/Stratosphere/DataBrew/Job/DataCatalogOutputProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Job/DataCatalogOutputProperty.hs
@@ -0,0 +1,87 @@
+module Stratosphere.DataBrew.Job.DataCatalogOutputProperty (
+        module Exports, DataCatalogOutputProperty(..),
+        mkDataCatalogOutputProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.DataBrew.Job.DatabaseTableOutputOptionsProperty as Exports
+import {-# SOURCE #-} Stratosphere.DataBrew.Job.S3TableOutputOptionsProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data DataCatalogOutputProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-datacatalogoutput.html>
+    DataCatalogOutputProperty {haddock_workaround_ :: (),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-datacatalogoutput.html#cfn-databrew-job-datacatalogoutput-catalogid>
+                               catalogId :: (Prelude.Maybe (Value Prelude.Text)),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-datacatalogoutput.html#cfn-databrew-job-datacatalogoutput-databasename>
+                               databaseName :: (Value Prelude.Text),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-datacatalogoutput.html#cfn-databrew-job-datacatalogoutput-databaseoptions>
+                               databaseOptions :: (Prelude.Maybe DatabaseTableOutputOptionsProperty),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-datacatalogoutput.html#cfn-databrew-job-datacatalogoutput-overwrite>
+                               overwrite :: (Prelude.Maybe (Value Prelude.Bool)),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-datacatalogoutput.html#cfn-databrew-job-datacatalogoutput-s3options>
+                               s3Options :: (Prelude.Maybe S3TableOutputOptionsProperty),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-datacatalogoutput.html#cfn-databrew-job-datacatalogoutput-tablename>
+                               tableName :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkDataCatalogOutputProperty ::
+  Value Prelude.Text
+  -> Value Prelude.Text -> DataCatalogOutputProperty
+mkDataCatalogOutputProperty databaseName tableName
+  = DataCatalogOutputProperty
+      {haddock_workaround_ = (), databaseName = databaseName,
+       tableName = tableName, catalogId = Prelude.Nothing,
+       databaseOptions = Prelude.Nothing, overwrite = Prelude.Nothing,
+       s3Options = Prelude.Nothing}
+instance ToResourceProperties DataCatalogOutputProperty where
+  toResourceProperties DataCatalogOutputProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Job.DataCatalogOutput",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["DatabaseName" JSON..= databaseName,
+                            "TableName" JSON..= tableName]
+                           (Prelude.catMaybes
+                              [(JSON..=) "CatalogId" Prelude.<$> catalogId,
+                               (JSON..=) "DatabaseOptions" Prelude.<$> databaseOptions,
+                               (JSON..=) "Overwrite" Prelude.<$> overwrite,
+                               (JSON..=) "S3Options" Prelude.<$> s3Options]))}
+instance JSON.ToJSON DataCatalogOutputProperty where
+  toJSON DataCatalogOutputProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["DatabaseName" JSON..= databaseName,
+               "TableName" JSON..= tableName]
+              (Prelude.catMaybes
+                 [(JSON..=) "CatalogId" Prelude.<$> catalogId,
+                  (JSON..=) "DatabaseOptions" Prelude.<$> databaseOptions,
+                  (JSON..=) "Overwrite" Prelude.<$> overwrite,
+                  (JSON..=) "S3Options" Prelude.<$> s3Options])))
+instance Property "CatalogId" DataCatalogOutputProperty where
+  type PropertyType "CatalogId" DataCatalogOutputProperty = Value Prelude.Text
+  set newValue DataCatalogOutputProperty {..}
+    = DataCatalogOutputProperty {catalogId = Prelude.pure newValue, ..}
+instance Property "DatabaseName" DataCatalogOutputProperty where
+  type PropertyType "DatabaseName" DataCatalogOutputProperty = Value Prelude.Text
+  set newValue DataCatalogOutputProperty {..}
+    = DataCatalogOutputProperty {databaseName = newValue, ..}
+instance Property "DatabaseOptions" DataCatalogOutputProperty where
+  type PropertyType "DatabaseOptions" DataCatalogOutputProperty = DatabaseTableOutputOptionsProperty
+  set newValue DataCatalogOutputProperty {..}
+    = DataCatalogOutputProperty
+        {databaseOptions = Prelude.pure newValue, ..}
+instance Property "Overwrite" DataCatalogOutputProperty where
+  type PropertyType "Overwrite" DataCatalogOutputProperty = Value Prelude.Bool
+  set newValue DataCatalogOutputProperty {..}
+    = DataCatalogOutputProperty {overwrite = Prelude.pure newValue, ..}
+instance Property "S3Options" DataCatalogOutputProperty where
+  type PropertyType "S3Options" DataCatalogOutputProperty = S3TableOutputOptionsProperty
+  set newValue DataCatalogOutputProperty {..}
+    = DataCatalogOutputProperty {s3Options = Prelude.pure newValue, ..}
+instance Property "TableName" DataCatalogOutputProperty where
+  type PropertyType "TableName" DataCatalogOutputProperty = Value Prelude.Text
+  set newValue DataCatalogOutputProperty {..}
+    = DataCatalogOutputProperty {tableName = newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Job/DataCatalogOutputProperty.hs-boot b/gen/Stratosphere/DataBrew/Job/DataCatalogOutputProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Job/DataCatalogOutputProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Job.DataCatalogOutputProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data DataCatalogOutputProperty :: Prelude.Type
+instance ToResourceProperties DataCatalogOutputProperty
+instance Prelude.Eq DataCatalogOutputProperty
+instance Prelude.Show DataCatalogOutputProperty
+instance JSON.ToJSON DataCatalogOutputProperty
diff --git a/gen/Stratosphere/DataBrew/Job/DatabaseOutputProperty.hs b/gen/Stratosphere/DataBrew/Job/DatabaseOutputProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Job/DatabaseOutputProperty.hs
@@ -0,0 +1,61 @@
+module Stratosphere.DataBrew.Job.DatabaseOutputProperty (
+        module Exports, DatabaseOutputProperty(..),
+        mkDatabaseOutputProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.DataBrew.Job.DatabaseTableOutputOptionsProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data DatabaseOutputProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-databaseoutput.html>
+    DatabaseOutputProperty {haddock_workaround_ :: (),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-databaseoutput.html#cfn-databrew-job-databaseoutput-databaseoptions>
+                            databaseOptions :: DatabaseTableOutputOptionsProperty,
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-databaseoutput.html#cfn-databrew-job-databaseoutput-databaseoutputmode>
+                            databaseOutputMode :: (Prelude.Maybe (Value Prelude.Text)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-databaseoutput.html#cfn-databrew-job-databaseoutput-glueconnectionname>
+                            glueConnectionName :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkDatabaseOutputProperty ::
+  DatabaseTableOutputOptionsProperty
+  -> Value Prelude.Text -> DatabaseOutputProperty
+mkDatabaseOutputProperty databaseOptions glueConnectionName
+  = DatabaseOutputProperty
+      {haddock_workaround_ = (), databaseOptions = databaseOptions,
+       glueConnectionName = glueConnectionName,
+       databaseOutputMode = Prelude.Nothing}
+instance ToResourceProperties DatabaseOutputProperty where
+  toResourceProperties DatabaseOutputProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Job.DatabaseOutput",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["DatabaseOptions" JSON..= databaseOptions,
+                            "GlueConnectionName" JSON..= glueConnectionName]
+                           (Prelude.catMaybes
+                              [(JSON..=) "DatabaseOutputMode" Prelude.<$> databaseOutputMode]))}
+instance JSON.ToJSON DatabaseOutputProperty where
+  toJSON DatabaseOutputProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["DatabaseOptions" JSON..= databaseOptions,
+               "GlueConnectionName" JSON..= glueConnectionName]
+              (Prelude.catMaybes
+                 [(JSON..=) "DatabaseOutputMode" Prelude.<$> databaseOutputMode])))
+instance Property "DatabaseOptions" DatabaseOutputProperty where
+  type PropertyType "DatabaseOptions" DatabaseOutputProperty = DatabaseTableOutputOptionsProperty
+  set newValue DatabaseOutputProperty {..}
+    = DatabaseOutputProperty {databaseOptions = newValue, ..}
+instance Property "DatabaseOutputMode" DatabaseOutputProperty where
+  type PropertyType "DatabaseOutputMode" DatabaseOutputProperty = Value Prelude.Text
+  set newValue DatabaseOutputProperty {..}
+    = DatabaseOutputProperty
+        {databaseOutputMode = Prelude.pure newValue, ..}
+instance Property "GlueConnectionName" DatabaseOutputProperty where
+  type PropertyType "GlueConnectionName" DatabaseOutputProperty = Value Prelude.Text
+  set newValue DatabaseOutputProperty {..}
+    = DatabaseOutputProperty {glueConnectionName = newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Job/DatabaseOutputProperty.hs-boot b/gen/Stratosphere/DataBrew/Job/DatabaseOutputProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Job/DatabaseOutputProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Job.DatabaseOutputProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data DatabaseOutputProperty :: Prelude.Type
+instance ToResourceProperties DatabaseOutputProperty
+instance Prelude.Eq DatabaseOutputProperty
+instance Prelude.Show DatabaseOutputProperty
+instance JSON.ToJSON DatabaseOutputProperty
diff --git a/gen/Stratosphere/DataBrew/Job/DatabaseTableOutputOptionsProperty.hs b/gen/Stratosphere/DataBrew/Job/DatabaseTableOutputOptionsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Job/DatabaseTableOutputOptionsProperty.hs
@@ -0,0 +1,51 @@
+module Stratosphere.DataBrew.Job.DatabaseTableOutputOptionsProperty (
+        module Exports, DatabaseTableOutputOptionsProperty(..),
+        mkDatabaseTableOutputOptionsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.DataBrew.Job.S3LocationProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data DatabaseTableOutputOptionsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-databasetableoutputoptions.html>
+    DatabaseTableOutputOptionsProperty {haddock_workaround_ :: (),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-databasetableoutputoptions.html#cfn-databrew-job-databasetableoutputoptions-tablename>
+                                        tableName :: (Value Prelude.Text),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-databasetableoutputoptions.html#cfn-databrew-job-databasetableoutputoptions-tempdirectory>
+                                        tempDirectory :: (Prelude.Maybe S3LocationProperty)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkDatabaseTableOutputOptionsProperty ::
+  Value Prelude.Text -> DatabaseTableOutputOptionsProperty
+mkDatabaseTableOutputOptionsProperty tableName
+  = DatabaseTableOutputOptionsProperty
+      {haddock_workaround_ = (), tableName = tableName,
+       tempDirectory = Prelude.Nothing}
+instance ToResourceProperties DatabaseTableOutputOptionsProperty where
+  toResourceProperties DatabaseTableOutputOptionsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Job.DatabaseTableOutputOptions",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["TableName" JSON..= tableName]
+                           (Prelude.catMaybes
+                              [(JSON..=) "TempDirectory" Prelude.<$> tempDirectory]))}
+instance JSON.ToJSON DatabaseTableOutputOptionsProperty where
+  toJSON DatabaseTableOutputOptionsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["TableName" JSON..= tableName]
+              (Prelude.catMaybes
+                 [(JSON..=) "TempDirectory" Prelude.<$> tempDirectory])))
+instance Property "TableName" DatabaseTableOutputOptionsProperty where
+  type PropertyType "TableName" DatabaseTableOutputOptionsProperty = Value Prelude.Text
+  set newValue DatabaseTableOutputOptionsProperty {..}
+    = DatabaseTableOutputOptionsProperty {tableName = newValue, ..}
+instance Property "TempDirectory" DatabaseTableOutputOptionsProperty where
+  type PropertyType "TempDirectory" DatabaseTableOutputOptionsProperty = S3LocationProperty
+  set newValue DatabaseTableOutputOptionsProperty {..}
+    = DatabaseTableOutputOptionsProperty
+        {tempDirectory = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Job/DatabaseTableOutputOptionsProperty.hs-boot b/gen/Stratosphere/DataBrew/Job/DatabaseTableOutputOptionsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Job/DatabaseTableOutputOptionsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Job.DatabaseTableOutputOptionsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data DatabaseTableOutputOptionsProperty :: Prelude.Type
+instance ToResourceProperties DatabaseTableOutputOptionsProperty
+instance Prelude.Eq DatabaseTableOutputOptionsProperty
+instance Prelude.Show DatabaseTableOutputOptionsProperty
+instance JSON.ToJSON DatabaseTableOutputOptionsProperty
diff --git a/gen/Stratosphere/DataBrew/Job/EntityDetectorConfigurationProperty.hs b/gen/Stratosphere/DataBrew/Job/EntityDetectorConfigurationProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Job/EntityDetectorConfigurationProperty.hs
@@ -0,0 +1,51 @@
+module Stratosphere.DataBrew.Job.EntityDetectorConfigurationProperty (
+        module Exports, EntityDetectorConfigurationProperty(..),
+        mkEntityDetectorConfigurationProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.DataBrew.Job.AllowedStatisticsProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data EntityDetectorConfigurationProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-entitydetectorconfiguration.html>
+    EntityDetectorConfigurationProperty {haddock_workaround_ :: (),
+                                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-entitydetectorconfiguration.html#cfn-databrew-job-entitydetectorconfiguration-allowedstatistics>
+                                         allowedStatistics :: (Prelude.Maybe AllowedStatisticsProperty),
+                                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-entitydetectorconfiguration.html#cfn-databrew-job-entitydetectorconfiguration-entitytypes>
+                                         entityTypes :: (ValueList Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkEntityDetectorConfigurationProperty ::
+  ValueList Prelude.Text -> EntityDetectorConfigurationProperty
+mkEntityDetectorConfigurationProperty entityTypes
+  = EntityDetectorConfigurationProperty
+      {haddock_workaround_ = (), entityTypes = entityTypes,
+       allowedStatistics = Prelude.Nothing}
+instance ToResourceProperties EntityDetectorConfigurationProperty where
+  toResourceProperties EntityDetectorConfigurationProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Job.EntityDetectorConfiguration",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["EntityTypes" JSON..= entityTypes]
+                           (Prelude.catMaybes
+                              [(JSON..=) "AllowedStatistics" Prelude.<$> allowedStatistics]))}
+instance JSON.ToJSON EntityDetectorConfigurationProperty where
+  toJSON EntityDetectorConfigurationProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["EntityTypes" JSON..= entityTypes]
+              (Prelude.catMaybes
+                 [(JSON..=) "AllowedStatistics" Prelude.<$> allowedStatistics])))
+instance Property "AllowedStatistics" EntityDetectorConfigurationProperty where
+  type PropertyType "AllowedStatistics" EntityDetectorConfigurationProperty = AllowedStatisticsProperty
+  set newValue EntityDetectorConfigurationProperty {..}
+    = EntityDetectorConfigurationProperty
+        {allowedStatistics = Prelude.pure newValue, ..}
+instance Property "EntityTypes" EntityDetectorConfigurationProperty where
+  type PropertyType "EntityTypes" EntityDetectorConfigurationProperty = ValueList Prelude.Text
+  set newValue EntityDetectorConfigurationProperty {..}
+    = EntityDetectorConfigurationProperty {entityTypes = newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Job/EntityDetectorConfigurationProperty.hs-boot b/gen/Stratosphere/DataBrew/Job/EntityDetectorConfigurationProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Job/EntityDetectorConfigurationProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Job.EntityDetectorConfigurationProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data EntityDetectorConfigurationProperty :: Prelude.Type
+instance ToResourceProperties EntityDetectorConfigurationProperty
+instance Prelude.Eq EntityDetectorConfigurationProperty
+instance Prelude.Show EntityDetectorConfigurationProperty
+instance JSON.ToJSON EntityDetectorConfigurationProperty
diff --git a/gen/Stratosphere/DataBrew/Job/JobSampleProperty.hs b/gen/Stratosphere/DataBrew/Job/JobSampleProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Job/JobSampleProperty.hs
@@ -0,0 +1,45 @@
+module Stratosphere.DataBrew.Job.JobSampleProperty (
+        JobSampleProperty(..), mkJobSampleProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data JobSampleProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-jobsample.html>
+    JobSampleProperty {haddock_workaround_ :: (),
+                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-jobsample.html#cfn-databrew-job-jobsample-mode>
+                       mode :: (Prelude.Maybe (Value Prelude.Text)),
+                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-jobsample.html#cfn-databrew-job-jobsample-size>
+                       size :: (Prelude.Maybe (Value Prelude.Integer))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkJobSampleProperty :: JobSampleProperty
+mkJobSampleProperty
+  = JobSampleProperty
+      {haddock_workaround_ = (), mode = Prelude.Nothing,
+       size = Prelude.Nothing}
+instance ToResourceProperties JobSampleProperty where
+  toResourceProperties JobSampleProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Job.JobSample",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "Mode" Prelude.<$> mode,
+                            (JSON..=) "Size" Prelude.<$> size])}
+instance JSON.ToJSON JobSampleProperty where
+  toJSON JobSampleProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "Mode" Prelude.<$> mode,
+               (JSON..=) "Size" Prelude.<$> size]))
+instance Property "Mode" JobSampleProperty where
+  type PropertyType "Mode" JobSampleProperty = Value Prelude.Text
+  set newValue JobSampleProperty {..}
+    = JobSampleProperty {mode = Prelude.pure newValue, ..}
+instance Property "Size" JobSampleProperty where
+  type PropertyType "Size" JobSampleProperty = Value Prelude.Integer
+  set newValue JobSampleProperty {..}
+    = JobSampleProperty {size = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Job/JobSampleProperty.hs-boot b/gen/Stratosphere/DataBrew/Job/JobSampleProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Job/JobSampleProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Job.JobSampleProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data JobSampleProperty :: Prelude.Type
+instance ToResourceProperties JobSampleProperty
+instance Prelude.Eq JobSampleProperty
+instance Prelude.Show JobSampleProperty
+instance JSON.ToJSON JobSampleProperty
diff --git a/gen/Stratosphere/DataBrew/Job/OutputFormatOptionsProperty.hs b/gen/Stratosphere/DataBrew/Job/OutputFormatOptionsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Job/OutputFormatOptionsProperty.hs
@@ -0,0 +1,35 @@
+module Stratosphere.DataBrew.Job.OutputFormatOptionsProperty (
+        module Exports, OutputFormatOptionsProperty(..),
+        mkOutputFormatOptionsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.DataBrew.Job.CsvOutputOptionsProperty as Exports
+import Stratosphere.ResourceProperties
+data OutputFormatOptionsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-outputformatoptions.html>
+    OutputFormatOptionsProperty {haddock_workaround_ :: (),
+                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-outputformatoptions.html#cfn-databrew-job-outputformatoptions-csv>
+                                 csv :: (Prelude.Maybe CsvOutputOptionsProperty)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkOutputFormatOptionsProperty :: OutputFormatOptionsProperty
+mkOutputFormatOptionsProperty
+  = OutputFormatOptionsProperty
+      {haddock_workaround_ = (), csv = Prelude.Nothing}
+instance ToResourceProperties OutputFormatOptionsProperty where
+  toResourceProperties OutputFormatOptionsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Job.OutputFormatOptions",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes [(JSON..=) "Csv" Prelude.<$> csv])}
+instance JSON.ToJSON OutputFormatOptionsProperty where
+  toJSON OutputFormatOptionsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes [(JSON..=) "Csv" Prelude.<$> csv]))
+instance Property "Csv" OutputFormatOptionsProperty where
+  type PropertyType "Csv" OutputFormatOptionsProperty = CsvOutputOptionsProperty
+  set newValue OutputFormatOptionsProperty {..}
+    = OutputFormatOptionsProperty {csv = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Job/OutputFormatOptionsProperty.hs-boot b/gen/Stratosphere/DataBrew/Job/OutputFormatOptionsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Job/OutputFormatOptionsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Job.OutputFormatOptionsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data OutputFormatOptionsProperty :: Prelude.Type
+instance ToResourceProperties OutputFormatOptionsProperty
+instance Prelude.Eq OutputFormatOptionsProperty
+instance Prelude.Show OutputFormatOptionsProperty
+instance JSON.ToJSON OutputFormatOptionsProperty
diff --git a/gen/Stratosphere/DataBrew/Job/OutputLocationProperty.hs b/gen/Stratosphere/DataBrew/Job/OutputLocationProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Job/OutputLocationProperty.hs
@@ -0,0 +1,56 @@
+module Stratosphere.DataBrew.Job.OutputLocationProperty (
+        OutputLocationProperty(..), mkOutputLocationProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data OutputLocationProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-outputlocation.html>
+    OutputLocationProperty {haddock_workaround_ :: (),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-outputlocation.html#cfn-databrew-job-outputlocation-bucket>
+                            bucket :: (Value Prelude.Text),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-outputlocation.html#cfn-databrew-job-outputlocation-bucketowner>
+                            bucketOwner :: (Prelude.Maybe (Value Prelude.Text)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-outputlocation.html#cfn-databrew-job-outputlocation-key>
+                            key :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkOutputLocationProperty ::
+  Value Prelude.Text -> OutputLocationProperty
+mkOutputLocationProperty bucket
+  = OutputLocationProperty
+      {haddock_workaround_ = (), bucket = bucket,
+       bucketOwner = Prelude.Nothing, key = Prelude.Nothing}
+instance ToResourceProperties OutputLocationProperty where
+  toResourceProperties OutputLocationProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Job.OutputLocation",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["Bucket" JSON..= bucket]
+                           (Prelude.catMaybes
+                              [(JSON..=) "BucketOwner" Prelude.<$> bucketOwner,
+                               (JSON..=) "Key" Prelude.<$> key]))}
+instance JSON.ToJSON OutputLocationProperty where
+  toJSON OutputLocationProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["Bucket" JSON..= bucket]
+              (Prelude.catMaybes
+                 [(JSON..=) "BucketOwner" Prelude.<$> bucketOwner,
+                  (JSON..=) "Key" Prelude.<$> key])))
+instance Property "Bucket" OutputLocationProperty where
+  type PropertyType "Bucket" OutputLocationProperty = Value Prelude.Text
+  set newValue OutputLocationProperty {..}
+    = OutputLocationProperty {bucket = newValue, ..}
+instance Property "BucketOwner" OutputLocationProperty where
+  type PropertyType "BucketOwner" OutputLocationProperty = Value Prelude.Text
+  set newValue OutputLocationProperty {..}
+    = OutputLocationProperty {bucketOwner = Prelude.pure newValue, ..}
+instance Property "Key" OutputLocationProperty where
+  type PropertyType "Key" OutputLocationProperty = Value Prelude.Text
+  set newValue OutputLocationProperty {..}
+    = OutputLocationProperty {key = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Job/OutputLocationProperty.hs-boot b/gen/Stratosphere/DataBrew/Job/OutputLocationProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Job/OutputLocationProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Job.OutputLocationProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data OutputLocationProperty :: Prelude.Type
+instance ToResourceProperties OutputLocationProperty
+instance Prelude.Eq OutputLocationProperty
+instance Prelude.Show OutputLocationProperty
+instance JSON.ToJSON OutputLocationProperty
diff --git a/gen/Stratosphere/DataBrew/Job/OutputProperty.hs b/gen/Stratosphere/DataBrew/Job/OutputProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Job/OutputProperty.hs
@@ -0,0 +1,91 @@
+module Stratosphere.DataBrew.Job.OutputProperty (
+        module Exports, OutputProperty(..), mkOutputProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.DataBrew.Job.OutputFormatOptionsProperty as Exports
+import {-# SOURCE #-} Stratosphere.DataBrew.Job.S3LocationProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data OutputProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-output.html>
+    OutputProperty {haddock_workaround_ :: (),
+                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-output.html#cfn-databrew-job-output-compressionformat>
+                    compressionFormat :: (Prelude.Maybe (Value Prelude.Text)),
+                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-output.html#cfn-databrew-job-output-format>
+                    format :: (Prelude.Maybe (Value Prelude.Text)),
+                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-output.html#cfn-databrew-job-output-formatoptions>
+                    formatOptions :: (Prelude.Maybe OutputFormatOptionsProperty),
+                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-output.html#cfn-databrew-job-output-location>
+                    location :: S3LocationProperty,
+                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-output.html#cfn-databrew-job-output-maxoutputfiles>
+                    maxOutputFiles :: (Prelude.Maybe (Value Prelude.Integer)),
+                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-output.html#cfn-databrew-job-output-overwrite>
+                    overwrite :: (Prelude.Maybe (Value Prelude.Bool)),
+                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-output.html#cfn-databrew-job-output-partitioncolumns>
+                    partitionColumns :: (Prelude.Maybe (ValueList Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkOutputProperty :: S3LocationProperty -> OutputProperty
+mkOutputProperty location
+  = OutputProperty
+      {haddock_workaround_ = (), location = location,
+       compressionFormat = Prelude.Nothing, format = Prelude.Nothing,
+       formatOptions = Prelude.Nothing, maxOutputFiles = Prelude.Nothing,
+       overwrite = Prelude.Nothing, partitionColumns = Prelude.Nothing}
+instance ToResourceProperties OutputProperty where
+  toResourceProperties OutputProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Job.Output",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["Location" JSON..= location]
+                           (Prelude.catMaybes
+                              [(JSON..=) "CompressionFormat" Prelude.<$> compressionFormat,
+                               (JSON..=) "Format" Prelude.<$> format,
+                               (JSON..=) "FormatOptions" Prelude.<$> formatOptions,
+                               (JSON..=) "MaxOutputFiles" Prelude.<$> maxOutputFiles,
+                               (JSON..=) "Overwrite" Prelude.<$> overwrite,
+                               (JSON..=) "PartitionColumns" Prelude.<$> partitionColumns]))}
+instance JSON.ToJSON OutputProperty where
+  toJSON OutputProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["Location" JSON..= location]
+              (Prelude.catMaybes
+                 [(JSON..=) "CompressionFormat" Prelude.<$> compressionFormat,
+                  (JSON..=) "Format" Prelude.<$> format,
+                  (JSON..=) "FormatOptions" Prelude.<$> formatOptions,
+                  (JSON..=) "MaxOutputFiles" Prelude.<$> maxOutputFiles,
+                  (JSON..=) "Overwrite" Prelude.<$> overwrite,
+                  (JSON..=) "PartitionColumns" Prelude.<$> partitionColumns])))
+instance Property "CompressionFormat" OutputProperty where
+  type PropertyType "CompressionFormat" OutputProperty = Value Prelude.Text
+  set newValue OutputProperty {..}
+    = OutputProperty {compressionFormat = Prelude.pure newValue, ..}
+instance Property "Format" OutputProperty where
+  type PropertyType "Format" OutputProperty = Value Prelude.Text
+  set newValue OutputProperty {..}
+    = OutputProperty {format = Prelude.pure newValue, ..}
+instance Property "FormatOptions" OutputProperty where
+  type PropertyType "FormatOptions" OutputProperty = OutputFormatOptionsProperty
+  set newValue OutputProperty {..}
+    = OutputProperty {formatOptions = Prelude.pure newValue, ..}
+instance Property "Location" OutputProperty where
+  type PropertyType "Location" OutputProperty = S3LocationProperty
+  set newValue OutputProperty {..}
+    = OutputProperty {location = newValue, ..}
+instance Property "MaxOutputFiles" OutputProperty where
+  type PropertyType "MaxOutputFiles" OutputProperty = Value Prelude.Integer
+  set newValue OutputProperty {..}
+    = OutputProperty {maxOutputFiles = Prelude.pure newValue, ..}
+instance Property "Overwrite" OutputProperty where
+  type PropertyType "Overwrite" OutputProperty = Value Prelude.Bool
+  set newValue OutputProperty {..}
+    = OutputProperty {overwrite = Prelude.pure newValue, ..}
+instance Property "PartitionColumns" OutputProperty where
+  type PropertyType "PartitionColumns" OutputProperty = ValueList Prelude.Text
+  set newValue OutputProperty {..}
+    = OutputProperty {partitionColumns = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Job/OutputProperty.hs-boot b/gen/Stratosphere/DataBrew/Job/OutputProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Job/OutputProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Job.OutputProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data OutputProperty :: Prelude.Type
+instance ToResourceProperties OutputProperty
+instance Prelude.Eq OutputProperty
+instance Prelude.Show OutputProperty
+instance JSON.ToJSON OutputProperty
diff --git a/gen/Stratosphere/DataBrew/Job/ProfileConfigurationProperty.hs b/gen/Stratosphere/DataBrew/Job/ProfileConfigurationProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Job/ProfileConfigurationProperty.hs
@@ -0,0 +1,78 @@
+module Stratosphere.DataBrew.Job.ProfileConfigurationProperty (
+        module Exports, ProfileConfigurationProperty(..),
+        mkProfileConfigurationProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.DataBrew.Job.ColumnSelectorProperty as Exports
+import {-# SOURCE #-} Stratosphere.DataBrew.Job.ColumnStatisticsConfigurationProperty as Exports
+import {-# SOURCE #-} Stratosphere.DataBrew.Job.EntityDetectorConfigurationProperty as Exports
+import {-# SOURCE #-} Stratosphere.DataBrew.Job.StatisticsConfigurationProperty as Exports
+import Stratosphere.ResourceProperties
+data ProfileConfigurationProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-profileconfiguration.html>
+    ProfileConfigurationProperty {haddock_workaround_ :: (),
+                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-profileconfiguration.html#cfn-databrew-job-profileconfiguration-columnstatisticsconfigurations>
+                                  columnStatisticsConfigurations :: (Prelude.Maybe [ColumnStatisticsConfigurationProperty]),
+                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-profileconfiguration.html#cfn-databrew-job-profileconfiguration-datasetstatisticsconfiguration>
+                                  datasetStatisticsConfiguration :: (Prelude.Maybe StatisticsConfigurationProperty),
+                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-profileconfiguration.html#cfn-databrew-job-profileconfiguration-entitydetectorconfiguration>
+                                  entityDetectorConfiguration :: (Prelude.Maybe EntityDetectorConfigurationProperty),
+                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-profileconfiguration.html#cfn-databrew-job-profileconfiguration-profilecolumns>
+                                  profileColumns :: (Prelude.Maybe [ColumnSelectorProperty])}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkProfileConfigurationProperty :: ProfileConfigurationProperty
+mkProfileConfigurationProperty
+  = ProfileConfigurationProperty
+      {haddock_workaround_ = (),
+       columnStatisticsConfigurations = Prelude.Nothing,
+       datasetStatisticsConfiguration = Prelude.Nothing,
+       entityDetectorConfiguration = Prelude.Nothing,
+       profileColumns = Prelude.Nothing}
+instance ToResourceProperties ProfileConfigurationProperty where
+  toResourceProperties ProfileConfigurationProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Job.ProfileConfiguration",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "ColumnStatisticsConfigurations"
+                              Prelude.<$> columnStatisticsConfigurations,
+                            (JSON..=) "DatasetStatisticsConfiguration"
+                              Prelude.<$> datasetStatisticsConfiguration,
+                            (JSON..=) "EntityDetectorConfiguration"
+                              Prelude.<$> entityDetectorConfiguration,
+                            (JSON..=) "ProfileColumns" Prelude.<$> profileColumns])}
+instance JSON.ToJSON ProfileConfigurationProperty where
+  toJSON ProfileConfigurationProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "ColumnStatisticsConfigurations"
+                 Prelude.<$> columnStatisticsConfigurations,
+               (JSON..=) "DatasetStatisticsConfiguration"
+                 Prelude.<$> datasetStatisticsConfiguration,
+               (JSON..=) "EntityDetectorConfiguration"
+                 Prelude.<$> entityDetectorConfiguration,
+               (JSON..=) "ProfileColumns" Prelude.<$> profileColumns]))
+instance Property "ColumnStatisticsConfigurations" ProfileConfigurationProperty where
+  type PropertyType "ColumnStatisticsConfigurations" ProfileConfigurationProperty = [ColumnStatisticsConfigurationProperty]
+  set newValue ProfileConfigurationProperty {..}
+    = ProfileConfigurationProperty
+        {columnStatisticsConfigurations = Prelude.pure newValue, ..}
+instance Property "DatasetStatisticsConfiguration" ProfileConfigurationProperty where
+  type PropertyType "DatasetStatisticsConfiguration" ProfileConfigurationProperty = StatisticsConfigurationProperty
+  set newValue ProfileConfigurationProperty {..}
+    = ProfileConfigurationProperty
+        {datasetStatisticsConfiguration = Prelude.pure newValue, ..}
+instance Property "EntityDetectorConfiguration" ProfileConfigurationProperty where
+  type PropertyType "EntityDetectorConfiguration" ProfileConfigurationProperty = EntityDetectorConfigurationProperty
+  set newValue ProfileConfigurationProperty {..}
+    = ProfileConfigurationProperty
+        {entityDetectorConfiguration = Prelude.pure newValue, ..}
+instance Property "ProfileColumns" ProfileConfigurationProperty where
+  type PropertyType "ProfileColumns" ProfileConfigurationProperty = [ColumnSelectorProperty]
+  set newValue ProfileConfigurationProperty {..}
+    = ProfileConfigurationProperty
+        {profileColumns = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Job/ProfileConfigurationProperty.hs-boot b/gen/Stratosphere/DataBrew/Job/ProfileConfigurationProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Job/ProfileConfigurationProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Job.ProfileConfigurationProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data ProfileConfigurationProperty :: Prelude.Type
+instance ToResourceProperties ProfileConfigurationProperty
+instance Prelude.Eq ProfileConfigurationProperty
+instance Prelude.Show ProfileConfigurationProperty
+instance JSON.ToJSON ProfileConfigurationProperty
diff --git a/gen/Stratosphere/DataBrew/Job/RecipeProperty.hs b/gen/Stratosphere/DataBrew/Job/RecipeProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Job/RecipeProperty.hs
@@ -0,0 +1,44 @@
+module Stratosphere.DataBrew.Job.RecipeProperty (
+        RecipeProperty(..), mkRecipeProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data RecipeProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-recipe.html>
+    RecipeProperty {haddock_workaround_ :: (),
+                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-recipe.html#cfn-databrew-job-recipe-name>
+                    name :: (Value Prelude.Text),
+                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-recipe.html#cfn-databrew-job-recipe-version>
+                    version :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkRecipeProperty :: Value Prelude.Text -> RecipeProperty
+mkRecipeProperty name
+  = RecipeProperty
+      {haddock_workaround_ = (), name = name, version = Prelude.Nothing}
+instance ToResourceProperties RecipeProperty where
+  toResourceProperties RecipeProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Job.Recipe",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["Name" JSON..= name]
+                           (Prelude.catMaybes [(JSON..=) "Version" Prelude.<$> version]))}
+instance JSON.ToJSON RecipeProperty where
+  toJSON RecipeProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["Name" JSON..= name]
+              (Prelude.catMaybes [(JSON..=) "Version" Prelude.<$> version])))
+instance Property "Name" RecipeProperty where
+  type PropertyType "Name" RecipeProperty = Value Prelude.Text
+  set newValue RecipeProperty {..}
+    = RecipeProperty {name = newValue, ..}
+instance Property "Version" RecipeProperty where
+  type PropertyType "Version" RecipeProperty = Value Prelude.Text
+  set newValue RecipeProperty {..}
+    = RecipeProperty {version = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Job/RecipeProperty.hs-boot b/gen/Stratosphere/DataBrew/Job/RecipeProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Job/RecipeProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Job.RecipeProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data RecipeProperty :: Prelude.Type
+instance ToResourceProperties RecipeProperty
+instance Prelude.Eq RecipeProperty
+instance Prelude.Show RecipeProperty
+instance JSON.ToJSON RecipeProperty
diff --git a/gen/Stratosphere/DataBrew/Job/S3LocationProperty.hs b/gen/Stratosphere/DataBrew/Job/S3LocationProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Job/S3LocationProperty.hs
@@ -0,0 +1,55 @@
+module Stratosphere.DataBrew.Job.S3LocationProperty (
+        S3LocationProperty(..), mkS3LocationProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data S3LocationProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-s3location.html>
+    S3LocationProperty {haddock_workaround_ :: (),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-s3location.html#cfn-databrew-job-s3location-bucket>
+                        bucket :: (Value Prelude.Text),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-s3location.html#cfn-databrew-job-s3location-bucketowner>
+                        bucketOwner :: (Prelude.Maybe (Value Prelude.Text)),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-s3location.html#cfn-databrew-job-s3location-key>
+                        key :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkS3LocationProperty :: Value Prelude.Text -> S3LocationProperty
+mkS3LocationProperty bucket
+  = S3LocationProperty
+      {haddock_workaround_ = (), bucket = bucket,
+       bucketOwner = Prelude.Nothing, key = Prelude.Nothing}
+instance ToResourceProperties S3LocationProperty where
+  toResourceProperties S3LocationProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Job.S3Location",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["Bucket" JSON..= bucket]
+                           (Prelude.catMaybes
+                              [(JSON..=) "BucketOwner" Prelude.<$> bucketOwner,
+                               (JSON..=) "Key" Prelude.<$> key]))}
+instance JSON.ToJSON S3LocationProperty where
+  toJSON S3LocationProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["Bucket" JSON..= bucket]
+              (Prelude.catMaybes
+                 [(JSON..=) "BucketOwner" Prelude.<$> bucketOwner,
+                  (JSON..=) "Key" Prelude.<$> key])))
+instance Property "Bucket" S3LocationProperty where
+  type PropertyType "Bucket" S3LocationProperty = Value Prelude.Text
+  set newValue S3LocationProperty {..}
+    = S3LocationProperty {bucket = newValue, ..}
+instance Property "BucketOwner" S3LocationProperty where
+  type PropertyType "BucketOwner" S3LocationProperty = Value Prelude.Text
+  set newValue S3LocationProperty {..}
+    = S3LocationProperty {bucketOwner = Prelude.pure newValue, ..}
+instance Property "Key" S3LocationProperty where
+  type PropertyType "Key" S3LocationProperty = Value Prelude.Text
+  set newValue S3LocationProperty {..}
+    = S3LocationProperty {key = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Job/S3LocationProperty.hs-boot b/gen/Stratosphere/DataBrew/Job/S3LocationProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Job/S3LocationProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Job.S3LocationProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data S3LocationProperty :: Prelude.Type
+instance ToResourceProperties S3LocationProperty
+instance Prelude.Eq S3LocationProperty
+instance Prelude.Show S3LocationProperty
+instance JSON.ToJSON S3LocationProperty
diff --git a/gen/Stratosphere/DataBrew/Job/S3TableOutputOptionsProperty.hs b/gen/Stratosphere/DataBrew/Job/S3TableOutputOptionsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Job/S3TableOutputOptionsProperty.hs
@@ -0,0 +1,33 @@
+module Stratosphere.DataBrew.Job.S3TableOutputOptionsProperty (
+        module Exports, S3TableOutputOptionsProperty(..),
+        mkS3TableOutputOptionsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.DataBrew.Job.S3LocationProperty as Exports
+import Stratosphere.ResourceProperties
+data S3TableOutputOptionsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-s3tableoutputoptions.html>
+    S3TableOutputOptionsProperty {haddock_workaround_ :: (),
+                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-s3tableoutputoptions.html#cfn-databrew-job-s3tableoutputoptions-location>
+                                  location :: S3LocationProperty}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkS3TableOutputOptionsProperty ::
+  S3LocationProperty -> S3TableOutputOptionsProperty
+mkS3TableOutputOptionsProperty location
+  = S3TableOutputOptionsProperty
+      {haddock_workaround_ = (), location = location}
+instance ToResourceProperties S3TableOutputOptionsProperty where
+  toResourceProperties S3TableOutputOptionsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Job.S3TableOutputOptions",
+         supportsTags = Prelude.False,
+         properties = ["Location" JSON..= location]}
+instance JSON.ToJSON S3TableOutputOptionsProperty where
+  toJSON S3TableOutputOptionsProperty {..}
+    = JSON.object ["Location" JSON..= location]
+instance Property "Location" S3TableOutputOptionsProperty where
+  type PropertyType "Location" S3TableOutputOptionsProperty = S3LocationProperty
+  set newValue S3TableOutputOptionsProperty {..}
+    = S3TableOutputOptionsProperty {location = newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Job/S3TableOutputOptionsProperty.hs-boot b/gen/Stratosphere/DataBrew/Job/S3TableOutputOptionsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Job/S3TableOutputOptionsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Job.S3TableOutputOptionsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data S3TableOutputOptionsProperty :: Prelude.Type
+instance ToResourceProperties S3TableOutputOptionsProperty
+instance Prelude.Eq S3TableOutputOptionsProperty
+instance Prelude.Show S3TableOutputOptionsProperty
+instance JSON.ToJSON S3TableOutputOptionsProperty
diff --git a/gen/Stratosphere/DataBrew/Job/StatisticOverrideProperty.hs b/gen/Stratosphere/DataBrew/Job/StatisticOverrideProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Job/StatisticOverrideProperty.hs
@@ -0,0 +1,42 @@
+module Stratosphere.DataBrew.Job.StatisticOverrideProperty (
+        StatisticOverrideProperty(..), mkStatisticOverrideProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data StatisticOverrideProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-statisticoverride.html>
+    StatisticOverrideProperty {haddock_workaround_ :: (),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-statisticoverride.html#cfn-databrew-job-statisticoverride-parameters>
+                               parameters :: (Prelude.Map Prelude.Text (Value Prelude.Text)),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-statisticoverride.html#cfn-databrew-job-statisticoverride-statistic>
+                               statistic :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkStatisticOverrideProperty ::
+  Prelude.Map Prelude.Text (Value Prelude.Text)
+  -> Value Prelude.Text -> StatisticOverrideProperty
+mkStatisticOverrideProperty parameters statistic
+  = StatisticOverrideProperty
+      {haddock_workaround_ = (), parameters = parameters,
+       statistic = statistic}
+instance ToResourceProperties StatisticOverrideProperty where
+  toResourceProperties StatisticOverrideProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Job.StatisticOverride",
+         supportsTags = Prelude.False,
+         properties = ["Parameters" JSON..= parameters,
+                       "Statistic" JSON..= statistic]}
+instance JSON.ToJSON StatisticOverrideProperty where
+  toJSON StatisticOverrideProperty {..}
+    = JSON.object
+        ["Parameters" JSON..= parameters, "Statistic" JSON..= statistic]
+instance Property "Parameters" StatisticOverrideProperty where
+  type PropertyType "Parameters" StatisticOverrideProperty = Prelude.Map Prelude.Text (Value Prelude.Text)
+  set newValue StatisticOverrideProperty {..}
+    = StatisticOverrideProperty {parameters = newValue, ..}
+instance Property "Statistic" StatisticOverrideProperty where
+  type PropertyType "Statistic" StatisticOverrideProperty = Value Prelude.Text
+  set newValue StatisticOverrideProperty {..}
+    = StatisticOverrideProperty {statistic = newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Job/StatisticOverrideProperty.hs-boot b/gen/Stratosphere/DataBrew/Job/StatisticOverrideProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Job/StatisticOverrideProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Job.StatisticOverrideProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data StatisticOverrideProperty :: Prelude.Type
+instance ToResourceProperties StatisticOverrideProperty
+instance Prelude.Eq StatisticOverrideProperty
+instance Prelude.Show StatisticOverrideProperty
+instance JSON.ToJSON StatisticOverrideProperty
diff --git a/gen/Stratosphere/DataBrew/Job/StatisticsConfigurationProperty.hs b/gen/Stratosphere/DataBrew/Job/StatisticsConfigurationProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Job/StatisticsConfigurationProperty.hs
@@ -0,0 +1,50 @@
+module Stratosphere.DataBrew.Job.StatisticsConfigurationProperty (
+        module Exports, StatisticsConfigurationProperty(..),
+        mkStatisticsConfigurationProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.DataBrew.Job.StatisticOverrideProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data StatisticsConfigurationProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-statisticsconfiguration.html>
+    StatisticsConfigurationProperty {haddock_workaround_ :: (),
+                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-statisticsconfiguration.html#cfn-databrew-job-statisticsconfiguration-includedstatistics>
+                                     includedStatistics :: (Prelude.Maybe (ValueList Prelude.Text)),
+                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-statisticsconfiguration.html#cfn-databrew-job-statisticsconfiguration-overrides>
+                                     overrides :: (Prelude.Maybe [StatisticOverrideProperty])}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkStatisticsConfigurationProperty ::
+  StatisticsConfigurationProperty
+mkStatisticsConfigurationProperty
+  = StatisticsConfigurationProperty
+      {haddock_workaround_ = (), includedStatistics = Prelude.Nothing,
+       overrides = Prelude.Nothing}
+instance ToResourceProperties StatisticsConfigurationProperty where
+  toResourceProperties StatisticsConfigurationProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Job.StatisticsConfiguration",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "IncludedStatistics" Prelude.<$> includedStatistics,
+                            (JSON..=) "Overrides" Prelude.<$> overrides])}
+instance JSON.ToJSON StatisticsConfigurationProperty where
+  toJSON StatisticsConfigurationProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "IncludedStatistics" Prelude.<$> includedStatistics,
+               (JSON..=) "Overrides" Prelude.<$> overrides]))
+instance Property "IncludedStatistics" StatisticsConfigurationProperty where
+  type PropertyType "IncludedStatistics" StatisticsConfigurationProperty = ValueList Prelude.Text
+  set newValue StatisticsConfigurationProperty {..}
+    = StatisticsConfigurationProperty
+        {includedStatistics = Prelude.pure newValue, ..}
+instance Property "Overrides" StatisticsConfigurationProperty where
+  type PropertyType "Overrides" StatisticsConfigurationProperty = [StatisticOverrideProperty]
+  set newValue StatisticsConfigurationProperty {..}
+    = StatisticsConfigurationProperty
+        {overrides = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Job/StatisticsConfigurationProperty.hs-boot b/gen/Stratosphere/DataBrew/Job/StatisticsConfigurationProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Job/StatisticsConfigurationProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Job.StatisticsConfigurationProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data StatisticsConfigurationProperty :: Prelude.Type
+instance ToResourceProperties StatisticsConfigurationProperty
+instance Prelude.Eq StatisticsConfigurationProperty
+instance Prelude.Show StatisticsConfigurationProperty
+instance JSON.ToJSON StatisticsConfigurationProperty
diff --git a/gen/Stratosphere/DataBrew/Job/ValidationConfigurationProperty.hs b/gen/Stratosphere/DataBrew/Job/ValidationConfigurationProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Job/ValidationConfigurationProperty.hs
@@ -0,0 +1,50 @@
+module Stratosphere.DataBrew.Job.ValidationConfigurationProperty (
+        ValidationConfigurationProperty(..),
+        mkValidationConfigurationProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data ValidationConfigurationProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-validationconfiguration.html>
+    ValidationConfigurationProperty {haddock_workaround_ :: (),
+                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-validationconfiguration.html#cfn-databrew-job-validationconfiguration-rulesetarn>
+                                     rulesetArn :: (Value Prelude.Text),
+                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-validationconfiguration.html#cfn-databrew-job-validationconfiguration-validationmode>
+                                     validationMode :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkValidationConfigurationProperty ::
+  Value Prelude.Text -> ValidationConfigurationProperty
+mkValidationConfigurationProperty rulesetArn
+  = ValidationConfigurationProperty
+      {haddock_workaround_ = (), rulesetArn = rulesetArn,
+       validationMode = Prelude.Nothing}
+instance ToResourceProperties ValidationConfigurationProperty where
+  toResourceProperties ValidationConfigurationProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Job.ValidationConfiguration",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["RulesetArn" JSON..= rulesetArn]
+                           (Prelude.catMaybes
+                              [(JSON..=) "ValidationMode" Prelude.<$> validationMode]))}
+instance JSON.ToJSON ValidationConfigurationProperty where
+  toJSON ValidationConfigurationProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["RulesetArn" JSON..= rulesetArn]
+              (Prelude.catMaybes
+                 [(JSON..=) "ValidationMode" Prelude.<$> validationMode])))
+instance Property "RulesetArn" ValidationConfigurationProperty where
+  type PropertyType "RulesetArn" ValidationConfigurationProperty = Value Prelude.Text
+  set newValue ValidationConfigurationProperty {..}
+    = ValidationConfigurationProperty {rulesetArn = newValue, ..}
+instance Property "ValidationMode" ValidationConfigurationProperty where
+  type PropertyType "ValidationMode" ValidationConfigurationProperty = Value Prelude.Text
+  set newValue ValidationConfigurationProperty {..}
+    = ValidationConfigurationProperty
+        {validationMode = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Job/ValidationConfigurationProperty.hs-boot b/gen/Stratosphere/DataBrew/Job/ValidationConfigurationProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Job/ValidationConfigurationProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Job.ValidationConfigurationProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data ValidationConfigurationProperty :: Prelude.Type
+instance ToResourceProperties ValidationConfigurationProperty
+instance Prelude.Eq ValidationConfigurationProperty
+instance Prelude.Show ValidationConfigurationProperty
+instance JSON.ToJSON ValidationConfigurationProperty
diff --git a/gen/Stratosphere/DataBrew/Project.hs b/gen/Stratosphere/DataBrew/Project.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Project.hs
@@ -0,0 +1,76 @@
+module Stratosphere.DataBrew.Project (
+        module Exports, Project(..), mkProject
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.DataBrew.Project.SampleProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Tag
+import Stratosphere.Value
+data Project
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-project.html>
+    Project {haddock_workaround_ :: (),
+             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-project.html#cfn-databrew-project-datasetname>
+             datasetName :: (Value Prelude.Text),
+             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-project.html#cfn-databrew-project-name>
+             name :: (Value Prelude.Text),
+             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-project.html#cfn-databrew-project-recipename>
+             recipeName :: (Value Prelude.Text),
+             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-project.html#cfn-databrew-project-rolearn>
+             roleArn :: (Value Prelude.Text),
+             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-project.html#cfn-databrew-project-sample>
+             sample :: (Prelude.Maybe SampleProperty),
+             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-project.html#cfn-databrew-project-tags>
+             tags :: (Prelude.Maybe [Tag])}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkProject ::
+  Value Prelude.Text
+  -> Value Prelude.Text
+     -> Value Prelude.Text -> Value Prelude.Text -> Project
+mkProject datasetName name recipeName roleArn
+  = Project
+      {haddock_workaround_ = (), datasetName = datasetName, name = name,
+       recipeName = recipeName, roleArn = roleArn,
+       sample = Prelude.Nothing, tags = Prelude.Nothing}
+instance ToResourceProperties Project where
+  toResourceProperties Project {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Project", supportsTags = Prelude.True,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["DatasetName" JSON..= datasetName, "Name" JSON..= name,
+                            "RecipeName" JSON..= recipeName, "RoleArn" JSON..= roleArn]
+                           (Prelude.catMaybes
+                              [(JSON..=) "Sample" Prelude.<$> sample,
+                               (JSON..=) "Tags" Prelude.<$> tags]))}
+instance JSON.ToJSON Project where
+  toJSON Project {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["DatasetName" JSON..= datasetName, "Name" JSON..= name,
+               "RecipeName" JSON..= recipeName, "RoleArn" JSON..= roleArn]
+              (Prelude.catMaybes
+                 [(JSON..=) "Sample" Prelude.<$> sample,
+                  (JSON..=) "Tags" Prelude.<$> tags])))
+instance Property "DatasetName" Project where
+  type PropertyType "DatasetName" Project = Value Prelude.Text
+  set newValue Project {..} = Project {datasetName = newValue, ..}
+instance Property "Name" Project where
+  type PropertyType "Name" Project = Value Prelude.Text
+  set newValue Project {..} = Project {name = newValue, ..}
+instance Property "RecipeName" Project where
+  type PropertyType "RecipeName" Project = Value Prelude.Text
+  set newValue Project {..} = Project {recipeName = newValue, ..}
+instance Property "RoleArn" Project where
+  type PropertyType "RoleArn" Project = Value Prelude.Text
+  set newValue Project {..} = Project {roleArn = newValue, ..}
+instance Property "Sample" Project where
+  type PropertyType "Sample" Project = SampleProperty
+  set newValue Project {..}
+    = Project {sample = Prelude.pure newValue, ..}
+instance Property "Tags" Project where
+  type PropertyType "Tags" Project = [Tag]
+  set newValue Project {..}
+    = Project {tags = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Project/SampleProperty.hs b/gen/Stratosphere/DataBrew/Project/SampleProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Project/SampleProperty.hs
@@ -0,0 +1,44 @@
+module Stratosphere.DataBrew.Project.SampleProperty (
+        SampleProperty(..), mkSampleProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data SampleProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-project-sample.html>
+    SampleProperty {haddock_workaround_ :: (),
+                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-project-sample.html#cfn-databrew-project-sample-size>
+                    size :: (Prelude.Maybe (Value Prelude.Integer)),
+                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-project-sample.html#cfn-databrew-project-sample-type>
+                    type' :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkSampleProperty :: Value Prelude.Text -> SampleProperty
+mkSampleProperty type'
+  = SampleProperty
+      {haddock_workaround_ = (), type' = type', size = Prelude.Nothing}
+instance ToResourceProperties SampleProperty where
+  toResourceProperties SampleProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Project.Sample",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["Type" JSON..= type']
+                           (Prelude.catMaybes [(JSON..=) "Size" Prelude.<$> size]))}
+instance JSON.ToJSON SampleProperty where
+  toJSON SampleProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["Type" JSON..= type']
+              (Prelude.catMaybes [(JSON..=) "Size" Prelude.<$> size])))
+instance Property "Size" SampleProperty where
+  type PropertyType "Size" SampleProperty = Value Prelude.Integer
+  set newValue SampleProperty {..}
+    = SampleProperty {size = Prelude.pure newValue, ..}
+instance Property "Type" SampleProperty where
+  type PropertyType "Type" SampleProperty = Value Prelude.Text
+  set newValue SampleProperty {..}
+    = SampleProperty {type' = newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Project/SampleProperty.hs-boot b/gen/Stratosphere/DataBrew/Project/SampleProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Project/SampleProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Project.SampleProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data SampleProperty :: Prelude.Type
+instance ToResourceProperties SampleProperty
+instance Prelude.Eq SampleProperty
+instance Prelude.Show SampleProperty
+instance JSON.ToJSON SampleProperty
diff --git a/gen/Stratosphere/DataBrew/Recipe.hs b/gen/Stratosphere/DataBrew/Recipe.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Recipe.hs
@@ -0,0 +1,60 @@
+module Stratosphere.DataBrew.Recipe (
+        module Exports, Recipe(..), mkRecipe
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.DataBrew.Recipe.RecipeStepProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Tag
+import Stratosphere.Value
+data Recipe
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-recipe.html>
+    Recipe {haddock_workaround_ :: (),
+            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-recipe.html#cfn-databrew-recipe-description>
+            description :: (Prelude.Maybe (Value Prelude.Text)),
+            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-recipe.html#cfn-databrew-recipe-name>
+            name :: (Value Prelude.Text),
+            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-recipe.html#cfn-databrew-recipe-steps>
+            steps :: [RecipeStepProperty],
+            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-recipe.html#cfn-databrew-recipe-tags>
+            tags :: (Prelude.Maybe [Tag])}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkRecipe :: Value Prelude.Text -> [RecipeStepProperty] -> Recipe
+mkRecipe name steps
+  = Recipe
+      {haddock_workaround_ = (), name = name, steps = steps,
+       description = Prelude.Nothing, tags = Prelude.Nothing}
+instance ToResourceProperties Recipe where
+  toResourceProperties Recipe {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Recipe", supportsTags = Prelude.True,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["Name" JSON..= name, "Steps" JSON..= steps]
+                           (Prelude.catMaybes
+                              [(JSON..=) "Description" Prelude.<$> description,
+                               (JSON..=) "Tags" Prelude.<$> tags]))}
+instance JSON.ToJSON Recipe where
+  toJSON Recipe {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["Name" JSON..= name, "Steps" JSON..= steps]
+              (Prelude.catMaybes
+                 [(JSON..=) "Description" Prelude.<$> description,
+                  (JSON..=) "Tags" Prelude.<$> tags])))
+instance Property "Description" Recipe where
+  type PropertyType "Description" Recipe = Value Prelude.Text
+  set newValue Recipe {..}
+    = Recipe {description = Prelude.pure newValue, ..}
+instance Property "Name" Recipe where
+  type PropertyType "Name" Recipe = Value Prelude.Text
+  set newValue Recipe {..} = Recipe {name = newValue, ..}
+instance Property "Steps" Recipe where
+  type PropertyType "Steps" Recipe = [RecipeStepProperty]
+  set newValue Recipe {..} = Recipe {steps = newValue, ..}
+instance Property "Tags" Recipe where
+  type PropertyType "Tags" Recipe = [Tag]
+  set newValue Recipe {..}
+    = Recipe {tags = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Recipe/ActionProperty.hs b/gen/Stratosphere/DataBrew/Recipe/ActionProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Recipe/ActionProperty.hs
@@ -0,0 +1,48 @@
+module Stratosphere.DataBrew.Recipe.ActionProperty (
+        module Exports, ActionProperty(..), mkActionProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.DataBrew.Recipe.RecipeParametersProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data ActionProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-action.html>
+    ActionProperty {haddock_workaround_ :: (),
+                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-action.html#cfn-databrew-recipe-action-operation>
+                    operation :: (Value Prelude.Text),
+                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-action.html#cfn-databrew-recipe-action-parameters>
+                    parameters :: (Prelude.Maybe RecipeParametersProperty)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkActionProperty :: Value Prelude.Text -> ActionProperty
+mkActionProperty operation
+  = ActionProperty
+      {haddock_workaround_ = (), operation = operation,
+       parameters = Prelude.Nothing}
+instance ToResourceProperties ActionProperty where
+  toResourceProperties ActionProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Recipe.Action",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["Operation" JSON..= operation]
+                           (Prelude.catMaybes
+                              [(JSON..=) "Parameters" Prelude.<$> parameters]))}
+instance JSON.ToJSON ActionProperty where
+  toJSON ActionProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["Operation" JSON..= operation]
+              (Prelude.catMaybes
+                 [(JSON..=) "Parameters" Prelude.<$> parameters])))
+instance Property "Operation" ActionProperty where
+  type PropertyType "Operation" ActionProperty = Value Prelude.Text
+  set newValue ActionProperty {..}
+    = ActionProperty {operation = newValue, ..}
+instance Property "Parameters" ActionProperty where
+  type PropertyType "Parameters" ActionProperty = RecipeParametersProperty
+  set newValue ActionProperty {..}
+    = ActionProperty {parameters = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Recipe/ActionProperty.hs-boot b/gen/Stratosphere/DataBrew/Recipe/ActionProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Recipe/ActionProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Recipe.ActionProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data ActionProperty :: Prelude.Type
+instance ToResourceProperties ActionProperty
+instance Prelude.Eq ActionProperty
+instance Prelude.Show ActionProperty
+instance JSON.ToJSON ActionProperty
diff --git a/gen/Stratosphere/DataBrew/Recipe/ConditionExpressionProperty.hs b/gen/Stratosphere/DataBrew/Recipe/ConditionExpressionProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Recipe/ConditionExpressionProperty.hs
@@ -0,0 +1,55 @@
+module Stratosphere.DataBrew.Recipe.ConditionExpressionProperty (
+        ConditionExpressionProperty(..), mkConditionExpressionProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data ConditionExpressionProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-conditionexpression.html>
+    ConditionExpressionProperty {haddock_workaround_ :: (),
+                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-conditionexpression.html#cfn-databrew-recipe-conditionexpression-condition>
+                                 condition :: (Value Prelude.Text),
+                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-conditionexpression.html#cfn-databrew-recipe-conditionexpression-targetcolumn>
+                                 targetColumn :: (Value Prelude.Text),
+                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-conditionexpression.html#cfn-databrew-recipe-conditionexpression-value>
+                                 value :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkConditionExpressionProperty ::
+  Value Prelude.Text
+  -> Value Prelude.Text -> ConditionExpressionProperty
+mkConditionExpressionProperty condition targetColumn
+  = ConditionExpressionProperty
+      {haddock_workaround_ = (), condition = condition,
+       targetColumn = targetColumn, value = Prelude.Nothing}
+instance ToResourceProperties ConditionExpressionProperty where
+  toResourceProperties ConditionExpressionProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Recipe.ConditionExpression",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["Condition" JSON..= condition,
+                            "TargetColumn" JSON..= targetColumn]
+                           (Prelude.catMaybes [(JSON..=) "Value" Prelude.<$> value]))}
+instance JSON.ToJSON ConditionExpressionProperty where
+  toJSON ConditionExpressionProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["Condition" JSON..= condition,
+               "TargetColumn" JSON..= targetColumn]
+              (Prelude.catMaybes [(JSON..=) "Value" Prelude.<$> value])))
+instance Property "Condition" ConditionExpressionProperty where
+  type PropertyType "Condition" ConditionExpressionProperty = Value Prelude.Text
+  set newValue ConditionExpressionProperty {..}
+    = ConditionExpressionProperty {condition = newValue, ..}
+instance Property "TargetColumn" ConditionExpressionProperty where
+  type PropertyType "TargetColumn" ConditionExpressionProperty = Value Prelude.Text
+  set newValue ConditionExpressionProperty {..}
+    = ConditionExpressionProperty {targetColumn = newValue, ..}
+instance Property "Value" ConditionExpressionProperty where
+  type PropertyType "Value" ConditionExpressionProperty = Value Prelude.Text
+  set newValue ConditionExpressionProperty {..}
+    = ConditionExpressionProperty {value = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Recipe/ConditionExpressionProperty.hs-boot b/gen/Stratosphere/DataBrew/Recipe/ConditionExpressionProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Recipe/ConditionExpressionProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Recipe.ConditionExpressionProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data ConditionExpressionProperty :: Prelude.Type
+instance ToResourceProperties ConditionExpressionProperty
+instance Prelude.Eq ConditionExpressionProperty
+instance Prelude.Show ConditionExpressionProperty
+instance JSON.ToJSON ConditionExpressionProperty
diff --git a/gen/Stratosphere/DataBrew/Recipe/DataCatalogInputDefinitionProperty.hs b/gen/Stratosphere/DataBrew/Recipe/DataCatalogInputDefinitionProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Recipe/DataCatalogInputDefinitionProperty.hs
@@ -0,0 +1,69 @@
+module Stratosphere.DataBrew.Recipe.DataCatalogInputDefinitionProperty (
+        module Exports, DataCatalogInputDefinitionProperty(..),
+        mkDataCatalogInputDefinitionProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.DataBrew.Recipe.S3LocationProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data DataCatalogInputDefinitionProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-datacataloginputdefinition.html>
+    DataCatalogInputDefinitionProperty {haddock_workaround_ :: (),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-datacataloginputdefinition.html#cfn-databrew-recipe-datacataloginputdefinition-catalogid>
+                                        catalogId :: (Prelude.Maybe (Value Prelude.Text)),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-datacataloginputdefinition.html#cfn-databrew-recipe-datacataloginputdefinition-databasename>
+                                        databaseName :: (Prelude.Maybe (Value Prelude.Text)),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-datacataloginputdefinition.html#cfn-databrew-recipe-datacataloginputdefinition-tablename>
+                                        tableName :: (Prelude.Maybe (Value Prelude.Text)),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-datacataloginputdefinition.html#cfn-databrew-recipe-datacataloginputdefinition-tempdirectory>
+                                        tempDirectory :: (Prelude.Maybe S3LocationProperty)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkDataCatalogInputDefinitionProperty ::
+  DataCatalogInputDefinitionProperty
+mkDataCatalogInputDefinitionProperty
+  = DataCatalogInputDefinitionProperty
+      {haddock_workaround_ = (), catalogId = Prelude.Nothing,
+       databaseName = Prelude.Nothing, tableName = Prelude.Nothing,
+       tempDirectory = Prelude.Nothing}
+instance ToResourceProperties DataCatalogInputDefinitionProperty where
+  toResourceProperties DataCatalogInputDefinitionProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Recipe.DataCatalogInputDefinition",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "CatalogId" Prelude.<$> catalogId,
+                            (JSON..=) "DatabaseName" Prelude.<$> databaseName,
+                            (JSON..=) "TableName" Prelude.<$> tableName,
+                            (JSON..=) "TempDirectory" Prelude.<$> tempDirectory])}
+instance JSON.ToJSON DataCatalogInputDefinitionProperty where
+  toJSON DataCatalogInputDefinitionProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "CatalogId" Prelude.<$> catalogId,
+               (JSON..=) "DatabaseName" Prelude.<$> databaseName,
+               (JSON..=) "TableName" Prelude.<$> tableName,
+               (JSON..=) "TempDirectory" Prelude.<$> tempDirectory]))
+instance Property "CatalogId" DataCatalogInputDefinitionProperty where
+  type PropertyType "CatalogId" DataCatalogInputDefinitionProperty = Value Prelude.Text
+  set newValue DataCatalogInputDefinitionProperty {..}
+    = DataCatalogInputDefinitionProperty
+        {catalogId = Prelude.pure newValue, ..}
+instance Property "DatabaseName" DataCatalogInputDefinitionProperty where
+  type PropertyType "DatabaseName" DataCatalogInputDefinitionProperty = Value Prelude.Text
+  set newValue DataCatalogInputDefinitionProperty {..}
+    = DataCatalogInputDefinitionProperty
+        {databaseName = Prelude.pure newValue, ..}
+instance Property "TableName" DataCatalogInputDefinitionProperty where
+  type PropertyType "TableName" DataCatalogInputDefinitionProperty = Value Prelude.Text
+  set newValue DataCatalogInputDefinitionProperty {..}
+    = DataCatalogInputDefinitionProperty
+        {tableName = Prelude.pure newValue, ..}
+instance Property "TempDirectory" DataCatalogInputDefinitionProperty where
+  type PropertyType "TempDirectory" DataCatalogInputDefinitionProperty = S3LocationProperty
+  set newValue DataCatalogInputDefinitionProperty {..}
+    = DataCatalogInputDefinitionProperty
+        {tempDirectory = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Recipe/DataCatalogInputDefinitionProperty.hs-boot b/gen/Stratosphere/DataBrew/Recipe/DataCatalogInputDefinitionProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Recipe/DataCatalogInputDefinitionProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Recipe.DataCatalogInputDefinitionProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data DataCatalogInputDefinitionProperty :: Prelude.Type
+instance ToResourceProperties DataCatalogInputDefinitionProperty
+instance Prelude.Eq DataCatalogInputDefinitionProperty
+instance Prelude.Show DataCatalogInputDefinitionProperty
+instance JSON.ToJSON DataCatalogInputDefinitionProperty
diff --git a/gen/Stratosphere/DataBrew/Recipe/InputProperty.hs b/gen/Stratosphere/DataBrew/Recipe/InputProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Recipe/InputProperty.hs
@@ -0,0 +1,50 @@
+module Stratosphere.DataBrew.Recipe.InputProperty (
+        module Exports, InputProperty(..), mkInputProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.DataBrew.Recipe.DataCatalogInputDefinitionProperty as Exports
+import {-# SOURCE #-} Stratosphere.DataBrew.Recipe.S3LocationProperty as Exports
+import Stratosphere.ResourceProperties
+data InputProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-input.html>
+    InputProperty {haddock_workaround_ :: (),
+                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-input.html#cfn-databrew-recipe-input-datacataloginputdefinition>
+                   dataCatalogInputDefinition :: (Prelude.Maybe DataCatalogInputDefinitionProperty),
+                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-input.html#cfn-databrew-recipe-input-s3inputdefinition>
+                   s3InputDefinition :: (Prelude.Maybe S3LocationProperty)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkInputProperty :: InputProperty
+mkInputProperty
+  = InputProperty
+      {haddock_workaround_ = (),
+       dataCatalogInputDefinition = Prelude.Nothing,
+       s3InputDefinition = Prelude.Nothing}
+instance ToResourceProperties InputProperty where
+  toResourceProperties InputProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Recipe.Input",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "DataCatalogInputDefinition"
+                              Prelude.<$> dataCatalogInputDefinition,
+                            (JSON..=) "S3InputDefinition" Prelude.<$> s3InputDefinition])}
+instance JSON.ToJSON InputProperty where
+  toJSON InputProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "DataCatalogInputDefinition"
+                 Prelude.<$> dataCatalogInputDefinition,
+               (JSON..=) "S3InputDefinition" Prelude.<$> s3InputDefinition]))
+instance Property "DataCatalogInputDefinition" InputProperty where
+  type PropertyType "DataCatalogInputDefinition" InputProperty = DataCatalogInputDefinitionProperty
+  set newValue InputProperty {..}
+    = InputProperty
+        {dataCatalogInputDefinition = Prelude.pure newValue, ..}
+instance Property "S3InputDefinition" InputProperty where
+  type PropertyType "S3InputDefinition" InputProperty = S3LocationProperty
+  set newValue InputProperty {..}
+    = InputProperty {s3InputDefinition = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Recipe/InputProperty.hs-boot b/gen/Stratosphere/DataBrew/Recipe/InputProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Recipe/InputProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Recipe.InputProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data InputProperty :: Prelude.Type
+instance ToResourceProperties InputProperty
+instance Prelude.Eq InputProperty
+instance Prelude.Show InputProperty
+instance JSON.ToJSON InputProperty
diff --git a/gen/Stratosphere/DataBrew/Recipe/RecipeParametersProperty.hs b/gen/Stratosphere/DataBrew/Recipe/RecipeParametersProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Recipe/RecipeParametersProperty.hs
@@ -0,0 +1,974 @@
+module Stratosphere.DataBrew.Recipe.RecipeParametersProperty (
+        module Exports, RecipeParametersProperty(..),
+        mkRecipeParametersProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.DataBrew.Recipe.InputProperty as Exports
+import {-# SOURCE #-} Stratosphere.DataBrew.Recipe.SecondaryInputProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data RecipeParametersProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html>
+    RecipeParametersProperty {haddock_workaround_ :: (),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-aggregatefunction>
+                              aggregateFunction :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-base>
+                              base :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-casestatement>
+                              caseStatement :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-categorymap>
+                              categoryMap :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-charstoremove>
+                              charsToRemove :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-collapseconsecutivewhitespace>
+                              collapseConsecutiveWhitespace :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-columndatatype>
+                              columnDataType :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-columnrange>
+                              columnRange :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-count>
+                              count :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-customcharacters>
+                              customCharacters :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-customstopwords>
+                              customStopWords :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-customvalue>
+                              customValue :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-datasetscolumns>
+                              datasetsColumns :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-dateaddvalue>
+                              dateAddValue :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-datetimeformat>
+                              dateTimeFormat :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-datetimeparameters>
+                              dateTimeParameters :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-deleteotherrows>
+                              deleteOtherRows :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-delimiter>
+                              delimiter :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-endpattern>
+                              endPattern :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-endposition>
+                              endPosition :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-endvalue>
+                              endValue :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-expandcontractions>
+                              expandContractions :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-exponent>
+                              exponent :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-falsestring>
+                              falseString :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-groupbyaggfunctionoptions>
+                              groupByAggFunctionOptions :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-groupbycolumns>
+                              groupByColumns :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-hiddencolumns>
+                              hiddenColumns :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-ignorecase>
+                              ignoreCase :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-includeinsplit>
+                              includeInSplit :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-input>
+                              input :: (Prelude.Maybe InputProperty),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-interval>
+                              interval :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-istext>
+                              isText :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-joinkeys>
+                              joinKeys :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-jointype>
+                              joinType :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-leftcolumns>
+                              leftColumns :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-limit>
+                              limit :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-lowerbound>
+                              lowerBound :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-maptype>
+                              mapType :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-modetype>
+                              modeType :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-multiline>
+                              multiLine :: (Prelude.Maybe (Value Prelude.Bool)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-numrows>
+                              numRows :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-numrowsafter>
+                              numRowsAfter :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-numrowsbefore>
+                              numRowsBefore :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-orderbycolumn>
+                              orderByColumn :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-orderbycolumns>
+                              orderByColumns :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-other>
+                              other :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-pattern>
+                              pattern :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-patternoption1>
+                              patternOption1 :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-patternoption2>
+                              patternOption2 :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-patternoptions>
+                              patternOptions :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-period>
+                              period :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-position>
+                              position :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-removeallpunctuation>
+                              removeAllPunctuation :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-removeallquotes>
+                              removeAllQuotes :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-removeallwhitespace>
+                              removeAllWhitespace :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-removecustomcharacters>
+                              removeCustomCharacters :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-removecustomvalue>
+                              removeCustomValue :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-removeleadingandtrailingpunctuation>
+                              removeLeadingAndTrailingPunctuation :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-removeleadingandtrailingquotes>
+                              removeLeadingAndTrailingQuotes :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-removeleadingandtrailingwhitespace>
+                              removeLeadingAndTrailingWhitespace :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-removeletters>
+                              removeLetters :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-removenumbers>
+                              removeNumbers :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-removesourcecolumn>
+                              removeSourceColumn :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-removespecialcharacters>
+                              removeSpecialCharacters :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-rightcolumns>
+                              rightColumns :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-samplesize>
+                              sampleSize :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-sampletype>
+                              sampleType :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-secondinput>
+                              secondInput :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-secondaryinputs>
+                              secondaryInputs :: (Prelude.Maybe [SecondaryInputProperty]),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-sheetindexes>
+                              sheetIndexes :: (Prelude.Maybe (ValueList Prelude.Integer)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-sheetnames>
+                              sheetNames :: (Prelude.Maybe (ValueList Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-sourcecolumn>
+                              sourceColumn :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-sourcecolumn1>
+                              sourceColumn1 :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-sourcecolumn2>
+                              sourceColumn2 :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-sourcecolumns>
+                              sourceColumns :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-startcolumnindex>
+                              startColumnIndex :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-startpattern>
+                              startPattern :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-startposition>
+                              startPosition :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-startvalue>
+                              startValue :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-stemmingmode>
+                              stemmingMode :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-stepcount>
+                              stepCount :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-stepindex>
+                              stepIndex :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-stopwordsmode>
+                              stopWordsMode :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-strategy>
+                              strategy :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-targetcolumn>
+                              targetColumn :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-targetcolumnnames>
+                              targetColumnNames :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-targetdateformat>
+                              targetDateFormat :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-targetindex>
+                              targetIndex :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-timezone>
+                              timeZone :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-tokenizerpattern>
+                              tokenizerPattern :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-truestring>
+                              trueString :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-udflang>
+                              udfLang :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-units>
+                              units :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-unpivotcolumn>
+                              unpivotColumn :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-upperbound>
+                              upperBound :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-usenewdataframe>
+                              useNewDataFrame :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-value>
+                              value :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-value1>
+                              value1 :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-value2>
+                              value2 :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-valuecolumn>
+                              valueColumn :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-viewframe>
+                              viewFrame :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkRecipeParametersProperty :: RecipeParametersProperty
+mkRecipeParametersProperty
+  = RecipeParametersProperty
+      {haddock_workaround_ = (), aggregateFunction = Prelude.Nothing,
+       base = Prelude.Nothing, caseStatement = Prelude.Nothing,
+       categoryMap = Prelude.Nothing, charsToRemove = Prelude.Nothing,
+       collapseConsecutiveWhitespace = Prelude.Nothing,
+       columnDataType = Prelude.Nothing, columnRange = Prelude.Nothing,
+       count = Prelude.Nothing, customCharacters = Prelude.Nothing,
+       customStopWords = Prelude.Nothing, customValue = Prelude.Nothing,
+       datasetsColumns = Prelude.Nothing, dateAddValue = Prelude.Nothing,
+       dateTimeFormat = Prelude.Nothing,
+       dateTimeParameters = Prelude.Nothing,
+       deleteOtherRows = Prelude.Nothing, delimiter = Prelude.Nothing,
+       endPattern = Prelude.Nothing, endPosition = Prelude.Nothing,
+       endValue = Prelude.Nothing, expandContractions = Prelude.Nothing,
+       exponent = Prelude.Nothing, falseString = Prelude.Nothing,
+       groupByAggFunctionOptions = Prelude.Nothing,
+       groupByColumns = Prelude.Nothing, hiddenColumns = Prelude.Nothing,
+       ignoreCase = Prelude.Nothing, includeInSplit = Prelude.Nothing,
+       input = Prelude.Nothing, interval = Prelude.Nothing,
+       isText = Prelude.Nothing, joinKeys = Prelude.Nothing,
+       joinType = Prelude.Nothing, leftColumns = Prelude.Nothing,
+       limit = Prelude.Nothing, lowerBound = Prelude.Nothing,
+       mapType = Prelude.Nothing, modeType = Prelude.Nothing,
+       multiLine = Prelude.Nothing, numRows = Prelude.Nothing,
+       numRowsAfter = Prelude.Nothing, numRowsBefore = Prelude.Nothing,
+       orderByColumn = Prelude.Nothing, orderByColumns = Prelude.Nothing,
+       other = Prelude.Nothing, pattern = Prelude.Nothing,
+       patternOption1 = Prelude.Nothing, patternOption2 = Prelude.Nothing,
+       patternOptions = Prelude.Nothing, period = Prelude.Nothing,
+       position = Prelude.Nothing, removeAllPunctuation = Prelude.Nothing,
+       removeAllQuotes = Prelude.Nothing,
+       removeAllWhitespace = Prelude.Nothing,
+       removeCustomCharacters = Prelude.Nothing,
+       removeCustomValue = Prelude.Nothing,
+       removeLeadingAndTrailingPunctuation = Prelude.Nothing,
+       removeLeadingAndTrailingQuotes = Prelude.Nothing,
+       removeLeadingAndTrailingWhitespace = Prelude.Nothing,
+       removeLetters = Prelude.Nothing, removeNumbers = Prelude.Nothing,
+       removeSourceColumn = Prelude.Nothing,
+       removeSpecialCharacters = Prelude.Nothing,
+       rightColumns = Prelude.Nothing, sampleSize = Prelude.Nothing,
+       sampleType = Prelude.Nothing, secondInput = Prelude.Nothing,
+       secondaryInputs = Prelude.Nothing, sheetIndexes = Prelude.Nothing,
+       sheetNames = Prelude.Nothing, sourceColumn = Prelude.Nothing,
+       sourceColumn1 = Prelude.Nothing, sourceColumn2 = Prelude.Nothing,
+       sourceColumns = Prelude.Nothing,
+       startColumnIndex = Prelude.Nothing, startPattern = Prelude.Nothing,
+       startPosition = Prelude.Nothing, startValue = Prelude.Nothing,
+       stemmingMode = Prelude.Nothing, stepCount = Prelude.Nothing,
+       stepIndex = Prelude.Nothing, stopWordsMode = Prelude.Nothing,
+       strategy = Prelude.Nothing, targetColumn = Prelude.Nothing,
+       targetColumnNames = Prelude.Nothing,
+       targetDateFormat = Prelude.Nothing, targetIndex = Prelude.Nothing,
+       timeZone = Prelude.Nothing, tokenizerPattern = Prelude.Nothing,
+       trueString = Prelude.Nothing, udfLang = Prelude.Nothing,
+       units = Prelude.Nothing, unpivotColumn = Prelude.Nothing,
+       upperBound = Prelude.Nothing, useNewDataFrame = Prelude.Nothing,
+       value = Prelude.Nothing, value1 = Prelude.Nothing,
+       value2 = Prelude.Nothing, valueColumn = Prelude.Nothing,
+       viewFrame = Prelude.Nothing}
+instance ToResourceProperties RecipeParametersProperty where
+  toResourceProperties RecipeParametersProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Recipe.RecipeParameters",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "AggregateFunction" Prelude.<$> aggregateFunction,
+                            (JSON..=) "Base" Prelude.<$> base,
+                            (JSON..=) "CaseStatement" Prelude.<$> caseStatement,
+                            (JSON..=) "CategoryMap" Prelude.<$> categoryMap,
+                            (JSON..=) "CharsToRemove" Prelude.<$> charsToRemove,
+                            (JSON..=) "CollapseConsecutiveWhitespace"
+                              Prelude.<$> collapseConsecutiveWhitespace,
+                            (JSON..=) "ColumnDataType" Prelude.<$> columnDataType,
+                            (JSON..=) "ColumnRange" Prelude.<$> columnRange,
+                            (JSON..=) "Count" Prelude.<$> count,
+                            (JSON..=) "CustomCharacters" Prelude.<$> customCharacters,
+                            (JSON..=) "CustomStopWords" Prelude.<$> customStopWords,
+                            (JSON..=) "CustomValue" Prelude.<$> customValue,
+                            (JSON..=) "DatasetsColumns" Prelude.<$> datasetsColumns,
+                            (JSON..=) "DateAddValue" Prelude.<$> dateAddValue,
+                            (JSON..=) "DateTimeFormat" Prelude.<$> dateTimeFormat,
+                            (JSON..=) "DateTimeParameters" Prelude.<$> dateTimeParameters,
+                            (JSON..=) "DeleteOtherRows" Prelude.<$> deleteOtherRows,
+                            (JSON..=) "Delimiter" Prelude.<$> delimiter,
+                            (JSON..=) "EndPattern" Prelude.<$> endPattern,
+                            (JSON..=) "EndPosition" Prelude.<$> endPosition,
+                            (JSON..=) "EndValue" Prelude.<$> endValue,
+                            (JSON..=) "ExpandContractions" Prelude.<$> expandContractions,
+                            (JSON..=) "Exponent" Prelude.<$> exponent,
+                            (JSON..=) "FalseString" Prelude.<$> falseString,
+                            (JSON..=) "GroupByAggFunctionOptions"
+                              Prelude.<$> groupByAggFunctionOptions,
+                            (JSON..=) "GroupByColumns" Prelude.<$> groupByColumns,
+                            (JSON..=) "HiddenColumns" Prelude.<$> hiddenColumns,
+                            (JSON..=) "IgnoreCase" Prelude.<$> ignoreCase,
+                            (JSON..=) "IncludeInSplit" Prelude.<$> includeInSplit,
+                            (JSON..=) "Input" Prelude.<$> input,
+                            (JSON..=) "Interval" Prelude.<$> interval,
+                            (JSON..=) "IsText" Prelude.<$> isText,
+                            (JSON..=) "JoinKeys" Prelude.<$> joinKeys,
+                            (JSON..=) "JoinType" Prelude.<$> joinType,
+                            (JSON..=) "LeftColumns" Prelude.<$> leftColumns,
+                            (JSON..=) "Limit" Prelude.<$> limit,
+                            (JSON..=) "LowerBound" Prelude.<$> lowerBound,
+                            (JSON..=) "MapType" Prelude.<$> mapType,
+                            (JSON..=) "ModeType" Prelude.<$> modeType,
+                            (JSON..=) "MultiLine" Prelude.<$> multiLine,
+                            (JSON..=) "NumRows" Prelude.<$> numRows,
+                            (JSON..=) "NumRowsAfter" Prelude.<$> numRowsAfter,
+                            (JSON..=) "NumRowsBefore" Prelude.<$> numRowsBefore,
+                            (JSON..=) "OrderByColumn" Prelude.<$> orderByColumn,
+                            (JSON..=) "OrderByColumns" Prelude.<$> orderByColumns,
+                            (JSON..=) "Other" Prelude.<$> other,
+                            (JSON..=) "Pattern" Prelude.<$> pattern,
+                            (JSON..=) "PatternOption1" Prelude.<$> patternOption1,
+                            (JSON..=) "PatternOption2" Prelude.<$> patternOption2,
+                            (JSON..=) "PatternOptions" Prelude.<$> patternOptions,
+                            (JSON..=) "Period" Prelude.<$> period,
+                            (JSON..=) "Position" Prelude.<$> position,
+                            (JSON..=) "RemoveAllPunctuation" Prelude.<$> removeAllPunctuation,
+                            (JSON..=) "RemoveAllQuotes" Prelude.<$> removeAllQuotes,
+                            (JSON..=) "RemoveAllWhitespace" Prelude.<$> removeAllWhitespace,
+                            (JSON..=) "RemoveCustomCharacters"
+                              Prelude.<$> removeCustomCharacters,
+                            (JSON..=) "RemoveCustomValue" Prelude.<$> removeCustomValue,
+                            (JSON..=) "RemoveLeadingAndTrailingPunctuation"
+                              Prelude.<$> removeLeadingAndTrailingPunctuation,
+                            (JSON..=) "RemoveLeadingAndTrailingQuotes"
+                              Prelude.<$> removeLeadingAndTrailingQuotes,
+                            (JSON..=) "RemoveLeadingAndTrailingWhitespace"
+                              Prelude.<$> removeLeadingAndTrailingWhitespace,
+                            (JSON..=) "RemoveLetters" Prelude.<$> removeLetters,
+                            (JSON..=) "RemoveNumbers" Prelude.<$> removeNumbers,
+                            (JSON..=) "RemoveSourceColumn" Prelude.<$> removeSourceColumn,
+                            (JSON..=) "RemoveSpecialCharacters"
+                              Prelude.<$> removeSpecialCharacters,
+                            (JSON..=) "RightColumns" Prelude.<$> rightColumns,
+                            (JSON..=) "SampleSize" Prelude.<$> sampleSize,
+                            (JSON..=) "SampleType" Prelude.<$> sampleType,
+                            (JSON..=) "SecondInput" Prelude.<$> secondInput,
+                            (JSON..=) "SecondaryInputs" Prelude.<$> secondaryInputs,
+                            (JSON..=) "SheetIndexes" Prelude.<$> sheetIndexes,
+                            (JSON..=) "SheetNames" Prelude.<$> sheetNames,
+                            (JSON..=) "SourceColumn" Prelude.<$> sourceColumn,
+                            (JSON..=) "SourceColumn1" Prelude.<$> sourceColumn1,
+                            (JSON..=) "SourceColumn2" Prelude.<$> sourceColumn2,
+                            (JSON..=) "SourceColumns" Prelude.<$> sourceColumns,
+                            (JSON..=) "StartColumnIndex" Prelude.<$> startColumnIndex,
+                            (JSON..=) "StartPattern" Prelude.<$> startPattern,
+                            (JSON..=) "StartPosition" Prelude.<$> startPosition,
+                            (JSON..=) "StartValue" Prelude.<$> startValue,
+                            (JSON..=) "StemmingMode" Prelude.<$> stemmingMode,
+                            (JSON..=) "StepCount" Prelude.<$> stepCount,
+                            (JSON..=) "StepIndex" Prelude.<$> stepIndex,
+                            (JSON..=) "StopWordsMode" Prelude.<$> stopWordsMode,
+                            (JSON..=) "Strategy" Prelude.<$> strategy,
+                            (JSON..=) "TargetColumn" Prelude.<$> targetColumn,
+                            (JSON..=) "TargetColumnNames" Prelude.<$> targetColumnNames,
+                            (JSON..=) "TargetDateFormat" Prelude.<$> targetDateFormat,
+                            (JSON..=) "TargetIndex" Prelude.<$> targetIndex,
+                            (JSON..=) "TimeZone" Prelude.<$> timeZone,
+                            (JSON..=) "TokenizerPattern" Prelude.<$> tokenizerPattern,
+                            (JSON..=) "TrueString" Prelude.<$> trueString,
+                            (JSON..=) "UdfLang" Prelude.<$> udfLang,
+                            (JSON..=) "Units" Prelude.<$> units,
+                            (JSON..=) "UnpivotColumn" Prelude.<$> unpivotColumn,
+                            (JSON..=) "UpperBound" Prelude.<$> upperBound,
+                            (JSON..=) "UseNewDataFrame" Prelude.<$> useNewDataFrame,
+                            (JSON..=) "Value" Prelude.<$> value,
+                            (JSON..=) "Value1" Prelude.<$> value1,
+                            (JSON..=) "Value2" Prelude.<$> value2,
+                            (JSON..=) "ValueColumn" Prelude.<$> valueColumn,
+                            (JSON..=) "ViewFrame" Prelude.<$> viewFrame])}
+instance JSON.ToJSON RecipeParametersProperty where
+  toJSON RecipeParametersProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "AggregateFunction" Prelude.<$> aggregateFunction,
+               (JSON..=) "Base" Prelude.<$> base,
+               (JSON..=) "CaseStatement" Prelude.<$> caseStatement,
+               (JSON..=) "CategoryMap" Prelude.<$> categoryMap,
+               (JSON..=) "CharsToRemove" Prelude.<$> charsToRemove,
+               (JSON..=) "CollapseConsecutiveWhitespace"
+                 Prelude.<$> collapseConsecutiveWhitespace,
+               (JSON..=) "ColumnDataType" Prelude.<$> columnDataType,
+               (JSON..=) "ColumnRange" Prelude.<$> columnRange,
+               (JSON..=) "Count" Prelude.<$> count,
+               (JSON..=) "CustomCharacters" Prelude.<$> customCharacters,
+               (JSON..=) "CustomStopWords" Prelude.<$> customStopWords,
+               (JSON..=) "CustomValue" Prelude.<$> customValue,
+               (JSON..=) "DatasetsColumns" Prelude.<$> datasetsColumns,
+               (JSON..=) "DateAddValue" Prelude.<$> dateAddValue,
+               (JSON..=) "DateTimeFormat" Prelude.<$> dateTimeFormat,
+               (JSON..=) "DateTimeParameters" Prelude.<$> dateTimeParameters,
+               (JSON..=) "DeleteOtherRows" Prelude.<$> deleteOtherRows,
+               (JSON..=) "Delimiter" Prelude.<$> delimiter,
+               (JSON..=) "EndPattern" Prelude.<$> endPattern,
+               (JSON..=) "EndPosition" Prelude.<$> endPosition,
+               (JSON..=) "EndValue" Prelude.<$> endValue,
+               (JSON..=) "ExpandContractions" Prelude.<$> expandContractions,
+               (JSON..=) "Exponent" Prelude.<$> exponent,
+               (JSON..=) "FalseString" Prelude.<$> falseString,
+               (JSON..=) "GroupByAggFunctionOptions"
+                 Prelude.<$> groupByAggFunctionOptions,
+               (JSON..=) "GroupByColumns" Prelude.<$> groupByColumns,
+               (JSON..=) "HiddenColumns" Prelude.<$> hiddenColumns,
+               (JSON..=) "IgnoreCase" Prelude.<$> ignoreCase,
+               (JSON..=) "IncludeInSplit" Prelude.<$> includeInSplit,
+               (JSON..=) "Input" Prelude.<$> input,
+               (JSON..=) "Interval" Prelude.<$> interval,
+               (JSON..=) "IsText" Prelude.<$> isText,
+               (JSON..=) "JoinKeys" Prelude.<$> joinKeys,
+               (JSON..=) "JoinType" Prelude.<$> joinType,
+               (JSON..=) "LeftColumns" Prelude.<$> leftColumns,
+               (JSON..=) "Limit" Prelude.<$> limit,
+               (JSON..=) "LowerBound" Prelude.<$> lowerBound,
+               (JSON..=) "MapType" Prelude.<$> mapType,
+               (JSON..=) "ModeType" Prelude.<$> modeType,
+               (JSON..=) "MultiLine" Prelude.<$> multiLine,
+               (JSON..=) "NumRows" Prelude.<$> numRows,
+               (JSON..=) "NumRowsAfter" Prelude.<$> numRowsAfter,
+               (JSON..=) "NumRowsBefore" Prelude.<$> numRowsBefore,
+               (JSON..=) "OrderByColumn" Prelude.<$> orderByColumn,
+               (JSON..=) "OrderByColumns" Prelude.<$> orderByColumns,
+               (JSON..=) "Other" Prelude.<$> other,
+               (JSON..=) "Pattern" Prelude.<$> pattern,
+               (JSON..=) "PatternOption1" Prelude.<$> patternOption1,
+               (JSON..=) "PatternOption2" Prelude.<$> patternOption2,
+               (JSON..=) "PatternOptions" Prelude.<$> patternOptions,
+               (JSON..=) "Period" Prelude.<$> period,
+               (JSON..=) "Position" Prelude.<$> position,
+               (JSON..=) "RemoveAllPunctuation" Prelude.<$> removeAllPunctuation,
+               (JSON..=) "RemoveAllQuotes" Prelude.<$> removeAllQuotes,
+               (JSON..=) "RemoveAllWhitespace" Prelude.<$> removeAllWhitespace,
+               (JSON..=) "RemoveCustomCharacters"
+                 Prelude.<$> removeCustomCharacters,
+               (JSON..=) "RemoveCustomValue" Prelude.<$> removeCustomValue,
+               (JSON..=) "RemoveLeadingAndTrailingPunctuation"
+                 Prelude.<$> removeLeadingAndTrailingPunctuation,
+               (JSON..=) "RemoveLeadingAndTrailingQuotes"
+                 Prelude.<$> removeLeadingAndTrailingQuotes,
+               (JSON..=) "RemoveLeadingAndTrailingWhitespace"
+                 Prelude.<$> removeLeadingAndTrailingWhitespace,
+               (JSON..=) "RemoveLetters" Prelude.<$> removeLetters,
+               (JSON..=) "RemoveNumbers" Prelude.<$> removeNumbers,
+               (JSON..=) "RemoveSourceColumn" Prelude.<$> removeSourceColumn,
+               (JSON..=) "RemoveSpecialCharacters"
+                 Prelude.<$> removeSpecialCharacters,
+               (JSON..=) "RightColumns" Prelude.<$> rightColumns,
+               (JSON..=) "SampleSize" Prelude.<$> sampleSize,
+               (JSON..=) "SampleType" Prelude.<$> sampleType,
+               (JSON..=) "SecondInput" Prelude.<$> secondInput,
+               (JSON..=) "SecondaryInputs" Prelude.<$> secondaryInputs,
+               (JSON..=) "SheetIndexes" Prelude.<$> sheetIndexes,
+               (JSON..=) "SheetNames" Prelude.<$> sheetNames,
+               (JSON..=) "SourceColumn" Prelude.<$> sourceColumn,
+               (JSON..=) "SourceColumn1" Prelude.<$> sourceColumn1,
+               (JSON..=) "SourceColumn2" Prelude.<$> sourceColumn2,
+               (JSON..=) "SourceColumns" Prelude.<$> sourceColumns,
+               (JSON..=) "StartColumnIndex" Prelude.<$> startColumnIndex,
+               (JSON..=) "StartPattern" Prelude.<$> startPattern,
+               (JSON..=) "StartPosition" Prelude.<$> startPosition,
+               (JSON..=) "StartValue" Prelude.<$> startValue,
+               (JSON..=) "StemmingMode" Prelude.<$> stemmingMode,
+               (JSON..=) "StepCount" Prelude.<$> stepCount,
+               (JSON..=) "StepIndex" Prelude.<$> stepIndex,
+               (JSON..=) "StopWordsMode" Prelude.<$> stopWordsMode,
+               (JSON..=) "Strategy" Prelude.<$> strategy,
+               (JSON..=) "TargetColumn" Prelude.<$> targetColumn,
+               (JSON..=) "TargetColumnNames" Prelude.<$> targetColumnNames,
+               (JSON..=) "TargetDateFormat" Prelude.<$> targetDateFormat,
+               (JSON..=) "TargetIndex" Prelude.<$> targetIndex,
+               (JSON..=) "TimeZone" Prelude.<$> timeZone,
+               (JSON..=) "TokenizerPattern" Prelude.<$> tokenizerPattern,
+               (JSON..=) "TrueString" Prelude.<$> trueString,
+               (JSON..=) "UdfLang" Prelude.<$> udfLang,
+               (JSON..=) "Units" Prelude.<$> units,
+               (JSON..=) "UnpivotColumn" Prelude.<$> unpivotColumn,
+               (JSON..=) "UpperBound" Prelude.<$> upperBound,
+               (JSON..=) "UseNewDataFrame" Prelude.<$> useNewDataFrame,
+               (JSON..=) "Value" Prelude.<$> value,
+               (JSON..=) "Value1" Prelude.<$> value1,
+               (JSON..=) "Value2" Prelude.<$> value2,
+               (JSON..=) "ValueColumn" Prelude.<$> valueColumn,
+               (JSON..=) "ViewFrame" Prelude.<$> viewFrame]))
+instance Property "AggregateFunction" RecipeParametersProperty where
+  type PropertyType "AggregateFunction" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {aggregateFunction = Prelude.pure newValue, ..}
+instance Property "Base" RecipeParametersProperty where
+  type PropertyType "Base" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty {base = Prelude.pure newValue, ..}
+instance Property "CaseStatement" RecipeParametersProperty where
+  type PropertyType "CaseStatement" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {caseStatement = Prelude.pure newValue, ..}
+instance Property "CategoryMap" RecipeParametersProperty where
+  type PropertyType "CategoryMap" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {categoryMap = Prelude.pure newValue, ..}
+instance Property "CharsToRemove" RecipeParametersProperty where
+  type PropertyType "CharsToRemove" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {charsToRemove = Prelude.pure newValue, ..}
+instance Property "CollapseConsecutiveWhitespace" RecipeParametersProperty where
+  type PropertyType "CollapseConsecutiveWhitespace" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {collapseConsecutiveWhitespace = Prelude.pure newValue, ..}
+instance Property "ColumnDataType" RecipeParametersProperty where
+  type PropertyType "ColumnDataType" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {columnDataType = Prelude.pure newValue, ..}
+instance Property "ColumnRange" RecipeParametersProperty where
+  type PropertyType "ColumnRange" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {columnRange = Prelude.pure newValue, ..}
+instance Property "Count" RecipeParametersProperty where
+  type PropertyType "Count" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty {count = Prelude.pure newValue, ..}
+instance Property "CustomCharacters" RecipeParametersProperty where
+  type PropertyType "CustomCharacters" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {customCharacters = Prelude.pure newValue, ..}
+instance Property "CustomStopWords" RecipeParametersProperty where
+  type PropertyType "CustomStopWords" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {customStopWords = Prelude.pure newValue, ..}
+instance Property "CustomValue" RecipeParametersProperty where
+  type PropertyType "CustomValue" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {customValue = Prelude.pure newValue, ..}
+instance Property "DatasetsColumns" RecipeParametersProperty where
+  type PropertyType "DatasetsColumns" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {datasetsColumns = Prelude.pure newValue, ..}
+instance Property "DateAddValue" RecipeParametersProperty where
+  type PropertyType "DateAddValue" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {dateAddValue = Prelude.pure newValue, ..}
+instance Property "DateTimeFormat" RecipeParametersProperty where
+  type PropertyType "DateTimeFormat" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {dateTimeFormat = Prelude.pure newValue, ..}
+instance Property "DateTimeParameters" RecipeParametersProperty where
+  type PropertyType "DateTimeParameters" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {dateTimeParameters = Prelude.pure newValue, ..}
+instance Property "DeleteOtherRows" RecipeParametersProperty where
+  type PropertyType "DeleteOtherRows" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {deleteOtherRows = Prelude.pure newValue, ..}
+instance Property "Delimiter" RecipeParametersProperty where
+  type PropertyType "Delimiter" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty {delimiter = Prelude.pure newValue, ..}
+instance Property "EndPattern" RecipeParametersProperty where
+  type PropertyType "EndPattern" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty {endPattern = Prelude.pure newValue, ..}
+instance Property "EndPosition" RecipeParametersProperty where
+  type PropertyType "EndPosition" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {endPosition = Prelude.pure newValue, ..}
+instance Property "EndValue" RecipeParametersProperty where
+  type PropertyType "EndValue" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty {endValue = Prelude.pure newValue, ..}
+instance Property "ExpandContractions" RecipeParametersProperty where
+  type PropertyType "ExpandContractions" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {expandContractions = Prelude.pure newValue, ..}
+instance Property "Exponent" RecipeParametersProperty where
+  type PropertyType "Exponent" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty {exponent = Prelude.pure newValue, ..}
+instance Property "FalseString" RecipeParametersProperty where
+  type PropertyType "FalseString" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {falseString = Prelude.pure newValue, ..}
+instance Property "GroupByAggFunctionOptions" RecipeParametersProperty where
+  type PropertyType "GroupByAggFunctionOptions" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {groupByAggFunctionOptions = Prelude.pure newValue, ..}
+instance Property "GroupByColumns" RecipeParametersProperty where
+  type PropertyType "GroupByColumns" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {groupByColumns = Prelude.pure newValue, ..}
+instance Property "HiddenColumns" RecipeParametersProperty where
+  type PropertyType "HiddenColumns" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {hiddenColumns = Prelude.pure newValue, ..}
+instance Property "IgnoreCase" RecipeParametersProperty where
+  type PropertyType "IgnoreCase" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty {ignoreCase = Prelude.pure newValue, ..}
+instance Property "IncludeInSplit" RecipeParametersProperty where
+  type PropertyType "IncludeInSplit" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {includeInSplit = Prelude.pure newValue, ..}
+instance Property "Input" RecipeParametersProperty where
+  type PropertyType "Input" RecipeParametersProperty = InputProperty
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty {input = Prelude.pure newValue, ..}
+instance Property "Interval" RecipeParametersProperty where
+  type PropertyType "Interval" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty {interval = Prelude.pure newValue, ..}
+instance Property "IsText" RecipeParametersProperty where
+  type PropertyType "IsText" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty {isText = Prelude.pure newValue, ..}
+instance Property "JoinKeys" RecipeParametersProperty where
+  type PropertyType "JoinKeys" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty {joinKeys = Prelude.pure newValue, ..}
+instance Property "JoinType" RecipeParametersProperty where
+  type PropertyType "JoinType" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty {joinType = Prelude.pure newValue, ..}
+instance Property "LeftColumns" RecipeParametersProperty where
+  type PropertyType "LeftColumns" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {leftColumns = Prelude.pure newValue, ..}
+instance Property "Limit" RecipeParametersProperty where
+  type PropertyType "Limit" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty {limit = Prelude.pure newValue, ..}
+instance Property "LowerBound" RecipeParametersProperty where
+  type PropertyType "LowerBound" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty {lowerBound = Prelude.pure newValue, ..}
+instance Property "MapType" RecipeParametersProperty where
+  type PropertyType "MapType" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty {mapType = Prelude.pure newValue, ..}
+instance Property "ModeType" RecipeParametersProperty where
+  type PropertyType "ModeType" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty {modeType = Prelude.pure newValue, ..}
+instance Property "MultiLine" RecipeParametersProperty where
+  type PropertyType "MultiLine" RecipeParametersProperty = Value Prelude.Bool
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty {multiLine = Prelude.pure newValue, ..}
+instance Property "NumRows" RecipeParametersProperty where
+  type PropertyType "NumRows" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty {numRows = Prelude.pure newValue, ..}
+instance Property "NumRowsAfter" RecipeParametersProperty where
+  type PropertyType "NumRowsAfter" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {numRowsAfter = Prelude.pure newValue, ..}
+instance Property "NumRowsBefore" RecipeParametersProperty where
+  type PropertyType "NumRowsBefore" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {numRowsBefore = Prelude.pure newValue, ..}
+instance Property "OrderByColumn" RecipeParametersProperty where
+  type PropertyType "OrderByColumn" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {orderByColumn = Prelude.pure newValue, ..}
+instance Property "OrderByColumns" RecipeParametersProperty where
+  type PropertyType "OrderByColumns" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {orderByColumns = Prelude.pure newValue, ..}
+instance Property "Other" RecipeParametersProperty where
+  type PropertyType "Other" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty {other = Prelude.pure newValue, ..}
+instance Property "Pattern" RecipeParametersProperty where
+  type PropertyType "Pattern" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty {pattern = Prelude.pure newValue, ..}
+instance Property "PatternOption1" RecipeParametersProperty where
+  type PropertyType "PatternOption1" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {patternOption1 = Prelude.pure newValue, ..}
+instance Property "PatternOption2" RecipeParametersProperty where
+  type PropertyType "PatternOption2" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {patternOption2 = Prelude.pure newValue, ..}
+instance Property "PatternOptions" RecipeParametersProperty where
+  type PropertyType "PatternOptions" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {patternOptions = Prelude.pure newValue, ..}
+instance Property "Period" RecipeParametersProperty where
+  type PropertyType "Period" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty {period = Prelude.pure newValue, ..}
+instance Property "Position" RecipeParametersProperty where
+  type PropertyType "Position" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty {position = Prelude.pure newValue, ..}
+instance Property "RemoveAllPunctuation" RecipeParametersProperty where
+  type PropertyType "RemoveAllPunctuation" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {removeAllPunctuation = Prelude.pure newValue, ..}
+instance Property "RemoveAllQuotes" RecipeParametersProperty where
+  type PropertyType "RemoveAllQuotes" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {removeAllQuotes = Prelude.pure newValue, ..}
+instance Property "RemoveAllWhitespace" RecipeParametersProperty where
+  type PropertyType "RemoveAllWhitespace" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {removeAllWhitespace = Prelude.pure newValue, ..}
+instance Property "RemoveCustomCharacters" RecipeParametersProperty where
+  type PropertyType "RemoveCustomCharacters" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {removeCustomCharacters = Prelude.pure newValue, ..}
+instance Property "RemoveCustomValue" RecipeParametersProperty where
+  type PropertyType "RemoveCustomValue" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {removeCustomValue = Prelude.pure newValue, ..}
+instance Property "RemoveLeadingAndTrailingPunctuation" RecipeParametersProperty where
+  type PropertyType "RemoveLeadingAndTrailingPunctuation" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {removeLeadingAndTrailingPunctuation = Prelude.pure newValue, ..}
+instance Property "RemoveLeadingAndTrailingQuotes" RecipeParametersProperty where
+  type PropertyType "RemoveLeadingAndTrailingQuotes" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {removeLeadingAndTrailingQuotes = Prelude.pure newValue, ..}
+instance Property "RemoveLeadingAndTrailingWhitespace" RecipeParametersProperty where
+  type PropertyType "RemoveLeadingAndTrailingWhitespace" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {removeLeadingAndTrailingWhitespace = Prelude.pure newValue, ..}
+instance Property "RemoveLetters" RecipeParametersProperty where
+  type PropertyType "RemoveLetters" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {removeLetters = Prelude.pure newValue, ..}
+instance Property "RemoveNumbers" RecipeParametersProperty where
+  type PropertyType "RemoveNumbers" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {removeNumbers = Prelude.pure newValue, ..}
+instance Property "RemoveSourceColumn" RecipeParametersProperty where
+  type PropertyType "RemoveSourceColumn" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {removeSourceColumn = Prelude.pure newValue, ..}
+instance Property "RemoveSpecialCharacters" RecipeParametersProperty where
+  type PropertyType "RemoveSpecialCharacters" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {removeSpecialCharacters = Prelude.pure newValue, ..}
+instance Property "RightColumns" RecipeParametersProperty where
+  type PropertyType "RightColumns" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {rightColumns = Prelude.pure newValue, ..}
+instance Property "SampleSize" RecipeParametersProperty where
+  type PropertyType "SampleSize" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty {sampleSize = Prelude.pure newValue, ..}
+instance Property "SampleType" RecipeParametersProperty where
+  type PropertyType "SampleType" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty {sampleType = Prelude.pure newValue, ..}
+instance Property "SecondInput" RecipeParametersProperty where
+  type PropertyType "SecondInput" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {secondInput = Prelude.pure newValue, ..}
+instance Property "SecondaryInputs" RecipeParametersProperty where
+  type PropertyType "SecondaryInputs" RecipeParametersProperty = [SecondaryInputProperty]
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {secondaryInputs = Prelude.pure newValue, ..}
+instance Property "SheetIndexes" RecipeParametersProperty where
+  type PropertyType "SheetIndexes" RecipeParametersProperty = ValueList Prelude.Integer
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {sheetIndexes = Prelude.pure newValue, ..}
+instance Property "SheetNames" RecipeParametersProperty where
+  type PropertyType "SheetNames" RecipeParametersProperty = ValueList Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty {sheetNames = Prelude.pure newValue, ..}
+instance Property "SourceColumn" RecipeParametersProperty where
+  type PropertyType "SourceColumn" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {sourceColumn = Prelude.pure newValue, ..}
+instance Property "SourceColumn1" RecipeParametersProperty where
+  type PropertyType "SourceColumn1" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {sourceColumn1 = Prelude.pure newValue, ..}
+instance Property "SourceColumn2" RecipeParametersProperty where
+  type PropertyType "SourceColumn2" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {sourceColumn2 = Prelude.pure newValue, ..}
+instance Property "SourceColumns" RecipeParametersProperty where
+  type PropertyType "SourceColumns" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {sourceColumns = Prelude.pure newValue, ..}
+instance Property "StartColumnIndex" RecipeParametersProperty where
+  type PropertyType "StartColumnIndex" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {startColumnIndex = Prelude.pure newValue, ..}
+instance Property "StartPattern" RecipeParametersProperty where
+  type PropertyType "StartPattern" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {startPattern = Prelude.pure newValue, ..}
+instance Property "StartPosition" RecipeParametersProperty where
+  type PropertyType "StartPosition" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {startPosition = Prelude.pure newValue, ..}
+instance Property "StartValue" RecipeParametersProperty where
+  type PropertyType "StartValue" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty {startValue = Prelude.pure newValue, ..}
+instance Property "StemmingMode" RecipeParametersProperty where
+  type PropertyType "StemmingMode" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {stemmingMode = Prelude.pure newValue, ..}
+instance Property "StepCount" RecipeParametersProperty where
+  type PropertyType "StepCount" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty {stepCount = Prelude.pure newValue, ..}
+instance Property "StepIndex" RecipeParametersProperty where
+  type PropertyType "StepIndex" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty {stepIndex = Prelude.pure newValue, ..}
+instance Property "StopWordsMode" RecipeParametersProperty where
+  type PropertyType "StopWordsMode" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {stopWordsMode = Prelude.pure newValue, ..}
+instance Property "Strategy" RecipeParametersProperty where
+  type PropertyType "Strategy" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty {strategy = Prelude.pure newValue, ..}
+instance Property "TargetColumn" RecipeParametersProperty where
+  type PropertyType "TargetColumn" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {targetColumn = Prelude.pure newValue, ..}
+instance Property "TargetColumnNames" RecipeParametersProperty where
+  type PropertyType "TargetColumnNames" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {targetColumnNames = Prelude.pure newValue, ..}
+instance Property "TargetDateFormat" RecipeParametersProperty where
+  type PropertyType "TargetDateFormat" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {targetDateFormat = Prelude.pure newValue, ..}
+instance Property "TargetIndex" RecipeParametersProperty where
+  type PropertyType "TargetIndex" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {targetIndex = Prelude.pure newValue, ..}
+instance Property "TimeZone" RecipeParametersProperty where
+  type PropertyType "TimeZone" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty {timeZone = Prelude.pure newValue, ..}
+instance Property "TokenizerPattern" RecipeParametersProperty where
+  type PropertyType "TokenizerPattern" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {tokenizerPattern = Prelude.pure newValue, ..}
+instance Property "TrueString" RecipeParametersProperty where
+  type PropertyType "TrueString" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty {trueString = Prelude.pure newValue, ..}
+instance Property "UdfLang" RecipeParametersProperty where
+  type PropertyType "UdfLang" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty {udfLang = Prelude.pure newValue, ..}
+instance Property "Units" RecipeParametersProperty where
+  type PropertyType "Units" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty {units = Prelude.pure newValue, ..}
+instance Property "UnpivotColumn" RecipeParametersProperty where
+  type PropertyType "UnpivotColumn" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {unpivotColumn = Prelude.pure newValue, ..}
+instance Property "UpperBound" RecipeParametersProperty where
+  type PropertyType "UpperBound" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty {upperBound = Prelude.pure newValue, ..}
+instance Property "UseNewDataFrame" RecipeParametersProperty where
+  type PropertyType "UseNewDataFrame" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {useNewDataFrame = Prelude.pure newValue, ..}
+instance Property "Value" RecipeParametersProperty where
+  type PropertyType "Value" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty {value = Prelude.pure newValue, ..}
+instance Property "Value1" RecipeParametersProperty where
+  type PropertyType "Value1" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty {value1 = Prelude.pure newValue, ..}
+instance Property "Value2" RecipeParametersProperty where
+  type PropertyType "Value2" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty {value2 = Prelude.pure newValue, ..}
+instance Property "ValueColumn" RecipeParametersProperty where
+  type PropertyType "ValueColumn" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty
+        {valueColumn = Prelude.pure newValue, ..}
+instance Property "ViewFrame" RecipeParametersProperty where
+  type PropertyType "ViewFrame" RecipeParametersProperty = Value Prelude.Text
+  set newValue RecipeParametersProperty {..}
+    = RecipeParametersProperty {viewFrame = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Recipe/RecipeParametersProperty.hs-boot b/gen/Stratosphere/DataBrew/Recipe/RecipeParametersProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Recipe/RecipeParametersProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Recipe.RecipeParametersProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data RecipeParametersProperty :: Prelude.Type
+instance ToResourceProperties RecipeParametersProperty
+instance Prelude.Eq RecipeParametersProperty
+instance Prelude.Show RecipeParametersProperty
+instance JSON.ToJSON RecipeParametersProperty
diff --git a/gen/Stratosphere/DataBrew/Recipe/RecipeStepProperty.hs b/gen/Stratosphere/DataBrew/Recipe/RecipeStepProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Recipe/RecipeStepProperty.hs
@@ -0,0 +1,51 @@
+module Stratosphere.DataBrew.Recipe.RecipeStepProperty (
+        module Exports, RecipeStepProperty(..), mkRecipeStepProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.DataBrew.Recipe.ActionProperty as Exports
+import {-# SOURCE #-} Stratosphere.DataBrew.Recipe.ConditionExpressionProperty as Exports
+import Stratosphere.ResourceProperties
+data RecipeStepProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipestep.html>
+    RecipeStepProperty {haddock_workaround_ :: (),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipestep.html#cfn-databrew-recipe-recipestep-action>
+                        action :: ActionProperty,
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipestep.html#cfn-databrew-recipe-recipestep-conditionexpressions>
+                        conditionExpressions :: (Prelude.Maybe [ConditionExpressionProperty])}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkRecipeStepProperty :: ActionProperty -> RecipeStepProperty
+mkRecipeStepProperty action
+  = RecipeStepProperty
+      {haddock_workaround_ = (), action = action,
+       conditionExpressions = Prelude.Nothing}
+instance ToResourceProperties RecipeStepProperty where
+  toResourceProperties RecipeStepProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Recipe.RecipeStep",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["Action" JSON..= action]
+                           (Prelude.catMaybes
+                              [(JSON..=) "ConditionExpressions"
+                                 Prelude.<$> conditionExpressions]))}
+instance JSON.ToJSON RecipeStepProperty where
+  toJSON RecipeStepProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["Action" JSON..= action]
+              (Prelude.catMaybes
+                 [(JSON..=) "ConditionExpressions"
+                    Prelude.<$> conditionExpressions])))
+instance Property "Action" RecipeStepProperty where
+  type PropertyType "Action" RecipeStepProperty = ActionProperty
+  set newValue RecipeStepProperty {..}
+    = RecipeStepProperty {action = newValue, ..}
+instance Property "ConditionExpressions" RecipeStepProperty where
+  type PropertyType "ConditionExpressions" RecipeStepProperty = [ConditionExpressionProperty]
+  set newValue RecipeStepProperty {..}
+    = RecipeStepProperty
+        {conditionExpressions = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Recipe/RecipeStepProperty.hs-boot b/gen/Stratosphere/DataBrew/Recipe/RecipeStepProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Recipe/RecipeStepProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Recipe.RecipeStepProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data RecipeStepProperty :: Prelude.Type
+instance ToResourceProperties RecipeStepProperty
+instance Prelude.Eq RecipeStepProperty
+instance Prelude.Show RecipeStepProperty
+instance JSON.ToJSON RecipeStepProperty
diff --git a/gen/Stratosphere/DataBrew/Recipe/S3LocationProperty.hs b/gen/Stratosphere/DataBrew/Recipe/S3LocationProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Recipe/S3LocationProperty.hs
@@ -0,0 +1,44 @@
+module Stratosphere.DataBrew.Recipe.S3LocationProperty (
+        S3LocationProperty(..), mkS3LocationProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data S3LocationProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-s3location.html>
+    S3LocationProperty {haddock_workaround_ :: (),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-s3location.html#cfn-databrew-recipe-s3location-bucket>
+                        bucket :: (Value Prelude.Text),
+                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-s3location.html#cfn-databrew-recipe-s3location-key>
+                        key :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkS3LocationProperty :: Value Prelude.Text -> S3LocationProperty
+mkS3LocationProperty bucket
+  = S3LocationProperty
+      {haddock_workaround_ = (), bucket = bucket, key = Prelude.Nothing}
+instance ToResourceProperties S3LocationProperty where
+  toResourceProperties S3LocationProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Recipe.S3Location",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["Bucket" JSON..= bucket]
+                           (Prelude.catMaybes [(JSON..=) "Key" Prelude.<$> key]))}
+instance JSON.ToJSON S3LocationProperty where
+  toJSON S3LocationProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["Bucket" JSON..= bucket]
+              (Prelude.catMaybes [(JSON..=) "Key" Prelude.<$> key])))
+instance Property "Bucket" S3LocationProperty where
+  type PropertyType "Bucket" S3LocationProperty = Value Prelude.Text
+  set newValue S3LocationProperty {..}
+    = S3LocationProperty {bucket = newValue, ..}
+instance Property "Key" S3LocationProperty where
+  type PropertyType "Key" S3LocationProperty = Value Prelude.Text
+  set newValue S3LocationProperty {..}
+    = S3LocationProperty {key = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Recipe/S3LocationProperty.hs-boot b/gen/Stratosphere/DataBrew/Recipe/S3LocationProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Recipe/S3LocationProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Recipe.S3LocationProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data S3LocationProperty :: Prelude.Type
+instance ToResourceProperties S3LocationProperty
+instance Prelude.Eq S3LocationProperty
+instance Prelude.Show S3LocationProperty
+instance JSON.ToJSON S3LocationProperty
diff --git a/gen/Stratosphere/DataBrew/Recipe/SecondaryInputProperty.hs b/gen/Stratosphere/DataBrew/Recipe/SecondaryInputProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Recipe/SecondaryInputProperty.hs
@@ -0,0 +1,52 @@
+module Stratosphere.DataBrew.Recipe.SecondaryInputProperty (
+        module Exports, SecondaryInputProperty(..),
+        mkSecondaryInputProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.DataBrew.Recipe.DataCatalogInputDefinitionProperty as Exports
+import {-# SOURCE #-} Stratosphere.DataBrew.Recipe.S3LocationProperty as Exports
+import Stratosphere.ResourceProperties
+data SecondaryInputProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-secondaryinput.html>
+    SecondaryInputProperty {haddock_workaround_ :: (),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-secondaryinput.html#cfn-databrew-recipe-secondaryinput-datacataloginputdefinition>
+                            dataCatalogInputDefinition :: (Prelude.Maybe DataCatalogInputDefinitionProperty),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-secondaryinput.html#cfn-databrew-recipe-secondaryinput-s3inputdefinition>
+                            s3InputDefinition :: (Prelude.Maybe S3LocationProperty)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkSecondaryInputProperty :: SecondaryInputProperty
+mkSecondaryInputProperty
+  = SecondaryInputProperty
+      {haddock_workaround_ = (),
+       dataCatalogInputDefinition = Prelude.Nothing,
+       s3InputDefinition = Prelude.Nothing}
+instance ToResourceProperties SecondaryInputProperty where
+  toResourceProperties SecondaryInputProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Recipe.SecondaryInput",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "DataCatalogInputDefinition"
+                              Prelude.<$> dataCatalogInputDefinition,
+                            (JSON..=) "S3InputDefinition" Prelude.<$> s3InputDefinition])}
+instance JSON.ToJSON SecondaryInputProperty where
+  toJSON SecondaryInputProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "DataCatalogInputDefinition"
+                 Prelude.<$> dataCatalogInputDefinition,
+               (JSON..=) "S3InputDefinition" Prelude.<$> s3InputDefinition]))
+instance Property "DataCatalogInputDefinition" SecondaryInputProperty where
+  type PropertyType "DataCatalogInputDefinition" SecondaryInputProperty = DataCatalogInputDefinitionProperty
+  set newValue SecondaryInputProperty {..}
+    = SecondaryInputProperty
+        {dataCatalogInputDefinition = Prelude.pure newValue, ..}
+instance Property "S3InputDefinition" SecondaryInputProperty where
+  type PropertyType "S3InputDefinition" SecondaryInputProperty = S3LocationProperty
+  set newValue SecondaryInputProperty {..}
+    = SecondaryInputProperty
+        {s3InputDefinition = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Recipe/SecondaryInputProperty.hs-boot b/gen/Stratosphere/DataBrew/Recipe/SecondaryInputProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Recipe/SecondaryInputProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Recipe.SecondaryInputProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data SecondaryInputProperty :: Prelude.Type
+instance ToResourceProperties SecondaryInputProperty
+instance Prelude.Eq SecondaryInputProperty
+instance Prelude.Show SecondaryInputProperty
+instance JSON.ToJSON SecondaryInputProperty
diff --git a/gen/Stratosphere/DataBrew/Ruleset.hs b/gen/Stratosphere/DataBrew/Ruleset.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Ruleset.hs
@@ -0,0 +1,70 @@
+module Stratosphere.DataBrew.Ruleset (
+        module Exports, Ruleset(..), mkRuleset
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.DataBrew.Ruleset.RuleProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Tag
+import Stratosphere.Value
+data Ruleset
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-ruleset.html>
+    Ruleset {haddock_workaround_ :: (),
+             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-ruleset.html#cfn-databrew-ruleset-description>
+             description :: (Prelude.Maybe (Value Prelude.Text)),
+             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-ruleset.html#cfn-databrew-ruleset-name>
+             name :: (Value Prelude.Text),
+             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-ruleset.html#cfn-databrew-ruleset-rules>
+             rules :: [RuleProperty],
+             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-ruleset.html#cfn-databrew-ruleset-tags>
+             tags :: (Prelude.Maybe [Tag]),
+             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-ruleset.html#cfn-databrew-ruleset-targetarn>
+             targetArn :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkRuleset ::
+  Value Prelude.Text
+  -> [RuleProperty] -> Value Prelude.Text -> Ruleset
+mkRuleset name rules targetArn
+  = Ruleset
+      {haddock_workaround_ = (), name = name, rules = rules,
+       targetArn = targetArn, description = Prelude.Nothing,
+       tags = Prelude.Nothing}
+instance ToResourceProperties Ruleset where
+  toResourceProperties Ruleset {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Ruleset", supportsTags = Prelude.True,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["Name" JSON..= name, "Rules" JSON..= rules,
+                            "TargetArn" JSON..= targetArn]
+                           (Prelude.catMaybes
+                              [(JSON..=) "Description" Prelude.<$> description,
+                               (JSON..=) "Tags" Prelude.<$> tags]))}
+instance JSON.ToJSON Ruleset where
+  toJSON Ruleset {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["Name" JSON..= name, "Rules" JSON..= rules,
+               "TargetArn" JSON..= targetArn]
+              (Prelude.catMaybes
+                 [(JSON..=) "Description" Prelude.<$> description,
+                  (JSON..=) "Tags" Prelude.<$> tags])))
+instance Property "Description" Ruleset where
+  type PropertyType "Description" Ruleset = Value Prelude.Text
+  set newValue Ruleset {..}
+    = Ruleset {description = Prelude.pure newValue, ..}
+instance Property "Name" Ruleset where
+  type PropertyType "Name" Ruleset = Value Prelude.Text
+  set newValue Ruleset {..} = Ruleset {name = newValue, ..}
+instance Property "Rules" Ruleset where
+  type PropertyType "Rules" Ruleset = [RuleProperty]
+  set newValue Ruleset {..} = Ruleset {rules = newValue, ..}
+instance Property "Tags" Ruleset where
+  type PropertyType "Tags" Ruleset = [Tag]
+  set newValue Ruleset {..}
+    = Ruleset {tags = Prelude.pure newValue, ..}
+instance Property "TargetArn" Ruleset where
+  type PropertyType "TargetArn" Ruleset = Value Prelude.Text
+  set newValue Ruleset {..} = Ruleset {targetArn = newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Ruleset/ColumnSelectorProperty.hs b/gen/Stratosphere/DataBrew/Ruleset/ColumnSelectorProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Ruleset/ColumnSelectorProperty.hs
@@ -0,0 +1,45 @@
+module Stratosphere.DataBrew.Ruleset.ColumnSelectorProperty (
+        ColumnSelectorProperty(..), mkColumnSelectorProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data ColumnSelectorProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-columnselector.html>
+    ColumnSelectorProperty {haddock_workaround_ :: (),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-columnselector.html#cfn-databrew-ruleset-columnselector-name>
+                            name :: (Prelude.Maybe (Value Prelude.Text)),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-columnselector.html#cfn-databrew-ruleset-columnselector-regex>
+                            regex :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkColumnSelectorProperty :: ColumnSelectorProperty
+mkColumnSelectorProperty
+  = ColumnSelectorProperty
+      {haddock_workaround_ = (), name = Prelude.Nothing,
+       regex = Prelude.Nothing}
+instance ToResourceProperties ColumnSelectorProperty where
+  toResourceProperties ColumnSelectorProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Ruleset.ColumnSelector",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "Name" Prelude.<$> name,
+                            (JSON..=) "Regex" Prelude.<$> regex])}
+instance JSON.ToJSON ColumnSelectorProperty where
+  toJSON ColumnSelectorProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "Name" Prelude.<$> name,
+               (JSON..=) "Regex" Prelude.<$> regex]))
+instance Property "Name" ColumnSelectorProperty where
+  type PropertyType "Name" ColumnSelectorProperty = Value Prelude.Text
+  set newValue ColumnSelectorProperty {..}
+    = ColumnSelectorProperty {name = Prelude.pure newValue, ..}
+instance Property "Regex" ColumnSelectorProperty where
+  type PropertyType "Regex" ColumnSelectorProperty = Value Prelude.Text
+  set newValue ColumnSelectorProperty {..}
+    = ColumnSelectorProperty {regex = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Ruleset/ColumnSelectorProperty.hs-boot b/gen/Stratosphere/DataBrew/Ruleset/ColumnSelectorProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Ruleset/ColumnSelectorProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Ruleset.ColumnSelectorProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data ColumnSelectorProperty :: Prelude.Type
+instance ToResourceProperties ColumnSelectorProperty
+instance Prelude.Eq ColumnSelectorProperty
+instance Prelude.Show ColumnSelectorProperty
+instance JSON.ToJSON ColumnSelectorProperty
diff --git a/gen/Stratosphere/DataBrew/Ruleset/RuleProperty.hs b/gen/Stratosphere/DataBrew/Ruleset/RuleProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Ruleset/RuleProperty.hs
@@ -0,0 +1,82 @@
+module Stratosphere.DataBrew.Ruleset.RuleProperty (
+        module Exports, RuleProperty(..), mkRuleProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.DataBrew.Ruleset.ColumnSelectorProperty as Exports
+import {-# SOURCE #-} Stratosphere.DataBrew.Ruleset.SubstitutionValueProperty as Exports
+import {-# SOURCE #-} Stratosphere.DataBrew.Ruleset.ThresholdProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data RuleProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-rule.html>
+    RuleProperty {haddock_workaround_ :: (),
+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-rule.html#cfn-databrew-ruleset-rule-checkexpression>
+                  checkExpression :: (Value Prelude.Text),
+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-rule.html#cfn-databrew-ruleset-rule-columnselectors>
+                  columnSelectors :: (Prelude.Maybe [ColumnSelectorProperty]),
+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-rule.html#cfn-databrew-ruleset-rule-disabled>
+                  disabled :: (Prelude.Maybe (Value Prelude.Bool)),
+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-rule.html#cfn-databrew-ruleset-rule-name>
+                  name :: (Value Prelude.Text),
+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-rule.html#cfn-databrew-ruleset-rule-substitutionmap>
+                  substitutionMap :: (Prelude.Maybe [SubstitutionValueProperty]),
+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-rule.html#cfn-databrew-ruleset-rule-threshold>
+                  threshold :: (Prelude.Maybe ThresholdProperty)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkRuleProperty ::
+  Value Prelude.Text -> Value Prelude.Text -> RuleProperty
+mkRuleProperty checkExpression name
+  = RuleProperty
+      {haddock_workaround_ = (), checkExpression = checkExpression,
+       name = name, columnSelectors = Prelude.Nothing,
+       disabled = Prelude.Nothing, substitutionMap = Prelude.Nothing,
+       threshold = Prelude.Nothing}
+instance ToResourceProperties RuleProperty where
+  toResourceProperties RuleProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Ruleset.Rule",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["CheckExpression" JSON..= checkExpression, "Name" JSON..= name]
+                           (Prelude.catMaybes
+                              [(JSON..=) "ColumnSelectors" Prelude.<$> columnSelectors,
+                               (JSON..=) "Disabled" Prelude.<$> disabled,
+                               (JSON..=) "SubstitutionMap" Prelude.<$> substitutionMap,
+                               (JSON..=) "Threshold" Prelude.<$> threshold]))}
+instance JSON.ToJSON RuleProperty where
+  toJSON RuleProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["CheckExpression" JSON..= checkExpression, "Name" JSON..= name]
+              (Prelude.catMaybes
+                 [(JSON..=) "ColumnSelectors" Prelude.<$> columnSelectors,
+                  (JSON..=) "Disabled" Prelude.<$> disabled,
+                  (JSON..=) "SubstitutionMap" Prelude.<$> substitutionMap,
+                  (JSON..=) "Threshold" Prelude.<$> threshold])))
+instance Property "CheckExpression" RuleProperty where
+  type PropertyType "CheckExpression" RuleProperty = Value Prelude.Text
+  set newValue RuleProperty {..}
+    = RuleProperty {checkExpression = newValue, ..}
+instance Property "ColumnSelectors" RuleProperty where
+  type PropertyType "ColumnSelectors" RuleProperty = [ColumnSelectorProperty]
+  set newValue RuleProperty {..}
+    = RuleProperty {columnSelectors = Prelude.pure newValue, ..}
+instance Property "Disabled" RuleProperty where
+  type PropertyType "Disabled" RuleProperty = Value Prelude.Bool
+  set newValue RuleProperty {..}
+    = RuleProperty {disabled = Prelude.pure newValue, ..}
+instance Property "Name" RuleProperty where
+  type PropertyType "Name" RuleProperty = Value Prelude.Text
+  set newValue RuleProperty {..} = RuleProperty {name = newValue, ..}
+instance Property "SubstitutionMap" RuleProperty where
+  type PropertyType "SubstitutionMap" RuleProperty = [SubstitutionValueProperty]
+  set newValue RuleProperty {..}
+    = RuleProperty {substitutionMap = Prelude.pure newValue, ..}
+instance Property "Threshold" RuleProperty where
+  type PropertyType "Threshold" RuleProperty = ThresholdProperty
+  set newValue RuleProperty {..}
+    = RuleProperty {threshold = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Ruleset/RuleProperty.hs-boot b/gen/Stratosphere/DataBrew/Ruleset/RuleProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Ruleset/RuleProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Ruleset.RuleProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data RuleProperty :: Prelude.Type
+instance ToResourceProperties RuleProperty
+instance Prelude.Eq RuleProperty
+instance Prelude.Show RuleProperty
+instance JSON.ToJSON RuleProperty
diff --git a/gen/Stratosphere/DataBrew/Ruleset/SubstitutionValueProperty.hs b/gen/Stratosphere/DataBrew/Ruleset/SubstitutionValueProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Ruleset/SubstitutionValueProperty.hs
@@ -0,0 +1,42 @@
+module Stratosphere.DataBrew.Ruleset.SubstitutionValueProperty (
+        SubstitutionValueProperty(..), mkSubstitutionValueProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data SubstitutionValueProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-substitutionvalue.html>
+    SubstitutionValueProperty {haddock_workaround_ :: (),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-substitutionvalue.html#cfn-databrew-ruleset-substitutionvalue-value>
+                               value :: (Value Prelude.Text),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-substitutionvalue.html#cfn-databrew-ruleset-substitutionvalue-valuereference>
+                               valueReference :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkSubstitutionValueProperty ::
+  Value Prelude.Text
+  -> Value Prelude.Text -> SubstitutionValueProperty
+mkSubstitutionValueProperty value valueReference
+  = SubstitutionValueProperty
+      {haddock_workaround_ = (), value = value,
+       valueReference = valueReference}
+instance ToResourceProperties SubstitutionValueProperty where
+  toResourceProperties SubstitutionValueProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Ruleset.SubstitutionValue",
+         supportsTags = Prelude.False,
+         properties = ["Value" JSON..= value,
+                       "ValueReference" JSON..= valueReference]}
+instance JSON.ToJSON SubstitutionValueProperty where
+  toJSON SubstitutionValueProperty {..}
+    = JSON.object
+        ["Value" JSON..= value, "ValueReference" JSON..= valueReference]
+instance Property "Value" SubstitutionValueProperty where
+  type PropertyType "Value" SubstitutionValueProperty = Value Prelude.Text
+  set newValue SubstitutionValueProperty {..}
+    = SubstitutionValueProperty {value = newValue, ..}
+instance Property "ValueReference" SubstitutionValueProperty where
+  type PropertyType "ValueReference" SubstitutionValueProperty = Value Prelude.Text
+  set newValue SubstitutionValueProperty {..}
+    = SubstitutionValueProperty {valueReference = newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Ruleset/SubstitutionValueProperty.hs-boot b/gen/Stratosphere/DataBrew/Ruleset/SubstitutionValueProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Ruleset/SubstitutionValueProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Ruleset.SubstitutionValueProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data SubstitutionValueProperty :: Prelude.Type
+instance ToResourceProperties SubstitutionValueProperty
+instance Prelude.Eq SubstitutionValueProperty
+instance Prelude.Show SubstitutionValueProperty
+instance JSON.ToJSON SubstitutionValueProperty
diff --git a/gen/Stratosphere/DataBrew/Ruleset/ThresholdProperty.hs b/gen/Stratosphere/DataBrew/Ruleset/ThresholdProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Ruleset/ThresholdProperty.hs
@@ -0,0 +1,55 @@
+module Stratosphere.DataBrew.Ruleset.ThresholdProperty (
+        ThresholdProperty(..), mkThresholdProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data ThresholdProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-threshold.html>
+    ThresholdProperty {haddock_workaround_ :: (),
+                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-threshold.html#cfn-databrew-ruleset-threshold-type>
+                       type' :: (Prelude.Maybe (Value Prelude.Text)),
+                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-threshold.html#cfn-databrew-ruleset-threshold-unit>
+                       unit :: (Prelude.Maybe (Value Prelude.Text)),
+                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-threshold.html#cfn-databrew-ruleset-threshold-value>
+                       value :: (Value Prelude.Double)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkThresholdProperty :: Value Prelude.Double -> ThresholdProperty
+mkThresholdProperty value
+  = ThresholdProperty
+      {haddock_workaround_ = (), value = value, type' = Prelude.Nothing,
+       unit = Prelude.Nothing}
+instance ToResourceProperties ThresholdProperty where
+  toResourceProperties ThresholdProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Ruleset.Threshold",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["Value" JSON..= value]
+                           (Prelude.catMaybes
+                              [(JSON..=) "Type" Prelude.<$> type',
+                               (JSON..=) "Unit" Prelude.<$> unit]))}
+instance JSON.ToJSON ThresholdProperty where
+  toJSON ThresholdProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["Value" JSON..= value]
+              (Prelude.catMaybes
+                 [(JSON..=) "Type" Prelude.<$> type',
+                  (JSON..=) "Unit" Prelude.<$> unit])))
+instance Property "Type" ThresholdProperty where
+  type PropertyType "Type" ThresholdProperty = Value Prelude.Text
+  set newValue ThresholdProperty {..}
+    = ThresholdProperty {type' = Prelude.pure newValue, ..}
+instance Property "Unit" ThresholdProperty where
+  type PropertyType "Unit" ThresholdProperty = Value Prelude.Text
+  set newValue ThresholdProperty {..}
+    = ThresholdProperty {unit = Prelude.pure newValue, ..}
+instance Property "Value" ThresholdProperty where
+  type PropertyType "Value" ThresholdProperty = Value Prelude.Double
+  set newValue ThresholdProperty {..}
+    = ThresholdProperty {value = newValue, ..}
diff --git a/gen/Stratosphere/DataBrew/Ruleset/ThresholdProperty.hs-boot b/gen/Stratosphere/DataBrew/Ruleset/ThresholdProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Ruleset/ThresholdProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DataBrew.Ruleset.ThresholdProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data ThresholdProperty :: Prelude.Type
+instance ToResourceProperties ThresholdProperty
+instance Prelude.Eq ThresholdProperty
+instance Prelude.Show ThresholdProperty
+instance JSON.ToJSON ThresholdProperty
diff --git a/gen/Stratosphere/DataBrew/Schedule.hs b/gen/Stratosphere/DataBrew/Schedule.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DataBrew/Schedule.hs
@@ -0,0 +1,60 @@
+module Stratosphere.DataBrew.Schedule (
+        Schedule(..), mkSchedule
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Tag
+import Stratosphere.Value
+data Schedule
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-schedule.html>
+    Schedule {haddock_workaround_ :: (),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-schedule.html#cfn-databrew-schedule-cronexpression>
+              cronExpression :: (Value Prelude.Text),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-schedule.html#cfn-databrew-schedule-jobnames>
+              jobNames :: (Prelude.Maybe (ValueList Prelude.Text)),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-schedule.html#cfn-databrew-schedule-name>
+              name :: (Value Prelude.Text),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-schedule.html#cfn-databrew-schedule-tags>
+              tags :: (Prelude.Maybe [Tag])}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkSchedule :: Value Prelude.Text -> Value Prelude.Text -> Schedule
+mkSchedule cronExpression name
+  = Schedule
+      {haddock_workaround_ = (), cronExpression = cronExpression,
+       name = name, jobNames = Prelude.Nothing, tags = Prelude.Nothing}
+instance ToResourceProperties Schedule where
+  toResourceProperties Schedule {..}
+    = ResourceProperties
+        {awsType = "AWS::DataBrew::Schedule", supportsTags = Prelude.True,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["CronExpression" JSON..= cronExpression, "Name" JSON..= name]
+                           (Prelude.catMaybes
+                              [(JSON..=) "JobNames" Prelude.<$> jobNames,
+                               (JSON..=) "Tags" Prelude.<$> tags]))}
+instance JSON.ToJSON Schedule where
+  toJSON Schedule {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["CronExpression" JSON..= cronExpression, "Name" JSON..= name]
+              (Prelude.catMaybes
+                 [(JSON..=) "JobNames" Prelude.<$> jobNames,
+                  (JSON..=) "Tags" Prelude.<$> tags])))
+instance Property "CronExpression" Schedule where
+  type PropertyType "CronExpression" Schedule = Value Prelude.Text
+  set newValue Schedule {..}
+    = Schedule {cronExpression = newValue, ..}
+instance Property "JobNames" Schedule where
+  type PropertyType "JobNames" Schedule = ValueList Prelude.Text
+  set newValue Schedule {..}
+    = Schedule {jobNames = Prelude.pure newValue, ..}
+instance Property "Name" Schedule where
+  type PropertyType "Name" Schedule = Value Prelude.Text
+  set newValue Schedule {..} = Schedule {name = newValue, ..}
+instance Property "Tags" Schedule where
+  type PropertyType "Tags" Schedule = [Tag]
+  set newValue Schedule {..}
+    = Schedule {tags = Prelude.pure newValue, ..}
diff --git a/stratosphere-databrew.cabal b/stratosphere-databrew.cabal
new file mode 100644
--- /dev/null
+++ b/stratosphere-databrew.cabal
@@ -0,0 +1,126 @@
+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-databrew
+version:        1.0.0
+synopsis:       Stratosphere integration for AWS DataBrew.
+description:    Integration into stratosphere to generate resources and properties for AWS DataBrew
+category:       AWS, Cloud, DataBrew
+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.DataBrew.Dataset
+      Stratosphere.DataBrew.Dataset.CsvOptionsProperty
+      Stratosphere.DataBrew.Dataset.DatabaseInputDefinitionProperty
+      Stratosphere.DataBrew.Dataset.DataCatalogInputDefinitionProperty
+      Stratosphere.DataBrew.Dataset.DatasetParameterProperty
+      Stratosphere.DataBrew.Dataset.DatetimeOptionsProperty
+      Stratosphere.DataBrew.Dataset.ExcelOptionsProperty
+      Stratosphere.DataBrew.Dataset.FilesLimitProperty
+      Stratosphere.DataBrew.Dataset.FilterExpressionProperty
+      Stratosphere.DataBrew.Dataset.FilterValueProperty
+      Stratosphere.DataBrew.Dataset.FormatOptionsProperty
+      Stratosphere.DataBrew.Dataset.InputProperty
+      Stratosphere.DataBrew.Dataset.JsonOptionsProperty
+      Stratosphere.DataBrew.Dataset.MetadataProperty
+      Stratosphere.DataBrew.Dataset.PathOptionsProperty
+      Stratosphere.DataBrew.Dataset.PathParameterProperty
+      Stratosphere.DataBrew.Dataset.S3LocationProperty
+      Stratosphere.DataBrew.Job
+      Stratosphere.DataBrew.Job.AllowedStatisticsProperty
+      Stratosphere.DataBrew.Job.ColumnSelectorProperty
+      Stratosphere.DataBrew.Job.ColumnStatisticsConfigurationProperty
+      Stratosphere.DataBrew.Job.CsvOutputOptionsProperty
+      Stratosphere.DataBrew.Job.DatabaseOutputProperty
+      Stratosphere.DataBrew.Job.DatabaseTableOutputOptionsProperty
+      Stratosphere.DataBrew.Job.DataCatalogOutputProperty
+      Stratosphere.DataBrew.Job.EntityDetectorConfigurationProperty
+      Stratosphere.DataBrew.Job.JobSampleProperty
+      Stratosphere.DataBrew.Job.OutputFormatOptionsProperty
+      Stratosphere.DataBrew.Job.OutputLocationProperty
+      Stratosphere.DataBrew.Job.OutputProperty
+      Stratosphere.DataBrew.Job.ProfileConfigurationProperty
+      Stratosphere.DataBrew.Job.RecipeProperty
+      Stratosphere.DataBrew.Job.S3LocationProperty
+      Stratosphere.DataBrew.Job.S3TableOutputOptionsProperty
+      Stratosphere.DataBrew.Job.StatisticOverrideProperty
+      Stratosphere.DataBrew.Job.StatisticsConfigurationProperty
+      Stratosphere.DataBrew.Job.ValidationConfigurationProperty
+      Stratosphere.DataBrew.Project
+      Stratosphere.DataBrew.Project.SampleProperty
+      Stratosphere.DataBrew.Recipe
+      Stratosphere.DataBrew.Recipe.ActionProperty
+      Stratosphere.DataBrew.Recipe.ConditionExpressionProperty
+      Stratosphere.DataBrew.Recipe.DataCatalogInputDefinitionProperty
+      Stratosphere.DataBrew.Recipe.InputProperty
+      Stratosphere.DataBrew.Recipe.RecipeParametersProperty
+      Stratosphere.DataBrew.Recipe.RecipeStepProperty
+      Stratosphere.DataBrew.Recipe.S3LocationProperty
+      Stratosphere.DataBrew.Recipe.SecondaryInputProperty
+      Stratosphere.DataBrew.Ruleset
+      Stratosphere.DataBrew.Ruleset.ColumnSelectorProperty
+      Stratosphere.DataBrew.Ruleset.RuleProperty
+      Stratosphere.DataBrew.Ruleset.SubstitutionValueProperty
+      Stratosphere.DataBrew.Ruleset.ThresholdProperty
+      Stratosphere.DataBrew.Schedule
+  other-modules:
+      Paths_stratosphere_databrew
+  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
