module Stratosphere.WAFv2.WebACL.XssMatchStatementProperty (
        module Exports, XssMatchStatementProperty(..),
        mkXssMatchStatementProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.WAFv2.WebACL.FieldToMatchProperty as Exports
import {-# SOURCE #-} Stratosphere.WAFv2.WebACL.TextTransformationProperty as Exports
import Stratosphere.ResourceProperties
data XssMatchStatementProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-xssmatchstatement.html>
    XssMatchStatementProperty {XssMatchStatementProperty -> ()
haddock_workaround_ :: (),
                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-xssmatchstatement.html#cfn-wafv2-webacl-xssmatchstatement-fieldtomatch>
                               XssMatchStatementProperty -> FieldToMatchProperty
fieldToMatch :: FieldToMatchProperty,
                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-xssmatchstatement.html#cfn-wafv2-webacl-xssmatchstatement-texttransformations>
                               XssMatchStatementProperty -> [TextTransformationProperty]
textTransformations :: [TextTransformationProperty]}
  deriving stock (XssMatchStatementProperty -> XssMatchStatementProperty -> Bool
(XssMatchStatementProperty -> XssMatchStatementProperty -> Bool)
-> (XssMatchStatementProperty -> XssMatchStatementProperty -> Bool)
-> Eq XssMatchStatementProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: XssMatchStatementProperty -> XssMatchStatementProperty -> Bool
== :: XssMatchStatementProperty -> XssMatchStatementProperty -> Bool
$c/= :: XssMatchStatementProperty -> XssMatchStatementProperty -> Bool
/= :: XssMatchStatementProperty -> XssMatchStatementProperty -> Bool
Prelude.Eq, Int -> XssMatchStatementProperty -> ShowS
[XssMatchStatementProperty] -> ShowS
XssMatchStatementProperty -> String
(Int -> XssMatchStatementProperty -> ShowS)
-> (XssMatchStatementProperty -> String)
-> ([XssMatchStatementProperty] -> ShowS)
-> Show XssMatchStatementProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> XssMatchStatementProperty -> ShowS
showsPrec :: Int -> XssMatchStatementProperty -> ShowS
$cshow :: XssMatchStatementProperty -> String
show :: XssMatchStatementProperty -> String
$cshowList :: [XssMatchStatementProperty] -> ShowS
showList :: [XssMatchStatementProperty] -> ShowS
Prelude.Show)
mkXssMatchStatementProperty ::
  FieldToMatchProperty
  -> [TextTransformationProperty] -> XssMatchStatementProperty
mkXssMatchStatementProperty :: FieldToMatchProperty
-> [TextTransformationProperty] -> XssMatchStatementProperty
mkXssMatchStatementProperty FieldToMatchProperty
fieldToMatch [TextTransformationProperty]
textTransformations
  = XssMatchStatementProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), fieldToMatch :: FieldToMatchProperty
fieldToMatch = FieldToMatchProperty
fieldToMatch,
       textTransformations :: [TextTransformationProperty]
textTransformations = [TextTransformationProperty]
textTransformations}
instance ToResourceProperties XssMatchStatementProperty where
  toResourceProperties :: XssMatchStatementProperty -> ResourceProperties
toResourceProperties XssMatchStatementProperty {[TextTransformationProperty]
()
FieldToMatchProperty
haddock_workaround_ :: XssMatchStatementProperty -> ()
fieldToMatch :: XssMatchStatementProperty -> FieldToMatchProperty
textTransformations :: XssMatchStatementProperty -> [TextTransformationProperty]
haddock_workaround_ :: ()
fieldToMatch :: FieldToMatchProperty
textTransformations :: [TextTransformationProperty]
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::WAFv2::WebACL.XssMatchStatement",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"FieldToMatch" Key -> FieldToMatchProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= FieldToMatchProperty
fieldToMatch,
                       Key
"TextTransformations" Key -> [TextTransformationProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= [TextTransformationProperty]
textTransformations]}
instance JSON.ToJSON XssMatchStatementProperty where
  toJSON :: XssMatchStatementProperty -> Value
toJSON XssMatchStatementProperty {[TextTransformationProperty]
()
FieldToMatchProperty
haddock_workaround_ :: XssMatchStatementProperty -> ()
fieldToMatch :: XssMatchStatementProperty -> FieldToMatchProperty
textTransformations :: XssMatchStatementProperty -> [TextTransformationProperty]
haddock_workaround_ :: ()
fieldToMatch :: FieldToMatchProperty
textTransformations :: [TextTransformationProperty]
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"FieldToMatch" Key -> FieldToMatchProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= FieldToMatchProperty
fieldToMatch,
         Key
"TextTransformations" Key -> [TextTransformationProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= [TextTransformationProperty]
textTransformations]
instance Property "FieldToMatch" XssMatchStatementProperty where
  type PropertyType "FieldToMatch" XssMatchStatementProperty = FieldToMatchProperty
  set :: PropertyType "FieldToMatch" XssMatchStatementProperty
-> XssMatchStatementProperty -> XssMatchStatementProperty
set PropertyType "FieldToMatch" XssMatchStatementProperty
newValue XssMatchStatementProperty {[TextTransformationProperty]
()
FieldToMatchProperty
haddock_workaround_ :: XssMatchStatementProperty -> ()
fieldToMatch :: XssMatchStatementProperty -> FieldToMatchProperty
textTransformations :: XssMatchStatementProperty -> [TextTransformationProperty]
haddock_workaround_ :: ()
fieldToMatch :: FieldToMatchProperty
textTransformations :: [TextTransformationProperty]
..}
    = XssMatchStatementProperty {fieldToMatch :: FieldToMatchProperty
fieldToMatch = PropertyType "FieldToMatch" XssMatchStatementProperty
FieldToMatchProperty
newValue, [TextTransformationProperty]
()
haddock_workaround_ :: ()
textTransformations :: [TextTransformationProperty]
haddock_workaround_ :: ()
textTransformations :: [TextTransformationProperty]
..}
instance Property "TextTransformations" XssMatchStatementProperty where
  type PropertyType "TextTransformations" XssMatchStatementProperty = [TextTransformationProperty]
  set :: PropertyType "TextTransformations" XssMatchStatementProperty
-> XssMatchStatementProperty -> XssMatchStatementProperty
set PropertyType "TextTransformations" XssMatchStatementProperty
newValue XssMatchStatementProperty {[TextTransformationProperty]
()
FieldToMatchProperty
haddock_workaround_ :: XssMatchStatementProperty -> ()
fieldToMatch :: XssMatchStatementProperty -> FieldToMatchProperty
textTransformations :: XssMatchStatementProperty -> [TextTransformationProperty]
haddock_workaround_ :: ()
fieldToMatch :: FieldToMatchProperty
textTransformations :: [TextTransformationProperty]
..}
    = XssMatchStatementProperty {textTransformations :: [TextTransformationProperty]
textTransformations = [TextTransformationProperty]
PropertyType "TextTransformations" XssMatchStatementProperty
newValue, ()
FieldToMatchProperty
haddock_workaround_ :: ()
fieldToMatch :: FieldToMatchProperty
haddock_workaround_ :: ()
fieldToMatch :: FieldToMatchProperty
..}