module Stratosphere.BedrockAgentCore.GatewayTarget.McpLambdaTargetConfigurationProperty (
        module Exports, McpLambdaTargetConfigurationProperty(..),
        mkMcpLambdaTargetConfigurationProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.BedrockAgentCore.GatewayTarget.ToolSchemaProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data McpLambdaTargetConfigurationProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrockagentcore-gatewaytarget-mcplambdatargetconfiguration.html>
    McpLambdaTargetConfigurationProperty {McpLambdaTargetConfigurationProperty -> ()
haddock_workaround_ :: (),
                                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrockagentcore-gatewaytarget-mcplambdatargetconfiguration.html#cfn-bedrockagentcore-gatewaytarget-mcplambdatargetconfiguration-lambdaarn>
                                          McpLambdaTargetConfigurationProperty -> Value Text
lambdaArn :: (Value Prelude.Text),
                                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrockagentcore-gatewaytarget-mcplambdatargetconfiguration.html#cfn-bedrockagentcore-gatewaytarget-mcplambdatargetconfiguration-toolschema>
                                          McpLambdaTargetConfigurationProperty -> ToolSchemaProperty
toolSchema :: ToolSchemaProperty}
  deriving stock (McpLambdaTargetConfigurationProperty
-> McpLambdaTargetConfigurationProperty -> Bool
(McpLambdaTargetConfigurationProperty
 -> McpLambdaTargetConfigurationProperty -> Bool)
-> (McpLambdaTargetConfigurationProperty
    -> McpLambdaTargetConfigurationProperty -> Bool)
-> Eq McpLambdaTargetConfigurationProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: McpLambdaTargetConfigurationProperty
-> McpLambdaTargetConfigurationProperty -> Bool
== :: McpLambdaTargetConfigurationProperty
-> McpLambdaTargetConfigurationProperty -> Bool
$c/= :: McpLambdaTargetConfigurationProperty
-> McpLambdaTargetConfigurationProperty -> Bool
/= :: McpLambdaTargetConfigurationProperty
-> McpLambdaTargetConfigurationProperty -> Bool
Prelude.Eq, Int -> McpLambdaTargetConfigurationProperty -> ShowS
[McpLambdaTargetConfigurationProperty] -> ShowS
McpLambdaTargetConfigurationProperty -> String
(Int -> McpLambdaTargetConfigurationProperty -> ShowS)
-> (McpLambdaTargetConfigurationProperty -> String)
-> ([McpLambdaTargetConfigurationProperty] -> ShowS)
-> Show McpLambdaTargetConfigurationProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> McpLambdaTargetConfigurationProperty -> ShowS
showsPrec :: Int -> McpLambdaTargetConfigurationProperty -> ShowS
$cshow :: McpLambdaTargetConfigurationProperty -> String
show :: McpLambdaTargetConfigurationProperty -> String
$cshowList :: [McpLambdaTargetConfigurationProperty] -> ShowS
showList :: [McpLambdaTargetConfigurationProperty] -> ShowS
Prelude.Show)
mkMcpLambdaTargetConfigurationProperty ::
  Value Prelude.Text
  -> ToolSchemaProperty -> McpLambdaTargetConfigurationProperty
mkMcpLambdaTargetConfigurationProperty :: Value Text
-> ToolSchemaProperty -> McpLambdaTargetConfigurationProperty
mkMcpLambdaTargetConfigurationProperty Value Text
lambdaArn ToolSchemaProperty
toolSchema
  = McpLambdaTargetConfigurationProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), lambdaArn :: Value Text
lambdaArn = Value Text
lambdaArn,
       toolSchema :: ToolSchemaProperty
toolSchema = ToolSchemaProperty
toolSchema}
instance ToResourceProperties McpLambdaTargetConfigurationProperty where
  toResourceProperties :: McpLambdaTargetConfigurationProperty -> ResourceProperties
