module Stratosphere.BedrockAgentCore.GatewayTarget.McpTargetConfigurationProperty (
        module Exports, McpTargetConfigurationProperty(..),
        mkMcpTargetConfigurationProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.BedrockAgentCore.GatewayTarget.ApiSchemaConfigurationProperty as Exports
import {-# SOURCE #-} Stratosphere.BedrockAgentCore.GatewayTarget.McpLambdaTargetConfigurationProperty as Exports
import Stratosphere.ResourceProperties
data McpTargetConfigurationProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrockagentcore-gatewaytarget-mcptargetconfiguration.html>
    McpTargetConfigurationProperty {McpTargetConfigurationProperty -> ()
haddock_workaround_ :: (),
                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrockagentcore-gatewaytarget-mcptargetconfiguration.html#cfn-bedrockagentcore-gatewaytarget-mcptargetconfiguration-lambda>
                                    McpTargetConfigurationProperty
-> Maybe McpLambdaTargetConfigurationProperty
lambda :: (Prelude.Maybe McpLambdaTargetConfigurationProperty),
                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrockagentcore-gatewaytarget-mcptargetconfiguration.html#cfn-bedrockagentcore-gatewaytarget-mcptargetconfiguration-openapischema>
                                    McpTargetConfigurationProperty
-> Maybe ApiSchemaConfigurationProperty
openApiSchema :: (Prelude.Maybe ApiSchemaConfigurationProperty),
                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrockagentcore-gatewaytarget-mcptargetconfiguration.html#cfn-bedrockagentcore-gatewaytarget-mcptargetconfiguration-smithymodel>
                                    McpTargetConfigurationProperty
-> Maybe ApiSchemaConfigurationProperty
smithyModel :: (Prelude.Maybe ApiSchemaConfigurationProperty)}
  deriving stock (McpTargetConfigurationProperty
-> McpTargetConfigurationProperty -> Bool
(McpTargetConfigurationProperty
 -> McpTargetConfigurationProperty -> Bool)
-> (McpTargetConfigurationProperty
    -> McpTargetConfigurationProperty -> Bool)
-> Eq McpTargetConfigurationProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: McpTargetConfigurationProperty
-> McpTargetConfigurationProperty -> Bool
== :: McpTargetConfigurationProperty
-> McpTargetConfigurationProperty -> Bool
$c/= :: McpTargetConfigurationProperty
-> McpTargetConfigurationProperty -> Bool
/= :: McpTargetConfigurationProperty
-> McpTargetConfigurationProperty -> Bool
Prelude.Eq, Int -> McpTargetConfigurationProperty -> ShowS
[McpTargetConfigurationProperty] -> ShowS
McpTargetConfigurationProperty -> String
(Int -> McpTargetConfigurationProperty -> ShowS)
-> (McpTargetConfigurationProperty -> String)
-> ([McpTargetConfigurationProperty] -> ShowS)
-> Show McpTargetConfigurationProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> McpTargetConfigurationProperty -> ShowS
showsPrec :: Int -> McpTargetConfigurationProperty -> ShowS
$cshow :: McpTargetConfigurationProperty -> String
show :: McpTargetConfigurationProperty -> String
$cshowList :: [McpTargetConfigurationProperty] -> ShowS
showList :: [McpTargetConfigurationProperty] -> ShowS
Prelude.Show)
mkMcpTargetConfigurationProperty :: McpTargetConfigurationProperty
mkMcpTargetConfigurationProperty :: McpTargetConfigurationProperty
mkMcpTargetConfigurationProperty
  = McpTargetConfigurationProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), lambda :: Maybe McpLambdaTargetConfigurationProperty
lambda = Maybe McpLambdaTargetConfigurationProperty
forall a. Maybe a
Prelude.Nothing,
       openApiSchema :: Maybe ApiSchemaConfigurationProperty
openApiSchema = Maybe ApiSchemaConfigurationProperty
forall a. Maybe a
Prelude.Nothing, smithyModel :: Maybe ApiSchemaConfigurationProperty
smithyModel = Maybe ApiSchemaConfigurationProperty
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties McpTargetConfigurationProperty where
  toResourceProperties :: McpTargetConfigurationProperty -> ResourceProperties
toResourceProperties McpTargetConfigurationProperty {Maybe ApiSchemaConfigurationProperty
Maybe McpLambdaTargetConfigurationProperty
()
haddock_workaround_ :: McpTargetConfigurationProperty -> ()
lambda :: McpTargetConfigurationProperty
-> Maybe McpLambdaTargetConfigurationProperty
openApiSchema :: McpTargetConfigurationProperty
-> Maybe ApiSchemaConfigurationProperty
smithyModel :: McpTargetConfigurationProperty
-> Maybe ApiSchemaConfigurationProperty
haddock_workaround_ :: ()
lambda :: Maybe McpLambdaTargetConfigurationProperty
openApiSchema :: Maybe ApiSchemaConfigurationProperty
smithyModel :: Maybe ApiSchemaConfigurationProperty
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::BedrockAgentCore::GatewayTarget.McpTargetConfiguration",
         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 -> McpLambdaTargetConfigurationProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Lambda" (McpLambdaTargetConfigurationProperty -> (Key, Value))
-> Maybe McpLambdaTargetConfigurationProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe McpLambdaTargetConfigurationProperty
lambda,
                            Key -> ApiSchemaConfigurationProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"OpenApiSchema" (ApiSchemaConfigurationProperty -> (Key, Value))
-> Maybe ApiSchemaConfigurationProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ApiSchemaConfigurationProperty
openApiSchema,
                            Key -> ApiSchemaConfigurationProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"SmithyModel" (ApiSchemaConfigurationProperty -> (Key, Value))
-> Maybe ApiSchemaConfigurationProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ApiSchemaConfigurationProperty
smithyModel])}
instance JSON.ToJSON McpTargetConfigurationProperty where
  toJSON :: McpTargetConfigurationProperty -> Value
