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 {CustomLineItemPercentageChargeDetailsProperty -> ()
haddock_workaround_ :: (),
                                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-customlineitempercentagechargedetails.html#cfn-billingconductor-customlineitem-customlineitempercentagechargedetails-childassociatedresources>
                                                   CustomLineItemPercentageChargeDetailsProperty
-> Maybe (ValueList Text)
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>
                                                   CustomLineItemPercentageChargeDetailsProperty -> Value Double
percentageValue :: (Value Prelude.Double)}
  deriving stock (CustomLineItemPercentageChargeDetailsProperty
-> CustomLineItemPercentageChargeDetailsProperty -> Bool
(CustomLineItemPercentageChargeDetailsProperty
 -> CustomLineItemPercentageChargeDetailsProperty -> Bool)
-> (CustomLineItemPercentageChargeDetailsProperty
    -> CustomLineItemPercentageChargeDetailsProperty -> Bool)
-> Eq CustomLineItemPercentageChargeDetailsProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: CustomLineItemPercentageChargeDetailsProperty
-> CustomLineItemPercentageChargeDetailsProperty -> Bool
== :: CustomLineItemPercentageChargeDetailsProperty
-> CustomLineItemPercentageChargeDetailsProperty -> Bool
$c/= :: CustomLineItemPercentageChargeDetailsProperty
-> CustomLineItemPercentageChargeDetailsProperty -> Bool
/= :: CustomLineItemPercentageChargeDetailsProperty
-> CustomLineItemPercentageChargeDetailsProperty -> Bool
Prelude.Eq, Int -> CustomLineItemPercentageChargeDetailsProperty -> ShowS
[CustomLineItemPercentageChargeDetailsProperty] -> ShowS
CustomLineItemPercentageChargeDetailsProperty -> String
(Int -> CustomLineItemPercentageChargeDetailsProperty -> ShowS)
-> (CustomLineItemPercentageChargeDetailsProperty -> String)
-> ([CustomLineItemPercentageChargeDetailsProperty] -> ShowS)
-> Show CustomLineItemPercentageChargeDetailsProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CustomLineItemPercentageChargeDetailsProperty -> ShowS
showsPrec :: Int -> CustomLineItemPercentageChargeDetailsProperty -> ShowS
$cshow :: CustomLineItemPercentageChargeDetailsProperty -> String
show :: CustomLineItemPercentageChargeDetailsProperty -> String
$cshowList :: [CustomLineItemPercentageChargeDetailsProperty] -> ShowS
showList :: [CustomLineItemPercentageChargeDetailsProperty] -> ShowS
Prelude.Show)
mkCustomLineItemPercentageChargeDetailsProperty ::
  Value Prelude.Double
  -> CustomLineItemPercentageChargeDetailsProperty
mkCustomLineItemPercentageChargeDetailsProperty :: Value Double -> CustomLineItemPercentageChargeDetailsProperty
mkCustomLineItemPercentageChargeDetailsProperty Value Double
percentageValue
  = CustomLineItemPercentageChargeDetailsProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), percentageValue :: Value Double
percentageValue = Value Double
percentageValue,
       childAssociatedResources :: Maybe (ValueList Text)
childAssociatedResources = Maybe (ValueList Text)
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties CustomLineItemPercentageChargeDetailsProperty where
  toResourceProperties :: CustomLineItemPercentageChargeDetailsProperty -> ResourceProperties
toResourceProperties
    CustomLineItemPercentageChargeDetailsProperty {Maybe (ValueList Text)
()
Value Double
haddock_workaround_ :: CustomLineItemPercentageChargeDetailsProperty -> ()
childAssociatedResources :: CustomLineItemPercentageChargeDetailsProperty
-> Maybe (ValueList Text)
percentageValue :: CustomLineItemPercentageChargeDetailsProperty -> Value Double
haddock_workaround_ :: ()
childAssociatedResources :: Maybe (ValueList Text)
percentageValue :: Value Double
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::BillingConductor::CustomLineItem.CustomLineItemPercentageChargeDetails",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Item Object] -> Object
forall l. IsList l => [Item l] -> l
Prelude.fromList
                        ([(Key, Value)] -> [(Key, Value)] -> [(Key, Value)]
forall a. Semigroup a => a -> a -> a
(Prelude.<>)
                           [Key
"PercentageValue" Key -> Value Double -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Double
percentageValue]
                           ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                              [Key -> ValueList Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"ChildAssociatedResources"
                                 (ValueList Text -> (Key, Value))
-> Maybe (ValueList Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (ValueList Text)
childAssociatedResources]))}
instance JSON.ToJSON CustomLineItemPercentageChargeDetailsProperty where
  toJSON :: CustomLineItemPercentageChargeDetailsProperty -> Value
