module Stratosphere.Wisdom.AIAgent (
        module Exports, AIAgent(..), mkAIAgent
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.Wisdom.AIAgent.AIAgentConfigurationProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data AIAgent
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-aiagent.html>
    AIAgent {AIAgent -> ()
haddock_workaround_ :: (),
             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-aiagent.html#cfn-wisdom-aiagent-assistantid>
             AIAgent -> Value Text
assistantId :: (Value Prelude.Text),
             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-aiagent.html#cfn-wisdom-aiagent-configuration>
             AIAgent -> AIAgentConfigurationProperty
configuration :: AIAgentConfigurationProperty,
             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-aiagent.html#cfn-wisdom-aiagent-description>
             AIAgent -> Maybe (Value Text)
description :: (Prelude.Maybe (Value Prelude.Text)),
             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-aiagent.html#cfn-wisdom-aiagent-name>
             AIAgent -> Maybe (Value Text)
name :: (Prelude.Maybe (Value Prelude.Text)),
             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-aiagent.html#cfn-wisdom-aiagent-tags>
             AIAgent -> Maybe (Map Text (Value Text))
tags :: (Prelude.Maybe (Prelude.Map Prelude.Text (Value Prelude.Text))),
             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-aiagent.html#cfn-wisdom-aiagent-type>
             AIAgent -> Value Text
type' :: (Value Prelude.Text)}
  deriving stock (AIAgent -> AIAgent -> Bool
(AIAgent -> AIAgent -> Bool)
-> (AIAgent -> AIAgent -> Bool) -> Eq AIAgent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: AIAgent -> AIAgent -> Bool
== :: AIAgent -> AIAgent -> Bool
$c/= :: AIAgent -> AIAgent -> Bool
/= :: AIAgent -> AIAgent -> Bool
Prelude.Eq, Int -> AIAgent -> ShowS
[AIAgent] -> ShowS
AIAgent -> String
(Int -> AIAgent -> ShowS)
-> (AIAgent -> String) -> ([AIAgent] -> ShowS) -> Show AIAgent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> AIAgent -> ShowS
showsPrec :: Int -> AIAgent -> ShowS
$cshow :: AIAgent -> String
show :: AIAgent -> String
$cshowList :: [AIAgent] -> ShowS
showList :: [AIAgent] -> ShowS
Prelude.Show)
mkAIAgent ::
  Value Prelude.Text
  -> AIAgentConfigurationProperty -> Value Prelude.Text -> AIAgent
mkAIAgent :: Value Text -> AIAgentConfigurationProperty -> Value Text -> AIAgent
mkAIAgent Value Text
assistantId AIAgentConfigurationProperty
configuration Value Text
type'
  = AIAgent
      {haddock_workaround_ :: ()
haddock_workaround_ = (), assistantId :: Value Text
assistantId = Value Text
assistantId,
       configuration :: AIAgentConfigurationProperty
configuration = AIAgentConfigurationProperty
configuration, type' :: Value Text
type' = Value Text
type',
       description :: Maybe (Value Text)
description = Maybe (Value Text)
forall a. Maybe a
Prelude.Nothing, name :: Maybe (Value Text)
name = Maybe (Value Text)
forall a. Maybe a
Prelude.Nothing,
       tags :: Maybe (Map Text (Value Text))
tags = Maybe (Map Text (Value Text))
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties AIAgent where
  toResourceProperties :: AIAgent -> ResourceProperties
toResourceProperties AIAgent {Maybe (Map Text (Value Text))
Maybe (Value Text)
()
Value Text
AIAgentConfigurationProperty
haddock_workaround_ :: AIAgent -> ()
assistantId :: AIAgent -> Value Text
configuration :: AIAgent -> AIAgentConfigurationProperty
description :: AIAgent -> Maybe (Value Text)
name :: AIAgent -> Maybe (Value Text)
tags :: AIAgent -> Maybe (Map Text (Value Text))
type' :: AIAgent -> Value Text
haddock_workaround_ :: ()
assistantId :: Value Text
configuration :: AIAgentConfigurationProperty
description :: Maybe (Value Text)
name :: Maybe (Value Text)
tags :: Maybe (Map Text (Value Text))
type' :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::Wisdom::AIAgent", supportsTags :: Bool
supportsTags = Bool
Prelude.True,
         properties :: Object
properties = [Item Object] -> Object
forall l. IsList l => [Item l] -> l
Prelude.fromList
                        ([(Key, Value)] -> [(Key, Value)] -> [(Key, Value)]
forall a. Semigroup a => a -> a -> a
(Prelude.<>)
                           [Key
"AssistantId" 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
assistantId,
                            Key
"Configuration" Key -> AIAgentConfigurationProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= AIAgentConfigurationProperty
configuration, Key
"Type" 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
type']
                           ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                              [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..=) Key
"Description" (Value Text -> (Key, Value))
-> Maybe (Value Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Text)
description,
                               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..=) Key
"Name" (Value Text -> (Key, Value))
-> Maybe (Value Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Text)
name,
                               Key -> Map Text (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..=) Key
"Tags" (Map Text (Value Text) -> (Key, Value))
-> Maybe (Map Text (Value Text)) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Map Text (Value Text))
tags]))}
instance JSON.ToJSON AIAgent where
  toJSON :: AIAgent -> Value
