module Stratosphere.WAFv2.WebACL.ManagedRuleGroupStatementProperty ( module Exports, ManagedRuleGroupStatementProperty(..), mkManagedRuleGroupStatementProperty ) where import qualified Data.Aeson as JSON import qualified Stratosphere.Prelude as Prelude import Stratosphere.Property import {-# SOURCE #-} Stratosphere.WAFv2.WebACL.ExcludedRuleProperty as Exports import {-# SOURCE #-} Stratosphere.WAFv2.WebACL.ManagedRuleGroupConfigProperty as Exports import {-# SOURCE #-} Stratosphere.WAFv2.WebACL.RuleActionOverrideProperty as Exports import {-# SOURCE #-} Stratosphere.WAFv2.WebACL.StatementProperty as Exports import Stratosphere.ResourceProperties import Stratosphere.Value data ManagedRuleGroupStatementProperty = -- | See: ManagedRuleGroupStatementProperty {haddock_workaround_ :: (), -- | See: excludedRules :: (Prelude.Maybe [ExcludedRuleProperty]), -- | See: managedRuleGroupConfigs :: (Prelude.Maybe [ManagedRuleGroupConfigProperty]), -- | See: name :: (Value Prelude.Text), -- | See: ruleActionOverrides :: (Prelude.Maybe [RuleActionOverrideProperty]), -- | See: scopeDownStatement :: (Prelude.Maybe StatementProperty), -- | See: vendorName :: (Value Prelude.Text), -- | See: version :: (Prelude.Maybe (Value Prelude.Text))} deriving stock (Prelude.Eq, Prelude.Show) mkManagedRuleGroupStatementProperty :: Value Prelude.Text -> Value Prelude.Text -> ManagedRuleGroupStatementProperty mkManagedRuleGroupStatementProperty name vendorName = ManagedRuleGroupStatementProperty {haddock_workaround_ = (), name = name, vendorName = vendorName, excludedRules = Prelude.Nothing, managedRuleGroupConfigs = Prelude.Nothing, ruleActionOverrides = Prelude.Nothing, scopeDownStatement = Prelude.Nothing, version = Prelude.Nothing} instance ToResourceProperties ManagedRuleGroupStatementProperty where toResourceProperties ManagedRuleGroupStatementProperty {..} = ResourceProperties {awsType = "AWS::WAFv2::WebACL.ManagedRuleGroupStatement", supportsTags = Prelude.False, properties = Prelude.fromList ((Prelude.<>) ["Name" JSON..= name, "VendorName" JSON..= vendorName] (Prelude.catMaybes [(JSON..=) "ExcludedRules" Prelude.<$> excludedRules, (JSON..=) "ManagedRuleGroupConfigs" Prelude.<$> managedRuleGroupConfigs, (JSON..=) "RuleActionOverrides" Prelude.<$> ruleActionOverrides, (JSON..=) "ScopeDownStatement" Prelude.<$> scopeDownStatement, (JSON..=) "Version" Prelude.<$> version]))} instance JSON.ToJSON ManagedRuleGroupStatementProperty where toJSON ManagedRuleGroupStatementProperty {..} = JSON.object (Prelude.fromList ((Prelude.<>) ["Name" JSON..= name, "VendorName" JSON..= vendorName] (Prelude.catMaybes [(JSON..=) "ExcludedRules" Prelude.<$> excludedRules, (JSON..=) "ManagedRuleGroupConfigs" Prelude.<$> managedRuleGroupConfigs, (JSON..=) "RuleActionOverrides" Prelude.<$> ruleActionOverrides, (JSON..=) "ScopeDownStatement" Prelude.<$> scopeDownStatement, (JSON..=) "Version" Prelude.<$> version]))) instance Property "ExcludedRules" ManagedRuleGroupStatementProperty where type PropertyType "ExcludedRules" ManagedRuleGroupStatementProperty = [ExcludedRuleProperty] set newValue ManagedRuleGroupStatementProperty {..} = ManagedRuleGroupStatementProperty {excludedRules = Prelude.pure newValue, ..} instance Property "ManagedRuleGroupConfigs" ManagedRuleGroupStatementProperty where type PropertyType "ManagedRuleGroupConfigs" ManagedRuleGroupStatementProperty = [ManagedRuleGroupConfigProperty] set newValue ManagedRuleGroupStatementProperty {..} = ManagedRuleGroupStatementProperty {managedRuleGroupConfigs = Prelude.pure newValue, ..} instance Property "Name" ManagedRuleGroupStatementProperty where type PropertyType "Name" ManagedRuleGroupStatementProperty = Value Prelude.Text set newValue ManagedRuleGroupStatementProperty {..} = ManagedRuleGroupStatementProperty {name = newValue, ..} instance Property "RuleActionOverrides" ManagedRuleGroupStatementProperty where type PropertyType "RuleActionOverrides" ManagedRuleGroupStatementProperty = [RuleActionOverrideProperty] set newValue ManagedRuleGroupStatementProperty {..} = ManagedRuleGroupStatementProperty {ruleActionOverrides = Prelude.pure newValue, ..} instance Property "ScopeDownStatement" ManagedRuleGroupStatementProperty where type PropertyType "ScopeDownStatement" ManagedRuleGroupStatementProperty = StatementProperty set newValue ManagedRuleGroupStatementProperty {..} = ManagedRuleGroupStatementProperty {scopeDownStatement = Prelude.pure newValue, ..} instance Property "VendorName" ManagedRuleGroupStatementProperty where type PropertyType "VendorName" ManagedRuleGroupStatementProperty = Value Prelude.Text set newValue ManagedRuleGroupStatementProperty {..} = ManagedRuleGroupStatementProperty {vendorName = newValue, ..} instance Property "Version" ManagedRuleGroupStatementProperty where type PropertyType "Version" ManagedRuleGroupStatementProperty = Value Prelude.Text set newValue ManagedRuleGroupStatementProperty {..} = ManagedRuleGroupStatementProperty {version = Prelude.pure newValue, ..}