toJSON CustomLineItemPercentageChargeDetailsProperty {Maybe (ValueList Text)
()
Value Double
haddock_workaround_ :: CustomLineItemPercentageChargeDetailsProperty -> ()
childAssociatedResources :: CustomLineItemPercentageChargeDetailsProperty
-> Maybe (ValueList Text)
percentageValue :: CustomLineItemPercentageChargeDetailsProperty -> Value Double
haddock_workaround_ :: ()
childAssociatedResources :: Maybe (ValueList Text)
percentageValue :: Value Double
..}
    = [(Key, Value)] -> Value
JSON.object
        ([Item [(Key, Value)]] -> [(Key, Value)]
forall l. IsList l => [Item l] -> l
Prelude.fromList
           ([(Key, Value)] -> [(Key, Value)] -> [(Key, Value)]
forall a. Semigroup a => a -> a -> a
(Prelude.<>)
              [Key
"PercentageValue" Key -> Value Double -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Double
percentageValue]
              ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                 [Key -> ValueList Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"ChildAssociatedResources"
                    (ValueList Text -> (Key, Value))
-> Maybe (ValueList Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (ValueList Text)
childAssociatedResources])))
instance Property "ChildAssociatedResources" CustomLineItemPercentageChargeDetailsProperty where
  type PropertyType "ChildAssociatedResources" CustomLineItemPercentageChargeDetailsProperty = ValueList Prelude.Text
  set :: PropertyType
  "ChildAssociatedResources"
  CustomLineItemPercentageChargeDetailsProperty
-> CustomLineItemPercentageChargeDetailsProperty
-> CustomLineItemPercentageChargeDetailsProperty
set PropertyType
  "ChildAssociatedResources"
  CustomLineItemPercentageChargeDetailsProperty
newValue CustomLineItemPercentageChargeDetailsProperty {Maybe (ValueList Text)
()
Value Double
haddock_workaround_ :: CustomLineItemPercentageChargeDetailsProperty -> ()
childAssociatedResources :: CustomLineItemPercentageChargeDetailsProperty
-> Maybe (ValueList Text)
percentageValue :: CustomLineItemPercentageChargeDetailsProperty -> Value Double
haddock_workaround_ :: ()
childAssociatedResources :: Maybe (ValueList Text)
percentageValue :: Value Double
..}
    = CustomLineItemPercentageChargeDetailsProperty
        {childAssociatedResources :: Maybe (ValueList Text)
childAssociatedResources = ValueList Text -> Maybe (ValueList Text)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType
  "ChildAssociatedResources"
  CustomLineItemPercentageChargeDetailsProperty
ValueList Text
newValue, ()
Value Double
haddock_workaround_ :: ()
percentageValue :: Value Double
haddock_workaround_ :: ()
percentageValue :: Value Double
..}
instance Property "PercentageValue" CustomLineItemPercentageChargeDetailsProperty where
  type PropertyType "PercentageValue" CustomLineItemPercentageChargeDetailsProperty = Value Prelude.Double
  set :: PropertyType
  "PercentageValue" CustomLineItemPercentageChargeDetailsProperty
-> CustomLineItemPercentageChargeDetailsProperty
-> CustomLineItemPercentageChargeDetailsProperty
set PropertyType
  "PercentageValue" CustomLineItemPercentageChargeDetailsProperty
newValue CustomLineItemPercentageChargeDetailsProperty {Maybe (ValueList Text)
()
Value Double
haddock_workaround_ :: CustomLineItemPercentageChargeDetailsProperty -> ()
childAssociatedResources :: CustomLineItemPercentageChargeDetailsProperty
-> Maybe (ValueList Text)
percentageValue :: CustomLineItemPercentageChargeDetailsProperty -> Value Double
haddock_workaround_ :: ()
childAssociatedResources :: Maybe (ValueList Text)
percentageValue :: Value Double
..}
    = CustomLineItemPercentageChargeDetailsProperty
        {percentageValue :: Value Double
percentageValue = PropertyType
  "PercentageValue" CustomLineItemPercentageChargeDetailsProperty
Value Double
newValue, Maybe (ValueList Text)
()
haddock_workaround_ :: ()
childAssociatedResources :: Maybe (ValueList Text)
haddock_workaround_ :: ()
childAssociatedResources :: Maybe (ValueList Text)
..}