module Stratosphere.BedrockAgentCore.Memory.TriggerConditionInputProperty (
        module Exports, TriggerConditionInputProperty(..),
        mkTriggerConditionInputProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.BedrockAgentCore.Memory.MessageBasedTriggerInputProperty as Exports
import {-# SOURCE #-} Stratosphere.BedrockAgentCore.Memory.TimeBasedTriggerInputProperty as Exports
import {-# SOURCE #-} Stratosphere.BedrockAgentCore.Memory.TokenBasedTriggerInputProperty as Exports
import Stratosphere.ResourceProperties
data TriggerConditionInputProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrockagentcore-memory-triggerconditioninput.html>
    TriggerConditionInputProperty {TriggerConditionInputProperty -> ()
haddock_workaround_ :: (),
                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrockagentcore-memory-triggerconditioninput.html#cfn-bedrockagentcore-memory-triggerconditioninput-messagebasedtrigger>
                                   TriggerConditionInputProperty
-> Maybe MessageBasedTriggerInputProperty
messageBasedTrigger :: (Prelude.Maybe MessageBasedTriggerInputProperty),
                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrockagentcore-memory-triggerconditioninput.html#cfn-bedrockagentcore-memory-triggerconditioninput-timebasedtrigger>
                                   TriggerConditionInputProperty
-> Maybe TimeBasedTriggerInputProperty
timeBasedTrigger :: (Prelude.Maybe TimeBasedTriggerInputProperty),
                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrockagentcore-memory-triggerconditioninput.html#cfn-bedrockagentcore-memory-triggerconditioninput-tokenbasedtrigger>
                                   TriggerConditionInputProperty
-> Maybe TokenBasedTriggerInputProperty
tokenBasedTrigger :: (Prelude.Maybe TokenBasedTriggerInputProperty)}
  deriving stock (TriggerConditionInputProperty
-> TriggerConditionInputProperty -> Bool
(TriggerConditionInputProperty
 -> TriggerConditionInputProperty -> Bool)
-> (TriggerConditionInputProperty
    -> TriggerConditionInputProperty -> Bool)
-> Eq TriggerConditionInputProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: TriggerConditionInputProperty
-> TriggerConditionInputProperty -> Bool
== :: TriggerConditionInputProperty
-> TriggerConditionInputProperty -> Bool
$c/= :: TriggerConditionInputProperty
-> TriggerConditionInputProperty -> Bool
/= :: TriggerConditionInputProperty
-> TriggerConditionInputProperty -> Bool
Prelude.Eq, Int -> TriggerConditionInputProperty -> ShowS
[TriggerConditionInputProperty] -> ShowS
TriggerConditionInputProperty -> String
(Int -> TriggerConditionInputProperty -> ShowS)
-> (TriggerConditionInputProperty -> String)
-> ([TriggerConditionInputProperty] -> ShowS)
-> Show TriggerConditionInputProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> TriggerConditionInputProperty -> ShowS
showsPrec :: Int -> TriggerConditionInputProperty -> ShowS
$cshow :: TriggerConditionInputProperty -> String
show :: TriggerConditionInputProperty -> String
$cshowList :: [TriggerConditionInputProperty] -> ShowS
showList :: [TriggerConditionInputProperty] -> ShowS
Prelude.Show)
mkTriggerConditionInputProperty :: TriggerConditionInputProperty
mkTriggerConditionInputProperty :: TriggerConditionInputProperty
mkTriggerConditionInputProperty
  = TriggerConditionInputProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), messageBasedTrigger :: Maybe MessageBasedTriggerInputProperty
messageBasedTrigger = Maybe MessageBasedTriggerInputProperty
forall a. Maybe a
Prelude.Nothing,
       timeBasedTrigger :: Maybe TimeBasedTriggerInputProperty
timeBasedTrigger = Maybe TimeBasedTriggerInputProperty
forall a. Maybe a
Prelude.Nothing,
       tokenBasedTrigger :: Maybe TokenBasedTriggerInputProperty
tokenBasedTrigger = Maybe TokenBasedTriggerInputProperty
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties TriggerConditionInputProperty where
  toResourceProperties :: TriggerConditionInputProperty -> ResourceProperties
toResourceProperties TriggerConditionInputProperty {Maybe MessageBasedTriggerInputProperty
Maybe TimeBasedTriggerInputProperty
Maybe TokenBasedTriggerInputProperty
()
haddock_workaround_ :: TriggerConditionInputProperty -> ()
messageBasedTrigger :: TriggerConditionInputProperty
-> Maybe MessageBasedTriggerInputProperty
timeBasedTrigger :: TriggerConditionInputProperty
-> Maybe TimeBasedTriggerInputProperty
tokenBasedTrigger :: TriggerConditionInputProperty
-> Maybe TokenBasedTriggerInputProperty
haddock_workaround_ :: ()
messageBasedTrigger :: Maybe MessageBasedTriggerInputProperty
timeBasedTrigger :: Maybe TimeBasedTriggerInputProperty
tokenBasedTrigger :: Maybe TokenBasedTriggerInputProperty
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::BedrockAgentCore::Memory.TriggerConditionInput",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Item Object] -> Object
forall l. IsList l => [Item l] -> l
Prelude.fromList
                        ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                           [Key -> MessageBasedTriggerInputProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"MessageBasedTrigger" (MessageBasedTriggerInputProperty -> (Key, Value))
-> Maybe MessageBasedTriggerInputProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe MessageBasedTriggerInputProperty
messageBasedTrigger,
                            Key -> TimeBasedTriggerInputProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"TimeBasedTrigger" (TimeBasedTriggerInputProperty -> (Key, Value))
-> Maybe TimeBasedTriggerInputProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe TimeBasedTriggerInputProperty
timeBasedTrigger,
                            Key -> TokenBasedTriggerInputProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"TokenBasedTrigger" (TokenBasedTriggerInputProperty -> (Key, Value))
-> Maybe TokenBasedTriggerInputProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe TokenBasedTriggerInputProperty
tokenBasedTrigger])}
instance JSON.ToJSON TriggerConditionInputProperty where
  toJSON :: TriggerConditionInputProperty -> Value
toJSON TriggerConditionInputProperty {Maybe MessageBasedTriggerInputProperty
Maybe TimeBasedTriggerInputProperty
Maybe TokenBasedTriggerInputProperty
()
haddock_workaround_ :: TriggerConditionInputProperty -> ()
messageBasedTrigger :: TriggerConditionInputProperty
-> Maybe MessageBasedTriggerInputProperty
timeBasedTrigger :: TriggerConditionInputProperty
-> Maybe TimeBasedTriggerInputProperty
tokenBasedTrigger :: TriggerConditionInputProperty
-> Maybe TokenBasedTriggerInputProperty
haddock_workaround_ :: ()
messageBasedTrigger :: Maybe MessageBasedTriggerInputProperty
timeBasedTrigger :: Maybe TimeBasedTriggerInputProperty
tokenBasedTrigger :: Maybe TokenBasedTriggerInputProperty
..}
    = [(Key, Value)] -> Value
JSON.object
        ([Item [(Key, Value)]] -> [(Key, Value)]
forall l. IsList l => [Item l] -> l
Prelude.fromList
           ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
              [Key -> MessageBasedTriggerInputProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"MessageBasedTrigger" (MessageBasedTriggerInputProperty -> (Key, Value))
-> Maybe MessageBasedTriggerInputProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe MessageBasedTriggerInputProperty
messageBasedTrigger,
               Key -> TimeBasedTriggerInputProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"TimeBasedTrigger" (TimeBasedTriggerInputProperty -> (Key, Value))
-> Maybe TimeBasedTriggerInputProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe TimeBasedTriggerInputProperty
timeBasedTrigger,
               Key -> TokenBasedTriggerInputProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"TokenBasedTrigger" (TokenBasedTriggerInputProperty -> (Key, Value))
-> Maybe TokenBasedTriggerInputProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe TokenBasedTriggerInputProperty
tokenBasedTrigger]))
instance Property "MessageBasedTrigger" TriggerConditionInputProperty where
  type PropertyType "MessageBasedTrigger" TriggerConditionInputProperty = MessageBasedTriggerInputProperty
  set :: PropertyType "MessageBasedTrigger" TriggerConditionInputProperty