toJSON AIAgent {Maybe (Map Text (Value Text))
Maybe (Value Text)
()
Value Text
AIAgentConfigurationProperty
haddock_workaround_ :: AIAgent -> ()
assistantId :: AIAgent -> Value Text
configuration :: AIAgent -> AIAgentConfigurationProperty
description :: AIAgent -> Maybe (Value Text)
name :: AIAgent -> Maybe (Value Text)
tags :: AIAgent -> Maybe (Map Text (Value Text))
type' :: AIAgent -> Value Text
haddock_workaround_ :: ()
assistantId :: Value Text
configuration :: AIAgentConfigurationProperty
description :: Maybe (Value Text)
name :: Maybe (Value Text)
tags :: Maybe (Map Text (Value Text))
type' :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        ([Item [(Key, Value)]] -> [(Key, Value)]
forall l. IsList l => [Item l] -> l
Prelude.fromList
           ([(Key, Value)] -> [(Key, Value)] -> [(Key, Value)]
forall a. Semigroup a => a -> a -> a
(Prelude.<>)
              [Key
"AssistantId" 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
assistantId,
               Key
"Configuration" Key -> AIAgentConfigurationProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= AIAgentConfigurationProperty
configuration, Key
"Type" 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
type']
              ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                 [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..=) Key
"Description" (Value Text -> (Key, Value))
-> Maybe (Value Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Text)
description,
                  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..=) Key
"Name" (Value Text -> (Key, Value))
-> Maybe (Value Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Text)
name,
                  Key -> Map Text (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..=) Key
"Tags" (Map Text (Value Text) -> (Key, Value))
-> Maybe (Map Text (Value Text)) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Map Text (Value Text))
tags])))
instance Property "AssistantId" AIAgent where
  type PropertyType "AssistantId" AIAgent = Value Prelude.Text
  set :: PropertyType "AssistantId" AIAgent -> AIAgent -> AIAgent
set PropertyType "AssistantId" AIAgent
newValue AIAgent {Maybe (Map Text (Value Text))
Maybe (Value Text)
()
Value Text
AIAgentConfigurationProperty
haddock_workaround_ :: AIAgent -> ()
assistantId :: AIAgent -> Value Text
configuration :: AIAgent -> AIAgentConfigurationProperty
description :: AIAgent -> Maybe (Value Text)
name :: AIAgent -> Maybe (Value Text)
tags :: AIAgent -> Maybe (Map Text (Value Text))
type' :: AIAgent -> Value Text
haddock_workaround_ :: ()
assistantId :: Value Text
configuration :: AIAgentConfigurationProperty
description :: Maybe (Value Text)
name :: Maybe (Value Text)
tags :: Maybe (Map Text (Value Text))
type' :: Value Text
..} = AIAgent {assistantId :: Value Text
assistantId = PropertyType "AssistantId" AIAgent
Value Text
newValue, Maybe (Map Text (Value Text))
Maybe (Value Text)
()
Value Text
AIAgentConfigurationProperty
haddock_workaround_ :: ()
configuration :: AIAgentConfigurationProperty
description :: Maybe (Value Text)
name :: Maybe (Value Text)
tags :: Maybe (Map Text (Value Text))
type' :: Value Text
haddock_workaround_ :: ()
configuration :: AIAgentConfigurationProperty
description :: Maybe (Value Text)
name :: Maybe (Value Text)
tags :: Maybe (Map Text (Value Text))
type' :: Value Text
..}
instance Property "Configuration" AIAgent where
  type PropertyType "Configuration" AIAgent = AIAgentConfigurationProperty
  set :: PropertyType "Configuration" AIAgent -> AIAgent -> AIAgent
