module Stratosphere.WAFv2.WebACL.ForwardedIPConfigurationProperty (
        ForwardedIPConfigurationProperty(..),
        mkForwardedIPConfigurationProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data ForwardedIPConfigurationProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-forwardedipconfiguration.html>
    ForwardedIPConfigurationProperty {ForwardedIPConfigurationProperty -> ()
haddock_workaround_ :: (),
                                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-forwardedipconfiguration.html#cfn-wafv2-webacl-forwardedipconfiguration-fallbackbehavior>
                                      ForwardedIPConfigurationProperty -> Value Text
fallbackBehavior :: (Value Prelude.Text),
                                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-forwardedipconfiguration.html#cfn-wafv2-webacl-forwardedipconfiguration-headername>
                                      ForwardedIPConfigurationProperty -> Value Text
headerName :: (Value Prelude.Text)}
  deriving stock (ForwardedIPConfigurationProperty
-> ForwardedIPConfigurationProperty -> Bool
(ForwardedIPConfigurationProperty
 -> ForwardedIPConfigurationProperty -> Bool)
-> (ForwardedIPConfigurationProperty
    -> ForwardedIPConfigurationProperty -> Bool)
-> Eq ForwardedIPConfigurationProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ForwardedIPConfigurationProperty
-> ForwardedIPConfigurationProperty -> Bool
== :: ForwardedIPConfigurationProperty
-> ForwardedIPConfigurationProperty -> Bool
$c/= :: ForwardedIPConfigurationProperty
-> ForwardedIPConfigurationProperty -> Bool
/= :: ForwardedIPConfigurationProperty
-> ForwardedIPConfigurationProperty -> Bool
Prelude.Eq, Int -> ForwardedIPConfigurationProperty -> ShowS
[ForwardedIPConfigurationProperty] -> ShowS
ForwardedIPConfigurationProperty -> String
(Int -> ForwardedIPConfigurationProperty -> ShowS)
-> (ForwardedIPConfigurationProperty -> String)
-> ([ForwardedIPConfigurationProperty] -> ShowS)
-> Show ForwardedIPConfigurationProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ForwardedIPConfigurationProperty -> ShowS
showsPrec :: Int -> ForwardedIPConfigurationProperty -> ShowS
$cshow :: ForwardedIPConfigurationProperty -> String
show :: ForwardedIPConfigurationProperty -> String
$cshowList :: [ForwardedIPConfigurationProperty] -> ShowS
showList :: [ForwardedIPConfigurationProperty] -> ShowS
Prelude.Show)
mkForwardedIPConfigurationProperty ::
  Value Prelude.Text
  -> Value Prelude.Text -> ForwardedIPConfigurationProperty
mkForwardedIPConfigurationProperty :: Value Text -> Value Text -> ForwardedIPConfigurationProperty
mkForwardedIPConfigurationProperty Value Text
fallbackBehavior Value Text
headerName
  = ForwardedIPConfigurationProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), fallbackBehavior :: Value Text
fallbackBehavior = Value Text
fallbackBehavior,
       headerName :: Value Text
headerName = Value Text
headerName}
instance ToResourceProperties ForwardedIPConfigurationProperty where
  toResourceProperties :: ForwardedIPConfigurationProperty -> ResourceProperties
toResourceProperties ForwardedIPConfigurationProperty {()
Value Text
haddock_workaround_ :: ForwardedIPConfigurationProperty -> ()
fallbackBehavior :: ForwardedIPConfigurationProperty -> Value Text
headerName :: ForwardedIPConfigurationProperty -> Value Text
haddock_workaround_ :: ()
fallbackBehavior :: Value Text
headerName :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::WAFv2::WebACL.ForwardedIPConfiguration",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"FallbackBehavior" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
fallbackBehavior,
                       Key
"HeaderName" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
headerName]}
instance JSON.ToJSON ForwardedIPConfigurationProperty where
  toJSON :: ForwardedIPConfigurationProperty -> Value
toJSON ForwardedIPConfigurationProperty {()
Value Text
haddock_workaround_ :: ForwardedIPConfigurationProperty -> ()
fallbackBehavior :: ForwardedIPConfigurationProperty -> Value Text
headerName :: ForwardedIPConfigurationProperty -> Value Text
haddock_workaround_ :: ()
fallbackBehavior :: Value Text
headerName :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"FallbackBehavior" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
fallbackBehavior,
         Key
"HeaderName" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
headerName]
instance Property "FallbackBehavior" ForwardedIPConfigurationProperty where
  type PropertyType "FallbackBehavior" ForwardedIPConfigurationProperty = Value Prelude.Text
  set :: PropertyType "FallbackBehavior" ForwardedIPConfigurationProperty
-> ForwardedIPConfigurationProperty
-> ForwardedIPConfigurationProperty
set PropertyType "FallbackBehavior" ForwardedIPConfigurationProperty
newValue ForwardedIPConfigurationProperty {()
Value Text
haddock_workaround_ :: ForwardedIPConfigurationProperty -> ()
fallbackBehavior :: ForwardedIPConfigurationProperty -> Value Text
headerName :: ForwardedIPConfigurationProperty -> Value Text
haddock_workaround_ :: ()
fallbackBehavior :: Value Text
headerName :: Value Text
..}
    = ForwardedIPConfigurationProperty
        {fallbackBehavior :: Value Text
fallbackBehavior = PropertyType "FallbackBehavior" ForwardedIPConfigurationProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
headerName :: Value Text
haddock_workaround_ :: ()
headerName :: Value Text
..}
instance Property "HeaderName" ForwardedIPConfigurationProperty where
  type PropertyType "HeaderName" ForwardedIPConfigurationProperty = Value Prelude.Text
  set :: PropertyType "HeaderName" ForwardedIPConfigurationProperty
-> ForwardedIPConfigurationProperty
-> ForwardedIPConfigurationProperty
set PropertyType "HeaderName" ForwardedIPConfigurationProperty
newValue ForwardedIPConfigurationProperty {()
Value Text
haddock_workaround_ :: ForwardedIPConfigurationProperty -> ()
fallbackBehavior :: ForwardedIPConfigurationProperty -> Value Text
headerName :: ForwardedIPConfigurationProperty -> Value Text
haddock_workaround_ :: ()
fallbackBehavior :: Value Text
headerName :: Value Text
..}
    = ForwardedIPConfigurationProperty {headerName :: Value Text
headerName = PropertyType "HeaderName" ForwardedIPConfigurationProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
fallbackBehavior :: Value Text
haddock_workaround_ :: ()
fallbackBehavior :: Value Text
..}