packages feed

stratosphere-bedrock-1.0.0: gen/Stratosphere/Bedrock/FlowVersion/FlowNodeConfigurationProperty.hs

module Stratosphere.Bedrock.FlowVersion.FlowNodeConfigurationProperty (
        module Exports, FlowNodeConfigurationProperty(..),
        mkFlowNodeConfigurationProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.Bedrock.FlowVersion.AgentFlowNodeConfigurationProperty as Exports
import {-# SOURCE #-} Stratosphere.Bedrock.FlowVersion.ConditionFlowNodeConfigurationProperty as Exports
import {-# SOURCE #-} Stratosphere.Bedrock.FlowVersion.InlineCodeFlowNodeConfigurationProperty as Exports
import {-# SOURCE #-} Stratosphere.Bedrock.FlowVersion.KnowledgeBaseFlowNodeConfigurationProperty as Exports
import {-# SOURCE #-} Stratosphere.Bedrock.FlowVersion.LambdaFunctionFlowNodeConfigurationProperty as Exports
import {-# SOURCE #-} Stratosphere.Bedrock.FlowVersion.LexFlowNodeConfigurationProperty as Exports
import {-# SOURCE #-} Stratosphere.Bedrock.FlowVersion.LoopControllerFlowNodeConfigurationProperty as Exports
import {-# SOURCE #-} Stratosphere.Bedrock.FlowVersion.LoopFlowNodeConfigurationProperty as Exports
import {-# SOURCE #-} Stratosphere.Bedrock.FlowVersion.PromptFlowNodeConfigurationProperty as Exports
import {-# SOURCE #-} Stratosphere.Bedrock.FlowVersion.RetrievalFlowNodeConfigurationProperty as Exports
import {-# SOURCE #-} Stratosphere.Bedrock.FlowVersion.StorageFlowNodeConfigurationProperty as Exports
import Stratosphere.ResourceProperties
data FlowNodeConfigurationProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-flowversion-flownodeconfiguration.html>
    FlowNodeConfigurationProperty {haddock_workaround_ :: (),
                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-flowversion-flownodeconfiguration.html#cfn-bedrock-flowversion-flownodeconfiguration-agent>
                                   agent :: (Prelude.Maybe AgentFlowNodeConfigurationProperty),
                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-flowversion-flownodeconfiguration.html#cfn-bedrock-flowversion-flownodeconfiguration-collector>
                                   collector :: (Prelude.Maybe JSON.Object),
                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-flowversion-flownodeconfiguration.html#cfn-bedrock-flowversion-flownodeconfiguration-condition>
                                   condition :: (Prelude.Maybe ConditionFlowNodeConfigurationProperty),
                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-flowversion-flownodeconfiguration.html#cfn-bedrock-flowversion-flownodeconfiguration-inlinecode>
                                   inlineCode :: (Prelude.Maybe InlineCodeFlowNodeConfigurationProperty),
                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-flowversion-flownodeconfiguration.html#cfn-bedrock-flowversion-flownodeconfiguration-input>
                                   input :: (Prelude.Maybe JSON.Object),
                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-flowversion-flownodeconfiguration.html#cfn-bedrock-flowversion-flownodeconfiguration-iterator>
                                   iterator :: (Prelude.Maybe JSON.Object),
                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-flowversion-flownodeconfiguration.html#cfn-bedrock-flowversion-flownodeconfiguration-knowledgebase>
                                   knowledgeBase :: (Prelude.Maybe KnowledgeBaseFlowNodeConfigurationProperty),
                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-flowversion-flownodeconfiguration.html#cfn-bedrock-flowversion-flownodeconfiguration-lambdafunction>
                                   lambdaFunction :: (Prelude.Maybe LambdaFunctionFlowNodeConfigurationProperty),
                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-flowversion-flownodeconfiguration.html#cfn-bedrock-flowversion-flownodeconfiguration-lex>
                                   lex :: (Prelude.Maybe LexFlowNodeConfigurationProperty),
                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-flowversion-flownodeconfiguration.html#cfn-bedrock-flowversion-flownodeconfiguration-loop>
                                   loop :: (Prelude.Maybe LoopFlowNodeConfigurationProperty),
                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-flowversion-flownodeconfiguration.html#cfn-bedrock-flowversion-flownodeconfiguration-loopcontroller>
                                   loopController :: (Prelude.Maybe LoopControllerFlowNodeConfigurationProperty),
                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-flowversion-flownodeconfiguration.html#cfn-bedrock-flowversion-flownodeconfiguration-loopinput>
                                   loopInput :: (Prelude.Maybe JSON.Object),
                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-flowversion-flownodeconfiguration.html#cfn-bedrock-flowversion-flownodeconfiguration-output>
                                   output :: (Prelude.Maybe JSON.Object),
                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-flowversion-flownodeconfiguration.html#cfn-bedrock-flowversion-flownodeconfiguration-prompt>
                                   prompt :: (Prelude.Maybe PromptFlowNodeConfigurationProperty),
                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-flowversion-flownodeconfiguration.html#cfn-bedrock-flowversion-flownodeconfiguration-retrieval>
                                   retrieval :: (Prelude.Maybe RetrievalFlowNodeConfigurationProperty),
                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-flowversion-flownodeconfiguration.html#cfn-bedrock-flowversion-flownodeconfiguration-storage>
                                   storage :: (Prelude.Maybe StorageFlowNodeConfigurationProperty)}
  deriving stock (Prelude.Eq, Prelude.Show)
mkFlowNodeConfigurationProperty :: FlowNodeConfigurationProperty
mkFlowNodeConfigurationProperty
  = FlowNodeConfigurationProperty
      {haddock_workaround_ = (), agent = Prelude.Nothing,
       collector = Prelude.Nothing, condition = Prelude.Nothing,
       inlineCode = Prelude.Nothing, input = Prelude.Nothing,
       iterator = Prelude.Nothing, knowledgeBase = Prelude.Nothing,
       lambdaFunction = Prelude.Nothing, lex = Prelude.Nothing,
       loop = Prelude.Nothing, loopController = Prelude.Nothing,
       loopInput = Prelude.Nothing, output = Prelude.Nothing,
       prompt = Prelude.Nothing, retrieval = Prelude.Nothing,
       storage = Prelude.Nothing}
instance ToResourceProperties FlowNodeConfigurationProperty where
  toResourceProperties FlowNodeConfigurationProperty {..}
    = ResourceProperties
        {awsType = "AWS::Bedrock::FlowVersion.FlowNodeConfiguration",
         supportsTags = Prelude.False,
         properties = Prelude.fromList
                        (Prelude.catMaybes
                           [(JSON..=) "Agent" Prelude.<$> agent,
                            (JSON..=) "Collector" Prelude.<$> collector,
                            (JSON..=) "Condition" Prelude.<$> condition,
                            (JSON..=) "InlineCode" Prelude.<$> inlineCode,
                            (JSON..=) "Input" Prelude.<$> input,
                            (JSON..=) "Iterator" Prelude.<$> iterator,
                            (JSON..=) "KnowledgeBase" Prelude.<$> knowledgeBase,
                            (JSON..=) "LambdaFunction" Prelude.<$> lambdaFunction,
                            (JSON..=) "Lex" Prelude.<$> lex, (JSON..=) "Loop" Prelude.<$> loop,
                            (JSON..=) "LoopController" Prelude.<$> loopController,
                            (JSON..=) "LoopInput" Prelude.<$> loopInput,
                            (JSON..=) "Output" Prelude.<$> output,
                            (JSON..=) "Prompt" Prelude.<$> prompt,
                            (JSON..=) "Retrieval" Prelude.<$> retrieval,
                            (JSON..=) "Storage" Prelude.<$> storage])}
instance JSON.ToJSON FlowNodeConfigurationProperty where
  toJSON FlowNodeConfigurationProperty {..}
    = JSON.object
        (Prelude.fromList
           (Prelude.catMaybes
              [(JSON..=) "Agent" Prelude.<$> agent,
               (JSON..=) "Collector" Prelude.<$> collector,
               (JSON..=) "Condition" Prelude.<$> condition,
               (JSON..=) "InlineCode" Prelude.<$> inlineCode,
               (JSON..=) "Input" Prelude.<$> input,
               (JSON..=) "Iterator" Prelude.<$> iterator,
               (JSON..=) "KnowledgeBase" Prelude.<$> knowledgeBase,
               (JSON..=) "LambdaFunction" Prelude.<$> lambdaFunction,
               (JSON..=) "Lex" Prelude.<$> lex, (JSON..=) "Loop" Prelude.<$> loop,
               (JSON..=) "LoopController" Prelude.<$> loopController,
               (JSON..=) "LoopInput" Prelude.<$> loopInput,
               (JSON..=) "Output" Prelude.<$> output,
               (JSON..=) "Prompt" Prelude.<$> prompt,
               (JSON..=) "Retrieval" Prelude.<$> retrieval,
               (JSON..=) "Storage" Prelude.<$> storage]))
instance Property "Agent" FlowNodeConfigurationProperty where
  type PropertyType "Agent" FlowNodeConfigurationProperty = AgentFlowNodeConfigurationProperty
  set newValue FlowNodeConfigurationProperty {..}
    = FlowNodeConfigurationProperty {agent = Prelude.pure newValue, ..}
instance Property "Collector" FlowNodeConfigurationProperty where
  type PropertyType "Collector" FlowNodeConfigurationProperty = JSON.Object
  set newValue FlowNodeConfigurationProperty {..}
    = FlowNodeConfigurationProperty
        {collector = Prelude.pure newValue, ..}
instance Property "Condition" FlowNodeConfigurationProperty where
  type PropertyType "Condition" FlowNodeConfigurationProperty = ConditionFlowNodeConfigurationProperty
  set newValue FlowNodeConfigurationProperty {..}
    = FlowNodeConfigurationProperty
        {condition = Prelude.pure newValue, ..}
instance Property "InlineCode" FlowNodeConfigurationProperty where
  type PropertyType "InlineCode" FlowNodeConfigurationProperty = InlineCodeFlowNodeConfigurationProperty
  set newValue FlowNodeConfigurationProperty {..}
    = FlowNodeConfigurationProperty
        {inlineCode = Prelude.pure newValue, ..}
instance Property "Input" FlowNodeConfigurationProperty where
  type PropertyType "Input" FlowNodeConfigurationProperty = JSON.Object
  set newValue FlowNodeConfigurationProperty {..}
    = FlowNodeConfigurationProperty {input = Prelude.pure newValue, ..}
instance Property "Iterator" FlowNodeConfigurationProperty where
  type PropertyType "Iterator" FlowNodeConfigurationProperty = JSON.Object
  set newValue FlowNodeConfigurationProperty {..}
    = FlowNodeConfigurationProperty
        {iterator = Prelude.pure newValue, ..}
instance Property "KnowledgeBase" FlowNodeConfigurationProperty where
  type PropertyType "KnowledgeBase" FlowNodeConfigurationProperty = KnowledgeBaseFlowNodeConfigurationProperty
  set newValue FlowNodeConfigurationProperty {..}
    = FlowNodeConfigurationProperty
        {knowledgeBase = Prelude.pure newValue, ..}
instance Property "LambdaFunction" FlowNodeConfigurationProperty where
  type PropertyType "LambdaFunction" FlowNodeConfigurationProperty = LambdaFunctionFlowNodeConfigurationProperty
  set newValue FlowNodeConfigurationProperty {..}
    = FlowNodeConfigurationProperty
        {lambdaFunction = Prelude.pure newValue, ..}
instance Property "Lex" FlowNodeConfigurationProperty where
  type PropertyType "Lex" FlowNodeConfigurationProperty = LexFlowNodeConfigurationProperty
  set newValue FlowNodeConfigurationProperty {..}
    = FlowNodeConfigurationProperty {lex = Prelude.pure newValue, ..}
instance Property "Loop" FlowNodeConfigurationProperty where
  type PropertyType "Loop" FlowNodeConfigurationProperty = LoopFlowNodeConfigurationProperty
  set newValue FlowNodeConfigurationProperty {..}
    = FlowNodeConfigurationProperty {loop = Prelude.pure newValue, ..}
instance Property "LoopController" FlowNodeConfigurationProperty where
  type PropertyType "LoopController" FlowNodeConfigurationProperty = LoopControllerFlowNodeConfigurationProperty
  set newValue FlowNodeConfigurationProperty {..}
    = FlowNodeConfigurationProperty
        {loopController = Prelude.pure newValue, ..}
instance Property "LoopInput" FlowNodeConfigurationProperty where
  type PropertyType "LoopInput" FlowNodeConfigurationProperty = JSON.Object
  set newValue FlowNodeConfigurationProperty {..}
    = FlowNodeConfigurationProperty
        {loopInput = Prelude.pure newValue, ..}
instance Property "Output" FlowNodeConfigurationProperty where
  type PropertyType "Output" FlowNodeConfigurationProperty = JSON.Object
  set newValue FlowNodeConfigurationProperty {..}
    = FlowNodeConfigurationProperty
        {output = Prelude.pure newValue, ..}
instance Property "Prompt" FlowNodeConfigurationProperty where
  type PropertyType "Prompt" FlowNodeConfigurationProperty = PromptFlowNodeConfigurationProperty
  set newValue FlowNodeConfigurationProperty {..}
    = FlowNodeConfigurationProperty
        {prompt = Prelude.pure newValue, ..}
instance Property "Retrieval" FlowNodeConfigurationProperty where
  type PropertyType "Retrieval" FlowNodeConfigurationProperty = RetrievalFlowNodeConfigurationProperty
  set newValue FlowNodeConfigurationProperty {..}
    = FlowNodeConfigurationProperty
        {retrieval = Prelude.pure newValue, ..}
instance Property "Storage" FlowNodeConfigurationProperty where
  type PropertyType "Storage" FlowNodeConfigurationProperty = StorageFlowNodeConfigurationProperty
  set newValue FlowNodeConfigurationProperty {..}
    = FlowNodeConfigurationProperty
        {storage = Prelude.pure newValue, ..}