toJSON McpTargetConfigurationProperty {Maybe ApiSchemaConfigurationProperty
Maybe McpLambdaTargetConfigurationProperty
()
haddock_workaround_ :: McpTargetConfigurationProperty -> ()
lambda :: McpTargetConfigurationProperty
-> Maybe McpLambdaTargetConfigurationProperty
openApiSchema :: McpTargetConfigurationProperty
-> Maybe ApiSchemaConfigurationProperty
smithyModel :: McpTargetConfigurationProperty
-> Maybe ApiSchemaConfigurationProperty
haddock_workaround_ :: ()
lambda :: Maybe McpLambdaTargetConfigurationProperty
openApiSchema :: Maybe ApiSchemaConfigurationProperty
smithyModel :: Maybe ApiSchemaConfigurationProperty
..}
    = [(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 -> McpLambdaTargetConfigurationProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Lambda" (McpLambdaTargetConfigurationProperty -> (Key, Value))
-> Maybe McpLambdaTargetConfigurationProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe McpLambdaTargetConfigurationProperty
lambda,
               Key -> ApiSchemaConfigurationProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"OpenApiSchema" (ApiSchemaConfigurationProperty -> (Key, Value))
-> Maybe ApiSchemaConfigurationProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ApiSchemaConfigurationProperty
openApiSchema,
               Key -> ApiSchemaConfigurationProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"SmithyModel" (ApiSchemaConfigurationProperty -> (Key, Value))
-> Maybe ApiSchemaConfigurationProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ApiSchemaConfigurationProperty
smithyModel]))
instance Property "Lambda" McpTargetConfigurationProperty where
  type PropertyType "Lambda" McpTargetConfigurationProperty = McpLambdaTargetConfigurationProperty
  set :: PropertyType "Lambda" McpTargetConfigurationProperty
-> McpTargetConfigurationProperty -> McpTargetConfigurationProperty
set PropertyType "Lambda" McpTargetConfigurationProperty
newValue McpTargetConfigurationProperty {Maybe ApiSchemaConfigurationProperty
Maybe McpLambdaTargetConfigurationProperty
()
haddock_workaround_ :: McpTargetConfigurationProperty -> ()
lambda :: McpTargetConfigurationProperty
-> Maybe McpLambdaTargetConfigurationProperty
openApiSchema :: McpTargetConfigurationProperty
-> Maybe ApiSchemaConfigurationProperty
smithyModel :: McpTargetConfigurationProperty
-> Maybe ApiSchemaConfigurationProperty
haddock_workaround_ :: ()
lambda :: Maybe McpLambdaTargetConfigurationProperty
openApiSchema :: Maybe ApiSchemaConfigurationProperty
smithyModel :: Maybe ApiSchemaConfigurationProperty
..}
    = McpTargetConfigurationProperty
        {lambda :: Maybe McpLambdaTargetConfigurationProperty
lambda = McpLambdaTargetConfigurationProperty
-> Maybe McpLambdaTargetConfigurationProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "Lambda" McpTargetConfigurationProperty
McpLambdaTargetConfigurationProperty
newValue, Maybe ApiSchemaConfigurationProperty
()
haddock_workaround_ :: ()
openApiSchema :: Maybe ApiSchemaConfigurationProperty
smithyModel :: Maybe ApiSchemaConfigurationProperty
haddock_workaround_ :: ()
openApiSchema :: Maybe ApiSchemaConfigurationProperty
smithyModel :: Maybe ApiSchemaConfigurationProperty
..}
instance Property "OpenApiSchema" McpTargetConfigurationProperty where
  type PropertyType "OpenApiSchema" McpTargetConfigurationProperty = ApiSchemaConfigurationProperty
  set :: PropertyType "OpenApiSchema" McpTargetConfigurationProperty
