module Stratosphere.CustomerProfiles.EventTrigger.EventTriggerConditionProperty (
        module Exports, EventTriggerConditionProperty(..),
        mkEventTriggerConditionProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.CustomerProfiles.EventTrigger.EventTriggerDimensionProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data EventTriggerConditionProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-eventtrigger-eventtriggercondition.html>
    EventTriggerConditionProperty {EventTriggerConditionProperty -> ()
haddock_workaround_ :: (),
                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-eventtrigger-eventtriggercondition.html#cfn-customerprofiles-eventtrigger-eventtriggercondition-eventtriggerdimensions>
                                   EventTriggerConditionProperty -> [EventTriggerDimensionProperty]
eventTriggerDimensions :: [EventTriggerDimensionProperty],
                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-eventtrigger-eventtriggercondition.html#cfn-customerprofiles-eventtrigger-eventtriggercondition-logicaloperator>
                                   EventTriggerConditionProperty -> Value Text
logicalOperator :: (Value Prelude.Text)}
  deriving stock (EventTriggerConditionProperty
-> EventTriggerConditionProperty -> Bool
(EventTriggerConditionProperty
 -> EventTriggerConditionProperty -> Bool)
-> (EventTriggerConditionProperty
    -> EventTriggerConditionProperty -> Bool)
-> Eq EventTriggerConditionProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: EventTriggerConditionProperty
-> EventTriggerConditionProperty -> Bool
== :: EventTriggerConditionProperty
-> EventTriggerConditionProperty -> Bool
$c/= :: EventTriggerConditionProperty
-> EventTriggerConditionProperty -> Bool
/= :: EventTriggerConditionProperty
-> EventTriggerConditionProperty -> Bool
Prelude.Eq, Int -> EventTriggerConditionProperty -> ShowS
[EventTriggerConditionProperty] -> ShowS
EventTriggerConditionProperty -> String
(Int -> EventTriggerConditionProperty -> ShowS)
-> (EventTriggerConditionProperty -> String)
-> ([EventTriggerConditionProperty] -> ShowS)
-> Show EventTriggerConditionProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> EventTriggerConditionProperty -> ShowS
showsPrec :: Int -> EventTriggerConditionProperty -> ShowS
$cshow :: EventTriggerConditionProperty -> String
show :: EventTriggerConditionProperty -> String
$cshowList :: [EventTriggerConditionProperty] -> ShowS
showList :: [EventTriggerConditionProperty] -> ShowS
Prelude.Show)
mkEventTriggerConditionProperty ::
  [EventTriggerDimensionProperty]
  -> Value Prelude.Text -> EventTriggerConditionProperty
mkEventTriggerConditionProperty :: [EventTriggerDimensionProperty]
-> Value Text -> EventTriggerConditionProperty
mkEventTriggerConditionProperty
  [EventTriggerDimensionProperty]
eventTriggerDimensions
  Value Text
logicalOperator
  = EventTriggerConditionProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (),
       eventTriggerDimensions :: [EventTriggerDimensionProperty]
eventTriggerDimensions = [EventTriggerDimensionProperty]
eventTriggerDimensions,
       logicalOperator :: Value Text
logicalOperator = Value Text
logicalOperator}
instance ToResourceProperties EventTriggerConditionProperty where
  toResourceProperties :: EventTriggerConditionProperty -> ResourceProperties
toResourceProperties EventTriggerConditionProperty {[EventTriggerDimensionProperty]
()
Value Text
haddock_workaround_ :: EventTriggerConditionProperty -> ()
eventTriggerDimensions :: EventTriggerConditionProperty -> [EventTriggerDimensionProperty]
logicalOperator :: EventTriggerConditionProperty -> Value Text
haddock_workaround_ :: ()
eventTriggerDimensions :: [EventTriggerDimensionProperty]
logicalOperator :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::CustomerProfiles::EventTrigger.EventTriggerCondition",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"EventTriggerDimensions"
                         Key -> [EventTriggerDimensionProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= [EventTriggerDimensionProperty]
eventTriggerDimensions,
                       Key
"LogicalOperator" 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
logicalOperator]}
instance JSON.ToJSON EventTriggerConditionProperty where
  toJSON :: EventTriggerConditionProperty -> Value
toJSON EventTriggerConditionProperty {[EventTriggerDimensionProperty]
()
Value Text
haddock_workaround_ :: EventTriggerConditionProperty -> ()
eventTriggerDimensions :: EventTriggerConditionProperty -> [EventTriggerDimensionProperty]
logicalOperator :: EventTriggerConditionProperty -> Value Text
haddock_workaround_ :: ()
eventTriggerDimensions :: [EventTriggerDimensionProperty]
logicalOperator :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"EventTriggerDimensions" Key -> [EventTriggerDimensionProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= [EventTriggerDimensionProperty]
eventTriggerDimensions,
         Key
"LogicalOperator" 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
logicalOperator]
instance Property "EventTriggerDimensions" EventTriggerConditionProperty where
  type PropertyType "EventTriggerDimensions" EventTriggerConditionProperty = [EventTriggerDimensionProperty]
  set :: PropertyType "EventTriggerDimensions" EventTriggerConditionProperty
-> EventTriggerConditionProperty -> EventTriggerConditionProperty
set PropertyType "EventTriggerDimensions" EventTriggerConditionProperty
newValue EventTriggerConditionProperty {[EventTriggerDimensionProperty]
()
Value Text
haddock_workaround_ :: EventTriggerConditionProperty -> ()
eventTriggerDimensions :: EventTriggerConditionProperty -> [EventTriggerDimensionProperty]
logicalOperator :: EventTriggerConditionProperty -> Value Text
haddock_workaround_ :: ()
eventTriggerDimensions :: [EventTriggerDimensionProperty]
logicalOperator :: Value Text
..}
    = EventTriggerConditionProperty
        {eventTriggerDimensions :: [EventTriggerDimensionProperty]
eventTriggerDimensions = [EventTriggerDimensionProperty]
PropertyType "EventTriggerDimensions" EventTriggerConditionProperty
newValue, ()
Value Text
haddock_workaround_ :: ()
logicalOperator :: Value Text
haddock_workaround_ :: ()
logicalOperator :: Value Text
..}
instance Property "LogicalOperator" EventTriggerConditionProperty where
  type PropertyType "LogicalOperator" EventTriggerConditionProperty = Value Prelude.Text
  set :: PropertyType "LogicalOperator" EventTriggerConditionProperty
-> EventTriggerConditionProperty -> EventTriggerConditionProperty
set PropertyType "LogicalOperator" EventTriggerConditionProperty
newValue EventTriggerConditionProperty {[EventTriggerDimensionProperty]
()
Value Text
haddock_workaround_ :: EventTriggerConditionProperty -> ()
eventTriggerDimensions :: EventTriggerConditionProperty -> [EventTriggerDimensionProperty]
logicalOperator :: EventTriggerConditionProperty -> Value Text
haddock_workaround_ :: ()
eventTriggerDimensions :: [EventTriggerDimensionProperty]
logicalOperator :: Value Text
..}
    = EventTriggerConditionProperty {logicalOperator :: Value Text
logicalOperator = PropertyType "LogicalOperator" EventTriggerConditionProperty
Value Text
newValue, [EventTriggerDimensionProperty]
()
haddock_workaround_ :: ()
eventTriggerDimensions :: [EventTriggerDimensionProperty]
haddock_workaround_ :: ()
eventTriggerDimensions :: [EventTriggerDimensionProperty]
..}