module Stratosphere.WAFv2.RuleGroup.OrStatementProperty (
        module Exports, OrStatementProperty(..), mkOrStatementProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.WAFv2.RuleGroup.StatementProperty as Exports
import Stratosphere.ResourceProperties
data OrStatementProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-orstatement.html>
    OrStatementProperty {OrStatementProperty -> ()
haddock_workaround_ :: (),
                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-orstatement.html#cfn-wafv2-rulegroup-orstatement-statements>
                         OrStatementProperty -> [StatementProperty]
statements :: [StatementProperty]}
  deriving stock (OrStatementProperty -> OrStatementProperty -> Bool
(OrStatementProperty -> OrStatementProperty -> Bool)
-> (OrStatementProperty -> OrStatementProperty -> Bool)
-> Eq OrStatementProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: OrStatementProperty -> OrStatementProperty -> Bool
== :: OrStatementProperty -> OrStatementProperty -> Bool
$c/= :: OrStatementProperty -> OrStatementProperty -> Bool
/= :: OrStatementProperty -> OrStatementProperty -> Bool
Prelude.Eq, Int -> OrStatementProperty -> ShowS
[OrStatementProperty] -> ShowS
OrStatementProperty -> String
(Int -> OrStatementProperty -> ShowS)
-> (OrStatementProperty -> String)
-> ([OrStatementProperty] -> ShowS)
-> Show OrStatementProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> OrStatementProperty -> ShowS
showsPrec :: Int -> OrStatementProperty -> ShowS
$cshow :: OrStatementProperty -> String
show :: OrStatementProperty -> String
$cshowList :: [OrStatementProperty] -> ShowS
showList :: [OrStatementProperty] -> ShowS
Prelude.Show)
mkOrStatementProperty :: [StatementProperty] -> OrStatementProperty
mkOrStatementProperty :: [StatementProperty] -> OrStatementProperty
mkOrStatementProperty [StatementProperty]
statements
  = OrStatementProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), statements :: [StatementProperty]
statements = [StatementProperty]
statements}
instance ToResourceProperties OrStatementProperty where
  toResourceProperties :: OrStatementProperty -> ResourceProperties
toResourceProperties OrStatementProperty {[StatementProperty]
()
haddock_workaround_ :: OrStatementProperty -> ()
statements :: OrStatementProperty -> [StatementProperty]
haddock_workaround_ :: ()
statements :: [StatementProperty]
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::WAFv2::RuleGroup.OrStatement",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"Statements" Key -> [StatementProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= [StatementProperty]
statements]}
instance JSON.ToJSON OrStatementProperty where
  toJSON :: OrStatementProperty -> Value
toJSON OrStatementProperty {[StatementProperty]
()
haddock_workaround_ :: OrStatementProperty -> ()
statements :: OrStatementProperty -> [StatementProperty]
haddock_workaround_ :: ()
statements :: [StatementProperty]
..}
    = [(Key, Value)] -> Value
JSON.object [Key
"Statements" Key -> [StatementProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= [StatementProperty]
statements]
instance Property "Statements" OrStatementProperty where
  type PropertyType "Statements" OrStatementProperty = [StatementProperty]
  set :: PropertyType "Statements" OrStatementProperty
-> OrStatementProperty -> OrStatementProperty
set PropertyType "Statements" OrStatementProperty
newValue OrStatementProperty {[StatementProperty]
()
haddock_workaround_ :: OrStatementProperty -> ()
statements :: OrStatementProperty -> [StatementProperty]
haddock_workaround_ :: ()
statements :: [StatementProperty]
..}
    = OrStatementProperty {statements :: [StatementProperty]
statements = [StatementProperty]
PropertyType "Statements" OrStatementProperty
newValue, ()
haddock_workaround_ :: ()
haddock_workaround_ :: ()
..}