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