packages feed

stratosphere-config-1.0.0: gen/Stratosphere/Config/OrganizationConfigRule/OrganizationCustomRuleMetadataProperty.hs

module Stratosphere.Config.OrganizationConfigRule.OrganizationCustomRuleMetadataProperty (
        OrganizationCustomRuleMetadataProperty(..),
        mkOrganizationCustomRuleMetadataProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data OrganizationCustomRuleMetadataProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-organizationconfigrule-organizationcustomrulemetadata.html>
    OrganizationCustomRuleMetadataProperty {haddock_workaround_ :: (),
                                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-organizationconfigrule-organizationcustomrulemetadata.html#cfn-config-organizationconfigrule-organizationcustomrulemetadata-description>
                                            description :: (Prelude.Maybe (Value Prelude.Text)),
                                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-organizationconfigrule-organizationcustomrulemetadata.html#cfn-config-organizationconfigrule-organizationcustomrulemetadata-inputparameters>
                                            inputParameters :: (Prelude.Maybe (Value Prelude.Text)),
                                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-organizationconfigrule-organizationcustomrulemetadata.html#cfn-config-organizationconfigrule-organizationcustomrulemetadata-lambdafunctionarn>
                                            lambdaFunctionArn :: (Value Prelude.Text),
                                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-organizationconfigrule-organizationcustomrulemetadata.html#cfn-config-organizationconfigrule-organizationcustomrulemetadata-maximumexecutionfrequency>
                                            maximumExecutionFrequency :: (Prelude.Maybe (Value Prelude.Text)),
                                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-organizationconfigrule-organizationcustomrulemetadata.html#cfn-config-organizationconfigrule-organizationcustomrulemetadata-organizationconfigruletriggertypes>
                                            organizationConfigRuleTriggerTypes :: (ValueList Prelude.Text),
                                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-organizationconfigrule-organizationcustomrulemetadata.html#cfn-config-organizationconfigrule-organizationcustomrulemetadata-resourceidscope>
                                            resourceIdScope :: (Prelude.Maybe (Value Prelude.Text)),
                                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-organizationconfigrule-organizationcustomrulemetadata.html#cfn-config-organizationconfigrule-organizationcustomrulemetadata-resourcetypesscope>
                                            resourceTypesScope :: (Prelude.Maybe (ValueList Prelude.Text)),
                                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-organizationconfigrule-organizationcustomrulemetadata.html#cfn-config-organizationconfigrule-organizationcustomrulemetadata-tagkeyscope>
                                            tagKeyScope :: (Prelude.Maybe (Value Prelude.Text)),
                                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-organizationconfigrule-organizationcustomrulemetadata.html#cfn-config-organizationconfigrule-organizationcustomrulemetadata-tagvaluescope>
                                            tagValueScope :: (Prelude.Maybe (Value Prelude.Text))}
  deriving stock (Prelude.Eq, Prelude.Show)
mkOrganizationCustomRuleMetadataProperty ::
  Value Prelude.Text
  -> ValueList Prelude.Text -> OrganizationCustomRuleMetadataProperty
mkOrganizationCustomRuleMetadataProperty
  lambdaFunctionArn
  organizationConfigRuleTriggerTypes
  = OrganizationCustomRuleMetadataProperty
      {haddock_workaround_ = (), lambdaFunctionArn = lambdaFunctionArn,
       organizationConfigRuleTriggerTypes = organizationConfigRuleTriggerTypes,
       description = Prelude.Nothing, inputParameters = Prelude.Nothing,
       maximumExecutionFrequency = Prelude.Nothing,
       resourceIdScope = Prelude.Nothing,
       resourceTypesScope = Prelude.Nothing,
       tagKeyScope = Prelude.Nothing, tagValueScope = Prelude.Nothing}
instance ToResourceProperties OrganizationCustomRuleMetadataProperty where
  toResourceProperties OrganizationCustomRuleMetadataProperty {..}
    = ResourceProperties
        {awsType = "AWS::Config::OrganizationConfigRule.OrganizationCustomRuleMetadata",
         supportsTags = Prelude.False,
         properties = Prelude.fromList
                        ((Prelude.<>)
                           ["LambdaFunctionArn" JSON..= lambdaFunctionArn,
                            "OrganizationConfigRuleTriggerTypes"
                              JSON..= organizationConfigRuleTriggerTypes]
                           (Prelude.catMaybes
                              [(JSON..=) "Description" Prelude.<$> description,
                               (JSON..=) "InputParameters" Prelude.<$> inputParameters,
                               (JSON..=) "MaximumExecutionFrequency"
                                 Prelude.<$> maximumExecutionFrequency,
                               (JSON..=) "ResourceIdScope" Prelude.<$> resourceIdScope,
                               (JSON..=) "ResourceTypesScope" Prelude.<$> resourceTypesScope,
                               (JSON..=) "TagKeyScope" Prelude.<$> tagKeyScope,
                               (JSON..=) "TagValueScope" Prelude.<$> tagValueScope]))}
instance JSON.ToJSON OrganizationCustomRuleMetadataProperty where
  toJSON OrganizationCustomRuleMetadataProperty {..}
    = JSON.object
        (Prelude.fromList
           ((Prelude.<>)
              ["LambdaFunctionArn" JSON..= lambdaFunctionArn,
               "OrganizationConfigRuleTriggerTypes"
                 JSON..= organizationConfigRuleTriggerTypes]
              (Prelude.catMaybes
                 [(JSON..=) "Description" Prelude.<$> description,
                  (JSON..=) "InputParameters" Prelude.<$> inputParameters,
                  (JSON..=) "MaximumExecutionFrequency"
                    Prelude.<$> maximumExecutionFrequency,
                  (JSON..=) "ResourceIdScope" Prelude.<$> resourceIdScope,
                  (JSON..=) "ResourceTypesScope" Prelude.<$> resourceTypesScope,
                  (JSON..=) "TagKeyScope" Prelude.<$> tagKeyScope,
                  (JSON..=) "TagValueScope" Prelude.<$> tagValueScope])))
instance Property "Description" OrganizationCustomRuleMetadataProperty where
  type PropertyType "Description" OrganizationCustomRuleMetadataProperty = Value Prelude.Text
  set newValue OrganizationCustomRuleMetadataProperty {..}
    = OrganizationCustomRuleMetadataProperty
        {description = Prelude.pure newValue, ..}
instance Property "InputParameters" OrganizationCustomRuleMetadataProperty where
  type PropertyType "InputParameters" OrganizationCustomRuleMetadataProperty = Value Prelude.Text
  set newValue OrganizationCustomRuleMetadataProperty {..}
    = OrganizationCustomRuleMetadataProperty
        {inputParameters = Prelude.pure newValue, ..}
instance Property "LambdaFunctionArn" OrganizationCustomRuleMetadataProperty where
  type PropertyType "LambdaFunctionArn" OrganizationCustomRuleMetadataProperty = Value Prelude.Text
  set newValue OrganizationCustomRuleMetadataProperty {..}
    = OrganizationCustomRuleMetadataProperty
        {lambdaFunctionArn = newValue, ..}
instance Property "MaximumExecutionFrequency" OrganizationCustomRuleMetadataProperty where
  type PropertyType "MaximumExecutionFrequency" OrganizationCustomRuleMetadataProperty = Value Prelude.Text
  set newValue OrganizationCustomRuleMetadataProperty {..}
    = OrganizationCustomRuleMetadataProperty
        {maximumExecutionFrequency = Prelude.pure newValue, ..}
instance Property "OrganizationConfigRuleTriggerTypes" OrganizationCustomRuleMetadataProperty where
  type PropertyType "OrganizationConfigRuleTriggerTypes" OrganizationCustomRuleMetadataProperty = ValueList Prelude.Text
  set newValue OrganizationCustomRuleMetadataProperty {..}
    = OrganizationCustomRuleMetadataProperty
        {organizationConfigRuleTriggerTypes = newValue, ..}
instance Property "ResourceIdScope" OrganizationCustomRuleMetadataProperty where
  type PropertyType "ResourceIdScope" OrganizationCustomRuleMetadataProperty = Value Prelude.Text
  set newValue OrganizationCustomRuleMetadataProperty {..}
    = OrganizationCustomRuleMetadataProperty
        {resourceIdScope = Prelude.pure newValue, ..}
instance Property "ResourceTypesScope" OrganizationCustomRuleMetadataProperty where
  type PropertyType "ResourceTypesScope" OrganizationCustomRuleMetadataProperty = ValueList Prelude.Text
  set newValue OrganizationCustomRuleMetadataProperty {..}
    = OrganizationCustomRuleMetadataProperty
        {resourceTypesScope = Prelude.pure newValue, ..}
instance Property "TagKeyScope" OrganizationCustomRuleMetadataProperty where
  type PropertyType "TagKeyScope" OrganizationCustomRuleMetadataProperty = Value Prelude.Text
  set newValue OrganizationCustomRuleMetadataProperty {..}
    = OrganizationCustomRuleMetadataProperty
        {tagKeyScope = Prelude.pure newValue, ..}
instance Property "TagValueScope" OrganizationCustomRuleMetadataProperty where
  type PropertyType "TagValueScope" OrganizationCustomRuleMetadataProperty = Value Prelude.Text
  set newValue OrganizationCustomRuleMetadataProperty {..}
    = OrganizationCustomRuleMetadataProperty
        {tagValueScope = Prelude.pure newValue, ..}