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