set PropertyType "Configuration" AIAgent
newValue AIAgent {Maybe (Map Text (Value Text))
Maybe (Value Text)
()
Value Text
AIAgentConfigurationProperty
haddock_workaround_ :: AIAgent -> ()
assistantId :: AIAgent -> Value Text
configuration :: AIAgent -> AIAgentConfigurationProperty
description :: AIAgent -> Maybe (Value Text)
name :: AIAgent -> Maybe (Value Text)
tags :: AIAgent -> Maybe (Map Text (Value Text))
type' :: AIAgent -> Value Text
haddock_workaround_ :: ()
assistantId :: Value Text
configuration :: AIAgentConfigurationProperty
description :: Maybe (Value Text)
name :: Maybe (Value Text)
tags :: Maybe (Map Text (Value Text))
type' :: Value Text
..} = AIAgent {configuration :: AIAgentConfigurationProperty
configuration = PropertyType "Configuration" AIAgent
AIAgentConfigurationProperty
newValue, Maybe (Map Text (Value Text))
Maybe (Value Text)
()
Value Text
haddock_workaround_ :: ()
assistantId :: Value Text
description :: Maybe (Value Text)
name :: Maybe (Value Text)
tags :: Maybe (Map Text (Value Text))
type' :: Value Text
haddock_workaround_ :: ()
assistantId :: Value Text
description :: Maybe (Value Text)
name :: Maybe (Value Text)
tags :: Maybe (Map Text (Value Text))
type' :: Value Text
..}
instance Property "Description" AIAgent where
  type PropertyType "Description" AIAgent = Value Prelude.Text
  set :: PropertyType "Description" AIAgent -> AIAgent -> AIAgent
set PropertyType "Description" AIAgent
newValue AIAgent {Maybe (Map Text (Value Text))
Maybe (Value Text)
()
Value Text
AIAgentConfigurationProperty
haddock_workaround_ :: AIAgent -> ()
assistantId :: AIAgent -> Value Text
configuration :: AIAgent -> AIAgentConfigurationProperty
description :: AIAgent -> Maybe (Value Text)
name :: AIAgent -> Maybe (Value Text)
tags :: AIAgent -> Maybe (Map Text (Value Text))
type' :: AIAgent -> Value Text
haddock_workaround_ :: ()
assistantId :: Value Text
configuration :: AIAgentConfigurationProperty
description :: Maybe (Value Text)
name :: Maybe (Value Text)
tags :: Maybe (Map Text (Value Text))
type' :: Value Text
..}
    = AIAgent {description :: Maybe (Value Text)
description = Value Text -> Maybe (Value Text)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "Description" AIAgent
Value Text
newValue, Maybe (Map Text (Value Text))
Maybe (Value Text)
()
Value Text
AIAgentConfigurationProperty
haddock_workaround_ :: ()
assistantId :: Value Text
configuration :: AIAgentConfigurationProperty
name :: Maybe (Value Text)
tags :: Maybe (Map Text (Value Text))
type' :: Value Text
haddock_workaround_ :: ()
assistantId :: Value Text
configuration :: AIAgentConfigurationProperty
name :: Maybe (Value Text)
tags :: Maybe (Map Text (Value Text))
type' :: Value Text
..}
instance Property "Name" AIAgent where
  type PropertyType "Name" AIAgent = Value Prelude.Text
  set :: PropertyType "Name" AIAgent -> AIAgent -> AIAgent
