packages feed

stratosphere-budgets-1.0.0: gen/Stratosphere/Budgets/Budget/CostTypesProperty.hs

module Stratosphere.Budgets.Budget.CostTypesProperty (
        CostTypesProperty(..), mkCostTypesProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data CostTypesProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html>
    CostTypesProperty {haddock_workaround_ :: (),
                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-includecredit>
                       includeCredit :: (Prelude.Maybe (Value Prelude.Bool)),
                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-includediscount>
                       includeDiscount :: (Prelude.Maybe (Value Prelude.Bool)),
                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-includeothersubscription>
                       includeOtherSubscription :: (Prelude.Maybe (Value Prelude.Bool)),
                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-includerecurring>
                       includeRecurring :: (Prelude.Maybe (Value Prelude.Bool)),
                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-includerefund>
                       includeRefund :: (Prelude.Maybe (Value Prelude.Bool)),
                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-includesubscription>
                       includeSubscription :: (Prelude.Maybe (Value Prelude.Bool)),
                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-includesupport>
                       includeSupport :: (Prelude.Maybe (Value Prelude.Bool)),
                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-includetax>
                       includeTax :: (Prelude.Maybe (Value Prelude.Bool)),
                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-includeupfront>
                       includeUpfront :: (Prelude.Maybe (Value Prelude.Bool)),
                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-useamortized>
                       useAmortized :: (Prelude.Maybe (Value Prelude.Bool)),
                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-useblended>
                       useBlended :: (Prelude.Maybe (Value Prelude.Bool))}
  deriving stock (Prelude.Eq, Prelude.Show)
mkCostTypesProperty :: CostTypesProperty
mkCostTypesProperty
  = CostTypesProperty
      {haddock_workaround_ = (), includeCredit = Prelude.Nothing,
       includeDiscount = Prelude.Nothing,
       includeOtherSubscription = Prelude.Nothing,
       includeRecurring = Prelude.Nothing,
       includeRefund = Prelude.Nothing,
       includeSubscription = Prelude.Nothing,
       includeSupport = Prelude.Nothing, includeTax = Prelude.Nothing,
       includeUpfront = Prelude.Nothing, useAmortized = Prelude.Nothing,
       useBlended = Prelude.Nothing}
instance ToResourceProperties CostTypesProperty where
  toResourceProperties CostTypesProperty {..}
    = ResourceProperties
        {awsType = "AWS::Budgets::Budget.CostTypes",
         supportsTags = Prelude.False,
         properties = Prelude.fromList
                        (Prelude.catMaybes
                           [(JSON..=) "IncludeCredit" Prelude.<$> includeCredit,
                            (JSON..=) "IncludeDiscount" Prelude.<$> includeDiscount,
                            (JSON..=) "IncludeOtherSubscription"
                              Prelude.<$> includeOtherSubscription,
                            (JSON..=) "IncludeRecurring" Prelude.<$> includeRecurring,
                            (JSON..=) "IncludeRefund" Prelude.<$> includeRefund,
                            (JSON..=) "IncludeSubscription" Prelude.<$> includeSubscription,
                            (JSON..=) "IncludeSupport" Prelude.<$> includeSupport,
                            (JSON..=) "IncludeTax" Prelude.<$> includeTax,
                            (JSON..=) "IncludeUpfront" Prelude.<$> includeUpfront,
                            (JSON..=) "UseAmortized" Prelude.<$> useAmortized,
                            (JSON..=) "UseBlended" Prelude.<$> useBlended])}
instance JSON.ToJSON CostTypesProperty where
  toJSON CostTypesProperty {..}
    = JSON.object
        (Prelude.fromList
           (Prelude.catMaybes
              [(JSON..=) "IncludeCredit" Prelude.<$> includeCredit,
               (JSON..=) "IncludeDiscount" Prelude.<$> includeDiscount,
               (JSON..=) "IncludeOtherSubscription"
                 Prelude.<$> includeOtherSubscription,
               (JSON..=) "IncludeRecurring" Prelude.<$> includeRecurring,
               (JSON..=) "IncludeRefund" Prelude.<$> includeRefund,
               (JSON..=) "IncludeSubscription" Prelude.<$> includeSubscription,
               (JSON..=) "IncludeSupport" Prelude.<$> includeSupport,
               (JSON..=) "IncludeTax" Prelude.<$> includeTax,
               (JSON..=) "IncludeUpfront" Prelude.<$> includeUpfront,
               (JSON..=) "UseAmortized" Prelude.<$> useAmortized,
               (JSON..=) "UseBlended" Prelude.<$> useBlended]))
instance Property "IncludeCredit" CostTypesProperty where
  type PropertyType "IncludeCredit" CostTypesProperty = Value Prelude.Bool
  set newValue CostTypesProperty {..}
    = CostTypesProperty {includeCredit = Prelude.pure newValue, ..}
instance Property "IncludeDiscount" CostTypesProperty where
  type PropertyType "IncludeDiscount" CostTypesProperty = Value Prelude.Bool
  set newValue CostTypesProperty {..}
    = CostTypesProperty {includeDiscount = Prelude.pure newValue, ..}
instance Property "IncludeOtherSubscription" CostTypesProperty where
  type PropertyType "IncludeOtherSubscription" CostTypesProperty = Value Prelude.Bool
  set newValue CostTypesProperty {..}
    = CostTypesProperty
        {includeOtherSubscription = Prelude.pure newValue, ..}
instance Property "IncludeRecurring" CostTypesProperty where
  type PropertyType "IncludeRecurring" CostTypesProperty = Value Prelude.Bool
  set newValue CostTypesProperty {..}
    = CostTypesProperty {includeRecurring = Prelude.pure newValue, ..}
instance Property "IncludeRefund" CostTypesProperty where
  type PropertyType "IncludeRefund" CostTypesProperty = Value Prelude.Bool
  set newValue CostTypesProperty {..}
    = CostTypesProperty {includeRefund = Prelude.pure newValue, ..}
instance Property "IncludeSubscription" CostTypesProperty where
  type PropertyType "IncludeSubscription" CostTypesProperty = Value Prelude.Bool
  set newValue CostTypesProperty {..}
    = CostTypesProperty
        {includeSubscription = Prelude.pure newValue, ..}
instance Property "IncludeSupport" CostTypesProperty where
  type PropertyType "IncludeSupport" CostTypesProperty = Value Prelude.Bool
  set newValue CostTypesProperty {..}
    = CostTypesProperty {includeSupport = Prelude.pure newValue, ..}
instance Property "IncludeTax" CostTypesProperty where
  type PropertyType "IncludeTax" CostTypesProperty = Value Prelude.Bool
  set newValue CostTypesProperty {..}
    = CostTypesProperty {includeTax = Prelude.pure newValue, ..}
instance Property "IncludeUpfront" CostTypesProperty where
  type PropertyType "IncludeUpfront" CostTypesProperty = Value Prelude.Bool
  set newValue CostTypesProperty {..}
    = CostTypesProperty {includeUpfront = Prelude.pure newValue, ..}
instance Property "UseAmortized" CostTypesProperty where
  type PropertyType "UseAmortized" CostTypesProperty = Value Prelude.Bool
  set newValue CostTypesProperty {..}
    = CostTypesProperty {useAmortized = Prelude.pure newValue, ..}
instance Property "UseBlended" CostTypesProperty where
  type PropertyType "UseBlended" CostTypesProperty = Value Prelude.Bool
  set newValue CostTypesProperty {..}
    = CostTypesProperty {useBlended = Prelude.pure newValue, ..}