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/BillingConductor/BillingGroup.hs b/gen/Stratosphere/BillingConductor/BillingGroup.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/BillingConductor/BillingGroup.hs
@@ -0,0 +1,88 @@
+module Stratosphere.BillingConductor.BillingGroup (
+        module Exports, BillingGroup(..), mkBillingGroup
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.BillingConductor.BillingGroup.AccountGroupingProperty as Exports
+import {-# SOURCE #-} Stratosphere.BillingConductor.BillingGroup.ComputationPreferenceProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Tag
+import Stratosphere.Value
+data BillingGroup
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-billinggroup.html>
+    BillingGroup {haddock_workaround_ :: (),
+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-billinggroup.html#cfn-billingconductor-billinggroup-accountgrouping>
+                  accountGrouping :: AccountGroupingProperty,
+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-billinggroup.html#cfn-billingconductor-billinggroup-computationpreference>
+                  computationPreference :: ComputationPreferenceProperty,
+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-billinggroup.html#cfn-billingconductor-billinggroup-description>
+                  description :: (Prelude.Maybe (Value Prelude.Text)),
+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-billinggroup.html#cfn-billingconductor-billinggroup-name>
+                  name :: (Value Prelude.Text),
+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-billinggroup.html#cfn-billingconductor-billinggroup-primaryaccountid>
+                  primaryAccountId :: (Value Prelude.Text),
+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-billinggroup.html#cfn-billingconductor-billinggroup-tags>
+                  tags :: (Prelude.Maybe [Tag])}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkBillingGroup ::
+  AccountGroupingProperty
+  -> ComputationPreferenceProperty
+     -> Value Prelude.Text -> Value Prelude.Text -> BillingGroup
+mkBillingGroup
+  accountGrouping
+  computationPreference
+  name
+  primaryAccountId
+  = BillingGroup
+      {haddock_workaround_ = (), accountGrouping = accountGrouping,
+       computationPreference = computationPreference, name = name,
+       primaryAccountId = primaryAccountId, description = Prelude.Nothing,
+       tags = Prelude.Nothing}
+instance ToResourceProperties BillingGroup where
+  toResourceProperties BillingGroup {..}
+    = ResourceProperties
+        {awsType = "AWS::BillingConductor::BillingGroup",
+         supportsTags = Prelude.True,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["AccountGrouping" JSON..= accountGrouping,
+                            "ComputationPreference" JSON..= computationPreference,
+                            "Name" JSON..= name, "PrimaryAccountId" JSON..= primaryAccountId]
+                           (Prelude.catMaybes
+                              [(JSON..=) "Description" Prelude.<$> description,
+                               (JSON..=) "Tags" Prelude.<$> tags]))}
+instance JSON.ToJSON BillingGroup where
+  toJSON BillingGroup {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["AccountGrouping" JSON..= accountGrouping,
+               "ComputationPreference" JSON..= computationPreference,
+               "Name" JSON..= name, "PrimaryAccountId" JSON..= primaryAccountId]
+              (Prelude.catMaybes
+                 [(JSON..=) "Description" Prelude.<$> description,
+                  (JSON..=) "Tags" Prelude.<$> tags])))
+instance Property "AccountGrouping" BillingGroup where
+  type PropertyType "AccountGrouping" BillingGroup = AccountGroupingProperty
+  set newValue BillingGroup {..}
+    = BillingGroup {accountGrouping = newValue, ..}
+instance Property "ComputationPreference" BillingGroup where
+  type PropertyType "ComputationPreference" BillingGroup = ComputationPreferenceProperty
+  set newValue BillingGroup {..}
+    = BillingGroup {computationPreference = newValue, ..}
+instance Property "Description" BillingGroup where
+  type PropertyType "Description" BillingGroup = Value Prelude.Text
+  set newValue BillingGroup {..}
+    = BillingGroup {description = Prelude.pure newValue, ..}
+instance Property "Name" BillingGroup where
+  type PropertyType "Name" BillingGroup = Value Prelude.Text
+  set newValue BillingGroup {..} = BillingGroup {name = newValue, ..}
+instance Property "PrimaryAccountId" BillingGroup where
+  type PropertyType "PrimaryAccountId" BillingGroup = Value Prelude.Text
+  set newValue BillingGroup {..}
+    = BillingGroup {primaryAccountId = newValue, ..}
+instance Property "Tags" BillingGroup where
+  type PropertyType "Tags" BillingGroup = [Tag]
+  set newValue BillingGroup {..}
+    = BillingGroup {tags = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/BillingConductor/BillingGroup/AccountGroupingProperty.hs b/gen/Stratosphere/BillingConductor/BillingGroup/AccountGroupingProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/BillingConductor/BillingGroup/AccountGroupingProperty.hs
@@ -0,0 +1,49 @@
+module Stratosphere.BillingConductor.BillingGroup.AccountGroupingProperty (
+        AccountGroupingProperty(..), mkAccountGroupingProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data AccountGroupingProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-billinggroup-accountgrouping.html>
+    AccountGroupingProperty {haddock_workaround_ :: (),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-billinggroup-accountgrouping.html#cfn-billingconductor-billinggroup-accountgrouping-autoassociate>
+                             autoAssociate :: (Prelude.Maybe (Value Prelude.Bool)),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-billinggroup-accountgrouping.html#cfn-billingconductor-billinggroup-accountgrouping-linkedaccountids>
+                             linkedAccountIds :: (ValueList Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkAccountGroupingProperty ::
+  ValueList Prelude.Text -> AccountGroupingProperty
+mkAccountGroupingProperty linkedAccountIds
+  = AccountGroupingProperty
+      {haddock_workaround_ = (), linkedAccountIds = linkedAccountIds,
+       autoAssociate = Prelude.Nothing}
+instance ToResourceProperties AccountGroupingProperty where
+  toResourceProperties AccountGroupingProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::BillingConductor::BillingGroup.AccountGrouping",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["LinkedAccountIds" JSON..= linkedAccountIds]
+                           (Prelude.catMaybes
+                              [(JSON..=) "AutoAssociate" Prelude.<$> autoAssociate]))}
+instance JSON.ToJSON AccountGroupingProperty where
+  toJSON AccountGroupingProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["LinkedAccountIds" JSON..= linkedAccountIds]
+              (Prelude.catMaybes
+                 [(JSON..=) "AutoAssociate" Prelude.<$> autoAssociate])))
+instance Property "AutoAssociate" AccountGroupingProperty where
+  type PropertyType "AutoAssociate" AccountGroupingProperty = Value Prelude.Bool
+  set newValue AccountGroupingProperty {..}
+    = AccountGroupingProperty
+        {autoAssociate = Prelude.pure newValue, ..}
+instance Property "LinkedAccountIds" AccountGroupingProperty where
+  type PropertyType "LinkedAccountIds" AccountGroupingProperty = ValueList Prelude.Text
+  set newValue AccountGroupingProperty {..}
+    = AccountGroupingProperty {linkedAccountIds = newValue, ..}
diff --git a/gen/Stratosphere/BillingConductor/BillingGroup/AccountGroupingProperty.hs-boot b/gen/Stratosphere/BillingConductor/BillingGroup/AccountGroupingProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/BillingConductor/BillingGroup/AccountGroupingProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.BillingConductor.BillingGroup.AccountGroupingProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data AccountGroupingProperty :: Prelude.Type
+instance ToResourceProperties AccountGroupingProperty
+instance Prelude.Eq AccountGroupingProperty
+instance Prelude.Show AccountGroupingProperty
+instance JSON.ToJSON AccountGroupingProperty
diff --git a/gen/Stratosphere/BillingConductor/BillingGroup/ComputationPreferenceProperty.hs b/gen/Stratosphere/BillingConductor/BillingGroup/ComputationPreferenceProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/BillingConductor/BillingGroup/ComputationPreferenceProperty.hs
@@ -0,0 +1,32 @@
+module Stratosphere.BillingConductor.BillingGroup.ComputationPreferenceProperty (
+        ComputationPreferenceProperty(..), mkComputationPreferenceProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data ComputationPreferenceProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-billinggroup-computationpreference.html>
+    ComputationPreferenceProperty {haddock_workaround_ :: (),
+                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-billinggroup-computationpreference.html#cfn-billingconductor-billinggroup-computationpreference-pricingplanarn>
+                                   pricingPlanArn :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkComputationPreferenceProperty ::
+  Value Prelude.Text -> ComputationPreferenceProperty
+mkComputationPreferenceProperty pricingPlanArn
+  = ComputationPreferenceProperty
+      {haddock_workaround_ = (), pricingPlanArn = pricingPlanArn}
+instance ToResourceProperties ComputationPreferenceProperty where
+  toResourceProperties ComputationPreferenceProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::BillingConductor::BillingGroup.ComputationPreference",
+         supportsTags = Prelude.False,
+         properties = ["PricingPlanArn" JSON..= pricingPlanArn]}
+instance JSON.ToJSON ComputationPreferenceProperty where
+  toJSON ComputationPreferenceProperty {..}
+    = JSON.object ["PricingPlanArn" JSON..= pricingPlanArn]
+instance Property "PricingPlanArn" ComputationPreferenceProperty where
+  type PropertyType "PricingPlanArn" ComputationPreferenceProperty = Value Prelude.Text
+  set newValue ComputationPreferenceProperty {..}
+    = ComputationPreferenceProperty {pricingPlanArn = newValue, ..}
diff --git a/gen/Stratosphere/BillingConductor/BillingGroup/ComputationPreferenceProperty.hs-boot b/gen/Stratosphere/BillingConductor/BillingGroup/ComputationPreferenceProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/BillingConductor/BillingGroup/ComputationPreferenceProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.BillingConductor.BillingGroup.ComputationPreferenceProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data ComputationPreferenceProperty :: Prelude.Type
+instance ToResourceProperties ComputationPreferenceProperty
+instance Prelude.Eq ComputationPreferenceProperty
+instance Prelude.Show ComputationPreferenceProperty
+instance JSON.ToJSON ComputationPreferenceProperty
diff --git a/gen/Stratosphere/BillingConductor/CustomLineItem.hs b/gen/Stratosphere/BillingConductor/CustomLineItem.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/BillingConductor/CustomLineItem.hs
@@ -0,0 +1,114 @@
+module Stratosphere.BillingConductor.CustomLineItem (
+        module Exports, CustomLineItem(..), mkCustomLineItem
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.BillingConductor.CustomLineItem.BillingPeriodRangeProperty as Exports
+import {-# SOURCE #-} Stratosphere.BillingConductor.CustomLineItem.CustomLineItemChargeDetailsProperty as Exports
+import {-# SOURCE #-} Stratosphere.BillingConductor.CustomLineItem.PresentationDetailsProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Tag
+import Stratosphere.Value
+data CustomLineItem
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-customlineitem.html>
+    CustomLineItem {haddock_workaround_ :: (),
+                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-customlineitem.html#cfn-billingconductor-customlineitem-accountid>
+                    accountId :: (Prelude.Maybe (Value Prelude.Text)),
+                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-customlineitem.html#cfn-billingconductor-customlineitem-billinggrouparn>
+                    billingGroupArn :: (Value Prelude.Text),
+                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-customlineitem.html#cfn-billingconductor-customlineitem-billingperiodrange>
+                    billingPeriodRange :: (Prelude.Maybe BillingPeriodRangeProperty),
+                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-customlineitem.html#cfn-billingconductor-customlineitem-computationrule>
+                    computationRule :: (Prelude.Maybe (Value Prelude.Text)),
+                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-customlineitem.html#cfn-billingconductor-customlineitem-customlineitemchargedetails>
+                    customLineItemChargeDetails :: (Prelude.Maybe CustomLineItemChargeDetailsProperty),
+                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-customlineitem.html#cfn-billingconductor-customlineitem-description>
+                    description :: (Prelude.Maybe (Value Prelude.Text)),
+                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-customlineitem.html#cfn-billingconductor-customlineitem-name>
+                    name :: (Value Prelude.Text),
+                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-customlineitem.html#cfn-billingconductor-customlineitem-presentationdetails>
+                    presentationDetails :: (Prelude.Maybe PresentationDetailsProperty),
+                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-customlineitem.html#cfn-billingconductor-customlineitem-tags>
+                    tags :: (Prelude.Maybe [Tag])}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkCustomLineItem ::
+  Value Prelude.Text -> Value Prelude.Text -> CustomLineItem
+mkCustomLineItem billingGroupArn name
+  = CustomLineItem
+      {haddock_workaround_ = (), billingGroupArn = billingGroupArn,
+       name = name, accountId = Prelude.Nothing,
+       billingPeriodRange = Prelude.Nothing,
+       computationRule = Prelude.Nothing,
+       customLineItemChargeDetails = Prelude.Nothing,
+       description = Prelude.Nothing,
+       presentationDetails = Prelude.Nothing, tags = Prelude.Nothing}
+instance ToResourceProperties CustomLineItem where
+  toResourceProperties CustomLineItem {..}
+    = ResourceProperties
+        {awsType = "AWS::BillingConductor::CustomLineItem",
+         supportsTags = Prelude.True,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["BillingGroupArn" JSON..= billingGroupArn, "Name" JSON..= name]
+                           (Prelude.catMaybes
+                              [(JSON..=) "AccountId" Prelude.<$> accountId,
+                               (JSON..=) "BillingPeriodRange" Prelude.<$> billingPeriodRange,
+                               (JSON..=) "ComputationRule" Prelude.<$> computationRule,
+                               (JSON..=) "CustomLineItemChargeDetails"
+                                 Prelude.<$> customLineItemChargeDetails,
+                               (JSON..=) "Description" Prelude.<$> description,
+                               (JSON..=) "PresentationDetails" Prelude.<$> presentationDetails,
+                               (JSON..=) "Tags" Prelude.<$> tags]))}
+instance JSON.ToJSON CustomLineItem where
+  toJSON CustomLineItem {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["BillingGroupArn" JSON..= billingGroupArn, "Name" JSON..= name]
+              (Prelude.catMaybes
+                 [(JSON..=) "AccountId" Prelude.<$> accountId,
+                  (JSON..=) "BillingPeriodRange" Prelude.<$> billingPeriodRange,
+                  (JSON..=) "ComputationRule" Prelude.<$> computationRule,
+                  (JSON..=) "CustomLineItemChargeDetails"
+                    Prelude.<$> customLineItemChargeDetails,
+                  (JSON..=) "Description" Prelude.<$> description,
+                  (JSON..=) "PresentationDetails" Prelude.<$> presentationDetails,
+                  (JSON..=) "Tags" Prelude.<$> tags])))
+instance Property "AccountId" CustomLineItem where
+  type PropertyType "AccountId" CustomLineItem = Value Prelude.Text
+  set newValue CustomLineItem {..}
+    = CustomLineItem {accountId = Prelude.pure newValue, ..}
+instance Property "BillingGroupArn" CustomLineItem where
+  type PropertyType "BillingGroupArn" CustomLineItem = Value Prelude.Text
+  set newValue CustomLineItem {..}
+    = CustomLineItem {billingGroupArn = newValue, ..}
+instance Property "BillingPeriodRange" CustomLineItem where
+  type PropertyType "BillingPeriodRange" CustomLineItem = BillingPeriodRangeProperty
+  set newValue CustomLineItem {..}
+    = CustomLineItem {billingPeriodRange = Prelude.pure newValue, ..}
+instance Property "ComputationRule" CustomLineItem where
+  type PropertyType "ComputationRule" CustomLineItem = Value Prelude.Text
+  set newValue CustomLineItem {..}
+    = CustomLineItem {computationRule = Prelude.pure newValue, ..}
+instance Property "CustomLineItemChargeDetails" CustomLineItem where
+  type PropertyType "CustomLineItemChargeDetails" CustomLineItem = CustomLineItemChargeDetailsProperty
+  set newValue CustomLineItem {..}
+    = CustomLineItem
+        {customLineItemChargeDetails = Prelude.pure newValue, ..}
+instance Property "Description" CustomLineItem where
+  type PropertyType "Description" CustomLineItem = Value Prelude.Text
+  set newValue CustomLineItem {..}
+    = CustomLineItem {description = Prelude.pure newValue, ..}
+instance Property "Name" CustomLineItem where
+  type PropertyType "Name" CustomLineItem = Value Prelude.Text
+  set newValue CustomLineItem {..}
+    = CustomLineItem {name = newValue, ..}
+instance Property "PresentationDetails" CustomLineItem where
+  type PropertyType "PresentationDetails" CustomLineItem = PresentationDetailsProperty
+  set newValue CustomLineItem {..}
+    = CustomLineItem {presentationDetails = Prelude.pure newValue, ..}
+instance Property "Tags" CustomLineItem where
+  type PropertyType "Tags" CustomLineItem = [Tag]
+  set newValue CustomLineItem {..}
+    = CustomLineItem {tags = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/BillingConductor/CustomLineItem/BillingPeriodRangeProperty.hs b/gen/Stratosphere/BillingConductor/CustomLineItem/BillingPeriodRangeProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/BillingConductor/CustomLineItem/BillingPeriodRangeProperty.hs
@@ -0,0 +1,52 @@
+module Stratosphere.BillingConductor.CustomLineItem.BillingPeriodRangeProperty (
+        BillingPeriodRangeProperty(..), mkBillingPeriodRangeProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data BillingPeriodRangeProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-billingperiodrange.html>
+    BillingPeriodRangeProperty {haddock_workaround_ :: (),
+                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-billingperiodrange.html#cfn-billingconductor-customlineitem-billingperiodrange-exclusiveendbillingperiod>
+                                exclusiveEndBillingPeriod :: (Prelude.Maybe (Value Prelude.Text)),
+                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-billingperiodrange.html#cfn-billingconductor-customlineitem-billingperiodrange-inclusivestartbillingperiod>
+                                inclusiveStartBillingPeriod :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkBillingPeriodRangeProperty :: BillingPeriodRangeProperty
+mkBillingPeriodRangeProperty
+  = BillingPeriodRangeProperty
+      {haddock_workaround_ = (),
+       exclusiveEndBillingPeriod = Prelude.Nothing,
+       inclusiveStartBillingPeriod = Prelude.Nothing}
+instance ToResourceProperties BillingPeriodRangeProperty where
+  toResourceProperties BillingPeriodRangeProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::BillingConductor::CustomLineItem.BillingPeriodRange",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "ExclusiveEndBillingPeriod"
+                              Prelude.<$> exclusiveEndBillingPeriod,
+                            (JSON..=) "InclusiveStartBillingPeriod"
+                              Prelude.<$> inclusiveStartBillingPeriod])}
+instance JSON.ToJSON BillingPeriodRangeProperty where
+  toJSON BillingPeriodRangeProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "ExclusiveEndBillingPeriod"
+                 Prelude.<$> exclusiveEndBillingPeriod,
+               (JSON..=) "InclusiveStartBillingPeriod"
+                 Prelude.<$> inclusiveStartBillingPeriod]))
+instance Property "ExclusiveEndBillingPeriod" BillingPeriodRangeProperty where
+  type PropertyType "ExclusiveEndBillingPeriod" BillingPeriodRangeProperty = Value Prelude.Text
+  set newValue BillingPeriodRangeProperty {..}
+    = BillingPeriodRangeProperty
+        {exclusiveEndBillingPeriod = Prelude.pure newValue, ..}
+instance Property "InclusiveStartBillingPeriod" BillingPeriodRangeProperty where
+  type PropertyType "InclusiveStartBillingPeriod" BillingPeriodRangeProperty = Value Prelude.Text
+  set newValue BillingPeriodRangeProperty {..}
+    = BillingPeriodRangeProperty
+        {inclusiveStartBillingPeriod = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/BillingConductor/CustomLineItem/BillingPeriodRangeProperty.hs-boot b/gen/Stratosphere/BillingConductor/CustomLineItem/BillingPeriodRangeProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/BillingConductor/CustomLineItem/BillingPeriodRangeProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.BillingConductor.CustomLineItem.BillingPeriodRangeProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data BillingPeriodRangeProperty :: Prelude.Type
+instance ToResourceProperties BillingPeriodRangeProperty
+instance Prelude.Eq BillingPeriodRangeProperty
+instance Prelude.Show BillingPeriodRangeProperty
+instance JSON.ToJSON BillingPeriodRangeProperty
diff --git a/gen/Stratosphere/BillingConductor/CustomLineItem/CustomLineItemChargeDetailsProperty.hs b/gen/Stratosphere/BillingConductor/CustomLineItem/CustomLineItemChargeDetailsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/BillingConductor/CustomLineItem/CustomLineItemChargeDetailsProperty.hs
@@ -0,0 +1,71 @@
+module Stratosphere.BillingConductor.CustomLineItem.CustomLineItemChargeDetailsProperty (
+        module Exports, CustomLineItemChargeDetailsProperty(..),
+        mkCustomLineItemChargeDetailsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.BillingConductor.CustomLineItem.CustomLineItemFlatChargeDetailsProperty as Exports
+import {-# SOURCE #-} Stratosphere.BillingConductor.CustomLineItem.CustomLineItemPercentageChargeDetailsProperty as Exports
+import {-# SOURCE #-} Stratosphere.BillingConductor.CustomLineItem.LineItemFilterProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data CustomLineItemChargeDetailsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-customlineitemchargedetails.html>
+    CustomLineItemChargeDetailsProperty {haddock_workaround_ :: (),
+                                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-customlineitemchargedetails.html#cfn-billingconductor-customlineitem-customlineitemchargedetails-flat>
+                                         flat :: (Prelude.Maybe CustomLineItemFlatChargeDetailsProperty),
+                                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-customlineitemchargedetails.html#cfn-billingconductor-customlineitem-customlineitemchargedetails-lineitemfilters>
+                                         lineItemFilters :: (Prelude.Maybe [LineItemFilterProperty]),
+                                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-customlineitemchargedetails.html#cfn-billingconductor-customlineitem-customlineitemchargedetails-percentage>
+                                         percentage :: (Prelude.Maybe CustomLineItemPercentageChargeDetailsProperty),
+                                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-customlineitemchargedetails.html#cfn-billingconductor-customlineitem-customlineitemchargedetails-type>
+                                         type' :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkCustomLineItemChargeDetailsProperty ::
+  Value Prelude.Text -> CustomLineItemChargeDetailsProperty
+mkCustomLineItemChargeDetailsProperty type'
+  = CustomLineItemChargeDetailsProperty
+      {haddock_workaround_ = (), type' = type', flat = Prelude.Nothing,
+       lineItemFilters = Prelude.Nothing, percentage = Prelude.Nothing}
+instance ToResourceProperties CustomLineItemChargeDetailsProperty where
+  toResourceProperties CustomLineItemChargeDetailsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::BillingConductor::CustomLineItem.CustomLineItemChargeDetails",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["Type" JSON..= type']
+                           (Prelude.catMaybes
+                              [(JSON..=) "Flat" Prelude.<$> flat,
+                               (JSON..=) "LineItemFilters" Prelude.<$> lineItemFilters,
+                               (JSON..=) "Percentage" Prelude.<$> percentage]))}
+instance JSON.ToJSON CustomLineItemChargeDetailsProperty where
+  toJSON CustomLineItemChargeDetailsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["Type" JSON..= type']
+              (Prelude.catMaybes
+                 [(JSON..=) "Flat" Prelude.<$> flat,
+                  (JSON..=) "LineItemFilters" Prelude.<$> lineItemFilters,
+                  (JSON..=) "Percentage" Prelude.<$> percentage])))
+instance Property "Flat" CustomLineItemChargeDetailsProperty where
+  type PropertyType "Flat" CustomLineItemChargeDetailsProperty = CustomLineItemFlatChargeDetailsProperty
+  set newValue CustomLineItemChargeDetailsProperty {..}
+    = CustomLineItemChargeDetailsProperty
+        {flat = Prelude.pure newValue, ..}
+instance Property "LineItemFilters" CustomLineItemChargeDetailsProperty where
+  type PropertyType "LineItemFilters" CustomLineItemChargeDetailsProperty = [LineItemFilterProperty]
+  set newValue CustomLineItemChargeDetailsProperty {..}
+    = CustomLineItemChargeDetailsProperty
+        {lineItemFilters = Prelude.pure newValue, ..}
+instance Property "Percentage" CustomLineItemChargeDetailsProperty where
+  type PropertyType "Percentage" CustomLineItemChargeDetailsProperty = CustomLineItemPercentageChargeDetailsProperty
+  set newValue CustomLineItemChargeDetailsProperty {..}
+    = CustomLineItemChargeDetailsProperty
+        {percentage = Prelude.pure newValue, ..}
+instance Property "Type" CustomLineItemChargeDetailsProperty where
+  type PropertyType "Type" CustomLineItemChargeDetailsProperty = Value Prelude.Text
+  set newValue CustomLineItemChargeDetailsProperty {..}
+    = CustomLineItemChargeDetailsProperty {type' = newValue, ..}
diff --git a/gen/Stratosphere/BillingConductor/CustomLineItem/CustomLineItemChargeDetailsProperty.hs-boot b/gen/Stratosphere/BillingConductor/CustomLineItem/CustomLineItemChargeDetailsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/BillingConductor/CustomLineItem/CustomLineItemChargeDetailsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.BillingConductor.CustomLineItem.CustomLineItemChargeDetailsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data CustomLineItemChargeDetailsProperty :: Prelude.Type
+instance ToResourceProperties CustomLineItemChargeDetailsProperty
+instance Prelude.Eq CustomLineItemChargeDetailsProperty
+instance Prelude.Show CustomLineItemChargeDetailsProperty
+instance JSON.ToJSON CustomLineItemChargeDetailsProperty
diff --git a/gen/Stratosphere/BillingConductor/CustomLineItem/CustomLineItemFlatChargeDetailsProperty.hs b/gen/Stratosphere/BillingConductor/CustomLineItem/CustomLineItemFlatChargeDetailsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/BillingConductor/CustomLineItem/CustomLineItemFlatChargeDetailsProperty.hs
@@ -0,0 +1,34 @@
+module Stratosphere.BillingConductor.CustomLineItem.CustomLineItemFlatChargeDetailsProperty (
+        CustomLineItemFlatChargeDetailsProperty(..),
+        mkCustomLineItemFlatChargeDetailsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data CustomLineItemFlatChargeDetailsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-customlineitemflatchargedetails.html>
+    CustomLineItemFlatChargeDetailsProperty {haddock_workaround_ :: (),
+                                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-customlineitemflatchargedetails.html#cfn-billingconductor-customlineitem-customlineitemflatchargedetails-chargevalue>
+                                             chargeValue :: (Value Prelude.Double)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkCustomLineItemFlatChargeDetailsProperty ::
+  Value Prelude.Double -> CustomLineItemFlatChargeDetailsProperty
+mkCustomLineItemFlatChargeDetailsProperty chargeValue
+  = CustomLineItemFlatChargeDetailsProperty
+      {haddock_workaround_ = (), chargeValue = chargeValue}
+instance ToResourceProperties CustomLineItemFlatChargeDetailsProperty where
+  toResourceProperties CustomLineItemFlatChargeDetailsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::BillingConductor::CustomLineItem.CustomLineItemFlatChargeDetails",
+         supportsTags = Prelude.False,
+         properties = ["ChargeValue" JSON..= chargeValue]}
+instance JSON.ToJSON CustomLineItemFlatChargeDetailsProperty where
+  toJSON CustomLineItemFlatChargeDetailsProperty {..}
+    = JSON.object ["ChargeValue" JSON..= chargeValue]
+instance Property "ChargeValue" CustomLineItemFlatChargeDetailsProperty where
+  type PropertyType "ChargeValue" CustomLineItemFlatChargeDetailsProperty = Value Prelude.Double
+  set newValue CustomLineItemFlatChargeDetailsProperty {..}
+    = CustomLineItemFlatChargeDetailsProperty
+        {chargeValue = newValue, ..}
diff --git a/gen/Stratosphere/BillingConductor/CustomLineItem/CustomLineItemFlatChargeDetailsProperty.hs-boot b/gen/Stratosphere/BillingConductor/CustomLineItem/CustomLineItemFlatChargeDetailsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/BillingConductor/CustomLineItem/CustomLineItemFlatChargeDetailsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.BillingConductor.CustomLineItem.CustomLineItemFlatChargeDetailsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data CustomLineItemFlatChargeDetailsProperty :: Prelude.Type
+instance ToResourceProperties CustomLineItemFlatChargeDetailsProperty
+instance Prelude.Eq CustomLineItemFlatChargeDetailsProperty
+instance Prelude.Show CustomLineItemFlatChargeDetailsProperty
+instance JSON.ToJSON CustomLineItemFlatChargeDetailsProperty
diff --git a/gen/Stratosphere/BillingConductor/CustomLineItem/CustomLineItemPercentageChargeDetailsProperty.hs b/gen/Stratosphere/BillingConductor/CustomLineItem/CustomLineItemPercentageChargeDetailsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/BillingConductor/CustomLineItem/CustomLineItemPercentageChargeDetailsProperty.hs
@@ -0,0 +1,55 @@
+module Stratosphere.BillingConductor.CustomLineItem.CustomLineItemPercentageChargeDetailsProperty (
+        CustomLineItemPercentageChargeDetailsProperty(..),
+        mkCustomLineItemPercentageChargeDetailsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data CustomLineItemPercentageChargeDetailsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-customlineitempercentagechargedetails.html>
+    CustomLineItemPercentageChargeDetailsProperty {haddock_workaround_ :: (),
+                                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-customlineitempercentagechargedetails.html#cfn-billingconductor-customlineitem-customlineitempercentagechargedetails-childassociatedresources>
+                                                   childAssociatedResources :: (Prelude.Maybe (ValueList Prelude.Text)),
+                                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-customlineitempercentagechargedetails.html#cfn-billingconductor-customlineitem-customlineitempercentagechargedetails-percentagevalue>
+                                                   percentageValue :: (Value Prelude.Double)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkCustomLineItemPercentageChargeDetailsProperty ::
+  Value Prelude.Double
+  -> CustomLineItemPercentageChargeDetailsProperty
+mkCustomLineItemPercentageChargeDetailsProperty percentageValue
+  = CustomLineItemPercentageChargeDetailsProperty
+      {haddock_workaround_ = (), percentageValue = percentageValue,
+       childAssociatedResources = Prelude.Nothing}
+instance ToResourceProperties CustomLineItemPercentageChargeDetailsProperty where
+  toResourceProperties
+    CustomLineItemPercentageChargeDetailsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::BillingConductor::CustomLineItem.CustomLineItemPercentageChargeDetails",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["PercentageValue" JSON..= percentageValue]
+                           (Prelude.catMaybes
+                              [(JSON..=) "ChildAssociatedResources"
+                                 Prelude.<$> childAssociatedResources]))}
+instance JSON.ToJSON CustomLineItemPercentageChargeDetailsProperty where
+  toJSON CustomLineItemPercentageChargeDetailsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["PercentageValue" JSON..= percentageValue]
+              (Prelude.catMaybes
+                 [(JSON..=) "ChildAssociatedResources"
+                    Prelude.<$> childAssociatedResources])))
+instance Property "ChildAssociatedResources" CustomLineItemPercentageChargeDetailsProperty where
+  type PropertyType "ChildAssociatedResources" CustomLineItemPercentageChargeDetailsProperty = ValueList Prelude.Text
+  set newValue CustomLineItemPercentageChargeDetailsProperty {..}
+    = CustomLineItemPercentageChargeDetailsProperty
+        {childAssociatedResources = Prelude.pure newValue, ..}
+instance Property "PercentageValue" CustomLineItemPercentageChargeDetailsProperty where
+  type PropertyType "PercentageValue" CustomLineItemPercentageChargeDetailsProperty = Value Prelude.Double
+  set newValue CustomLineItemPercentageChargeDetailsProperty {..}
+    = CustomLineItemPercentageChargeDetailsProperty
+        {percentageValue = newValue, ..}
diff --git a/gen/Stratosphere/BillingConductor/CustomLineItem/CustomLineItemPercentageChargeDetailsProperty.hs-boot b/gen/Stratosphere/BillingConductor/CustomLineItem/CustomLineItemPercentageChargeDetailsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/BillingConductor/CustomLineItem/CustomLineItemPercentageChargeDetailsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.BillingConductor.CustomLineItem.CustomLineItemPercentageChargeDetailsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data CustomLineItemPercentageChargeDetailsProperty :: Prelude.Type
+instance ToResourceProperties CustomLineItemPercentageChargeDetailsProperty
+instance Prelude.Eq CustomLineItemPercentageChargeDetailsProperty
+instance Prelude.Show CustomLineItemPercentageChargeDetailsProperty
+instance JSON.ToJSON CustomLineItemPercentageChargeDetailsProperty
diff --git a/gen/Stratosphere/BillingConductor/CustomLineItem/LineItemFilterProperty.hs b/gen/Stratosphere/BillingConductor/CustomLineItem/LineItemFilterProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/BillingConductor/CustomLineItem/LineItemFilterProperty.hs
@@ -0,0 +1,50 @@
+module Stratosphere.BillingConductor.CustomLineItem.LineItemFilterProperty (
+        LineItemFilterProperty(..), mkLineItemFilterProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data LineItemFilterProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-lineitemfilter.html>
+    LineItemFilterProperty {haddock_workaround_ :: (),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-lineitemfilter.html#cfn-billingconductor-customlineitem-lineitemfilter-attribute>
+                            attribute :: (Value Prelude.Text),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-lineitemfilter.html#cfn-billingconductor-customlineitem-lineitemfilter-matchoption>
+                            matchOption :: (Value Prelude.Text),
+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-lineitemfilter.html#cfn-billingconductor-customlineitem-lineitemfilter-values>
+                            values :: (ValueList Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkLineItemFilterProperty ::
+  Value Prelude.Text
+  -> Value Prelude.Text
+     -> ValueList Prelude.Text -> LineItemFilterProperty
+mkLineItemFilterProperty attribute matchOption values
+  = LineItemFilterProperty
+      {haddock_workaround_ = (), attribute = attribute,
+       matchOption = matchOption, values = values}
+instance ToResourceProperties LineItemFilterProperty where
+  toResourceProperties LineItemFilterProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::BillingConductor::CustomLineItem.LineItemFilter",
+         supportsTags = Prelude.False,
+         properties = ["Attribute" JSON..= attribute,
+                       "MatchOption" JSON..= matchOption, "Values" JSON..= values]}
+instance JSON.ToJSON LineItemFilterProperty where
+  toJSON LineItemFilterProperty {..}
+    = JSON.object
+        ["Attribute" JSON..= attribute, "MatchOption" JSON..= matchOption,
+         "Values" JSON..= values]
+instance Property "Attribute" LineItemFilterProperty where
+  type PropertyType "Attribute" LineItemFilterProperty = Value Prelude.Text
+  set newValue LineItemFilterProperty {..}
+    = LineItemFilterProperty {attribute = newValue, ..}
+instance Property "MatchOption" LineItemFilterProperty where
+  type PropertyType "MatchOption" LineItemFilterProperty = Value Prelude.Text
+  set newValue LineItemFilterProperty {..}
+    = LineItemFilterProperty {matchOption = newValue, ..}
+instance Property "Values" LineItemFilterProperty where
+  type PropertyType "Values" LineItemFilterProperty = ValueList Prelude.Text
+  set newValue LineItemFilterProperty {..}
+    = LineItemFilterProperty {values = newValue, ..}
diff --git a/gen/Stratosphere/BillingConductor/CustomLineItem/LineItemFilterProperty.hs-boot b/gen/Stratosphere/BillingConductor/CustomLineItem/LineItemFilterProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/BillingConductor/CustomLineItem/LineItemFilterProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.BillingConductor.CustomLineItem.LineItemFilterProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data LineItemFilterProperty :: Prelude.Type
+instance ToResourceProperties LineItemFilterProperty
+instance Prelude.Eq LineItemFilterProperty
+instance Prelude.Show LineItemFilterProperty
+instance JSON.ToJSON LineItemFilterProperty
diff --git a/gen/Stratosphere/BillingConductor/CustomLineItem/PresentationDetailsProperty.hs b/gen/Stratosphere/BillingConductor/CustomLineItem/PresentationDetailsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/BillingConductor/CustomLineItem/PresentationDetailsProperty.hs
@@ -0,0 +1,32 @@
+module Stratosphere.BillingConductor.CustomLineItem.PresentationDetailsProperty (
+        PresentationDetailsProperty(..), mkPresentationDetailsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data PresentationDetailsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-presentationdetails.html>
+    PresentationDetailsProperty {haddock_workaround_ :: (),
+                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-presentationdetails.html#cfn-billingconductor-customlineitem-presentationdetails-service>
+                                 service :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkPresentationDetailsProperty ::
+  Value Prelude.Text -> PresentationDetailsProperty
+mkPresentationDetailsProperty service
+  = PresentationDetailsProperty
+      {haddock_workaround_ = (), service = service}
+instance ToResourceProperties PresentationDetailsProperty where
+  toResourceProperties PresentationDetailsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::BillingConductor::CustomLineItem.PresentationDetails",
+         supportsTags = Prelude.False,
+         properties = ["Service" JSON..= service]}
+instance JSON.ToJSON PresentationDetailsProperty where
+  toJSON PresentationDetailsProperty {..}
+    = JSON.object ["Service" JSON..= service]
+instance Property "Service" PresentationDetailsProperty where
+  type PropertyType "Service" PresentationDetailsProperty = Value Prelude.Text
+  set newValue PresentationDetailsProperty {..}
+    = PresentationDetailsProperty {service = newValue, ..}
diff --git a/gen/Stratosphere/BillingConductor/CustomLineItem/PresentationDetailsProperty.hs-boot b/gen/Stratosphere/BillingConductor/CustomLineItem/PresentationDetailsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/BillingConductor/CustomLineItem/PresentationDetailsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.BillingConductor.CustomLineItem.PresentationDetailsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data PresentationDetailsProperty :: Prelude.Type
+instance ToResourceProperties PresentationDetailsProperty
+instance Prelude.Eq PresentationDetailsProperty
+instance Prelude.Show PresentationDetailsProperty
+instance JSON.ToJSON PresentationDetailsProperty
diff --git a/gen/Stratosphere/BillingConductor/PricingPlan.hs b/gen/Stratosphere/BillingConductor/PricingPlan.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/BillingConductor/PricingPlan.hs
@@ -0,0 +1,64 @@
+module Stratosphere.BillingConductor.PricingPlan (
+        PricingPlan(..), mkPricingPlan
+    ) 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 PricingPlan
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingplan.html>
+    PricingPlan {haddock_workaround_ :: (),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingplan.html#cfn-billingconductor-pricingplan-description>
+                 description :: (Prelude.Maybe (Value Prelude.Text)),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingplan.html#cfn-billingconductor-pricingplan-name>
+                 name :: (Value Prelude.Text),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingplan.html#cfn-billingconductor-pricingplan-pricingrulearns>
+                 pricingRuleArns :: (Prelude.Maybe (ValueList Prelude.Text)),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingplan.html#cfn-billingconductor-pricingplan-tags>
+                 tags :: (Prelude.Maybe [Tag])}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkPricingPlan :: Value Prelude.Text -> PricingPlan
+mkPricingPlan name
+  = PricingPlan
+      {haddock_workaround_ = (), name = name,
+       description = Prelude.Nothing, pricingRuleArns = Prelude.Nothing,
+       tags = Prelude.Nothing}
+instance ToResourceProperties PricingPlan where
+  toResourceProperties PricingPlan {..}
+    = ResourceProperties
+        {awsType = "AWS::BillingConductor::PricingPlan",
+         supportsTags = Prelude.True,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["Name" JSON..= name]
+                           (Prelude.catMaybes
+                              [(JSON..=) "Description" Prelude.<$> description,
+                               (JSON..=) "PricingRuleArns" Prelude.<$> pricingRuleArns,
+                               (JSON..=) "Tags" Prelude.<$> tags]))}
+instance JSON.ToJSON PricingPlan where
+  toJSON PricingPlan {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["Name" JSON..= name]
+              (Prelude.catMaybes
+                 [(JSON..=) "Description" Prelude.<$> description,
+                  (JSON..=) "PricingRuleArns" Prelude.<$> pricingRuleArns,
+                  (JSON..=) "Tags" Prelude.<$> tags])))
+instance Property "Description" PricingPlan where
+  type PropertyType "Description" PricingPlan = Value Prelude.Text
+  set newValue PricingPlan {..}
+    = PricingPlan {description = Prelude.pure newValue, ..}
+instance Property "Name" PricingPlan where
+  type PropertyType "Name" PricingPlan = Value Prelude.Text
+  set newValue PricingPlan {..} = PricingPlan {name = newValue, ..}
+instance Property "PricingRuleArns" PricingPlan where
+  type PropertyType "PricingRuleArns" PricingPlan = ValueList Prelude.Text
+  set newValue PricingPlan {..}
+    = PricingPlan {pricingRuleArns = Prelude.pure newValue, ..}
+instance Property "Tags" PricingPlan where
+  type PropertyType "Tags" PricingPlan = [Tag]
+  set newValue PricingPlan {..}
+    = PricingPlan {tags = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/BillingConductor/PricingRule.hs b/gen/Stratosphere/BillingConductor/PricingRule.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/BillingConductor/PricingRule.hs
@@ -0,0 +1,120 @@
+module Stratosphere.BillingConductor.PricingRule (
+        module Exports, PricingRule(..), mkPricingRule
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.BillingConductor.PricingRule.TieringProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Tag
+import Stratosphere.Value
+data PricingRule
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingrule.html>
+    PricingRule {haddock_workaround_ :: (),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingrule.html#cfn-billingconductor-pricingrule-billingentity>
+                 billingEntity :: (Prelude.Maybe (Value Prelude.Text)),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingrule.html#cfn-billingconductor-pricingrule-description>
+                 description :: (Prelude.Maybe (Value Prelude.Text)),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingrule.html#cfn-billingconductor-pricingrule-modifierpercentage>
+                 modifierPercentage :: (Prelude.Maybe (Value Prelude.Double)),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingrule.html#cfn-billingconductor-pricingrule-name>
+                 name :: (Value Prelude.Text),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingrule.html#cfn-billingconductor-pricingrule-operation>
+                 operation :: (Prelude.Maybe (Value Prelude.Text)),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingrule.html#cfn-billingconductor-pricingrule-scope>
+                 scope :: (Value Prelude.Text),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingrule.html#cfn-billingconductor-pricingrule-service>
+                 service :: (Prelude.Maybe (Value Prelude.Text)),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingrule.html#cfn-billingconductor-pricingrule-tags>
+                 tags :: (Prelude.Maybe [Tag]),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingrule.html#cfn-billingconductor-pricingrule-tiering>
+                 tiering :: (Prelude.Maybe TieringProperty),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingrule.html#cfn-billingconductor-pricingrule-type>
+                 type' :: (Value Prelude.Text),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingrule.html#cfn-billingconductor-pricingrule-usagetype>
+                 usageType :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkPricingRule ::
+  Value Prelude.Text
+  -> Value Prelude.Text -> Value Prelude.Text -> PricingRule
+mkPricingRule name scope type'
+  = PricingRule
+      {haddock_workaround_ = (), name = name, scope = scope,
+       type' = type', billingEntity = Prelude.Nothing,
+       description = Prelude.Nothing,
+       modifierPercentage = Prelude.Nothing, operation = Prelude.Nothing,
+       service = Prelude.Nothing, tags = Prelude.Nothing,
+       tiering = Prelude.Nothing, usageType = Prelude.Nothing}
+instance ToResourceProperties PricingRule where
+  toResourceProperties PricingRule {..}
+    = ResourceProperties
+        {awsType = "AWS::BillingConductor::PricingRule",
+         supportsTags = Prelude.True,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["Name" JSON..= name, "Scope" JSON..= scope, "Type" JSON..= type']
+                           (Prelude.catMaybes
+                              [(JSON..=) "BillingEntity" Prelude.<$> billingEntity,
+                               (JSON..=) "Description" Prelude.<$> description,
+                               (JSON..=) "ModifierPercentage" Prelude.<$> modifierPercentage,
+                               (JSON..=) "Operation" Prelude.<$> operation,
+                               (JSON..=) "Service" Prelude.<$> service,
+                               (JSON..=) "Tags" Prelude.<$> tags,
+                               (JSON..=) "Tiering" Prelude.<$> tiering,
+                               (JSON..=) "UsageType" Prelude.<$> usageType]))}
+instance JSON.ToJSON PricingRule where
+  toJSON PricingRule {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["Name" JSON..= name, "Scope" JSON..= scope, "Type" JSON..= type']
+              (Prelude.catMaybes
+                 [(JSON..=) "BillingEntity" Prelude.<$> billingEntity,
+                  (JSON..=) "Description" Prelude.<$> description,
+                  (JSON..=) "ModifierPercentage" Prelude.<$> modifierPercentage,
+                  (JSON..=) "Operation" Prelude.<$> operation,
+                  (JSON..=) "Service" Prelude.<$> service,
+                  (JSON..=) "Tags" Prelude.<$> tags,
+                  (JSON..=) "Tiering" Prelude.<$> tiering,
+                  (JSON..=) "UsageType" Prelude.<$> usageType])))
+instance Property "BillingEntity" PricingRule where
+  type PropertyType "BillingEntity" PricingRule = Value Prelude.Text
+  set newValue PricingRule {..}
+    = PricingRule {billingEntity = Prelude.pure newValue, ..}
+instance Property "Description" PricingRule where
+  type PropertyType "Description" PricingRule = Value Prelude.Text
+  set newValue PricingRule {..}
+    = PricingRule {description = Prelude.pure newValue, ..}
+instance Property "ModifierPercentage" PricingRule where
+  type PropertyType "ModifierPercentage" PricingRule = Value Prelude.Double
+  set newValue PricingRule {..}
+    = PricingRule {modifierPercentage = Prelude.pure newValue, ..}
+instance Property "Name" PricingRule where
+  type PropertyType "Name" PricingRule = Value Prelude.Text
+  set newValue PricingRule {..} = PricingRule {name = newValue, ..}
+instance Property "Operation" PricingRule where
+  type PropertyType "Operation" PricingRule = Value Prelude.Text
+  set newValue PricingRule {..}
+    = PricingRule {operation = Prelude.pure newValue, ..}
+instance Property "Scope" PricingRule where
+  type PropertyType "Scope" PricingRule = Value Prelude.Text
+  set newValue PricingRule {..} = PricingRule {scope = newValue, ..}
+instance Property "Service" PricingRule where
+  type PropertyType "Service" PricingRule = Value Prelude.Text
+  set newValue PricingRule {..}
+    = PricingRule {service = Prelude.pure newValue, ..}
+instance Property "Tags" PricingRule where
+  type PropertyType "Tags" PricingRule = [Tag]
+  set newValue PricingRule {..}
+    = PricingRule {tags = Prelude.pure newValue, ..}
+instance Property "Tiering" PricingRule where
+  type PropertyType "Tiering" PricingRule = TieringProperty
+  set newValue PricingRule {..}
+    = PricingRule {tiering = Prelude.pure newValue, ..}
+instance Property "Type" PricingRule where
+  type PropertyType "Type" PricingRule = Value Prelude.Text
+  set newValue PricingRule {..} = PricingRule {type' = newValue, ..}
+instance Property "UsageType" PricingRule where
+  type PropertyType "UsageType" PricingRule = Value Prelude.Text
+  set newValue PricingRule {..}
+    = PricingRule {usageType = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/BillingConductor/PricingRule/FreeTierProperty.hs b/gen/Stratosphere/BillingConductor/PricingRule/FreeTierProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/BillingConductor/PricingRule/FreeTierProperty.hs
@@ -0,0 +1,31 @@
+module Stratosphere.BillingConductor.PricingRule.FreeTierProperty (
+        FreeTierProperty(..), mkFreeTierProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data FreeTierProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-pricingrule-freetier.html>
+    FreeTierProperty {haddock_workaround_ :: (),
+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-pricingrule-freetier.html#cfn-billingconductor-pricingrule-freetier-activated>
+                      activated :: (Value Prelude.Bool)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkFreeTierProperty :: Value Prelude.Bool -> FreeTierProperty
+mkFreeTierProperty activated
+  = FreeTierProperty
+      {haddock_workaround_ = (), activated = activated}
+instance ToResourceProperties FreeTierProperty where
+  toResourceProperties FreeTierProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::BillingConductor::PricingRule.FreeTier",
+         supportsTags = Prelude.False,
+         properties = ["Activated" JSON..= activated]}
+instance JSON.ToJSON FreeTierProperty where
+  toJSON FreeTierProperty {..}
+    = JSON.object ["Activated" JSON..= activated]
+instance Property "Activated" FreeTierProperty where
+  type PropertyType "Activated" FreeTierProperty = Value Prelude.Bool
+  set newValue FreeTierProperty {..}
+    = FreeTierProperty {activated = newValue, ..}
diff --git a/gen/Stratosphere/BillingConductor/PricingRule/FreeTierProperty.hs-boot b/gen/Stratosphere/BillingConductor/PricingRule/FreeTierProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/BillingConductor/PricingRule/FreeTierProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.BillingConductor.PricingRule.FreeTierProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data FreeTierProperty :: Prelude.Type
+instance ToResourceProperties FreeTierProperty
+instance Prelude.Eq FreeTierProperty
+instance Prelude.Show FreeTierProperty
+instance JSON.ToJSON FreeTierProperty
diff --git a/gen/Stratosphere/BillingConductor/PricingRule/TieringProperty.hs b/gen/Stratosphere/BillingConductor/PricingRule/TieringProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/BillingConductor/PricingRule/TieringProperty.hs
@@ -0,0 +1,34 @@
+module Stratosphere.BillingConductor.PricingRule.TieringProperty (
+        module Exports, TieringProperty(..), mkTieringProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.BillingConductor.PricingRule.FreeTierProperty as Exports
+import Stratosphere.ResourceProperties
+data TieringProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-pricingrule-tiering.html>
+    TieringProperty {haddock_workaround_ :: (),
+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-pricingrule-tiering.html#cfn-billingconductor-pricingrule-tiering-freetier>
+                     freeTier :: (Prelude.Maybe FreeTierProperty)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkTieringProperty :: TieringProperty
+mkTieringProperty
+  = TieringProperty
+      {haddock_workaround_ = (), freeTier = Prelude.Nothing}
+instance ToResourceProperties TieringProperty where
+  toResourceProperties TieringProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::BillingConductor::PricingRule.Tiering",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes [(JSON..=) "FreeTier" Prelude.<$> freeTier])}
+instance JSON.ToJSON TieringProperty where
+  toJSON TieringProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes [(JSON..=) "FreeTier" Prelude.<$> freeTier]))
+instance Property "FreeTier" TieringProperty where
+  type PropertyType "FreeTier" TieringProperty = FreeTierProperty
+  set newValue TieringProperty {..}
+    = TieringProperty {freeTier = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/BillingConductor/PricingRule/TieringProperty.hs-boot b/gen/Stratosphere/BillingConductor/PricingRule/TieringProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/BillingConductor/PricingRule/TieringProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.BillingConductor.PricingRule.TieringProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data TieringProperty :: Prelude.Type
+instance ToResourceProperties TieringProperty
+instance Prelude.Eq TieringProperty
+instance Prelude.Show TieringProperty
+instance JSON.ToJSON TieringProperty
diff --git a/stratosphere-billingconductor.cabal b/stratosphere-billingconductor.cabal
new file mode 100644
--- /dev/null
+++ b/stratosphere-billingconductor.cabal
@@ -0,0 +1,86 @@
+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-billingconductor
+version:        1.0.0
+synopsis:       Stratosphere integration for AWS BillingConductor.
+description:    Integration into stratosphere to generate resources and properties for AWS BillingConductor
+category:       AWS, Cloud, BillingConductor
+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.BillingConductor.BillingGroup
+      Stratosphere.BillingConductor.BillingGroup.AccountGroupingProperty
+      Stratosphere.BillingConductor.BillingGroup.ComputationPreferenceProperty
+      Stratosphere.BillingConductor.CustomLineItem
+      Stratosphere.BillingConductor.CustomLineItem.BillingPeriodRangeProperty
+      Stratosphere.BillingConductor.CustomLineItem.CustomLineItemChargeDetailsProperty
+      Stratosphere.BillingConductor.CustomLineItem.CustomLineItemFlatChargeDetailsProperty
+      Stratosphere.BillingConductor.CustomLineItem.CustomLineItemPercentageChargeDetailsProperty
+      Stratosphere.BillingConductor.CustomLineItem.LineItemFilterProperty
+      Stratosphere.BillingConductor.CustomLineItem.PresentationDetailsProperty
+      Stratosphere.BillingConductor.PricingPlan
+      Stratosphere.BillingConductor.PricingRule
+      Stratosphere.BillingConductor.PricingRule.FreeTierProperty
+      Stratosphere.BillingConductor.PricingRule.TieringProperty
+  other-modules:
+      Paths_stratosphere_billingconductor
+  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
