stratosphere-budgets-1.0.0: gen/Stratosphere/Budgets/BudgetsAction/DefinitionProperty.hs
module Stratosphere.Budgets.BudgetsAction.DefinitionProperty (
module Exports, DefinitionProperty(..), mkDefinitionProperty
) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.Budgets.BudgetsAction.IamActionDefinitionProperty as Exports
import {-# SOURCE #-} Stratosphere.Budgets.BudgetsAction.ScpActionDefinitionProperty as Exports
import {-# SOURCE #-} Stratosphere.Budgets.BudgetsAction.SsmActionDefinitionProperty as Exports
import Stratosphere.ResourceProperties
data DefinitionProperty
= -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-definition.html>
DefinitionProperty {haddock_workaround_ :: (),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-definition.html#cfn-budgets-budgetsaction-definition-iamactiondefinition>
iamActionDefinition :: (Prelude.Maybe IamActionDefinitionProperty),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-definition.html#cfn-budgets-budgetsaction-definition-scpactiondefinition>
scpActionDefinition :: (Prelude.Maybe ScpActionDefinitionProperty),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-definition.html#cfn-budgets-budgetsaction-definition-ssmactiondefinition>
ssmActionDefinition :: (Prelude.Maybe SsmActionDefinitionProperty)}
deriving stock (Prelude.Eq, Prelude.Show)
mkDefinitionProperty :: DefinitionProperty
mkDefinitionProperty
= DefinitionProperty
{haddock_workaround_ = (), iamActionDefinition = Prelude.Nothing,
scpActionDefinition = Prelude.Nothing,
ssmActionDefinition = Prelude.Nothing}
instance ToResourceProperties DefinitionProperty where
toResourceProperties DefinitionProperty {..}
= ResourceProperties
{awsType = "AWS::Budgets::BudgetsAction.Definition",
supportsTags = Prelude.False,
properties = Prelude.fromList
(Prelude.catMaybes
[(JSON..=) "IamActionDefinition" Prelude.<$> iamActionDefinition,
(JSON..=) "ScpActionDefinition" Prelude.<$> scpActionDefinition,
(JSON..=) "SsmActionDefinition" Prelude.<$> ssmActionDefinition])}
instance JSON.ToJSON DefinitionProperty where
toJSON DefinitionProperty {..}
= JSON.object
(Prelude.fromList
(Prelude.catMaybes
[(JSON..=) "IamActionDefinition" Prelude.<$> iamActionDefinition,
(JSON..=) "ScpActionDefinition" Prelude.<$> scpActionDefinition,
(JSON..=) "SsmActionDefinition" Prelude.<$> ssmActionDefinition]))
instance Property "IamActionDefinition" DefinitionProperty where
type PropertyType "IamActionDefinition" DefinitionProperty = IamActionDefinitionProperty
set newValue DefinitionProperty {..}
= DefinitionProperty
{iamActionDefinition = Prelude.pure newValue, ..}
instance Property "ScpActionDefinition" DefinitionProperty where
type PropertyType "ScpActionDefinition" DefinitionProperty = ScpActionDefinitionProperty
set newValue DefinitionProperty {..}
= DefinitionProperty
{scpActionDefinition = Prelude.pure newValue, ..}
instance Property "SsmActionDefinition" DefinitionProperty where
type PropertyType "SsmActionDefinition" DefinitionProperty = SsmActionDefinitionProperty
set newValue DefinitionProperty {..}
= DefinitionProperty
{ssmActionDefinition = Prelude.pure newValue, ..}