set PropertyType "Name" AIAgent
newValue AIAgent {Maybe (Map Text (Value Text))
Maybe (Value Text)
()
Value Text
AIAgentConfigurationProperty
haddock_workaround_ :: AIAgent -> ()
assistantId :: AIAgent -> Value Text
configuration :: AIAgent -> AIAgentConfigurationProperty
description :: AIAgent -> Maybe (Value Text)
name :: AIAgent -> Maybe (Value Text)
tags :: AIAgent -> Maybe (Map Text (Value Text))
type' :: AIAgent -> Value Text
haddock_workaround_ :: ()
assistantId :: Value Text
configuration :: AIAgentConfigurationProperty
description :: Maybe (Value Text)
name :: Maybe (Value Text)
tags :: Maybe (Map Text (Value Text))
type' :: Value Text
..}
    = AIAgent {name :: Maybe (Value Text)
name = Value Text -> Maybe (Value Text)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "Name" AIAgent
Value Text
newValue, Maybe (Map Text (Value Text))
Maybe (Value Text)
()
Value Text
AIAgentConfigurationProperty
haddock_workaround_ :: ()
assistantId :: Value Text
configuration :: AIAgentConfigurationProperty
description :: Maybe (Value Text)
tags :: Maybe (Map Text (Value Text))
type' :: Value Text
haddock_workaround_ :: ()
assistantId :: Value Text
configuration :: AIAgentConfigurationProperty
description :: Maybe (Value Text)
tags :: Maybe (Map Text (Value Text))
type' :: Value Text
..}
instance Property "Tags" AIAgent where
  type PropertyType "Tags" AIAgent = Prelude.Map Prelude.Text (Value Prelude.Text)
  set :: PropertyType "Tags" AIAgent -> AIAgent -> AIAgent
set PropertyType "Tags" AIAgent
newValue AIAgent {Maybe (Map Text (Value Text))
Maybe (Value Text)
()
Value Text
AIAgentConfigurationProperty
haddock_workaround_ :: AIAgent -> ()
assistantId :: AIAgent -> Value Text
configuration :: AIAgent -> AIAgentConfigurationProperty
description :: AIAgent -> Maybe (Value Text)
name :: AIAgent -> Maybe (Value Text)
tags :: AIAgent -> Maybe (Map Text (Value Text))
type' :: AIAgent -> Value Text
haddock_workaround_ :: ()
assistantId :: Value Text
configuration :: AIAgentConfigurationProperty
description :: Maybe (Value Text)
name :: Maybe (Value Text)
tags :: Maybe (Map Text (Value Text))
type' :: Value Text
..}
    = AIAgent {tags :: Maybe (Map Text (Value Text))
tags = Map Text (Value Text) -> Maybe (Map Text (Value Text))
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure Map Text (Value Text)
PropertyType "Tags" AIAgent
newValue, Maybe (Value Text)
()
Value Text
AIAgentConfigurationProperty
haddock_workaround_ :: ()
assistantId :: Value Text
configuration :: AIAgentConfigurationProperty
description :: Maybe (Value Text)
name :: Maybe (Value Text)
type' :: Value Text
haddock_workaround_ :: ()
assistantId :: Value Text
configuration :: AIAgentConfigurationProperty
description :: Maybe (Value Text)
name :: Maybe (Value Text)
type' :: Value Text
..}
instance Property "Type" AIAgent where
  type PropertyType "Type" AIAgent = Value Prelude.Text
  set :: PropertyType "Type" AIAgent -> AIAgent -> AIAgent
set PropertyType "Type" AIAgent
newValue AIAgent {Maybe (Map Text (Value Text))
Maybe (Value Text)
()
Value Text
AIAgentConfigurationProperty
haddock_workaround_ :: AIAgent -> ()
assistantId :: AIAgent -> Value Text
configuration :: AIAgent -> AIAgentConfigurationProperty
description :: AIAgent -> Maybe (Value Text)
name :: AIAgent -> Maybe (Value Text)
tags :: AIAgent -> Maybe (Map Text (Value Text))
type' :: AIAgent -> Value Text
haddock_workaround_ :: ()
assistantId :: Value Text
configuration :: AIAgentConfigurationProperty
description :: Maybe (Value Text)
name :: Maybe (Value Text)
tags :: Maybe (Map Text (Value Text))
type' :: Value Text
..} = AIAgent {type' :: Value Text
type' = PropertyType "Type" AIAgent
Value Text
newValue, Maybe (Map Text (Value Text))
Maybe (Value Text)
()
Value Text
AIAgentConfigurationProperty
haddock_workaround_ :: ()
assistantId :: Value Text
configuration :: AIAgentConfigurationProperty
description :: Maybe (Value Text)
name :: Maybe (Value Text)
tags :: Maybe (Map Text (Value Text))
haddock_workaround_ :: ()
assistantId :: Value Text
configuration :: AIAgentConfigurationProperty
description :: Maybe (Value Text)
name :: Maybe (Value Text)
tags :: Maybe (Map Text (Value Text))
..}