-> TriggerConditionInputProperty -> TriggerConditionInputProperty
set PropertyType "MessageBasedTrigger" TriggerConditionInputProperty
newValue TriggerConditionInputProperty {Maybe MessageBasedTriggerInputProperty
Maybe TimeBasedTriggerInputProperty
Maybe TokenBasedTriggerInputProperty
()
haddock_workaround_ :: TriggerConditionInputProperty -> ()
messageBasedTrigger :: TriggerConditionInputProperty
-> Maybe MessageBasedTriggerInputProperty
timeBasedTrigger :: TriggerConditionInputProperty
-> Maybe TimeBasedTriggerInputProperty
tokenBasedTrigger :: TriggerConditionInputProperty
-> Maybe TokenBasedTriggerInputProperty
haddock_workaround_ :: ()
messageBasedTrigger :: Maybe MessageBasedTriggerInputProperty
timeBasedTrigger :: Maybe TimeBasedTriggerInputProperty
tokenBasedTrigger :: Maybe TokenBasedTriggerInputProperty
..}
    = TriggerConditionInputProperty
        {messageBasedTrigger :: Maybe MessageBasedTriggerInputProperty
messageBasedTrigger = MessageBasedTriggerInputProperty
-> Maybe MessageBasedTriggerInputProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "MessageBasedTrigger" TriggerConditionInputProperty
MessageBasedTriggerInputProperty
newValue, Maybe TimeBasedTriggerInputProperty
Maybe TokenBasedTriggerInputProperty
()
haddock_workaround_ :: ()
timeBasedTrigger :: Maybe TimeBasedTriggerInputProperty
tokenBasedTrigger :: Maybe TokenBasedTriggerInputProperty
haddock_workaround_ :: ()
timeBasedTrigger :: Maybe TimeBasedTriggerInputProperty
tokenBasedTrigger :: Maybe TokenBasedTriggerInputProperty
..}
instance Property "TimeBasedTrigger" TriggerConditionInputProperty where
  type PropertyType "TimeBasedTrigger" TriggerConditionInputProperty = TimeBasedTriggerInputProperty
  set :: PropertyType "TimeBasedTrigger" TriggerConditionInputProperty
