module Stratosphere.SES.MailManagerRuleSet.RuleBooleanExpressionProperty (
        module Exports, RuleBooleanExpressionProperty(..),
        mkRuleBooleanExpressionProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.SES.MailManagerRuleSet.RuleBooleanToEvaluateProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data RuleBooleanExpressionProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-mailmanagerruleset-rulebooleanexpression.html>
    RuleBooleanExpressionProperty {RuleBooleanExpressionProperty -> ()
haddock_workaround_ :: (),
                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-mailmanagerruleset-rulebooleanexpression.html#cfn-ses-mailmanagerruleset-rulebooleanexpression-evaluate>
                                   RuleBooleanExpressionProperty -> RuleBooleanToEvaluateProperty
evaluate :: RuleBooleanToEvaluateProperty,
                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-mailmanagerruleset-rulebooleanexpression.html#cfn-ses-mailmanagerruleset-rulebooleanexpression-operator>
                                   RuleBooleanExpressionProperty -> Value Text
operator :: (Value Prelude.Text)}
  deriving stock (RuleBooleanExpressionProperty
-> RuleBooleanExpressionProperty -> Bool
(RuleBooleanExpressionProperty
 -> RuleBooleanExpressionProperty -> Bool)
-> (RuleBooleanExpressionProperty
    -> RuleBooleanExpressionProperty -> Bool)
-> Eq RuleBooleanExpressionProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: RuleBooleanExpressionProperty
-> RuleBooleanExpressionProperty -> Bool
== :: RuleBooleanExpressionProperty
-> RuleBooleanExpressionProperty -> Bool
$c/= :: RuleBooleanExpressionProperty
-> RuleBooleanExpressionProperty -> Bool
/= :: RuleBooleanExpressionProperty
-> RuleBooleanExpressionProperty -> Bool
Prelude.Eq, Int -> RuleBooleanExpressionProperty -> ShowS
[RuleBooleanExpressionProperty] -> ShowS
RuleBooleanExpressionProperty -> String
(Int -> RuleBooleanExpressionProperty -> ShowS)
-> (RuleBooleanExpressionProperty -> String)
-> ([RuleBooleanExpressionProperty] -> ShowS)
-> Show RuleBooleanExpressionProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> RuleBooleanExpressionProperty -> ShowS
showsPrec :: Int -> RuleBooleanExpressionProperty -> ShowS
$cshow :: RuleBooleanExpressionProperty -> String
show :: RuleBooleanExpressionProperty -> String
$cshowList :: [RuleBooleanExpressionProperty] -> ShowS
showList :: [RuleBooleanExpressionProperty] -> ShowS
Prelude.Show)
mkRuleBooleanExpressionProperty ::
  RuleBooleanToEvaluateProperty
  -> Value Prelude.Text -> RuleBooleanExpressionProperty
mkRuleBooleanExpressionProperty :: RuleBooleanToEvaluateProperty
-> Value Text -> RuleBooleanExpressionProperty
mkRuleBooleanExpressionProperty RuleBooleanToEvaluateProperty
evaluate Value Text
operator
  = RuleBooleanExpressionProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), evaluate :: RuleBooleanToEvaluateProperty
evaluate = RuleBooleanToEvaluateProperty
evaluate,
       operator :: Value Text
operator = Value Text
operator}
instance ToResourceProperties RuleBooleanExpressionProperty where
  toResourceProperties :: RuleBooleanExpressionProperty -> ResourceProperties
toResourceProperties RuleBooleanExpressionProperty {()
Value Text
RuleBooleanToEvaluateProperty
haddock_workaround_ :: RuleBooleanExpressionProperty -> ()
evaluate :: RuleBooleanExpressionProperty -> RuleBooleanToEvaluateProperty
operator :: RuleBooleanExpressionProperty -> Value Text
haddock_workaround_ :: ()
evaluate :: RuleBooleanToEvaluateProperty
operator :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::SES::MailManagerRuleSet.RuleBooleanExpression",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"Evaluate" Key -> RuleBooleanToEvaluateProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= RuleBooleanToEvaluateProperty
evaluate,
                       Key
"Operator" 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
operator]}
instance JSON.ToJSON RuleBooleanExpressionProperty where
  toJSON :: RuleBooleanExpressionProperty -> Value
toJSON RuleBooleanExpressionProperty {()
Value Text
RuleBooleanToEvaluateProperty
haddock_workaround_ :: RuleBooleanExpressionProperty -> ()
evaluate :: RuleBooleanExpressionProperty -> RuleBooleanToEvaluateProperty
operator :: RuleBooleanExpressionProperty -> Value Text
haddock_workaround_ :: ()
evaluate :: RuleBooleanToEvaluateProperty
operator :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"Evaluate" Key -> RuleBooleanToEvaluateProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= RuleBooleanToEvaluateProperty
evaluate, Key
"Operator" 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
operator]
instance Property "Evaluate" RuleBooleanExpressionProperty where
  type PropertyType "Evaluate" RuleBooleanExpressionProperty = RuleBooleanToEvaluateProperty
  set :: PropertyType "Evaluate" RuleBooleanExpressionProperty
-> RuleBooleanExpressionProperty -> RuleBooleanExpressionProperty
set PropertyType "Evaluate" RuleBooleanExpressionProperty
newValue RuleBooleanExpressionProperty {()
Value Text
RuleBooleanToEvaluateProperty
haddock_workaround_ :: RuleBooleanExpressionProperty -> ()
evaluate :: RuleBooleanExpressionProperty -> RuleBooleanToEvaluateProperty
operator :: RuleBooleanExpressionProperty -> Value Text
haddock_workaround_ :: ()
evaluate :: RuleBooleanToEvaluateProperty
operator :: Value Text
..}
    = RuleBooleanExpressionProperty {evaluate :: RuleBooleanToEvaluateProperty
evaluate = PropertyType "Evaluate" RuleBooleanExpressionProperty
RuleBooleanToEvaluateProperty
newValue, ()
Value Text
haddock_workaround_ :: ()
operator :: Value Text
haddock_workaround_ :: ()
operator :: Value Text
..}
instance Property "Operator" RuleBooleanExpressionProperty where
  type PropertyType "Operator" RuleBooleanExpressionProperty = Value Prelude.Text
  set :: PropertyType "Operator" RuleBooleanExpressionProperty
-> RuleBooleanExpressionProperty -> RuleBooleanExpressionProperty
set PropertyType "Operator" RuleBooleanExpressionProperty
newValue RuleBooleanExpressionProperty {()
Value Text
RuleBooleanToEvaluateProperty
haddock_workaround_ :: RuleBooleanExpressionProperty -> ()
evaluate :: RuleBooleanExpressionProperty -> RuleBooleanToEvaluateProperty
operator :: RuleBooleanExpressionProperty -> Value Text
haddock_workaround_ :: ()
evaluate :: RuleBooleanToEvaluateProperty
operator :: Value Text
..}
    = RuleBooleanExpressionProperty {operator :: Value Text
operator = PropertyType "Operator" RuleBooleanExpressionProperty
Value Text
newValue, ()
RuleBooleanToEvaluateProperty
haddock_workaround_ :: ()
evaluate :: RuleBooleanToEvaluateProperty
haddock_workaround_ :: ()
evaluate :: RuleBooleanToEvaluateProperty
..}