module Stratosphere.Bedrock.PromptVersion.ChatPromptTemplateConfigurationProperty ( module Exports, ChatPromptTemplateConfigurationProperty(..), mkChatPromptTemplateConfigurationProperty ) where import qualified Data.Aeson as JSON import qualified Stratosphere.Prelude as Prelude import Stratosphere.Property import {-# SOURCE #-} Stratosphere.Bedrock.PromptVersion.MessageProperty as Exports import {-# SOURCE #-} Stratosphere.Bedrock.PromptVersion.PromptInputVariableProperty as Exports import {-# SOURCE #-} Stratosphere.Bedrock.PromptVersion.SystemContentBlockProperty as Exports import {-# SOURCE #-} Stratosphere.Bedrock.PromptVersion.ToolConfigurationProperty as Exports import Stratosphere.ResourceProperties data ChatPromptTemplateConfigurationProperty = -- | See: ChatPromptTemplateConfigurationProperty {haddock_workaround_ :: (), -- | See: inputVariables :: (Prelude.Maybe [PromptInputVariableProperty]), -- | See: messages :: [MessageProperty], -- | See: system :: (Prelude.Maybe [SystemContentBlockProperty]), -- | See: toolConfiguration :: (Prelude.Maybe ToolConfigurationProperty)} deriving stock (Prelude.Eq, Prelude.Show) mkChatPromptTemplateConfigurationProperty :: [MessageProperty] -> ChatPromptTemplateConfigurationProperty mkChatPromptTemplateConfigurationProperty messages = ChatPromptTemplateConfigurationProperty {haddock_workaround_ = (), messages = messages, inputVariables = Prelude.Nothing, system = Prelude.Nothing, toolConfiguration = Prelude.Nothing} instance ToResourceProperties ChatPromptTemplateConfigurationProperty where toResourceProperties ChatPromptTemplateConfigurationProperty {..} = ResourceProperties {awsType = "AWS::Bedrock::PromptVersion.ChatPromptTemplateConfiguration", supportsTags = Prelude.False, properties = Prelude.fromList ((Prelude.<>) ["Messages" JSON..= messages] (Prelude.catMaybes [(JSON..=) "InputVariables" Prelude.<$> inputVariables, (JSON..=) "System" Prelude.<$> system, (JSON..=) "ToolConfiguration" Prelude.<$> toolConfiguration]))} instance JSON.ToJSON ChatPromptTemplateConfigurationProperty where toJSON ChatPromptTemplateConfigurationProperty {..} = JSON.object (Prelude.fromList ((Prelude.<>) ["Messages" JSON..= messages] (Prelude.catMaybes [(JSON..=) "InputVariables" Prelude.<$> inputVariables, (JSON..=) "System" Prelude.<$> system, (JSON..=) "ToolConfiguration" Prelude.<$> toolConfiguration]))) instance Property "InputVariables" ChatPromptTemplateConfigurationProperty where type PropertyType "InputVariables" ChatPromptTemplateConfigurationProperty = [PromptInputVariableProperty] set newValue ChatPromptTemplateConfigurationProperty {..} = ChatPromptTemplateConfigurationProperty {inputVariables = Prelude.pure newValue, ..} instance Property "Messages" ChatPromptTemplateConfigurationProperty where type PropertyType "Messages" ChatPromptTemplateConfigurationProperty = [MessageProperty] set newValue ChatPromptTemplateConfigurationProperty {..} = ChatPromptTemplateConfigurationProperty {messages = newValue, ..} instance Property "System" ChatPromptTemplateConfigurationProperty where type PropertyType "System" ChatPromptTemplateConfigurationProperty = [SystemContentBlockProperty] set newValue ChatPromptTemplateConfigurationProperty {..} = ChatPromptTemplateConfigurationProperty {system = Prelude.pure newValue, ..} instance Property "ToolConfiguration" ChatPromptTemplateConfigurationProperty where type PropertyType "ToolConfiguration" ChatPromptTemplateConfigurationProperty = ToolConfigurationProperty set newValue ChatPromptTemplateConfigurationProperty {..} = ChatPromptTemplateConfigurationProperty {toolConfiguration = Prelude.pure newValue, ..}