packages feed

stratosphere-0.32.0: library-gen/Stratosphere/ResourceProperties/BudgetsBudgetCostTypes.hs

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TupleSections #-}

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html

module Stratosphere.ResourceProperties.BudgetsBudgetCostTypes where

import Stratosphere.ResourceImports


-- | Full data type definition for BudgetsBudgetCostTypes. See
-- 'budgetsBudgetCostTypes' for a more convenient constructor.
data BudgetsBudgetCostTypes =
  BudgetsBudgetCostTypes
  { _budgetsBudgetCostTypesIncludeCredit :: Maybe (Val Bool)
  , _budgetsBudgetCostTypesIncludeDiscount :: Maybe (Val Bool)
  , _budgetsBudgetCostTypesIncludeOtherSubscription :: Maybe (Val Bool)
  , _budgetsBudgetCostTypesIncludeRecurring :: Maybe (Val Bool)
  , _budgetsBudgetCostTypesIncludeRefund :: Maybe (Val Bool)
  , _budgetsBudgetCostTypesIncludeSubscription :: Maybe (Val Bool)
  , _budgetsBudgetCostTypesIncludeSupport :: Maybe (Val Bool)
  , _budgetsBudgetCostTypesIncludeTax :: Maybe (Val Bool)
  , _budgetsBudgetCostTypesIncludeUpfront :: Maybe (Val Bool)
  , _budgetsBudgetCostTypesUseAmortized :: Maybe (Val Bool)
  , _budgetsBudgetCostTypesUseBlended :: Maybe (Val Bool)
  } deriving (Show, Eq)

instance ToJSON BudgetsBudgetCostTypes where
  toJSON BudgetsBudgetCostTypes{..} =
    object $
    catMaybes
    [ fmap (("IncludeCredit",) . toJSON . fmap Bool') _budgetsBudgetCostTypesIncludeCredit
    , fmap (("IncludeDiscount",) . toJSON . fmap Bool') _budgetsBudgetCostTypesIncludeDiscount
    , fmap (("IncludeOtherSubscription",) . toJSON . fmap Bool') _budgetsBudgetCostTypesIncludeOtherSubscription
    , fmap (("IncludeRecurring",) . toJSON . fmap Bool') _budgetsBudgetCostTypesIncludeRecurring
    , fmap (("IncludeRefund",) . toJSON . fmap Bool') _budgetsBudgetCostTypesIncludeRefund
    , fmap (("IncludeSubscription",) . toJSON . fmap Bool') _budgetsBudgetCostTypesIncludeSubscription
    , fmap (("IncludeSupport",) . toJSON . fmap Bool') _budgetsBudgetCostTypesIncludeSupport
    , fmap (("IncludeTax",) . toJSON . fmap Bool') _budgetsBudgetCostTypesIncludeTax
    , fmap (("IncludeUpfront",) . toJSON . fmap Bool') _budgetsBudgetCostTypesIncludeUpfront
    , fmap (("UseAmortized",) . toJSON . fmap Bool') _budgetsBudgetCostTypesUseAmortized
    , fmap (("UseBlended",) . toJSON . fmap Bool') _budgetsBudgetCostTypesUseBlended
    ]

-- | Constructor for 'BudgetsBudgetCostTypes' containing required fields as
-- arguments.
budgetsBudgetCostTypes
  :: BudgetsBudgetCostTypes
budgetsBudgetCostTypes  =
  BudgetsBudgetCostTypes
  { _budgetsBudgetCostTypesIncludeCredit = Nothing
  , _budgetsBudgetCostTypesIncludeDiscount = Nothing
  , _budgetsBudgetCostTypesIncludeOtherSubscription = Nothing
  , _budgetsBudgetCostTypesIncludeRecurring = Nothing
  , _budgetsBudgetCostTypesIncludeRefund = Nothing
  , _budgetsBudgetCostTypesIncludeSubscription = Nothing
  , _budgetsBudgetCostTypesIncludeSupport = Nothing
  , _budgetsBudgetCostTypesIncludeTax = Nothing
  , _budgetsBudgetCostTypesIncludeUpfront = Nothing
  , _budgetsBudgetCostTypesUseAmortized = Nothing
  , _budgetsBudgetCostTypesUseBlended = Nothing
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-includecredit
bbctIncludeCredit :: Lens' BudgetsBudgetCostTypes (Maybe (Val Bool))
bbctIncludeCredit = lens _budgetsBudgetCostTypesIncludeCredit (\s a -> s { _budgetsBudgetCostTypesIncludeCredit = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-includediscount
bbctIncludeDiscount :: Lens' BudgetsBudgetCostTypes (Maybe (Val Bool))
bbctIncludeDiscount = lens _budgetsBudgetCostTypesIncludeDiscount (\s a -> s { _budgetsBudgetCostTypesIncludeDiscount = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-includeothersubscription
bbctIncludeOtherSubscription :: Lens' BudgetsBudgetCostTypes (Maybe (Val Bool))
bbctIncludeOtherSubscription = lens _budgetsBudgetCostTypesIncludeOtherSubscription (\s a -> s { _budgetsBudgetCostTypesIncludeOtherSubscription = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-includerecurring
bbctIncludeRecurring :: Lens' BudgetsBudgetCostTypes (Maybe (Val Bool))
bbctIncludeRecurring = lens _budgetsBudgetCostTypesIncludeRecurring (\s a -> s { _budgetsBudgetCostTypesIncludeRecurring = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-includerefund
bbctIncludeRefund :: Lens' BudgetsBudgetCostTypes (Maybe (Val Bool))
bbctIncludeRefund = lens _budgetsBudgetCostTypesIncludeRefund (\s a -> s { _budgetsBudgetCostTypesIncludeRefund = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-includesubscription
bbctIncludeSubscription :: Lens' BudgetsBudgetCostTypes (Maybe (Val Bool))
bbctIncludeSubscription = lens _budgetsBudgetCostTypesIncludeSubscription (\s a -> s { _budgetsBudgetCostTypesIncludeSubscription = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-includesupport
bbctIncludeSupport :: Lens' BudgetsBudgetCostTypes (Maybe (Val Bool))
bbctIncludeSupport = lens _budgetsBudgetCostTypesIncludeSupport (\s a -> s { _budgetsBudgetCostTypesIncludeSupport = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-includetax
bbctIncludeTax :: Lens' BudgetsBudgetCostTypes (Maybe (Val Bool))
bbctIncludeTax = lens _budgetsBudgetCostTypesIncludeTax (\s a -> s { _budgetsBudgetCostTypesIncludeTax = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-includeupfront
bbctIncludeUpfront :: Lens' BudgetsBudgetCostTypes (Maybe (Val Bool))
bbctIncludeUpfront = lens _budgetsBudgetCostTypesIncludeUpfront (\s a -> s { _budgetsBudgetCostTypesIncludeUpfront = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-useamortized
bbctUseAmortized :: Lens' BudgetsBudgetCostTypes (Maybe (Val Bool))
bbctUseAmortized = lens _budgetsBudgetCostTypesUseAmortized (\s a -> s { _budgetsBudgetCostTypesUseAmortized = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-useblended
bbctUseBlended :: Lens' BudgetsBudgetCostTypes (Maybe (Val Bool))
bbctUseBlended = lens _budgetsBudgetCostTypesUseBlended (\s a -> s { _budgetsBudgetCostTypesUseBlended = a })