-> TriggerConditionInputProperty -> TriggerConditionInputProperty
set PropertyType "TimeBasedTrigger" TriggerConditionInputProperty
newValue TriggerConditionInputProperty {Maybe MessageBasedTriggerInputProperty
Maybe TimeBasedTriggerInputProperty
Maybe TokenBasedTriggerInputProperty
()
haddock_workaround_ :: TriggerConditionInputProperty -> ()
messageBasedTrigger :: TriggerConditionInputProperty
-> Maybe MessageBasedTriggerInputProperty
timeBasedTrigger :: TriggerConditionInputProperty
-> Maybe TimeBasedTriggerInputProperty
tokenBasedTrigger :: TriggerConditionInputProperty
-> Maybe TokenBasedTriggerInputProperty
haddock_workaround_ :: ()
messageBasedTrigger :: Maybe MessageBasedTriggerInputProperty
timeBasedTrigger :: Maybe TimeBasedTriggerInputProperty
tokenBasedTrigger :: Maybe TokenBasedTriggerInputProperty
..}
    = TriggerConditionInputProperty
        {timeBasedTrigger :: Maybe TimeBasedTriggerInputProperty
timeBasedTrigger = TimeBasedTriggerInputProperty
-> Maybe TimeBasedTriggerInputProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "TimeBasedTrigger" TriggerConditionInputProperty
TimeBasedTriggerInputProperty
newValue, Maybe MessageBasedTriggerInputProperty
Maybe TokenBasedTriggerInputProperty
()
haddock_workaround_ :: ()
messageBasedTrigger :: Maybe MessageBasedTriggerInputProperty
tokenBasedTrigger :: Maybe TokenBasedTriggerInputProperty
haddock_workaround_ :: ()
messageBasedTrigger :: Maybe MessageBasedTriggerInputProperty
tokenBasedTrigger :: Maybe TokenBasedTriggerInputProperty
..}
instance Property "TokenBasedTrigger" TriggerConditionInputProperty where
  type PropertyType "TokenBasedTrigger" TriggerConditionInputProperty = TokenBasedTriggerInputProperty
  set :: PropertyType "TokenBasedTrigger" TriggerConditionInputProperty
-> TriggerConditionInputProperty -> TriggerConditionInputProperty
set PropertyType "TokenBasedTrigger" TriggerConditionInputProperty
newValue TriggerConditionInputProperty {Maybe MessageBasedTriggerInputProperty
Maybe TimeBasedTriggerInputProperty
Maybe TokenBasedTriggerInputProperty
()
haddock_workaround_ :: TriggerConditionInputProperty -> ()
messageBasedTrigger :: TriggerConditionInputProperty
-> Maybe MessageBasedTriggerInputProperty
timeBasedTrigger :: TriggerConditionInputProperty
-> Maybe TimeBasedTriggerInputProperty
tokenBasedTrigger :: TriggerConditionInputProperty
-> Maybe TokenBasedTriggerInputProperty
haddock_workaround_ :: ()
messageBasedTrigger :: Maybe MessageBasedTriggerInputProperty
timeBasedTrigger :: Maybe TimeBasedTriggerInputProperty
tokenBasedTrigger :: Maybe TokenBasedTriggerInputProperty
..}
    = TriggerConditionInputProperty
        {tokenBasedTrigger :: Maybe TokenBasedTriggerInputProperty
tokenBasedTrigger = TokenBasedTriggerInputProperty
-> Maybe TokenBasedTriggerInputProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "TokenBasedTrigger" TriggerConditionInputProperty
TokenBasedTriggerInputProperty
newValue, Maybe MessageBasedTriggerInputProperty
Maybe TimeBasedTriggerInputProperty
()
haddock_workaround_ :: ()
messageBasedTrigger :: Maybe MessageBasedTriggerInputProperty
timeBasedTrigger :: Maybe TimeBasedTriggerInputProperty
haddock_workaround_ :: ()
messageBasedTrigger :: Maybe MessageBasedTriggerInputProperty
timeBasedTrigger :: Maybe TimeBasedTriggerInputProperty
..}