packages feed

stratosphere-0.56.0: library-gen/Stratosphere/ResourceProperties/WAFv2RuleGroupIPSetForwardedIPConfiguration.hs

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ipsetforwardedipconfiguration.html

module Stratosphere.ResourceProperties.WAFv2RuleGroupIPSetForwardedIPConfiguration where

import Stratosphere.ResourceImports


-- | Full data type definition for
-- WAFv2RuleGroupIPSetForwardedIPConfiguration. See
-- 'waFv2RuleGroupIPSetForwardedIPConfiguration' for a more convenient
-- constructor.
data WAFv2RuleGroupIPSetForwardedIPConfiguration =
  WAFv2RuleGroupIPSetForwardedIPConfiguration
  { _wAFv2RuleGroupIPSetForwardedIPConfigurationFallbackBehavior :: Val Text
  , _wAFv2RuleGroupIPSetForwardedIPConfigurationHeaderName :: Val Text
  , _wAFv2RuleGroupIPSetForwardedIPConfigurationPosition :: Val Text
  } deriving (Show, Eq)

instance ToJSON WAFv2RuleGroupIPSetForwardedIPConfiguration where
  toJSON WAFv2RuleGroupIPSetForwardedIPConfiguration{..} =
    object $
    catMaybes
    [ (Just . ("FallbackBehavior",) . toJSON) _wAFv2RuleGroupIPSetForwardedIPConfigurationFallbackBehavior
    , (Just . ("HeaderName",) . toJSON) _wAFv2RuleGroupIPSetForwardedIPConfigurationHeaderName
    , (Just . ("Position",) . toJSON) _wAFv2RuleGroupIPSetForwardedIPConfigurationPosition
    ]

-- | Constructor for 'WAFv2RuleGroupIPSetForwardedIPConfiguration' containing
-- required fields as arguments.
waFv2RuleGroupIPSetForwardedIPConfiguration
  :: Val Text -- ^ 'wafrgipsfipcFallbackBehavior'
  -> Val Text -- ^ 'wafrgipsfipcHeaderName'
  -> Val Text -- ^ 'wafrgipsfipcPosition'
  -> WAFv2RuleGroupIPSetForwardedIPConfiguration
waFv2RuleGroupIPSetForwardedIPConfiguration fallbackBehaviorarg headerNamearg positionarg =
  WAFv2RuleGroupIPSetForwardedIPConfiguration
  { _wAFv2RuleGroupIPSetForwardedIPConfigurationFallbackBehavior = fallbackBehaviorarg
  , _wAFv2RuleGroupIPSetForwardedIPConfigurationHeaderName = headerNamearg
  , _wAFv2RuleGroupIPSetForwardedIPConfigurationPosition = positionarg
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ipsetforwardedipconfiguration.html#cfn-wafv2-rulegroup-ipsetforwardedipconfiguration-fallbackbehavior
wafrgipsfipcFallbackBehavior :: Lens' WAFv2RuleGroupIPSetForwardedIPConfiguration (Val Text)
wafrgipsfipcFallbackBehavior = lens _wAFv2RuleGroupIPSetForwardedIPConfigurationFallbackBehavior (\s a -> s { _wAFv2RuleGroupIPSetForwardedIPConfigurationFallbackBehavior = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ipsetforwardedipconfiguration.html#cfn-wafv2-rulegroup-ipsetforwardedipconfiguration-headername
wafrgipsfipcHeaderName :: Lens' WAFv2RuleGroupIPSetForwardedIPConfiguration (Val Text)
wafrgipsfipcHeaderName = lens _wAFv2RuleGroupIPSetForwardedIPConfigurationHeaderName (\s a -> s { _wAFv2RuleGroupIPSetForwardedIPConfigurationHeaderName = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ipsetforwardedipconfiguration.html#cfn-wafv2-rulegroup-ipsetforwardedipconfiguration-position
wafrgipsfipcPosition :: Lens' WAFv2RuleGroupIPSetForwardedIPConfiguration (Val Text)
wafrgipsfipcPosition = lens _wAFv2RuleGroupIPSetForwardedIPConfigurationPosition (\s a -> s { _wAFv2RuleGroupIPSetForwardedIPConfigurationPosition = a })