toResourceProperties McpLambdaTargetConfigurationProperty {()
Value Text
ToolSchemaProperty
haddock_workaround_ :: McpLambdaTargetConfigurationProperty -> ()
lambdaArn :: McpLambdaTargetConfigurationProperty -> Value Text
toolSchema :: McpLambdaTargetConfigurationProperty -> ToolSchemaProperty
haddock_workaround_ :: ()
lambdaArn :: Value Text
toolSchema :: ToolSchemaProperty
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::BedrockAgentCore::GatewayTarget.McpLambdaTargetConfiguration",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"LambdaArn" 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
lambdaArn,
                       Key
"ToolSchema" Key -> ToolSchemaProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= ToolSchemaProperty
toolSchema]}
instance JSON.ToJSON McpLambdaTargetConfigurationProperty where
  toJSON :: McpLambdaTargetConfigurationProperty -> Value
toJSON McpLambdaTargetConfigurationProperty {()
Value Text
ToolSchemaProperty
haddock_workaround_ :: McpLambdaTargetConfigurationProperty -> ()
lambdaArn :: McpLambdaTargetConfigurationProperty -> Value Text
toolSchema :: McpLambdaTargetConfigurationProperty -> ToolSchemaProperty
haddock_workaround_ :: ()
lambdaArn :: Value Text
toolSchema :: ToolSchemaProperty
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"LambdaArn" 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
lambdaArn, Key
"ToolSchema" Key -> ToolSchemaProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= ToolSchemaProperty
toolSchema]
instance Property "LambdaArn" McpLambdaTargetConfigurationProperty where
  type PropertyType "LambdaArn" McpLambdaTargetConfigurationProperty = Value Prelude.Text
  set :: PropertyType "LambdaArn" McpLambdaTargetConfigurationProperty
-> McpLambdaTargetConfigurationProperty
-> McpLambdaTargetConfigurationProperty
set PropertyType "LambdaArn" McpLambdaTargetConfigurationProperty
newValue McpLambdaTargetConfigurationProperty {()
Value Text
ToolSchemaProperty
haddock_workaround_ :: McpLambdaTargetConfigurationProperty -> ()
lambdaArn :: McpLambdaTargetConfigurationProperty -> Value Text
toolSchema :: McpLambdaTargetConfigurationProperty -> ToolSchemaProperty
haddock_workaround_ :: ()
lambdaArn :: Value Text
toolSchema :: ToolSchemaProperty
..}
    = McpLambdaTargetConfigurationProperty {lambdaArn :: Value Text
lambdaArn = PropertyType "LambdaArn" McpLambdaTargetConfigurationProperty
Value Text
newValue, ()
ToolSchemaProperty
haddock_workaround_ :: ()
toolSchema :: ToolSchemaProperty
haddock_workaround_ :: ()
toolSchema :: ToolSchemaProperty
..}
instance Property "ToolSchema" McpLambdaTargetConfigurationProperty where
  type PropertyType "ToolSchema" McpLambdaTargetConfigurationProperty = ToolSchemaProperty
  set :: PropertyType "ToolSchema" McpLambdaTargetConfigurationProperty
-> McpLambdaTargetConfigurationProperty
-> McpLambdaTargetConfigurationProperty
set PropertyType "ToolSchema" McpLambdaTargetConfigurationProperty
newValue McpLambdaTargetConfigurationProperty {()
Value Text
ToolSchemaProperty
haddock_workaround_ :: McpLambdaTargetConfigurationProperty -> ()
lambdaArn :: McpLambdaTargetConfigurationProperty -> Value Text
toolSchema :: McpLambdaTargetConfigurationProperty -> ToolSchemaProperty
haddock_workaround_ :: ()
lambdaArn :: Value Text
toolSchema :: ToolSchemaProperty
..}
    = McpLambdaTargetConfigurationProperty {toolSchema :: ToolSchemaProperty
toolSchema = PropertyType "ToolSchema" McpLambdaTargetConfigurationProperty
ToolSchemaProperty
newValue, ()
Value Text
haddock_workaround_ :: ()
lambdaArn :: Value Text
haddock_workaround_ :: ()
lambdaArn :: Value Text
..}