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/CUR/ReportDefinition.hs b/gen/Stratosphere/CUR/ReportDefinition.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/CUR/ReportDefinition.hs
@@ -0,0 +1,156 @@
+module Stratosphere.CUR.ReportDefinition (
+        ReportDefinition(..), mkReportDefinition
+    ) 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 ReportDefinition
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cur-reportdefinition.html>
+    ReportDefinition {haddock_workaround_ :: (),
+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cur-reportdefinition.html#cfn-cur-reportdefinition-additionalartifacts>
+                      additionalArtifacts :: (Prelude.Maybe (ValueList Prelude.Text)),
+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cur-reportdefinition.html#cfn-cur-reportdefinition-additionalschemaelements>
+                      additionalSchemaElements :: (Prelude.Maybe (ValueList Prelude.Text)),
+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cur-reportdefinition.html#cfn-cur-reportdefinition-billingviewarn>
+                      billingViewArn :: (Prelude.Maybe (Value Prelude.Text)),
+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cur-reportdefinition.html#cfn-cur-reportdefinition-compression>
+                      compression :: (Value Prelude.Text),
+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cur-reportdefinition.html#cfn-cur-reportdefinition-format>
+                      format :: (Value Prelude.Text),
+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cur-reportdefinition.html#cfn-cur-reportdefinition-refreshclosedreports>
+                      refreshClosedReports :: (Value Prelude.Bool),
+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cur-reportdefinition.html#cfn-cur-reportdefinition-reportname>
+                      reportName :: (Value Prelude.Text),
+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cur-reportdefinition.html#cfn-cur-reportdefinition-reportversioning>
+                      reportVersioning :: (Value Prelude.Text),
+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cur-reportdefinition.html#cfn-cur-reportdefinition-s3bucket>
+                      s3Bucket :: (Value Prelude.Text),
+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cur-reportdefinition.html#cfn-cur-reportdefinition-s3prefix>
+                      s3Prefix :: (Value Prelude.Text),
+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cur-reportdefinition.html#cfn-cur-reportdefinition-s3region>
+                      s3Region :: (Value Prelude.Text),
+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cur-reportdefinition.html#cfn-cur-reportdefinition-tags>
+                      tags :: (Prelude.Maybe [Tag]),
+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cur-reportdefinition.html#cfn-cur-reportdefinition-timeunit>
+                      timeUnit :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkReportDefinition ::
+  Value Prelude.Text
+  -> Value Prelude.Text
+     -> Value Prelude.Bool
+        -> Value Prelude.Text
+           -> Value Prelude.Text
+              -> Value Prelude.Text
+                 -> Value Prelude.Text
+                    -> Value Prelude.Text -> Value Prelude.Text -> ReportDefinition
+mkReportDefinition
+  compression
+  format
+  refreshClosedReports
+  reportName
+  reportVersioning
+  s3Bucket
+  s3Prefix
+  s3Region
+  timeUnit
+  = ReportDefinition
+      {haddock_workaround_ = (), compression = compression,
+       format = format, refreshClosedReports = refreshClosedReports,
+       reportName = reportName, reportVersioning = reportVersioning,
+       s3Bucket = s3Bucket, s3Prefix = s3Prefix, s3Region = s3Region,
+       timeUnit = timeUnit, additionalArtifacts = Prelude.Nothing,
+       additionalSchemaElements = Prelude.Nothing,
+       billingViewArn = Prelude.Nothing, tags = Prelude.Nothing}
+instance ToResourceProperties ReportDefinition where
+  toResourceProperties ReportDefinition {..}
+    = ResourceProperties
+        {awsType = "AWS::CUR::ReportDefinition",
+         supportsTags = Prelude.True,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["Compression" JSON..= compression, "Format" JSON..= format,
+                            "RefreshClosedReports" JSON..= refreshClosedReports,
+                            "ReportName" JSON..= reportName,
+                            "ReportVersioning" JSON..= reportVersioning,
+                            "S3Bucket" JSON..= s3Bucket, "S3Prefix" JSON..= s3Prefix,
+                            "S3Region" JSON..= s3Region, "TimeUnit" JSON..= timeUnit]
+                           (Prelude.catMaybes
+                              [(JSON..=) "AdditionalArtifacts" Prelude.<$> additionalArtifacts,
+                               (JSON..=) "AdditionalSchemaElements"
+                                 Prelude.<$> additionalSchemaElements,
+                               (JSON..=) "BillingViewArn" Prelude.<$> billingViewArn,
+                               (JSON..=) "Tags" Prelude.<$> tags]))}
+instance JSON.ToJSON ReportDefinition where
+  toJSON ReportDefinition {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["Compression" JSON..= compression, "Format" JSON..= format,
+               "RefreshClosedReports" JSON..= refreshClosedReports,
+               "ReportName" JSON..= reportName,
+               "ReportVersioning" JSON..= reportVersioning,
+               "S3Bucket" JSON..= s3Bucket, "S3Prefix" JSON..= s3Prefix,
+               "S3Region" JSON..= s3Region, "TimeUnit" JSON..= timeUnit]
+              (Prelude.catMaybes
+                 [(JSON..=) "AdditionalArtifacts" Prelude.<$> additionalArtifacts,
+                  (JSON..=) "AdditionalSchemaElements"
+                    Prelude.<$> additionalSchemaElements,
+                  (JSON..=) "BillingViewArn" Prelude.<$> billingViewArn,
+                  (JSON..=) "Tags" Prelude.<$> tags])))
+instance Property "AdditionalArtifacts" ReportDefinition where
+  type PropertyType "AdditionalArtifacts" ReportDefinition = ValueList Prelude.Text
+  set newValue ReportDefinition {..}
+    = ReportDefinition
+        {additionalArtifacts = Prelude.pure newValue, ..}
+instance Property "AdditionalSchemaElements" ReportDefinition where
+  type PropertyType "AdditionalSchemaElements" ReportDefinition = ValueList Prelude.Text
+  set newValue ReportDefinition {..}
+    = ReportDefinition
+        {additionalSchemaElements = Prelude.pure newValue, ..}
+instance Property "BillingViewArn" ReportDefinition where
+  type PropertyType "BillingViewArn" ReportDefinition = Value Prelude.Text
+  set newValue ReportDefinition {..}
+    = ReportDefinition {billingViewArn = Prelude.pure newValue, ..}
+instance Property "Compression" ReportDefinition where
+  type PropertyType "Compression" ReportDefinition = Value Prelude.Text
+  set newValue ReportDefinition {..}
+    = ReportDefinition {compression = newValue, ..}
+instance Property "Format" ReportDefinition where
+  type PropertyType "Format" ReportDefinition = Value Prelude.Text
+  set newValue ReportDefinition {..}
+    = ReportDefinition {format = newValue, ..}
+instance Property "RefreshClosedReports" ReportDefinition where
+  type PropertyType "RefreshClosedReports" ReportDefinition = Value Prelude.Bool
+  set newValue ReportDefinition {..}
+    = ReportDefinition {refreshClosedReports = newValue, ..}
+instance Property "ReportName" ReportDefinition where
+  type PropertyType "ReportName" ReportDefinition = Value Prelude.Text
+  set newValue ReportDefinition {..}
+    = ReportDefinition {reportName = newValue, ..}
+instance Property "ReportVersioning" ReportDefinition where
+  type PropertyType "ReportVersioning" ReportDefinition = Value Prelude.Text
+  set newValue ReportDefinition {..}
+    = ReportDefinition {reportVersioning = newValue, ..}
+instance Property "S3Bucket" ReportDefinition where
+  type PropertyType "S3Bucket" ReportDefinition = Value Prelude.Text
+  set newValue ReportDefinition {..}
+    = ReportDefinition {s3Bucket = newValue, ..}
+instance Property "S3Prefix" ReportDefinition where
+  type PropertyType "S3Prefix" ReportDefinition = Value Prelude.Text
+  set newValue ReportDefinition {..}
+    = ReportDefinition {s3Prefix = newValue, ..}
+instance Property "S3Region" ReportDefinition where
+  type PropertyType "S3Region" ReportDefinition = Value Prelude.Text
+  set newValue ReportDefinition {..}
+    = ReportDefinition {s3Region = newValue, ..}
+instance Property "Tags" ReportDefinition where
+  type PropertyType "Tags" ReportDefinition = [Tag]
+  set newValue ReportDefinition {..}
+    = ReportDefinition {tags = Prelude.pure newValue, ..}
+instance Property "TimeUnit" ReportDefinition where
+  type PropertyType "TimeUnit" ReportDefinition = Value Prelude.Text
+  set newValue ReportDefinition {..}
+    = ReportDefinition {timeUnit = newValue, ..}
diff --git a/stratosphere-cur.cabal b/stratosphere-cur.cabal
new file mode 100644
--- /dev/null
+++ b/stratosphere-cur.cabal
@@ -0,0 +1,73 @@
+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-cur
+version:        1.0.0
+synopsis:       Stratosphere integration for AWS CUR.
+description:    Integration into stratosphere to generate resources and properties for AWS CUR
+category:       AWS, Cloud, CUR
+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.CUR.ReportDefinition
+  other-modules:
+      Paths_stratosphere_cur
+  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