-> McpTargetConfigurationProperty -> McpTargetConfigurationProperty
set PropertyType "OpenApiSchema" McpTargetConfigurationProperty
newValue McpTargetConfigurationProperty {Maybe ApiSchemaConfigurationProperty
Maybe McpLambdaTargetConfigurationProperty
()
haddock_workaround_ :: McpTargetConfigurationProperty -> ()
lambda :: McpTargetConfigurationProperty
-> Maybe McpLambdaTargetConfigurationProperty
openApiSchema :: McpTargetConfigurationProperty
-> Maybe ApiSchemaConfigurationProperty
smithyModel :: McpTargetConfigurationProperty
-> Maybe ApiSchemaConfigurationProperty
haddock_workaround_ :: ()
lambda :: Maybe McpLambdaTargetConfigurationProperty
openApiSchema :: Maybe ApiSchemaConfigurationProperty
smithyModel :: Maybe ApiSchemaConfigurationProperty
..}
    = McpTargetConfigurationProperty
        {openApiSchema :: Maybe ApiSchemaConfigurationProperty
openApiSchema = ApiSchemaConfigurationProperty
-> Maybe ApiSchemaConfigurationProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "OpenApiSchema" McpTargetConfigurationProperty
ApiSchemaConfigurationProperty
newValue, Maybe ApiSchemaConfigurationProperty
Maybe McpLambdaTargetConfigurationProperty
()
haddock_workaround_ :: ()
lambda :: Maybe McpLambdaTargetConfigurationProperty
smithyModel :: Maybe ApiSchemaConfigurationProperty
haddock_workaround_ :: ()
lambda :: Maybe McpLambdaTargetConfigurationProperty
smithyModel :: Maybe ApiSchemaConfigurationProperty
..}
instance Property "SmithyModel" McpTargetConfigurationProperty where
  type PropertyType "SmithyModel" McpTargetConfigurationProperty = ApiSchemaConfigurationProperty
  set :: PropertyType "SmithyModel" McpTargetConfigurationProperty
-> McpTargetConfigurationProperty -> McpTargetConfigurationProperty
set PropertyType "SmithyModel" McpTargetConfigurationProperty
newValue McpTargetConfigurationProperty {Maybe ApiSchemaConfigurationProperty
Maybe McpLambdaTargetConfigurationProperty
()
haddock_workaround_ :: McpTargetConfigurationProperty -> ()
lambda :: McpTargetConfigurationProperty
-> Maybe McpLambdaTargetConfigurationProperty
openApiSchema :: McpTargetConfigurationProperty
-> Maybe ApiSchemaConfigurationProperty
smithyModel :: McpTargetConfigurationProperty
-> Maybe ApiSchemaConfigurationProperty
haddock_workaround_ :: ()
lambda :: Maybe McpLambdaTargetConfigurationProperty
openApiSchema :: Maybe ApiSchemaConfigurationProperty
smithyModel :: Maybe ApiSchemaConfigurationProperty
..}
    = McpTargetConfigurationProperty
        {smithyModel :: Maybe ApiSchemaConfigurationProperty
smithyModel = ApiSchemaConfigurationProperty
-> Maybe ApiSchemaConfigurationProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "SmithyModel" McpTargetConfigurationProperty
ApiSchemaConfigurationProperty
newValue, Maybe ApiSchemaConfigurationProperty
Maybe McpLambdaTargetConfigurationProperty
()
haddock_workaround_ :: ()
lambda :: Maybe McpLambdaTargetConfigurationProperty
openApiSchema :: Maybe ApiSchemaConfigurationProperty
haddock_workaround_ :: ()
lambda :: Maybe McpLambdaTargetConfigurationProperty
openApiSchema :: Maybe ApiSchemaConfigurationProperty
..}