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
=
TieringProperty {TieringProperty -> ()
haddock_workaround_ :: (),
TieringProperty -> Maybe FreeTierProperty
freeTier :: (Prelude.Maybe FreeTierProperty)}
deriving stock (TieringProperty -> TieringProperty -> Bool
(TieringProperty -> TieringProperty -> Bool)
-> (TieringProperty -> TieringProperty -> Bool)
-> Eq TieringProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: TieringProperty -> TieringProperty -> Bool
== :: TieringProperty -> TieringProperty -> Bool
$c/= :: TieringProperty -> TieringProperty -> Bool
/= :: TieringProperty -> TieringProperty -> Bool
Prelude.Eq, Int -> TieringProperty -> ShowS
[TieringProperty] -> ShowS
TieringProperty -> String
(Int -> TieringProperty -> ShowS)
-> (TieringProperty -> String)
-> ([TieringProperty] -> ShowS)
-> Show TieringProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> TieringProperty -> ShowS
showsPrec :: Int -> TieringProperty -> ShowS
$cshow :: TieringProperty -> String
show :: TieringProperty -> String
$cshowList :: [TieringProperty] -> ShowS
showList :: [TieringProperty] -> ShowS
Prelude.Show)
mkTieringProperty :: TieringProperty
mkTieringProperty :: TieringProperty
mkTieringProperty
= TieringProperty
{haddock_workaround_ :: ()
haddock_workaround_ = (), freeTier :: Maybe FreeTierProperty
freeTier = Maybe FreeTierProperty
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties TieringProperty where
toResourceProperties :: TieringProperty -> ResourceProperties
toResourceProperties TieringProperty {Maybe FreeTierProperty
()
haddock_workaround_ :: TieringProperty -> ()
freeTier :: TieringProperty -> Maybe FreeTierProperty
haddock_workaround_ :: ()
freeTier :: Maybe FreeTierProperty
..}
= ResourceProperties
{awsType :: Text
awsType = Text
"AWS::BillingConductor::PricingRule.Tiering",
supportsTags :: Bool
supportsTags = Bool
Prelude.False,
properties :: Object
properties = [Item Object] -> Object
forall l. IsList l => [Item l] -> l
Prelude.fromList
([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes [Key -> FreeTierProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"FreeTier" (FreeTierProperty -> (Key, Value))
-> Maybe FreeTierProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe FreeTierProperty
freeTier])}
instance JSON.ToJSON TieringProperty where
toJSON :: TieringProperty -> Value
toJSON TieringProperty {Maybe FreeTierProperty
()
haddock_workaround_ :: TieringProperty -> ()
freeTier :: TieringProperty -> Maybe FreeTierProperty
haddock_workaround_ :: ()
freeTier :: Maybe FreeTierProperty
..}
= [(Key, Value)] -> Value
JSON.object
([Item [(Key, Value)]] -> [(Key, Value)]
forall l. IsList l => [Item l] -> l
Prelude.fromList
([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes [Key -> FreeTierProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"FreeTier" (FreeTierProperty -> (Key, Value))
-> Maybe FreeTierProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe FreeTierProperty
freeTier]))
instance Property "FreeTier" TieringProperty where
type PropertyType "FreeTier" TieringProperty = FreeTierProperty
set :: PropertyType "FreeTier" TieringProperty
-> TieringProperty -> TieringProperty
set PropertyType "FreeTier" TieringProperty
newValue TieringProperty {Maybe FreeTierProperty
()
haddock_workaround_ :: TieringProperty -> ()
freeTier :: TieringProperty -> Maybe FreeTierProperty
haddock_workaround_ :: ()
freeTier :: Maybe FreeTierProperty
..}
= TieringProperty {freeTier :: Maybe FreeTierProperty
freeTier = FreeTierProperty -> Maybe FreeTierProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "FreeTier" TieringProperty
FreeTierProperty
newValue, ()
haddock_workaround_ :: ()
haddock_workaround_ :: ()
..}