@aws-cdk/aws-bedrock-agentcore-alpha 2.238.0-alpha.0 → 2.239.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +1451 -298
- package/.jsii.tabl.json.gz +0 -0
- package/.warnings.jsii.js +119 -1
- package/README.md +109 -47
- package/lib/gateway/gateway-base.js +1 -1
- package/lib/gateway/gateway.d.ts +55 -0
- package/lib/gateway/gateway.js +38 -2
- package/lib/gateway/inbound-auth/authorizer.js +3 -3
- package/lib/gateway/inbound-auth/custom-claim.js +1 -1
- package/lib/gateway/interceptor.js +1 -1
- package/lib/gateway/outbound-auth/api-key.js +1 -1
- package/lib/gateway/outbound-auth/credential-provider.js +1 -1
- package/lib/gateway/protocol.js +2 -2
- package/lib/gateway/targets/schema/api-schema.js +4 -4
- package/lib/gateway/targets/schema/tool-schema.js +4 -4
- package/lib/gateway/targets/target-base.d.ts +3 -1
- package/lib/gateway/targets/target-base.js +4 -2
- package/lib/gateway/targets/target-configuration.d.ts +246 -0
- package/lib/gateway/targets/target-configuration.js +344 -8
- package/lib/gateway/targets/target.d.ts +51 -2
- package/lib/gateway/targets/target.js +46 -3
- package/lib/memory/memory-strategy.js +1 -1
- package/lib/memory/memory.js +2 -2
- package/lib/memory/strategies/managed-strategy.js +1 -1
- package/lib/memory/strategies/self-managed-strategy.js +1 -1
- package/lib/network/network-configuration.js +4 -4
- package/lib/runtime/inbound-auth/custom-claim.js +1 -1
- package/lib/runtime/inbound-auth/runtime-authorizer-configuration.js +1 -1
- package/lib/runtime/runtime-artifact.d.ts +23 -0
- package/lib/runtime/runtime-artifact.js +67 -2
- package/lib/runtime/runtime-base.js +1 -1
- package/lib/runtime/runtime-endpoint-base.js +1 -1
- package/lib/runtime/runtime-endpoint.js +1 -1
- package/lib/runtime/runtime.js +1 -1
- package/lib/tools/browser.js +2 -2
- package/lib/tools/code-interpreter.js +2 -2
- package/package.json +12 -12
- package/rosetta/default.ts-fixture +1 -0
package/.jsii
CHANGED
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
"url": "https://aws.amazon.com"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@aws-cdk/aws-bedrock-alpha": "2.
|
|
12
|
-
"aws-cdk-lib": "^2.
|
|
13
|
-
"constructs": "^10.
|
|
11
|
+
"@aws-cdk/aws-bedrock-alpha": "2.239.0-alpha.0",
|
|
12
|
+
"aws-cdk-lib": "^2.239.0",
|
|
13
|
+
"constructs": "^10.5.0"
|
|
14
14
|
},
|
|
15
15
|
"dependencyClosure": {
|
|
16
16
|
"@aws-cdk/asset-awscli-v1": {
|
|
@@ -8531,7 +8531,7 @@
|
|
|
8531
8531
|
"stability": "experimental"
|
|
8532
8532
|
},
|
|
8533
8533
|
"homepage": "https://github.com/aws/aws-cdk",
|
|
8534
|
-
"jsiiVersion": "5.9.
|
|
8534
|
+
"jsiiVersion": "5.9.26 (build f85d3df)",
|
|
8535
8535
|
"keywords": [
|
|
8536
8536
|
"aws",
|
|
8537
8537
|
"cdk",
|
|
@@ -8553,7 +8553,7 @@
|
|
|
8553
8553
|
},
|
|
8554
8554
|
"name": "@aws-cdk/aws-bedrock-agentcore-alpha",
|
|
8555
8555
|
"readme": {
|
|
8556
|
-
"markdown": "# Amazon Bedrock AgentCore Construct Library\n\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n\n\n> The APIs of higher level constructs in this module are experimental and under active development.\n> They are subject to non-backward compatible changes or removal in any future version. These are\n> not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be\n> announced in the release notes. This means that while you may use them, you may need to update\n> your source code when upgrading to a newer version of this package.\n\n---\n\n<!--END STABILITY BANNER-->\n\n| **Language** | **Package** |\n| :--------------------------------------------------------------------------------------------- | --------------------------------------- |\n|  TypeScript | `@aws-cdk/aws-bedrock-agentcore-alpha` |\n\n[Amazon Bedrock AgentCore](https://aws.amazon.com/bedrock/agentcore/) enables you to deploy and operate highly capable AI agents securely, at scale. It offers infrastructure purpose-built for dynamic agent workloads, powerful tools to enhance agents, and essential controls for real-world deployment. AgentCore services can be used together or independently and work with any framework including CrewAI, LangGraph, LlamaIndex, and Strands Agents, as well as any foundation model in or outside of Amazon Bedrock, giving you ultimate flexibility. AgentCore eliminates the undifferentiated heavy lifting of building specialized agent infrastructure, so you can accelerate agents to production.\n\nThis construct library facilitates the deployment of Bedrock AgentCore primitives, enabling you to create sophisticated AI applications that can interact with your systems and data sources.\n\n> **Note:** Users need to ensure their CDK deployment role has the `iam:CreateServiceLinkedRole` permission for AgentCore service-linked roles.\n\n## Table of contents\n\n- [AgentCore Runtime](#agentcore-runtime)\n - [Runtime Versioning](#runtime-versioning)\n - [Runtime Endpoints](#runtime-endpoints)\n - [AgentCore Runtime Properties](#agentcore-runtime-properties)\n - [Runtime Endpoint Properties](#runtime-endpoint-properties)\n - [Creating a Runtime](#creating-a-runtime)\n - [Option 1: Use an existing image in ECR](#option-1-use-an-existing-image-in-ecr)\n - [Managing Endpoints and Versions](#managing-endpoints-and-versions)\n - [Option 2: Use a local asset](#option-2-use-a-local-asset)\n- [Browser Custom tool](#browser)\n - [Browser properties](#browser-properties)\n - [Browser Network modes](#browser-network-modes)\n - [Basic Browser Creation](#basic-browser-creation)\n - [Browser IAM permissions](#browser-iam-permissions)\n- [Code Interpreter Custom tool](#code-interpreter)\n - [Code Interpreter properties](#code-interpreter-properties)\n - [Code Interpreter Network Modes](#code-interpreter-network-modes)\n - [Basic Code Interpreter Creation](#basic-code-interpreter-creation)\n - [Code Interpreter IAM permissions](#code-interpreter-iam-permissions)\n- [Gateway](#gateway)\n - [Gateway Properties](#gateway-properties)\n - [Basic Gateway Creation](#basic-gateway-creation)\n - [Protocol configuration](#protocol-configuration)\n - [Inbound authorization](#inbound-authorization)\n - [Gateway with KMS Encryption](#gateway-with-kms-encryption)\n - [Gateway with Custom Execution Role](#gateway-with-custom-execution-role)\n - [Gateway IAM Permissions](#gateway-iam-permissions)\n- [Gateway Target](#gateway-target)\n - [Gateway Target Properties](#gateway-target-properties)\n - [Targets types](#targets-types)\n - [Outbound auth](#outbound-auth)\n - [Api schema](#api-schema-for-openapi-and-smithy-target)\n - [Basic Gateway Target Creation](#basic-gateway-target-creation)\n - [Using addTarget methods (Recommended)](#using-addtarget-methods-recommended)\n - [Using static factory methods](#using-static-factory-methods)\n - [Lambda Target with Tool Schema](#tools-schema-for-lambda-target)\n - [Smithy Model Target with OAuth](#api-schema-for-openapi-and-smithy-target)\n - [Gateway Target IAM Permissions](#gateway-target-iam-permissions)\n- [Memory](#memory)\n - [Memory properties](#memory-properties)\n - [Basic Memory Creation](#basic-memory-creation)\n - [LTM Memory Extraction Stategies](#ltm-memory-extraction-stategies)\n - [Memory Strategy Methods](#memory-strategy-methods)\n- [Amazon Bedrock AgentCore Construct Library](#amazon-bedrock-agentcore-construct-library)\n - [Table of contents](#table-of-contents)\n - [AgentCore Runtime](#agentcore-runtime)\n - [Runtime Endpoints](#runtime-endpoints)\n - [AgentCore Runtime Properties](#agentcore-runtime-properties)\n - [Runtime Endpoint Properties](#runtime-endpoint-properties)\n - [Creating a Runtime](#creating-a-runtime)\n - [Option 1: Use an existing image in ECR](#option-1-use-an-existing-image-in-ecr)\n - [Option 2: Use a local asset](#option-2-use-a-local-asset)\n - [Option 3: Use direct code deployment](#option-3-use-direct-code-deployment)\n - [Granting Permissions to Invoke Bedrock Models or Inference Profiles](#granting-permissions-to-invoke-bedrock-models-or-inference-profiles)\n - [Runtime Versioning](#runtime-versioning)\n - [Managing Endpoints and Versions](#managing-endpoints-and-versions)\n - [Step 1: Initial Deployment](#step-1-initial-deployment)\n - [Step 2: Creating Custom Endpoints](#step-2-creating-custom-endpoints)\n - [Step 3: Runtime Update Deployment](#step-3-runtime-update-deployment)\n - [Step 4: Testing with Staging Endpoints](#step-4-testing-with-staging-endpoints)\n - [Step 5: Promoting to Production](#step-5-promoting-to-production)\n - [Creating Standalone Runtime Endpoints](#creating-standalone-runtime-endpoints)\n - [Example: Creating an endpoint for an existing runtime](#example-creating-an-endpoint-for-an-existing-runtime)\n - [Runtime Authentication Configuration](#runtime-authentication-configuration)\n - [IAM Authentication (Default)](#iam-authentication-default)\n - [Cognito Authentication](#cognito-authentication)\n - [JWT Authentication](#jwt-authentication)\n - [OAuth Authentication](#oauth-authentication)\n - [Using a Custom IAM Role](#using-a-custom-iam-role)\n - [Runtime Network Configuration](#runtime-network-configuration)\n - [Public Network Mode (Default)](#public-network-mode-default)\n - [VPC Network Mode](#vpc-network-mode)\n - [Managing Security Groups with VPC Configuration](#managing-security-groups-with-vpc-configuration)\n - [Browser](#browser)\n - [Browser Network modes](#browser-network-modes)\n - [Browser Properties](#browser-properties)\n - [Basic Browser Creation](#basic-browser-creation)\n - [Browser with Tags](#browser-with-tags)\n - [Browser with VPC](#browser-with-vpc)\n - [Browser with Recording Configuration](#browser-with-recording-configuration)\n - [Browser with Custom Execution Role](#browser-with-custom-execution-role)\n - [Browser with S3 Recording and Permissions](#browser-with-s3-recording-and-permissions)\n - [Browser IAM Permissions](#browser-iam-permissions)\n - [Code Interpreter](#code-interpreter)\n - [Code Interpreter Network Modes](#code-interpreter-network-modes)\n - [Code Interpreter Properties](#code-interpreter-properties)\n - [Basic Code Interpreter Creation](#basic-code-interpreter-creation)\n - [Code Interpreter with VPC](#code-interpreter-with-vpc)\n - [Code Interpreter with Sandbox Network Mode](#code-interpreter-with-sandbox-network-mode)\n - [Code Interpreter with Custom Execution Role](#code-interpreter-with-custom-execution-role)\n - [Code Interpreter IAM Permissions](#code-interpreter-iam-permissions)\n - [Code interpreter with tags](#code-interpreter-with-tags)\n - [Memory](#memory)\n - [Memory Properties](#memory-properties)\n - [Basic Memory Creation](#basic-memory-creation)\n - [LTM Memory Extraction Stategies](#ltm-memory-extraction-stategies)\n - [Memory with Built-in Strategies](#memory-with-built-in-strategies)\n - [Memory with custom Strategies](#memory-with-custom-strategies)\n - [Memory with Custom Execution Role](#memory-with-custom-execution-role)\n - [Memory with self-managed Strategies](#memory-with-self-managed-strategies)\n - [Memory Strategy Methods](#memory-strategy-methods)\n\n## AgentCore Runtime\n\nThe AgentCore Runtime construct enables you to deploy containerized agents on Amazon Bedrock AgentCore.\nThis L2 construct simplifies runtime creation just pass your ECR repository name\nand the construct handles all the configuration with sensible defaults.\n\n### Runtime Endpoints\n\nEndpoints provide a stable way to invoke specific versions of your agent runtime, enabling controlled deployments across different environments.\nWhen you create an agent runtime, Amazon Bedrock AgentCore automatically creates a \"DEFAULT\" endpoint which always points to the latest version\nof runtime.\n\nYou can create additional endpoints in two ways:\n\n1. **Using Runtime.addEndpoint()** - Convenient method when creating endpoints alongside the runtime.\n2. **Using RuntimeEndpoint** - Flexible approach for existing runtimes.\n\nFor example, you might keep a \"production\" endpoint on a stable version while testing newer versions\nthrough a \"staging\" endpoint. This separation allows you to test changes thoroughly before promoting them\nto production by simply updating the endpoint to point to the newer version.\n\n### AgentCore Runtime Properties\n\n| Name | Type | Required | Description |\n|------|------|----------|-------------|\n| `runtimeName` | `string` | No | The name of the agent runtime. Valid characters are a-z, A-Z, 0-9, _ (underscore). Must start with a letter and can be up to 48 characters long. If not provided, a unique name will be auto-generated |\n| `agentRuntimeArtifact` | `AgentRuntimeArtifact` | Yes | The artifact configuration for the agent runtime containing the container configuration with ECR URI |\n| `executionRole` | `iam.IRole` | No | The IAM role that provides permissions for the agent runtime. If not provided, a role will be created automatically |\n| `networkConfiguration` | `NetworkConfiguration` | No | Network configuration for the agent runtime. Defaults to `RuntimeNetworkConfiguration.usingPublicNetwork()` |\n| `description` | `string` | No | Optional description for the agent runtime |\n| `protocolConfiguration` | `ProtocolType` | No | Protocol configuration for the agent runtime. Defaults to `ProtocolType.HTTP` |\n| `authorizerConfiguration` | `RuntimeAuthorizerConfiguration` | No | Authorizer configuration for the agent runtime. Use `RuntimeAuthorizerConfiguration` static methods to create configurations for IAM, Cognito, JWT, or OAuth authentication |\n| `environmentVariables` | `{ [key: string]: string }` | No | Environment variables for the agent runtime. Maximum 50 environment variables |\n| `tags` | `{ [key: string]: string }` | No | Tags for the agent runtime. A list of key:value pairs of tags to apply to this Runtime resource |\n| `lifecycleConfiguration` | LifecycleConfiguration | No | The life cycle configuration for the AgentCore Runtime. Defaults to 900 seconds (15 minutes) for idle, 28800 seconds (8 hours) for max life time |\n| `requestHeaderConfiguration` | RequestHeaderConfiguration | No | Configuration for HTTP request headers that will be passed through to the runtime. Defaults to no configuration |\n\n### Runtime Endpoint Properties\n\n| Name | Type | Required | Description |\n|------|------|----------|-------------|\n| `endpointName` | `string` | No | The name of the runtime endpoint. Valid characters are a-z, A-Z, 0-9, _ (underscore). Must start with a letter and can be up to 48 characters long. If not provided, a unique name will be auto-generated |\n| `agentRuntimeId` | `string` | Yes | The Agent Runtime ID for this endpoint |\n| `agentRuntimeVersion` | `string` | Yes | The Agent Runtime version for this endpoint. Must be between 1 and 5 characters long.|\n| `description` | `string` | No | Optional description for the runtime endpoint |\n| `tags` | `{ [key: string]: string }` | No | Tags for the runtime endpoint |\n\n### Creating a Runtime\n\n#### Option 1: Use an existing image in ECR\n\nReference an image available within ECR.\n\n```typescript fixture=default\nconst repository = new ecr.Repository(this, \"TestRepository\", {\n repositoryName: \"test-agent-runtime\",\n});\n\n// The runtime by default create ECR permission only for the repository available in the account the stack is being deployed\nconst agentRuntimeArtifact = agentcore.AgentRuntimeArtifact.fromEcrRepository(repository, \"v1.0.0\");\n\n// Create runtime using the built image\nconst runtime = new agentcore.Runtime(this, \"MyAgentRuntime\", {\n runtimeName: \"myAgent\",\n agentRuntimeArtifact: agentRuntimeArtifact\n});\n```\n\n#### Option 2: Use a local asset\n\nReference a local directory containing a Dockerfile.\nImages are built from a local Docker context directory (with a Dockerfile), uploaded to Amazon Elastic Container Registry (ECR)\nby the CDK toolkit,and can be naturally referenced in your CDK app.\n\n```typescript fixture=default\nconst agentRuntimeArtifact = agentcore.AgentRuntimeArtifact.fromAsset(\n path.join(__dirname, \"path to agent dockerfile directory\")\n);\n\nconst runtime = new agentcore.Runtime(this, \"MyAgentRuntime\", {\n runtimeName: \"myAgent\",\n agentRuntimeArtifact: agentRuntimeArtifact,\n});\n```\n\n#### Option 3: Use direct code deployment\n\nWith the container deployment method, developers create a Dockerfile, build ARM-compatible containers, manage ECR repositories, and upload containers for code changes. This works well where container DevOps pipelines have already been established to automate deployments.\n\nHowever, customers looking for fully managed deployments can benefit from direct code deployment, which can significantly improve developer time and productivity. Direct code deployment provides a secure and scalable path forward for rapid prototyping agent capabilities to deploying production workloads at scale.\n\nWith direct code deployment, developers create a zip archive of code and dependencies, upload to Amazon S3, and configure the bucket in the agent configuration. A ZIP archive containing Linux arm64 dependencies needs to be uploaded to S3 as a pre-requisite to Create Agent Runtime.\n\nFor more information, please refer to the [documentation](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/runtime-get-started-code-deploy.html).\n\n```typescript fixture=default\n// S3 bucket containing the agent core\nconst codeBucket = new s3.Bucket(this, \"AgentCode\", {\n bucketName: \"my-code-bucket\",\n removalPolicy: RemovalPolicy.DESTROY, // For demo purposes\n});\n\n// the bucket above needs to contain the agent code\n\nconst agentRuntimeArtifact = agentcore.AgentRuntimeArtifact.fromS3(\n {\n bucketName: codeBucket.bucketName,\n objectKey: 'deployment_package.zip',\n },\n agentcore.AgentCoreRuntime.PYTHON_3_12,\n ['opentelemetry-instrument', 'main.py']\n);\n\nconst runtimeInstance = new agentcore.Runtime(this, \"MyAgentRuntime\", {\n runtimeName: \"myAgent\",\n agentRuntimeArtifact: agentRuntimeArtifact,\n});\n```\n\n#### Option 4: Use an ECR container image URI\n\nReference an ECR container image directly by its URI. This is useful when you have a pre-existing ECR image URI from CloudFormation parameters or cross-stack references. No IAM permissions are automatically granted - you must ensure the runtime has ECR pull permissions.\n\n```typescript fixture=default\n// Direct URI reference\nconst agentRuntimeArtifact = agentcore.AgentRuntimeArtifact.fromImageUri(\n \"123456789012.dkr.ecr.us-east-1.amazonaws.com/my-agent:v1.0.0\"\n);\n\nconst runtime = new agentcore.Runtime(this, \"MyAgentRuntime\", {\n runtimeName: \"myAgent\",\n agentRuntimeArtifact: agentRuntimeArtifact,\n});\n```\n\nYou can also use CloudFormation parameters or references:\n\n```typescript fixture=default\n// Using a CloudFormation parameter\nconst imageUriParam = new cdk.CfnParameter(this, \"ImageUri\", {\n type: \"String\",\n description: \"Container image URI for the agent runtime\",\n});\n\nconst agentRuntimeArtifact = agentcore.AgentRuntimeArtifact.fromImageUri(\n imageUriParam.valueAsString\n);\n\nconst runtime = new agentcore.Runtime(this, \"MyAgentRuntime\", {\n runtimeName: \"myAgent\",\n agentRuntimeArtifact: agentRuntimeArtifact,\n});\n```\n\n### Granting Permissions to Invoke Bedrock Models or Inference Profiles\n\nTo grant the runtime permissions to invoke Bedrock models or inference profiles:\n\n```typescript fixture=default\n// Note: This example uses @aws-cdk/aws-bedrock-alpha which must be installed separately\ndeclare const runtime: agentcore.Runtime;\n\n// Define the Bedrock Foundation Model\nconst model = bedrock.BedrockFoundationModel.ANTHROPIC_CLAUDE_3_7_SONNET_V1_0;\n\n// Grant the runtime permissions to invoke the model\nmodel.grantInvoke(runtime);\n\n// Create a cross-region inference profile for Claude 3.7 Sonnet\nconst inferenceProfile = bedrock.CrossRegionInferenceProfile.fromConfig({\n geoRegion: bedrock.CrossRegionInferenceProfileRegion.US,\n model: bedrock.BedrockFoundationModel.ANTHROPIC_CLAUDE_3_7_SONNET_V1_0\n});\n\n// Grant the runtime permissions to invoke the inference profile\ninferenceProfile.grantInvoke(runtime);\n```\n\n### Runtime Versioning\n\nAmazon Bedrock AgentCore automatically manages runtime versioning to ensure safe deployments and rollback capabilities.\nWhen you create an agent runtime, AgentCore automatically creates version 1 (V1). Each subsequent update to the\nruntime configuration (such as updating the container image, modifying network settings, or changing protocol configurations)\ncreates a new immutable version. These versions contain complete, self-contained configurations that can be referenced by endpoints,\nallowing you to maintain different versions for different environments or gradually roll out updates.\n\n#### Managing Endpoints and Versions\n\nAmazon Bedrock AgentCore automatically manages runtime versioning to provide safe deployments and rollback capabilities. You can follow\nthe steps below to understand how to use versioning with runtime for controlled deployments across different environments.\n\n##### Step 1: Initial Deployment\n\nWhen you first create an agent runtime, AgentCore automatically creates Version 1 of your runtime. At this point, a DEFAULT endpoint is\nautomatically created that points to Version 1. This DEFAULT endpoint serves as the main access point for your runtime.\n\n```typescript fixture=default\nconst repository = new ecr.Repository(this, \"TestRepository\", {\n repositoryName: \"test-agent-runtime\",\n});\n\nconst runtime = new agentcore.Runtime(this, \"MyAgentRuntime\", {\n runtimeName: \"myAgent\",\n agentRuntimeArtifact: agentcore.AgentRuntimeArtifact.fromEcrRepository(repository, \"v1.0.0\"),\n});\n```\n\n##### Step 2: Creating Custom Endpoints\n\nAfter the initial deployment, you can create additional endpoints for different environments. For example, you might create a \"production\"\nendpoint that explicitly points to Version 1. This allows you to maintain stable access points for specific environments while keeping the\nflexibility to test newer versions elsewhere.\n\n```typescript fixture=default\nconst repository = new ecr.Repository(this, \"TestRepository\", {\n repositoryName: \"test-agent-runtime\",\n});\n\nconst runtime = new agentcore.Runtime(this, \"MyAgentRuntime\", {\n runtimeName: \"myAgent\",\n agentRuntimeArtifact: agentcore.AgentRuntimeArtifact.fromEcrRepository(repository, \"v1.0.0\"),\n});\n\nconst prodEndpoint = runtime.addEndpoint(\"production\", {\n version: \"1\",\n description: \"Stable production endpoint - pinned to v1\"\n});\n```\n\n##### Step 3: Runtime Update Deployment\n\nWhen you update the runtime configuration (such as updating the container image, modifying network settings, or changing protocol\nconfigurations), AgentCore automatically creates a new version (Version 2). Upon this update:\n\n- Version 2 is created automatically with the new configuration\n- The DEFAULT endpoint automatically updates to point to Version 2\n- Any explicitly pinned endpoints (like the production endpoint) remain on their specified versions\n\n```typescript fixture=default\nconst repository = new ecr.Repository(this, \"TestRepository\", {\n repositoryName: \"test-agent-runtime\",\n});\n\nconst agentRuntimeArtifactNew = agentcore.AgentRuntimeArtifact.fromEcrRepository(repository, \"v2.0.0\");\n\nconst runtime = new agentcore.Runtime(this, \"MyAgentRuntime\", {\n runtimeName: \"myAgent\",\n agentRuntimeArtifact: agentRuntimeArtifactNew,\n});\n```\n\n##### Step 4: Testing with Staging Endpoints\n\nOnce Version 2 exists, you can create a staging endpoint that points to the new version. This staging endpoint allows you to test the\nnew version in a controlled environment before promoting it to production. This separation ensures that production traffic continues\nto use the stable version while you validate the new version.\n\n```typescript fixture=default\nconst repository = new ecr.Repository(this, \"TestRepository\", {\n repositoryName: \"test-agent-runtime\",\n});\n\nconst agentRuntimeArtifactNew = agentcore.AgentRuntimeArtifact.fromEcrRepository(repository, \"v2.0.0\");\n\nconst runtime = new agentcore.Runtime(this, \"MyAgentRuntime\", {\n runtimeName: \"myAgent\",\n agentRuntimeArtifact: agentRuntimeArtifactNew,\n});\n\nconst stagingEndpoint = runtime.addEndpoint(\"staging\", {\n version: \"2\",\n description: \"Staging environment for testing new version\"\n});\n```\n\n##### Step 5: Promoting to Production\n\nAfter thoroughly testing the new version through the staging endpoint, you can update the production endpoint to point to Version 2.\nThis controlled promotion process ensures that you can validate changes before they affect production traffic.\n\n```typescript fixture=default\nconst repository = new ecr.Repository(this, \"TestRepository\", {\n repositoryName: \"test-agent-runtime\",\n});\n\nconst agentRuntimeArtifactNew = agentcore.AgentRuntimeArtifact.fromEcrRepository(repository, \"v2.0.0\");\n\nconst runtime = new agentcore.Runtime(this, \"MyAgentRuntime\", {\n runtimeName: \"myAgent\",\n agentRuntimeArtifact: agentRuntimeArtifactNew,\n});\n\nconst prodEndpoint = runtime.addEndpoint(\"production\", {\n version: \"2\", // New version added here\n description: \"Stable production endpoint\"\n});\n```\n\n### Creating Standalone Runtime Endpoints\n\nRuntimeEndpoint can also be created as a standalone resource.\n\n#### Example: Creating an endpoint for an existing runtime\n\n```typescript fixture=default\n// Reference an existing runtime by its ID\nconst existingRuntimeId = \"abc123-runtime-id\"; // The ID of an existing runtime\n\n// Create a standalone endpoint\nconst endpoint = new agentcore.RuntimeEndpoint(this, \"MyEndpoint\", {\n endpointName: \"production\",\n agentRuntimeId: existingRuntimeId,\n agentRuntimeVersion: \"1\", // Specify which version to use\n description: \"Production endpoint for existing runtime\"\n});\n```\n\n### Runtime Authentication Configuration\n\nThe AgentCore Runtime supports multiple authentication modes to secure access to your agent endpoints. Authentication is configured during runtime creation using the `RuntimeAuthorizerConfiguration` class's static factory methods.\n\n#### IAM Authentication (Default)\n\nIAM authentication is the default mode, when no authorizerConfiguration is set then the underlying service use IAM.\n\n#### Cognito Authentication\n\nTo configure AWS Cognito User Pool authentication:\n\n```typescript fixture=default\ndeclare const userPool: cognito.UserPool;\ndeclare const userPoolClient: cognito.UserPoolClient;\ndeclare const anotherUserPoolClient: cognito.UserPoolClient;\n\nconst repository = new ecr.Repository(this, \"TestRepository\", {\n repositoryName: \"test-agent-runtime\",\n});\nconst agentRuntimeArtifact = agentcore.AgentRuntimeArtifact.fromEcrRepository(repository, \"v1.0.0\");\n\n// Optional: Create custom claims for additional validation\nconst customClaims = [\n agentcore.RuntimeCustomClaim.withStringValue('department', 'engineering'),\n agentcore.RuntimeCustomClaim.withStringArrayValue('roles', ['admin'], agentcore.CustomClaimOperator.CONTAINS),\n agentcore.RuntimeCustomClaim.withStringArrayValue('permissions', ['read', 'write'], agentcore.CustomClaimOperator.CONTAINS_ANY),\n];\n\nconst runtime = new agentcore.Runtime(this, \"MyAgentRuntime\", {\n runtimeName: \"myAgent\",\n agentRuntimeArtifact: agentRuntimeArtifact,\n authorizerConfiguration: agentcore.RuntimeAuthorizerConfiguration.usingCognito(\n userPool, // User Pool (required)\n [userPoolClient, anotherUserPoolClient], // User Pool Clients\n [\"audience1\"], // Allowed Audiences (optional)\n [\"read\", \"write\"], // Allowed Scopes (optional)\n customClaims, // Custom claims (optional) - see Custom Claims Validation section\n ),\n});\n```\n\nYou can configure:\n\n- User Pool: The Cognito User Pool that issues JWT tokens\n- User Pool Clients: One or more Cognito User Pool App Clients that are allowed to access the runtime\n- Allowed audiences: Used to validate that the audiences specified in the Cognito token match or are a subset of the audiences specified in the AgentCore Runtime\n- Allowed scopes: Allow access only if the token contains at least one of the required scopes configured here\n- Custom claims: A set of rules to match specific claims in the incoming token against predefined values for validating JWT tokens\n\n#### JWT Authentication\n\nTo configure custom JWT authentication with your own OpenID Connect (OIDC) provider:\n\n```typescript fixture=default\nconst repository = new ecr.Repository(this, \"TestRepository\", {\n repositoryName: \"test-agent-runtime\",\n});\nconst agentRuntimeArtifact = agentcore.AgentRuntimeArtifact.fromEcrRepository(repository, \"v1.0.0\");\n\nconst runtime = new agentcore.Runtime(this, \"MyAgentRuntime\", {\n runtimeName: \"myAgent\",\n agentRuntimeArtifact: agentRuntimeArtifact,\n authorizerConfiguration: agentcore.RuntimeAuthorizerConfiguration.usingJWT(\n \"https://example.com/.well-known/openid-configuration\", // Discovery URL (required)\n [\"client1\", \"client2\"], // Allowed Client IDs (optional)\n [\"audience1\"], // Allowed Audiences (optional)\n [\"read\", \"write\"], // Allowed Scopes (optional)\n // Custom claims (optional) - see Custom Claims Validation section below\n ),\n});\n```\n\nYou can configure:\n\n- Discovery URL: Enter the Discovery URL from your identity provider (e.g. Okta, Cognito, etc.), typically found in that provider's documentation. This allows your Agent or Tool to fetch login, downstream resource token, and verification settings.\n- Allowed audiences: This is used to validate that the audiences specified for the OAuth token matches or are a subset of the audiences specified in the AgentCore Runtime.\n- Allowed clients: This is used to validate that the public identifier of the client, as specified in the authorization token, is allowed to access the AgentCore Runtime.\n- Allowed scopes: Allow access only if the token contains at least one of the required scopes configured here.\n- Custom claims: A set of rules to match specific claims in the incoming token against predefined values for validating JWT tokens.\n\n**Note**: The discovery URL must end with `/.well-known/openid-configuration`.\n\n##### Custom Claims Validation\n\nCustom claims allow you to validate additional fields in JWT tokens beyond the standard audience, client, and scope validations. You can create custom claims using the `RuntimeCustomClaim` class:\n\n```typescript fixture=default\nconst repository = new ecr.Repository(this, \"TestRepository\", {\n repositoryName: \"test-agent-runtime\",\n});\nconst agentRuntimeArtifact = agentcore.AgentRuntimeArtifact.fromEcrRepository(repository, \"v1.0.0\");\n\n// String claim - validates that the claim exactly equals the specified value\n// Uses EQUALS operator automatically\nconst departmentClaim = agentcore.RuntimeCustomClaim.withStringValue('department', 'engineering');\n\n// String array claim with CONTAINS operator (default)\n// Validates that the claim array contains a specific string value\n// IMPORTANT: CONTAINS requires exactly one value in the array parameter\nconst rolesClaim = agentcore.RuntimeCustomClaim.withStringArrayValue('roles', ['admin']);\n\n// String array claim with CONTAINS_ANY operator\n// Validates that the claim array contains at least one of the specified values\n// Use this when you want to check for multiple possible values\nconst permissionsClaim = agentcore.RuntimeCustomClaim.withStringArrayValue(\n 'permissions',\n ['read', 'write'],\n agentcore.CustomClaimOperator.CONTAINS_ANY\n);\n\n// Use custom claims in authorizer configuration\nconst runtime = new agentcore.Runtime(this, \"MyAgentRuntime\", {\n runtimeName: \"myAgent\",\n agentRuntimeArtifact: agentRuntimeArtifact,\n authorizerConfiguration: agentcore.RuntimeAuthorizerConfiguration.usingJWT(\n \"https://example.com/.well-known/openid-configuration\",\n [\"client1\", \"client2\"],\n [\"audience1\"],\n [\"read\", \"write\"],\n [departmentClaim, rolesClaim, permissionsClaim] // Custom claims\n ),\n});\n```\n\n**Custom Claim Rules**:\n\n- **String claims**: Must use the `EQUALS` operator (automatically set). The claim value must exactly match the specified string.\n- **String array claims**: Can use `CONTAINS` (default) or `CONTAINS_ANY` operators:\n - **`CONTAINS`**: Checks if the claim array contains a specific string value. **Requires exactly one value** in the array parameter. For example, `['admin']` will check if the token's claim array contains the string `'admin'`.\n - **`CONTAINS_ANY`**: Checks if the claim array contains at least one of the provided string values. Use this when you want to validate against multiple possible values. For example, `['read', 'write']` will check if the token's claim array contains either `'read'` or `'write'`.\n\n**Example Use Cases**:\n\n- Use `CONTAINS` when you need to verify a user has a specific role: `RuntimeCustomClaim.withStringArrayValue('roles', ['admin'])`\n- Use `CONTAINS_ANY` when you need to verify a user has any of several permissions: `RuntimeCustomClaim.withStringArrayValue('permissions', ['read', 'write'], CustomClaimOperator.CONTAINS_ANY)`\n\n#### OAuth Authentication\n\nTo configure OAuth 2.0 authentication:\n\n```typescript fixture=default\nconst repository = new ecr.Repository(this, \"TestRepository\", {\n repositoryName: \"test-agent-runtime\",\n});\nconst agentRuntimeArtifact = agentcore.AgentRuntimeArtifact.fromEcrRepository(repository, \"v1.0.0\");\n\nconst runtime = new agentcore.Runtime(this, \"MyAgentRuntime\", {\n runtimeName: \"myAgent\",\n agentRuntimeArtifact: agentRuntimeArtifact,\n authorizerConfiguration: agentcore.RuntimeAuthorizerConfiguration.usingOAuth(\n \"https://github.com/.well-known/openid-configuration\", // Discovery URL (required)\n \"oauth_client_123\", // OAuth Client ID (required)\n [\"audience1\"], // Allowed Audiences (optional)\n [\"openid\", \"profile\"], // Allowed Scopes (optional)\n // Custom claims (optional) - see Custom Claims Validation section\n ),\n});\n```\n\n#### Using a Custom IAM Role\n\nInstead of using the auto-created execution role, you can provide your own IAM role with specific permissions:\nThe auto-created role includes all necessary baseline permissions for ECR access, CloudWatch logging, and X-Ray tracing. When providing a custom role, ensure these permissions are included.\n\n### Runtime Network Configuration\n\nThe AgentCore Runtime supports two network modes for deployment:\n\n#### Public Network Mode (Default)\n\nBy default, runtimes are deployed in PUBLIC network mode, which provides internet access suitable for less sensitive or open-use scenarios:\n\n```typescript fixture=default\nconst repository = new ecr.Repository(this, \"TestRepository\", {\n repositoryName: \"test-agent-runtime\",\n});\nconst agentRuntimeArtifact = agentcore.AgentRuntimeArtifact.fromEcrRepository(repository, \"v1.0.0\");\n\n// Explicitly using public network (this is the default)\nconst runtime = new agentcore.Runtime(this, \"MyAgentRuntime\", {\n runtimeName: \"myAgent\",\n agentRuntimeArtifact: agentRuntimeArtifact,\n networkConfiguration: agentcore.RuntimeNetworkConfiguration.usingPublicNetwork(),\n});\n```\n\n#### VPC Network Mode\n\nFor enhanced security and network isolation, you can deploy your runtime within a VPC:\n\n```typescript fixture=default\nconst repository = new ecr.Repository(this, \"TestRepository\", {\n repositoryName: \"test-agent-runtime\",\n});\nconst agentRuntimeArtifact = agentcore.AgentRuntimeArtifact.fromEcrRepository(repository, \"v1.0.0\");\n\n// Create or use an existing VPC\nconst vpc = new ec2.Vpc(this, 'MyVpc', {\n maxAzs: 2,\n});\n\n// Configure runtime with VPC\nconst runtime = new agentcore.Runtime(this, \"MyAgentRuntime\", {\n runtimeName: \"myAgent\",\n agentRuntimeArtifact: agentRuntimeArtifact,\n networkConfiguration: agentcore.RuntimeNetworkConfiguration.usingVpc(this, {\n vpc: vpc,\n vpcSubnets: { subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS },\n // Optionally specify security groups, or one will be created automatically\n // securityGroups: [mySecurityGroup],\n }),\n});\n\n```\n\n#### Managing Security Groups with VPC Configuration\n\nWhen using VPC mode, the Runtime implements `ec2.IConnectable`, allowing you to manage network access using the `connections` property:\n\n```typescript fixture=default\nconst vpc = new ec2.Vpc(this, 'MyVpc', {\n maxAzs: 2,\n});\n\nconst repository = new ecr.Repository(this, \"TestRepository\", {\n repositoryName: \"test-agent-runtime\",\n});\nconst agentRuntimeArtifact = agentcore.AgentRuntimeArtifact.fromEcrRepository(repository, \"v1.0.0\");\n\n// Create runtime with VPC configuration\nconst runtime = new agentcore.Runtime(this, \"MyAgentRuntime\", {\n runtimeName: \"myAgent\",\n agentRuntimeArtifact: agentRuntimeArtifact,\n networkConfiguration: agentcore.RuntimeNetworkConfiguration.usingVpc(this, {\n vpc: vpc,\n vpcSubnets: { subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS },\n }),\n});\n\n// Now you can manage network access using the connections property\n// Allow inbound HTTPS traffic from a specific security group\nconst webServerSecurityGroup = new ec2.SecurityGroup(this, 'WebServerSG', { vpc });\nruntime.connections.allowFrom(webServerSecurityGroup, ec2.Port.tcp(443), 'Allow HTTPS from web servers');\n\n// Allow outbound connections to a database\nconst databaseSecurityGroup = new ec2.SecurityGroup(this, 'DatabaseSG', { vpc });\nruntime.connections.allowTo(databaseSecurityGroup, ec2.Port.tcp(5432), 'Allow PostgreSQL connection');\n\n// Allow outbound HTTPS to anywhere (for external API calls)\nruntime.connections.allowToAnyIpv4(ec2.Port.tcp(443), 'Allow HTTPS outbound');\n```\n\n### Runtime IAM Permissions\n\nThe Runtime construct provides convenient methods for granting IAM permissions to principals that need to invoke the runtime or manage its execution role.\n\n```typescript fixture=default\nconst repository = new ecr.Repository(this, \"TestRepository\", {\n repositoryName: \"test-agent-runtime\",\n});\nconst agentRuntimeArtifact = agentcore.AgentRuntimeArtifact.fromEcrRepository(repository, \"v1.0.0\");\n\n// Create a runtime\nconst runtime = new agentcore.Runtime(this, \"MyRuntime\", {\n runtimeName: \"my_runtime\",\n agentRuntimeArtifact: agentRuntimeArtifact,\n});\n\n// Create a Lambda function that needs to invoke the runtime\nconst invokerFunction = new lambda.Function(this, \"InvokerFunction\", {\n runtime: lambda.Runtime.PYTHON_3_12,\n handler: \"index.handler\",\n code: lambda.Code.fromInline(`\nimport boto3\ndef handler(event, context):\n client = boto3.client('bedrock-agentcore')\n # Invoke the runtime...\n `),\n});\n\n// Grant permission to invoke the runtime directly\nruntime.grantInvokeRuntime(invokerFunction);\n\n// Grant permission to invoke the runtime on behalf of a user\n// (requires X-Amzn-Bedrock-AgentCore-Runtime-User-Id header)\nruntime.grantInvokeRuntimeForUser(invokerFunction);\n\n// Grant both invoke permissions (most common use case)\nruntime.grantInvoke(invokerFunction);\n\n// Grant specific custom permissions to the runtime's execution role\nruntime.grant(['bedrock:InvokeModel'], ['arn:aws:bedrock:*:*:*']);\n\n// Add a policy statement to the runtime's execution role\nruntime.addToRolePolicy(new iam.PolicyStatement({\n actions: ['s3:GetObject'],\n resources: ['arn:aws:s3:::my-bucket/*'],\n}));\n```\n\n### Other configuration\n\n#### Lifecycle configuration\n\nThe LifecycleConfiguration input parameter to CreateAgentRuntime lets you manage the lifecycle of runtime sessions and resources in Amazon Bedrock AgentCore Runtime. This configuration helps optimize resource utilization by automatically cleaning up idle sessions and preventing long-running instances from consuming resources indefinitely.\n\nYou can configure:\n\n- idleRuntimeSessionTimeout: Timeout in seconds for idle runtime sessions. When a session remains idle for this duration, it will trigger termination. Termination can last up to 15 seconds due to logging and other process completion. Default: 900 seconds (15 minutes)\n- maxLifetime: Maximum lifetime for the instance in seconds. Once reached, instances will initialize termination. Termination can last up to 15 seconds due to logging and other process completion. Default: 28800 seconds (8 hours)\n\nFor additional information, please refer to the [documentation](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/runtime-lifecycle-settings.html).\n\n```typescript fixture=default\nconst repository = new ecr.Repository(this, \"TestRepository\", {\n repositoryName: \"test-agent-runtime\",\n});\n\nconst agentRuntimeArtifact = agentcore.AgentRuntimeArtifact.fromEcrRepository(repository, \"v1.0.0\");\n\nnew agentcore.Runtime(this, 'test-runtime', {\n runtimeName: 'test_runtime',\n agentRuntimeArtifact: agentRuntimeArtifact,\n lifecycleConfiguration: {\n idleRuntimeSessionTimeout: Duration.minutes(10),\n maxLifetime: Duration.hours(4),\n },\n});\n```\n\n#### Request header configuration\n\nCustom headers let you pass contextual information from your application directly to your agent code without cluttering the main request payload. This includes authentication tokens like JWT (JSON Web Tokens, which contain user identity and authorization claims) through the Authorization header, allowing your agent to make decisions based on who is calling it. You can also pass custom metadata like user preferences, session identifiers, or trace context using headers prefixed with X-Amzn-Bedrock-AgentCore-Runtime-Custom-, giving your agent access to up to 20 pieces of runtime context that travel alongside each request. This information can be also used in downstream systems like AgentCore Memory that you can namespace based on those characteristics like user_id or aud in claims like line of business.\n\nFor additional information, please refer to the [documentation](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/runtime-header-allowlist.html).\n\n```typescript fixture=default\nconst repository = new ecr.Repository(this, \"TestRepository\", {\n repositoryName: \"test-agent-runtime\",\n});\n\nconst agentRuntimeArtifact = agentcore.AgentRuntimeArtifact.fromEcrRepository(repository, \"v1.0.0\");\n\nnew agentcore.Runtime(this, 'test-runtime', {\n runtimeName: 'test_runtime',\n agentRuntimeArtifact: agentRuntimeArtifact,\n requestHeaderConfiguration: {\n allowlistedHeaders: ['X-Amzn-Bedrock-AgentCore-Runtime-Custom-H1'],\n },\n});\n```\n\n## Browser\n\nThe Amazon Bedrock AgentCore Browser provides a secure, cloud-based browser that enables AI agents to interact with websites. It includes security features such as session isolation, built-in observability through live viewing, CloudTrail logging, and session replay capabilities.\n\nAdditional information about the browser tool can be found in the [official documentation](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/browser-tool.html)\n\n### Browser Network modes\n\nThe Browser construct supports the following network modes:\n\n1. **Public Network Mode** (`BrowserNetworkMode.usingPublicNetwork()`) - Default\n\n - Allows internet access for web browsing and external API calls\n - Suitable for scenarios where agents need to interact with publicly available websites\n - Enables full web browsing capabilities\n - VPC mode is not supported with this option\n\n2. **VPC (Virtual Private Cloud)** (`BrowserNetworkMode.usingVpc()`)\n\n - Select whether to run the browser in a virtual private cloud (VPC).\n - By configuring VPC connectivity, you enable secure access to private resources such as databases, internal APIs, and services within your VPC.\n\n While the VPC itself is mandatory, these are optional:\n - Subnets - if not provided, CDK will select appropriate subnets from the VPC\n - Security Groups - if not provided, CDK will create a default security group\n - Specific subnet selection criteria - you can let CDK choose automatically\n\nFor more information on VPC connectivity for Amazon Bedrock AgentCore Browser, please refer to the [official documentation](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/agentcore-vpc.html).\n\n### Browser Properties\n\n| Name | Type | Required | Description |\n|------|------|----------|-------------|\n| `browserCustomName` | `string` | No | The name of the browser. Must start with a letter and can be up to 48 characters long. Pattern: `[a-zA-Z][a-zA-Z0-9_]{0,47}`. If not provided, a unique name will be auto-generated |\n| `description` | `string` | No | Optional description for the browser. Can have up to 200 characters |\n| `networkConfiguration` | `BrowserNetworkConfiguration` | No | Network configuration for browser. Defaults to PUBLIC network mode |\n| `recordingConfig` | `RecordingConfig` | No | Recording configuration for browser. Defaults to no recording |\n| `executionRole` | `iam.IRole` | No | The IAM role that provides permissions for the browser to access AWS services. A new role will be created if not provided |\n| `tags` | `{ [key: string]: string }` | No | Tags to apply to the browser resource |\n| `browserSigning` | BrowserSigning | No | Browser signing configuration. Defaults to DISABLED |\n\n### Basic Browser Creation\n\n```typescript fixture=default\n// Create a basic browser with public network access\nconst browser = new agentcore.BrowserCustom(this, \"MyBrowser\", {\n browserCustomName: \"my_browser\",\n description: \"A browser for web automation\",\n});\n```\n\n### Browser with Tags\n\n```typescript fixture=default\n// Create a browser with custom tags\nconst browser = new agentcore.BrowserCustom(this, \"MyBrowser\", {\n browserCustomName: \"my_browser\",\n description: \"A browser for web automation with tags\",\n networkConfiguration: agentcore.BrowserNetworkConfiguration.usingPublicNetwork(),\n tags: {\n Environment: \"Production\",\n Team: \"AI/ML\",\n Project: \"AgentCore\",\n },\n});\n```\n\n### Browser with VPC\n\n```typescript fixture=default\nconst browser = new agentcore.BrowserCustom(this, 'BrowserVpcWithRecording', {\n browserCustomName: 'browser_recording',\n networkConfiguration: agentcore.BrowserNetworkConfiguration.usingVpc(this, {\n vpc: new ec2.Vpc(this, 'VPC', { restrictDefaultSecurityGroup: false }),\n }),\n});\n```\n\nBrowser exposes a [connections](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.Connections.html) property. This property returns a connections object, which simplifies the process of defining and managing ingress and egress rules for security groups in your AWS CDK applications. Instead of directly manipulating security group rules, you interact with the Connections object of a construct, which then translates your connectivity requirements into the appropriate security group rules. For instance:\n\n```typescript fixture=default\nconst vpc = new ec2.Vpc(this, 'testVPC');\n\nconst browser = new agentcore.BrowserCustom(this, 'test-browser', {\n browserCustomName: 'test_browser',\n networkConfiguration: agentcore.BrowserNetworkConfiguration.usingVpc(this, {\n vpc: vpc,\n }),\n});\n\nbrowser.connections.addSecurityGroup(new ec2.SecurityGroup(this, 'AdditionalGroup', { vpc }));\n```\n\nSo security groups can be added after the browser construct creation. You can use methods like allowFrom() and allowTo() to grant ingress access to/egress access from a specified peer over a given portRange. The Connections object automatically adds the necessary ingress or egress rules to the security group(s) associated with the calling construct.\n\n### Browser with Recording Configuration\n\n```typescript fixture=default\n// Create an S3 bucket for recordings\nconst recordingBucket = new s3.Bucket(this, \"RecordingBucket\", {\n bucketName: \"my-browser-recordings\",\n removalPolicy: RemovalPolicy.DESTROY, // For demo purposes\n});\n\n// Create browser with recording enabled\nconst browser = new agentcore.BrowserCustom(this, \"MyBrowser\", {\n browserCustomName: \"my_browser\",\n description: \"Browser with recording enabled\",\n networkConfiguration: agentcore.BrowserNetworkConfiguration.usingPublicNetwork(),\n recordingConfig: {\n enabled: true,\n s3Location: {\n bucketName: recordingBucket.bucketName,\n objectKey: \"browser-recordings/\",\n },\n },\n});\n```\n\n### Browser with Custom Execution Role\n\n```typescript fixture=default\n// Create a custom execution role\nconst executionRole = new iam.Role(this, \"BrowserExecutionRole\", {\n assumedBy: new iam.ServicePrincipal(\"bedrock-agentcore.amazonaws.com\"),\n managedPolicies: [\n iam.ManagedPolicy.fromAwsManagedPolicyName(\"AmazonBedrockAgentCoreBrowserExecutionRolePolicy\"),\n ],\n});\n\n// Create browser with custom execution role\nconst browser = new agentcore.BrowserCustom(this, \"MyBrowser\", {\n browserCustomName: \"my_browser\",\n description: \"Browser with custom execution role\",\n networkConfiguration: agentcore.BrowserNetworkConfiguration.usingPublicNetwork(),\n executionRole: executionRole,\n});\n```\n\n### Browser with S3 Recording and Permissions\n\n```typescript fixture=default\n// Create an S3 bucket for recordings\nconst recordingBucket = new s3.Bucket(this, \"RecordingBucket\", {\n bucketName: \"my-browser-recordings\",\n removalPolicy: RemovalPolicy.DESTROY, // For demo purposes\n});\n\n// Create browser with recording enabled\nconst browser = new agentcore.BrowserCustom(this, \"MyBrowser\", {\n browserCustomName: \"my_browser\",\n description: \"Browser with recording enabled\",\n networkConfiguration: agentcore.BrowserNetworkConfiguration.usingPublicNetwork(),\n recordingConfig: {\n enabled: true,\n s3Location: {\n bucketName: recordingBucket.bucketName,\n objectKey: \"browser-recordings/\",\n },\n },\n});\n\n// The browser construct automatically grants S3 permissions to the execution role\n// when recording is enabled, so no additional IAM configuration is needed\n```\n\n### Browser with Browser signing\n\nAI agents need to browse the web on your behalf. When your agent visits a website to gather information, complete a form, or verify data, it encounters the same defenses designed to stop unwanted bots: CAPTCHAs, rate limits, and outright blocks.\n\nAmazon Bedrock AgentCore Browser supports Web Bot Auth. Web Bot Auth is a draft IETF protocol that gives agents verifiable cryptographic identities. When you enable Web Bot Auth in AgentCore Browser, the service issues cryptographic credentials that websites can verify. The agent presents these credentials with every request. The WAF may now additionally check the signature, confirm it matches a trusted directory, and allow the request through if verified bots are allowed by the domain owner and other WAF checks are clear.\n\nTo enable the browser to sign requests using the Web Bot Auth protocol, create a browser tool with the browserSigning configuration:\n\n```typescript fixture=default\nconst browser = new agentcore.BrowserCustom(this, 'test-browser', {\n browserCustomName: 'test_browser',\n browserSigning: agentcore.BrowserSigning.ENABLED\n});\n```\n\n### Browser IAM Permissions\n\nThe Browser construct provides convenient methods for granting IAM permissions:\n\n```typescript fixture=default\n// Create a browser\nconst browser = new agentcore.BrowserCustom(this, \"MyBrowser\", {\n browserCustomName: \"my_browser\",\n description: \"Browser for web automation\",\n networkConfiguration: agentcore.BrowserNetworkConfiguration.usingPublicNetwork(),\n});\n\n// Create a role that needs access to the browser\nconst userRole = new iam.Role(this, \"UserRole\", {\n assumedBy: new iam.ServicePrincipal(\"lambda.amazonaws.com\"),\n});\n\n// Grant read permissions (Get and List actions)\nbrowser.grantRead(userRole);\n\n// Grant use permissions (Start, Update, Stop actions)\nbrowser.grantUse(userRole);\n\n// Grant specific custom permissions\nbrowser.grant(userRole, \"bedrock-agentcore:GetBrowserSession\");\n```\n\n## Code Interpreter\n\nThe Amazon Bedrock AgentCore Code Interpreter enables AI agents to write and execute code securely in sandbox environments, enhancing their accuracy and expanding their ability to solve complex end-to-end tasks. This is critical in Agentic AI applications where the agents may execute arbitrary code that can lead to data compromise or security risks. The AgentCore Code Interpreter tool provides secure code execution, which helps you avoid running into these issues.\n\nFor more information about code interpreter, please refer to the [official documentation](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/code-interpreter-tool.html)\n\n### Code Interpreter Network Modes\n\nThe Code Interpreter construct supports the following network modes:\n\n1. **Public Network Mode** (`CodeInterpreterNetworkMode.usingPublicNetwork()`) - Default\n\n - Allows internet access for package installation and external API calls\n - Suitable for development and testing environments\n - Enables downloading Python packages from PyPI\n\n2. **Sandbox Network Mode** (`CodeInterpreterNetworkMode.usingSandboxNetwork()`)\n - Isolated network environment with no internet access\n - Suitable for production environments with strict security requirements\n - Only allows access to pre-installed packages and local resources\n\n3. **VPC (Virtual Private Cloud)** (`CodeInterpreterNetworkMode.usingVpc()`)\n - Select whether to run the browser in a virtual private cloud (VPC).\n - By configuring VPC connectivity, you enable secure access to private resources such as databases, internal APIs, and services within your VPC.\n\n While the VPC itself is mandatory, these are optional:\n - Subnets - if not provided, CDK will select appropriate subnets from the VPC\n - Security Groups - if not provided, CDK will create a default security group\n - Specific subnet selection criteria - you can let CDK choose automatically\n\nFor more information on VPC connectivity for Amazon Bedrock AgentCore Browser, please refer to the [official documentation](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/agentcore-vpc.html).\n\n### Code Interpreter Properties\n\n| Name | Type | Required | Description |\n|------|------|----------|-------------|\n| `codeInterpreterCustomName` | `string` | No | The name of the code interpreter. Must start with a letter and can be up to 48 characters long. Pattern: `[a-zA-Z][a-zA-Z0-9_]{0,47}`. If not provided, a unique name will be auto-generated |\n| `description` | `string` | No | Optional description for the code interpreter. Can have up to 200 characters |\n| `executionRole` | `iam.IRole` | No | The IAM role that provides permissions for the code interpreter to access AWS services. A new role will be created if not provided |\n| `networkConfiguration` | `CodeInterpreterNetworkConfiguration` | No | Network configuration for code interpreter. Defaults to PUBLIC network mode |\n| `tags` | `{ [key: string]: string }` | No | Tags to apply to the code interpreter resource |\n\n### Basic Code Interpreter Creation\n\n```typescript fixture=default\n// Create a basic code interpreter with public network access\nconst codeInterpreter = new agentcore.CodeInterpreterCustom(this, \"MyCodeInterpreter\", {\n codeInterpreterCustomName: \"my_code_interpreter\",\n description: \"A code interpreter for Python execution\",\n});\n```\n\n### Code Interpreter with VPC\n\n```typescript fixture=default\nconst codeInterpreter = new agentcore.CodeInterpreterCustom(this, \"MyCodeInterpreter\", {\n codeInterpreterCustomName: \"my_sandbox_interpreter\",\n description: \"Code interpreter with isolated network access\",\n networkConfiguration: agentcore.BrowserNetworkConfiguration.usingVpc(this, {\n vpc: new ec2.Vpc(this, 'VPC', { restrictDefaultSecurityGroup: false }),\n }),\n});\n```\n\nCode Interpreter exposes a [connections](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.Connections.html) property. This property returns a connections object, which simplifies the process of defining and managing ingress and egress rules for security groups in your AWS CDK applications. Instead of directly manipulating security group rules, you interact with the Connections object of a construct, which then translates your connectivity requirements into the appropriate security group rules. For instance:\n\n```typescript fixture=default\nconst vpc = new ec2.Vpc(this, 'testVPC');\n\nconst codeInterpreter = new agentcore.CodeInterpreterCustom(this, \"MyCodeInterpreter\", {\n codeInterpreterCustomName: \"my_sandbox_interpreter\",\n description: \"Code interpreter with isolated network access\",\n networkConfiguration: agentcore.BrowserNetworkConfiguration.usingVpc(this, {\n vpc: vpc,\n }),\n});\n\ncodeInterpreter.connections.addSecurityGroup(new ec2.SecurityGroup(this, 'AdditionalGroup', { vpc }));\n```\n\nSo security groups can be added after the browser construct creation. You can use methods like allowFrom() and allowTo() to grant ingress access to/egress access from a specified peer over a given portRange. The Connections object automatically adds the necessary ingress or egress rules to the security group(s) associated with the calling construct.\n\n### Code Interpreter with Sandbox Network Mode\n\n```typescript fixture=default\n// Create code interpreter with sandbox network mode (isolated)\nconst codeInterpreter = new agentcore.CodeInterpreterCustom(this, \"MyCodeInterpreter\", {\n codeInterpreterCustomName: \"my_sandbox_interpreter\",\n description: \"Code interpreter with isolated network access\",\n networkConfiguration: agentcore.CodeInterpreterNetworkConfiguration.usingSandboxNetwork(),\n});\n```\n\n### Code Interpreter with Custom Execution Role\n\n```typescript fixture=default\n// Create a custom execution role\nconst executionRole = new iam.Role(this, \"CodeInterpreterExecutionRole\", {\n assumedBy: new iam.ServicePrincipal(\"bedrock-agentcore.amazonaws.com\"),\n});\n\n// Create code interpreter with custom execution role\nconst codeInterpreter = new agentcore.CodeInterpreterCustom(this, \"MyCodeInterpreter\", {\n codeInterpreterCustomName: \"my_code_interpreter\",\n description: \"Code interpreter with custom execution role\",\n networkConfiguration: agentcore.CodeInterpreterNetworkConfiguration.usingPublicNetwork(),\n executionRole: executionRole,\n});\n```\n\n### Code Interpreter IAM Permissions\n\nThe Code Interpreter construct provides convenient methods for granting IAM permissions:\n\n```typescript fixture=default\n// Create a code interpreter\nconst codeInterpreter = new agentcore.CodeInterpreterCustom(this, \"MyCodeInterpreter\", {\n codeInterpreterCustomName: \"my_code_interpreter\",\n description: \"Code interpreter for Python execution\",\n networkConfiguration: agentcore.CodeInterpreterNetworkConfiguration.usingPublicNetwork(),\n});\n\n// Create a role that needs access to the code interpreter\nconst userRole = new iam.Role(this, \"UserRole\", {\n assumedBy: new iam.ServicePrincipal(\"lambda.amazonaws.com\"),\n});\n\n// Grant read permissions (Get and List actions)\ncodeInterpreter.grantRead(userRole);\n\n// Grant use permissions (Start, Invoke, Stop actions)\ncodeInterpreter.grantUse(userRole);\n\n// Grant specific custom permissions\ncodeInterpreter.grant(userRole, \"bedrock-agentcore:GetCodeInterpreterSession\");\n```\n\n### Code interpreter with tags\n\n```typescript fixture=default\n// Create code interpreter with sandbox network mode (isolated)\nconst codeInterpreter = new agentcore.CodeInterpreterCustom(this, \"MyCodeInterpreter\", {\n codeInterpreterCustomName: \"my_sandbox_interpreter\",\n description: \"Code interpreter with isolated network access\",\n networkConfiguration: agentcore.CodeInterpreterNetworkConfiguration.usingPublicNetwork(),\n tags: {\n Environment: \"Production\",\n Team: \"AI/ML\",\n Project: \"AgentCore\",\n },\n});\n```\n\n## Gateway\n\nThe Gateway construct provides a way to create Amazon Bedrock Agent Core Gateways, which serve as integration points between agents and external services.\n\n### Gateway Properties\n\n| Name | Type | Required | Description |\n|------|------|----------|-------------|\n| `gatewayName` | `string` | No | The name of the gateway. Valid characters are a-z, A-Z, 0-9, _ (underscore) and - (hyphen). Maximum 100 characters. If not provided, a unique name will be auto-generated |\n| `description` | `string` | No | Optional description for the gateway. Maximum 200 characters |\n| `protocolConfiguration` | `IGatewayProtocolConfig` | No | The protocol configuration for the gateway. Defaults to MCP protocol |\n| `authorizerConfiguration` | `IGatewayAuthorizerConfig` | No | The authorizer configuration for the gateway. Defaults to Cognito |\n| `exceptionLevel` | `GatewayExceptionLevel` | No | The verbosity of exception messages. Use DEBUG mode to see granular exception messages |\n| `kmsKey` | `kms.IKey` | No | The AWS KMS key used to encrypt data associated with the gateway |\n| `role` | `iam.IRole` | No | The IAM role that provides permissions for the gateway to access AWS services. A new role will be created if not provided |\n| `tags` | `{ [key: string]: string }` | No | Tags for the gateway. A list of key:value pairs of tags to apply to this Gateway resource |\n\n### Basic Gateway Creation\n\nThe protocol configuration defaults to MCP and the inbound auth configuration uses Cognito (it is automatically created on your behalf).\n\n```typescript fixture=default\n// Create a basic gateway with default MCP protocol and Cognito authorizer\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n});\n```\n\n### Protocol configuration\n\nCurrently MCP is the only protocol available. To configure it, use the `protocol` property with `McpProtocolConfiguration`:\n\n- Instructions: Guidance for how to use the gateway with your tools\n- Semantic search: Smart tool discovery that finds the right tools without typical limits. It improves accuracy by finding relevant tools based on context\n- Supported versions: Which MCP protocol versions the gateway can use\n\n```typescript fixture=default\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n protocolConfiguration: new agentcore.McpProtocolConfiguration({\n instructions: \"Use this gateway to connect to external MCP tools\",\n searchType: agentcore.McpGatewaySearchType.SEMANTIC,\n supportedVersions: [agentcore.MCPProtocolVersion.MCP_2025_03_26],\n }),\n});\n```\n\n### Inbound authorization\n\nBefore you create your gateway, you must set up inbound authorization. Inbound authorization validates users who attempt to access targets through\nyour AgentCore gateway. By default, if not provided, the construct will create and configure Cognito as the default identity provider\n(inbound Auth setup). AgentCore supports the following types of inbound authorization:\n\n**JSON Web Token (JWT)** – A secure and compact token used for authorization. After creating the JWT, you specify it as the authorization\nconfiguration when you create the gateway. You can create a JWT with any of the identity providers at Provider setup and configuration.\n\nYou can configure a custom authorization provider using the `authorizerConfiguration` property with `GatewayAuthorizer.usingCustomJwt()`.\nYou need to specify an OAuth discovery server and client IDs/audiences when you create the gateway. You can specify the following:\n\n- Discovery Url — String that must match the pattern ^.+/\\.well-known/openid-configuration$ for OpenID Connect discovery URLs\n- At least one of the below options depending on the chosen identity provider.\n- Allowed audiences — List of allowed audiences for JWT tokens\n- Allowed clients — List of allowed client identifiers\n- Allowed scopes — List of allowed scopes for JWT tokens\n- Custom claims — Optional custom claim validations (see Custom Claims Validation section below)\n\n```typescript fixture=default\n\n// Optional: Create custom claims (CustomClaimOperator and GatewayCustomClaim from agentcore)\nconst customClaims = [\n agentcore.GatewayCustomClaim.withStringValue('department', 'engineering'),\n agentcore.GatewayCustomClaim.withStringArrayValue('roles', ['admin'], agentcore.CustomClaimOperator.CONTAINS),\n agentcore.GatewayCustomClaim.withStringArrayValue('permissions', ['read', 'write'], agentcore.CustomClaimOperator.CONTAINS_ANY),\n];\n\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n authorizerConfiguration: agentcore.GatewayAuthorizer.usingCustomJwt({\n discoveryUrl: \"https://auth.example.com/.well-known/openid-configuration\",\n allowedAudience: [\"my-app\"],\n allowedClients: [\"my-client-id\"],\n allowedScopes: [\"read\", \"write\"],\n customClaims: customClaims, // Optional custom claims\n }),\n});\n```\n\n**IAM** – Authorizes through the credentials of the AWS IAM identity trying to access the gateway.\n\n```typescript fixture=default\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n authorizerConfiguration: agentcore.GatewayAuthorizer.usingAwsIam(),\n});\n\n// Grant access to a Lambda function's role\nconst lambdaRole = new iam.Role(this, \"LambdaRole\", {\n assumedBy: new iam.ServicePrincipal(\"lambda.amazonaws.com\"),\n});\n\n// The Lambda needs permission to invoke the gateway\ngateway.grantInvoke(lambdaRole);\n```\n\n**Cognito with M2M (Machine-to-Machine) Authentication (Default)** – When no authorizer is specified, the construct automatically creates a Cognito User Pool configured for OAuth 2.0 client credentials flow. This enables machine-to-machine authentication suitable for AI agents and service-to-service communication.\n\nFor more information, see [Setting up Amazon Cognito for Gateway inbound authorization](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/identity-idp-cognito.html).\n\n```typescript fixture=default\n// Create a gateway with default Cognito M2M authorizer\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n});\n\n// Access the Cognito resources for authentication setup\nconst userPool = gateway.userPool;\nconst userPoolClient = gateway.userPoolClient;\n\n// Get the token endpoint URL and OAuth scopes for client credentials flow\nconst tokenEndpointUrl = gateway.tokenEndpointUrl;\nconst oauthScopes = gateway.oauthScopes;\n// oauthScopes are in the format: ['{resourceServerId}/read', '{resourceServerId}/write']\n```\n\n**Using Cognito User Pool Explicitly with Custom Claims** – You can also use an existing Cognito User Pool with custom claims:\n\n```typescript fixture=default\ndeclare const userPool: cognito.UserPool;\ndeclare const userPoolClient: cognito.UserPoolClient;\n\n// Optional: Create custom claims (CustomClaimOperator and GatewayCustomClaim from agentcore)\nconst customClaims = [\n agentcore.GatewayCustomClaim.withStringValue('department', 'engineering'),\n agentcore.GatewayCustomClaim.withStringArrayValue('roles', ['admin'], agentcore.CustomClaimOperator.CONTAINS),\n agentcore.GatewayCustomClaim.withStringArrayValue('permissions', ['read', 'write'], agentcore.CustomClaimOperator.CONTAINS_ANY),\n];\n\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n authorizerConfiguration: agentcore.GatewayAuthorizer.usingCognito({\n userPool: userPool,\n allowedClients: [userPoolClient],\n allowedAudiences: [\"audience1\"],\n allowedScopes: [\"read\", \"write\"],\n customClaims: customClaims, // Optional custom claims\n }),\n});\n```\n\nTo authenticate with the gateway, request an access token using the client credentials flow and use it to call Gateway endpoints. For more information about the token endpoint, see [The token issuer endpoint](https://docs.aws.amazon.com/cognito/latest/developerguide/token-endpoint.html).\n\nThe following is an example of a token request using curl:\n\n```bash\ncurl -X POST \"${TOKEN_ENDPOINT_URL}\" \\\n -H \"Content-Type: application/x-www-form-urlencoded\" \\\n -d \"grant_type=client_credentials\" \\\n -d \"client_id=${USER_POOL_CLIENT_ID}\" \\\n -d \"client_secret=${CLIENT_SECRET}\" \\\n -d \"scope=${OAUTH_SCOPES}\"\n```\n\n### Gateway with KMS Encryption\n\nYou can provide a KMS key, and configure the authorizer as well as the protocol configuration.\n\n```typescript fixture=default\n// Create a KMS key for encryption\nconst encryptionKey = new kms.Key(this, \"GatewayEncryptionKey\", {\n enableKeyRotation: true,\n description: \"KMS key for gateway encryption\",\n});\n\n// Create gateway with KMS encryption\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-encrypted-gateway\",\n description: \"Gateway with KMS encryption\",\n protocolConfiguration: new agentcore.McpProtocolConfiguration({\n instructions: \"Use this gateway to connect to external MCP tools\",\n searchType: agentcore.McpGatewaySearchType.SEMANTIC,\n supportedVersions: [agentcore.MCPProtocolVersion.MCP_2025_03_26],\n }),\n authorizerConfiguration: agentcore.GatewayAuthorizer.usingCustomJwt({\n discoveryUrl: \"https://auth.example.com/.well-known/openid-configuration\",\n allowedAudience: [\"my-app\"],\n allowedClients: [\"my-client-id\"],\n allowedScopes: [\"read\", \"write\"],\n }),\n kmsKey: encryptionKey,\n exceptionLevel: agentcore.GatewayExceptionLevel.DEBUG,\n});\n```\n\n### Gateway with Custom Execution Role\n\n```typescript fixture=default\n// Create a custom execution role\nconst executionRole = new iam.Role(this, \"GatewayExecutionRole\", {\n assumedBy: new iam.ServicePrincipal(\"bedrock-agentcore.amazonaws.com\"),\n managedPolicies: [\n iam.ManagedPolicy.fromAwsManagedPolicyName(\"AmazonBedrockAgentCoreGatewayExecutionRolePolicy\"),\n ],\n});\n\n// Create gateway with custom execution role\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n description: \"Gateway with custom execution role\",\n protocolConfiguration: new agentcore.McpProtocolConfiguration({\n instructions: \"Use this gateway to connect to external MCP tools\",\n searchType: agentcore.McpGatewaySearchType.SEMANTIC,\n supportedVersions: [agentcore.MCPProtocolVersion.MCP_2025_03_26],\n }),\n authorizerConfiguration: agentcore.GatewayAuthorizer.usingCustomJwt({\n discoveryUrl: \"https://auth.example.com/.well-known/openid-configuration\",\n allowedAudience: [\"my-app\"],\n allowedClients: [\"my-client-id\"],\n allowedScopes: [\"read\", \"write\"],\n }),\n role: executionRole,\n});\n```\n\n### Gateway IAM Permissions\n\nThe Gateway construct provides convenient methods for granting IAM permissions:\n\n```typescript fixture=default\n// Create a gateway\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n description: \"Gateway for external service integration\",\n protocolConfiguration: new agentcore.McpProtocolConfiguration({\n instructions: \"Use this gateway to connect to external MCP tools\",\n searchType: agentcore.McpGatewaySearchType.SEMANTIC,\n supportedVersions: [agentcore.MCPProtocolVersion.MCP_2025_03_26],\n }),\n authorizerConfiguration: agentcore.GatewayAuthorizer.usingCustomJwt({\n discoveryUrl: \"https://auth.example.com/.well-known/openid-configuration\",\n allowedAudience: [\"my-app\"],\n allowedClients: [\"my-client-id\"],\n allowedScopes: [\"read\", \"write\"],\n }),\n});\n\n// Create a role that needs access to the gateway\nconst userRole = new iam.Role(this, \"UserRole\", {\n assumedBy: new iam.ServicePrincipal(\"lambda.amazonaws.com\"),\n});\n\n// Grant read permissions (Get and List actions)\ngateway.grantRead(userRole);\n\n// Grant manage permissions (Create, Update, Delete actions)\ngateway.grantManage(userRole);\n\n// Grant specific custom permissions\ngateway.grant(userRole, \"bedrock-agentcore:GetGateway\");\n```\n\n## Gateway Target\n\nAfter Creating gateways, you can add targets which define the tools that your gateway will host. Gateway supports multiple target\ntypes including Lambda functions and API specifications (either OpenAPI schemas or Smithy models). Gateway allows you to attach multiple\ntargets to a Gateway and you can change the targets / tools attached to a gateway at any point. Each target can have its own\ncredential provider attached enabling you to securely access targets whether they need IAM, API Key, or OAuth credentials.\n\n### Gateway Target Properties\n\n| Name | Type | Required | Description |\n|------|------|----------|-------------|\n| `gatewayTargetName` | `string` | No | The name of the gateway target. Valid characters are a-z, A-Z, 0-9, _ (underscore) and - (hyphen). If not provided, a unique name will be auto-generated |\n| `description` | `string` | No | Optional description for the gateway target. Maximum 200 characters |\n| `gateway` | `IGateway` | Yes | The gateway this target belongs to |\n| `targetConfiguration` | `ITargetConfiguration` | Yes | The target configuration (Lambda, OpenAPI, or Smithy). **Note:** Users typically don't create this directly. When using convenience methods like `GatewayTarget.forLambda()`, `GatewayTarget.forOpenApi()`, `GatewayTarget.forSmithy()` or the gateway's `addLambdaTarget()`, `addOpenApiTarget()`, `addSmithyTarget()` methods, this configuration is created internally for you. Only needed when using the GatewayTarget constructor directly for [advanced scenarios](#advanced-usage-direct-configuration-for-gateway-target). |\n| `credentialProviderConfigurations` | `IGatewayCredentialProvider[]` | No | Credential providers for authentication. Defaults to `[GatewayCredentialProvider.fromIamRole()]`. Use `GatewayCredentialProvider.fromApiKeyIdentityArn()`, `GatewayCredentialProvider.fromOauthIdentityArn()`, or `GatewayCredentialProvider.fromIamRole()` |\n| `validateOpenApiSchema` | `boolean` | No | (OpenAPI targets only) Whether to validate the OpenAPI schema at synthesis time. Defaults to `true`. Only applies to inline and local asset schemas. For more information refer here <https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway-schema-openapi.html> |\n\nThis approach gives you full control over the configuration but is typically not necessary for most use cases.\n\n### Targets types\n\nYou can create the following targets types:\n\n**Lambda Target**: Lambda targets allow you to connect your gateway to AWS Lambda functions that implement your tools. This is useful\nwhen you want to execute custom code in response to tool invocations.\n\n- Supports GATEWAY_IAM_ROLE credential provider only\n- Ideal for custom serverless function integration\n- Need tool schema (tool schema is a blueprint that describes the functions your Lambda provides to AI agents).\n The construct provide [3 ways to upload a tool schema to Lambda target](#tools-schema-for-lambda-target)\n- When using the default IAM authentication (no `credentialProviderConfigurations` specified),\n the construct automatocally grants the gateway role permission to invoke your Lambda function (`lambda:InvokeFunction`).\n\n**OpenAPI Schema Target** : OpenAPI widely used standard for describing RESTful APIs. Gateway supports OpenAPI 3.0\nspecifications for defining API targets. It connects to REST APIs using OpenAPI specifications\n\n- Supports OAUTH and API_KEY credential providers (Do not support IAM, you must provide `credentialProviderConfigurations`)\n- Ideal for integrating with external REST services\n- Need API schema. The construct provide [3 ways to upload a API schema to OpenAPI target](#api-schema-for-openapi-and-smithy-target)\n\n**Smithy Model Target** : Smithy is a language for defining services and software development kits (SDKs). Smithy models provide\na more structured approach to defining APIs compared to OpenAPI, and are particularly useful for connecting to AWS services.\nAgentCore Gateway supports built-in AWS service models only. It connects to services using Smithy model definitions\n\n- Supports OAUTH and API_KEY credential providers\n- Ideal for AWS service integrations\n- Need API schema. The construct provide 3 ways to upload a API schema to Smity target\n- When using the default IAM authentication (no `credentialProviderConfigurations` specified), The construct only\n grants permission to read the Smithy schema file from S3. You MUST manually grant permissions for the gateway\n role to invoke the actual Smithy API endpoints\n\n> Note: For Smithy model targets that access AWS services, your Gateway's execution role needs permissions to access those services.\nFor example, for a DynamoDB target, your execution role needs permissions to perform DynamoDB operations.\nThis is not managed by the construct due to the large number of options. Please refer to\n[Smithy Model Permission](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway-prerequisites-permissions.html) for example.\n\n**MCP Server Target**: Model Context Protocol (MCP) servers provide external tools, data access, and custom functions for AI agents.\nMCP servers enable agents to interact with external systems and services through a standardized protocol. Gateway automatically\ndiscovers and indexes available tools from MCP servers through synchronization.\n\n**Key Features:**\n\n- Requires explicit authentication configuration (OAuth2 recommended, empty array for NoAuth)\n- Ideal for connecting to external MCP-compliant servers\n- The endpoint must use HTTPS protocol\n- Supported MCP protocol versions: 2025-06-18, 2025-03-26\n- Automatic tool discovery through synchronization\n\n**Synchronization Behavior:**\n\nMCP Server targets require synchronization to discover and index available tools:\n\n- **Implicit Synchronization (Automatic)**: Tool discovery happens automatically during:\n - Target creation (`CreateGatewayTarget`)\n - Target updates (`UpdateGatewayTarget`)\n - The Gateway calls the MCP server's `tools/list` endpoint and indexes tools without user intervention\n\n- **Explicit Synchronization (Manual)**: When the MCP server's tools change independently (new tools added, schemas modified, tools removed):\n - The Gateway's tool catalog becomes stale\n - Call the `SynchronizeGatewayTargets` API to refresh the catalog\n - Use the `grantSync()` method to grant permissions to Lambda functions, CI/CD pipelines, or scheduled tasks that will trigger synchronization\n\n**Authentication & Permissions:**\n\nWhen using OAuth2, the Gateway service role automatically receives:\n\n- `bedrock-agentcore:GetWorkloadAccessToken`\n- `bedrock-agentcore:GetResourceOauth2Token`\n- `secretsmanager:GetSecretValue`\n- KMS decrypt (if secrets are encrypted)\n\nFor explicit synchronization, use `grantSync()` to grant `bedrock-agentcore:SynchronizeGatewayTargets` permission to your operator roles.\n\n> For more information, refer to the [MCP Server Target documentation](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway-target-MCPservers.html).\n\n### Understanding Tool Naming\n\nWhen tools are exposed through gateway targets, AgentCore Gateway prefixes each tool name with the target name to ensure uniqueness across multiple targets. This is important to understand when building your application logic.\n\n**Naming Pattern:**\n\n**Example:**\n\nIf your target is named `my-lambda-target` and provides a tool called `calculate_price`, agents will discover and invoke it as `my-lambda-target__calculate_price`.\n\n**Important Considerations:**\n\n- **For Lambda Targets**: Your Lambda handler must strip the target name prefix before processing the tool request. The full tool name (with prefix) is sent in the event.\n- **For MCP Server Targets**: The MCP server receives tool calls with the prefixed name from the gateway.\n- **For OpenAPI/Smithy Targets**: The gateway handles the prefix automatically when mapping to API operations based on the `operationId`.\n\nThis naming convention ensures that:\n\n- Tools from different targets don't collide even if they have the same name\n- Agents can access tools from multiple targets through a single gateway\n- Tool names remain unique in the unified tool catalog\n\nFor more details, see the [Gateway Tool Naming Documentation](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway-tool-naming.html).\n\n### Tools schema For Lambda target\n\nThe lambda target need tools schema to understand the fuunction lambda provides. You can upload the tool schema by following 3 ways:\n\n- From a local asset file\n\n```typescript\nconst toolSchema = agentcore.ToolSchema.fromLocalAsset(\n path.join(__dirname, \"schemas\", \"my-tool-schema.json\")\n );\n```\n\n- From an existing S3 file:\n\n```typescript\n\nconst toolSchema = agentcore.ToolSchema.fromS3File(\n s3.Bucket.fromBucketName(this, \"SchemasBucket\", \"my-schemas-bucket\"),\n \"tools/complex-tool-schema.json\",\n \"123456789012\"\n );\n```\n\n- From Inline:\n\n```typescript\nconst toolSchema = agentcore.ToolSchema.fromInline([{\n name: \"hello_world\",\n description: \"A simple hello world tool\",\n inputSchema: {\n type: agentcore.SchemaDefinitionType.OBJECT,\n properties: {\n name: {\n type: agentcore.SchemaDefinitionType.STRING,\n description: \"The name to greet\",\n },\n },\n required: [\"name\"],\n },\n }]);\n\n```\n\n### Api schema For OpenAPI and Smithy target\n\nThe OpenAPI and Smithy target need API Schema. The Gateway construct provide three ways to upload API schema for your target:\n\n- From a local asset file (requires binding to scope):\n\n```typescript fixture=default\n// When using ApiSchema.fromLocalAsset, you must bind the schema to a scope\nconst schema = agentcore.ApiSchema.fromLocalAsset(path.join(__dirname, \"mySchema.yml\"));\n\nschema.bind(this);\n```\n\n- From an inline schema:\n\n```typescript fixture=default\nconst inlineSchema = agentcore.ApiSchema.fromInline(`\nopenapi: 3.0.3\ninfo:\n title: Library API\n version: 1.0.0\npaths:\n /search:\n get:\n summary: Search for books\n operationId: searchBooks\n parameters:\n - name: query\n in: query\n required: true\n schema:\n type: string\n`);\n```\n\n- From an existing S3 file:\n\n```typescript fixture=default\nconst bucket = s3.Bucket.fromBucketName(this, \"ExistingBucket\", \"my-schema-bucket\");\nconst s3Schema = agentcore.ApiSchema.fromS3File(bucket, \"schemas/action-group.yaml\");\n```\n\n### Outbound auth\n\nOutbound authorization lets Amazon Bedrock AgentCore gateways securely access gateway targets on behalf of users authenticated\nand authorized during Inbound Auth.\n\nAgentCore Gateway supports the following types of outbound authorization:\n\n**IAM-based outbound authorization** – The gateway uses its execution role to authenticate with AWS services. This is the default\n and most common approach for Lambda targets and AWS service integrations.\n\n**2-legged OAuth (OAuth 2LO)** – Use OAuth 2.0 two-legged flow (2LO) for targets that require OAuth authentication.\nThe gateway authenticates on its own behalf, not on behalf of a user.\n\n**API key** – Use the AgentCore service/AWS console to generate an API key to authenticate access to the gateway target.\n\n**Note > You need to set up the outbound identity before you can create a gateway target.\n\n### Basic Gateway Target Creation\n\nYou can create targets in two ways: using the static factory methods on `GatewayTarget` or using the convenient `addTarget` methods on the gateway instance.\n\n#### Using addTarget methods (Recommended)\n\nBelow are the examples on how you can create Lambda , Smity and OpenAPI target using `addTarget` method.\n\n```typescript fixture=default\n// Create a gateway first\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n});\n\nconst lambdaFunction = new lambda.Function(this, \"MyFunction\", {\n runtime: lambda.Runtime.NODEJS_22_X,\n handler: \"index.handler\",\n code: lambda.Code.fromInline(`\n exports.handler = async (event) => {\n return {\n statusCode: 200,\n body: JSON.stringify({ message: 'Hello from Lambda!' })\n };\n };\n `),\n});\n\nconst lambdaTarget = gateway.addLambdaTarget(\"MyLambdaTarget\", {\n gatewayTargetName: \"my-lambda-target\",\n description: \"Lambda function target\",\n lambdaFunction: lambdaFunction,\n toolSchema: agentcore.ToolSchema.fromInline([\n {\n name: \"hello_world\",\n description: \"A simple hello world tool\",\n inputSchema: {\n type: agentcore.SchemaDefinitionType.OBJECT,\n properties: {\n name: {\n type: agentcore.SchemaDefinitionType.STRING,\n description: \"The name to greet\",\n },\n },\n required: [\"name\"],\n },\n },\n ]),\n});\n```\n\n- OpenAPI Target\n\n``` typescript\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n});\n\n// These ARNs are returned when creating the API key credential provider via Console or API\nconst apiKeyProviderArn = \"arn:aws:bedrock-agentcore:us-east-1:123456789012:token-vault/abc123/apikeycredentialprovider/my-apikey\"\nconst apiKeySecretArn = \"arn:aws:secretsmanager:us-east-1:123456789012:secret:my-apikey-secret-abc123\"\n\nconst bucket = s3.Bucket.fromBucketName(this, \"ExistingBucket\", \"my-schema-bucket\");\nconst s3mySchema = agentcore.ApiSchema.fromS3File(bucket, \"schemas/myschema.yaml\");\n\n// Add an OpenAPI target directly to the gateway\nconst target = gateway.addOpenApiTarget(\"MyTarget\", {\n gatewayTargetName: \"my-api-target\",\n description: \"Target for external API integration\",\n apiSchema: s3mySchema,\n credentialProviderConfigurations: [\n agentcore.GatewayCredentialProvider.fromApiKeyIdentityArn({\n providerArn: apiKeyProviderArn,\n secretArn: apiKeySecretArn,\n credentialLocation: agentcore.ApiKeyCredentialLocation.header({\n credentialParameterName: \"X-API-Key\",\n }),\n }),\n ],\n});\n\n// This make sure your s3 bucket is available before target\ntarget.node.addDependency(bucket);\n```\n\n- Smithy Target\n\n```typescript fixture=default\n\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n});\n\nconst smithySchema = agentcore.ApiSchema.fromLocalAsset(\n path.join(__dirname, \"models\", \"smithy-model.json\")\n);\nsmithySchema.bind(this);\n\nconst smithyTarget = gateway.addSmithyTarget(\"MySmithyTarget\", {\n gatewayTargetName: \"my-smithy-target\",\n description: \"Smithy model target\",\n smithyModel: smithySchema,\n\n});\n```\n\n- MCP Server Target\n\n```typescript fixture=default\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n});\n\n// OAuth2 authentication (recommended)\n// Note: Create the OAuth provider using AWS console or Identity L2 construct when available\nconst oauthProviderArn = \"arn:aws:bedrock-agentcore:us-east-1:123456789012:token-vault/abc123/oauth2credentialprovider/my-oauth\";\nconst oauthSecretArn = \"arn:aws:secretsmanager:us-east-1:123456789012:secret:my-oauth-secret-abc123\";\n\n// Add an MCP server target directly to the gateway\nconst mcpTarget = gateway.addMcpServerTarget(\"MyMcpServer\", {\n gatewayTargetName: \"my-mcp-server\",\n description: \"External MCP server integration\",\n endpoint: \"https://my-mcp-server.example.com\",\n credentialProviderConfigurations: [\n agentcore.GatewayCredentialProvider.fromOauthIdentityArn({\n providerArn: oauthProviderArn,\n secretArn: oauthSecretArn,\n scopes:['mcp-runtime-server/invoke']\n }),\n ],\n});\n\n// Grant sync permission to a Lambda function that will trigger synchronization\nconst syncFunction = new lambda.Function(this, \"SyncFunction\", {\n runtime: lambda.Runtime.PYTHON_3_12,\n handler: \"index.handler\",\n code: lambda.Code.fromInline(`\nimport boto3\n\ndef handler(event, context):\n client = boto3.client('bedrock-agentcore')\n response = client.synchronize_gateway_targets(\n gatewayIdentifier=event['gatewayId'],\n targetIds=[event['targetId']]\n )\n return response\n `),\n});\n\nmcpTarget.grantSync(syncFunction);\n```\n\n#### Using static factory methods\n\nCreate Gateway target using static convienence method.\n\n- Lambda Target\n\n```typescript fixture=default\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n});\n\nconst lambdaFunction = new lambda.Function(this, \"MyFunction\", {\n runtime: lambda.Runtime.NODEJS_22_X,\n handler: \"index.handler\",\n code: lambda.Code.fromInline(`\n exports.handler = async (event) => {\n return {\n statusCode: 200,\n body: JSON.stringify({ message: 'Hello from Lambda!' })\n };\n };\n `),\n});\n\n// Create a gateway target with Lambda and tool schema\nconst target = agentcore.GatewayTarget.forLambda(this, \"MyLambdaTarget\", {\n gatewayTargetName: \"my-lambda-target\",\n description: \"Target for Lambda function integration\",\n gateway: gateway,\n lambdaFunction: lambdaFunction,\n toolSchema: agentcore.ToolSchema.fromLocalAsset(\n path.join(__dirname, \"schemas\", \"my-tool-schema.json\")\n ),\n});\n```\n\n- OpenAPI Target\n\n```typescript fixture=default\n\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n});\n\n// outbound auth (Use AWS console to create it, Once Identity L2 construct is available you can use it to create identity)\nconst apiKeyIdentityArn = \"arn:aws:bedrock-agentcore:us-east-1:123456789012:token-vault/abc123/apikeycredentialprovider/my-apikey\"\nconst apiKeySecretArn = \"arn:aws:secretsmanager:us-east-1:123456789012:secret:my-apikey-secret-abc123\"\n\nconst opneapiSchema = agentcore.ApiSchema.fromLocalAsset(path.join(__dirname, \"mySchema.yml\"));\nopneapiSchema.bind(this);\n\n// Create a gateway target with OpenAPI Schema\nconst target = agentcore.GatewayTarget.forOpenApi(this, \"MyTarget\", {\n gatewayTargetName: \"my-api-target\",\n description: \"Target for external API integration\",\n gateway: gateway, // Note: you need to pass the gateway reference\n apiSchema: opneapiSchema,\n credentialProviderConfigurations: [\n agentcore.GatewayCredentialProvider.fromApiKeyIdentityArn({\n providerArn: apiKeyIdentityArn,\n secretArn: apiKeySecretArn\n }),\n ],\n});\n\n```\n\n- Smithy Target\n\n```typescript fixture=default\n\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n});\n\nconst smithySchema = agentcore.ApiSchema.fromLocalAsset(\n path.join(__dirname, \"models\", \"smithy-model.json\")\n);\nsmithySchema.bind(this);\n\n// Create a gateway target with Smithy Model and OAuth\nconst target = agentcore.GatewayTarget.forSmithy(this, \"MySmithyTarget\", {\n gatewayTargetName: \"my-smithy-target\",\n description: \"Target for Smithy model integration\",\n gateway: gateway,\n smithyModel: smithySchema,\n});\n\n```\n\n- MCP Server Target\n\n```typescript fixture=default\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n});\n\n// OAuth2 authentication (recommended)\n// Note: Create the OAuth provider using AWS console or Identity L2 construct when available\nconst oauthProviderArn = \"arn:aws:bedrock-agentcore:us-east-1:123456789012:token-vault/abc123/oauth2credentialprovider/my-oauth\";\nconst oauthSecretArn = \"arn:aws:secretsmanager:us-east-1:123456789012:secret:my-oauth-secret-abc123\";\n\n// Create a gateway target with MCP Server\nconst mcpTarget = agentcore.GatewayTarget.forMcpServer(this, \"MyMcpServer\", {\n gatewayTargetName: \"my-mcp-server\",\n description: \"External MCP server integration\",\n gateway: gateway,\n endpoint: \"https://my-mcp-server.example.com\",\n credentialProviderConfigurations: [\n agentcore.GatewayCredentialProvider.fromOauthIdentityArn({\n providerArn: oauthProviderArn,\n secretArn: oauthSecretArn,\n scopes:['mcp-runtime-server/invoke']\n }),\n ],\n});\n```\n\n### Advanced Usage: Direct Configuration for gateway target\n\nFor advanced use cases where you need full control over the target configuration, you can create configurations manually using the static factory methods and use the GatewayTarget constructor directly.\n\n#### Configuration Factory Methods\n\nEach target type has a corresponding configuration class with a static `create()` method:\n\n- **Lambda**: `LambdaTargetConfiguration.create(lambdaFunction, toolSchema)`\n- **OpenAPI**: `OpenApiTargetConfiguration.create(apiSchema, validateSchema?)`\n- **Smithy**: `SmithyTargetConfiguration.create(smithyModel)`\n\n#### Example: Lambda Target with Custom Configuration\n\n```typescript\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n});\n\nconst myLambdaFunction = new lambda.Function(this, \"MyFunction\", {\n runtime: lambda.Runtime.NODEJS_22_X,\n handler: \"index.handler\",\n code: lambda.Code.fromInline(`\n exports.handler = async (event) => ({ statusCode: 200 });\n `),\n});\n\nconst myToolSchema = agentcore.ToolSchema.fromInline([{\n name: \"my_tool\",\n description: \"My custom tool\",\n inputSchema: {\n type: agentcore.SchemaDefinitionType.OBJECT,\n properties: {},\n },\n}]);\n\n// Create a custom Lambda configuration\nconst customConfig = agentcore.LambdaTargetConfiguration.create(\n myLambdaFunction,\n myToolSchema\n);\n\n// Use the GatewayTarget constructor directly\nconst target = new agentcore.GatewayTarget(this, \"AdvancedTarget\", {\n gateway: gateway,\n gatewayTargetName: \"advanced-target\",\n targetConfiguration: customConfig, // Manually created configuration\n credentialProviderConfigurations: [\n agentcore.GatewayCredentialProvider.fromIamRole()\n ]\n});\n```\n\nThis approach gives you full control over the configuration but is typically not necessary for most use cases. The convenience methods (`GatewayTarget.forLambda()`, `GatewayTarget.forOpenApi()`, `GatewayTarget.forSmithy()`) handle all of this internally.\n\n### Gateway Interceptors\n\nGateway interceptors allow you to run custom code during each gateway invocation to implement fine-grained access control, transform requests and responses, or implement custom authorization logic. A gateway can have at most one REQUEST interceptor and one RESPONSE interceptor.\n\n**Interceptor Types:**\n\n- **REQUEST interceptors**: Execute before the gateway calls the target. Useful for request validation, transformation, or custom authorization\n- **RESPONSE interceptors**: Execute after the target responds but before the gateway sends the response back. Useful for response transformation, filtering, or adding custom headers\n\n**Security Best Practices:**\n\n1. Keep `passRequestHeaders` disabled unless absolutely necessary (default: false)\n2. Implement idempotent Lambda functions (gateway may retry on failures)\n3. Restrict gateway execution role to specific Lambda functions\n4. Avoid logging sensitive information in your interceptor\n\nFor more information, see the [Gateway Interceptors documentation](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway-interceptors.html).\n\n#### Adding Interceptors via Constructor\n\n```typescript fixture=default\n// Create Lambda functions for interceptors\nconst requestInterceptorFn = new lambda.Function(this, \"RequestInterceptor\", {\n runtime: lambda.Runtime.PYTHON_3_12,\n handler: \"index.handler\",\n code: lambda.Code.fromInline(`\ndef handler(event, context):\n # Validate and transform request\n return {\n \"interceptorOutputVersion\": \"1.0\",\n \"mcp\": {\n \"transformedGatewayRequest\": event[\"mcp\"][\"gatewayRequest\"]\n }\n }\n `),\n});\n\nconst responseInterceptorFn = new lambda.Function(this, \"ResponseInterceptor\", {\n runtime: lambda.Runtime.PYTHON_3_12,\n handler: \"index.handler\",\n code: lambda.Code.fromInline(`\ndef handler(event, context):\n # Filter or transform response\n return {\n \"interceptorOutputVersion\": \"1.0\",\n \"mcp\": {\n \"transformedGatewayResponse\": event[\"mcp\"][\"gatewayResponse\"]\n }\n }\n `),\n});\n\n// Create gateway with interceptors\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n interceptorConfigurations: [\n agentcore.LambdaInterceptor.forRequest(requestInterceptorFn, {\n passRequestHeaders: true // Only if you need to inspect headers\n }),\n agentcore.LambdaInterceptor.forResponse(responseInterceptorFn)\n ]\n});\n```\n\n**Automatic Permission Granting:**\n\nWhen you add a Lambda interceptor to a gateway (either via constructor or `addInterceptor()`), the gateway's IAM role automatically receives `lambda:InvokeFunction` permission on the Lambda function. This permission grant happens internally during the bind process - you do not need to manually configure these IAM permissions.\n\n#### Adding Interceptors Dynamically\n\n```typescript fixture=default\n// Create a gateway first\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n});\n\n// Create Lambda functions for interceptors\nconst requestInterceptorFn = new lambda.Function(this, \"RequestInterceptor\", {\n runtime: lambda.Runtime.PYTHON_3_12,\n handler: \"index.handler\",\n code: lambda.Code.fromInline(`\ndef handler(event, context):\n # Custom request validation logic\n return {\n \"interceptorOutputVersion\": \"1.0\",\n \"mcp\": {\n \"transformedGatewayRequest\": event[\"mcp\"][\"gatewayRequest\"]\n }\n }\n `),\n});\n\nconst responseInterceptorFn = new lambda.Function(this, \"ResponseInterceptor\", {\n runtime: lambda.Runtime.PYTHON_3_12,\n handler: \"index.handler\",\n code: lambda.Code.fromInline(`\ndef handler(event, context):\n # Filter sensitive data from response\n return {\n \"interceptorOutputVersion\": \"1.0\",\n \"mcp\": {\n \"transformedGatewayResponse\": event[\"mcp\"][\"gatewayResponse\"]\n }\n }\n `),\n});\n\ngateway.addInterceptor(\n agentcore.LambdaInterceptor.forRequest(requestInterceptorFn, {\n passRequestHeaders: false // Default, headers not passed for security\n })\n);\n\ngateway.addInterceptor(\n agentcore.LambdaInterceptor.forResponse(responseInterceptorFn)\n);\n```\n\n### Gateway Target IAM Permissions\n\nThe Gateway Target construct provides convenient methods for granting IAM permissions:\n\n```typescript fixture=default\n// Create a gateway and target\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n});\n\nconst smithySchema = agentcore.ApiSchema.fromLocalAsset(\n path.join(__dirname, \"models\", \"smithy-model.json\")\n);\nsmithySchema.bind(this);\n\n// Create a gateway target with Smithy Model and OAuth\nconst target = agentcore.GatewayTarget.forSmithy(this, \"MySmithyTarget\", {\n gatewayTargetName: \"my-smithy-target\",\n description: \"Target for Smithy model integration\",\n gateway: gateway,\n smithyModel: smithySchema,\n});\n\n// Create a role that needs access to the gateway target\nconst userRole = new iam.Role(this, \"UserRole\", {\n assumedBy: new iam.ServicePrincipal(\"lambda.amazonaws.com\"),\n});\n\n// Grant read permissions (Get and List actions)\ntarget.grantRead(userRole);\n\n// Grant manage permissions (Create, Update, Delete actions)\ntarget.grantManage(userRole);\n\n// Grant specific custom permissions\ntarget.grant(userRole, \"bedrock-agentcore:GetGatewayTarget\");\n\n\n// Grants permission to invoke this Gateway\ngateway.grantInvoke(userRole);\n```\n\n## Memory\n\nMemory is a critical component of intelligence. While Large Language Models (LLMs) have impressive capabilities, they lack persistent memory across conversations. Amazon Bedrock AgentCore Memory addresses this limitation by providing a managed service that enables AI agents to maintain context over time, remember important facts, and deliver consistent, personalized experiences.\n\nAgentCore Memory operates on two levels:\n\n- **Short-Term Memory**: Immediate conversation context and session-based information that provides continuity within a single interaction or closely related sessions.\n- **Long-Term Memory**: Persistent information extracted and stored across multiple conversations, including facts, preferences, and summaries that enable personalized experiences over time.\n\nWhen you interact with the memory via the `CreateEvent` API, you store interactions in Short-Term Memory (STM) instantly. These interactions can include everything from user messages, assistant responses, to tool actions.\n\nTo write to long-term memory, you need to configure extraction strategies which define how and where to store information from conversations for future use. These strategies are asynchronously processed from raw events after every few turns based on the strategy that was selected. You can't create long term memory records directly, as they are extracted asynchronously by AgentCore Memory.\n\n### Memory Properties\n\n| Name | Type | Required | Description |\n|------|------|----------|-------------|\n| `memoryName` | `string` | No | The name of the memory. If not provided, a unique name will be auto-generated |\n| `expirationDuration` | `Duration` | No | Short-term memory expiration in days (between 7 and 365). Default: 90 days |\n| `description` | `string` | No | Optional description for the memory. Default: no description. |\n| `kmsKey` | `IKey` | No | Custom KMS key to use for encryption. Default: Your data is encrypted with a key that AWS owns and manages for you |\n| `memoryStrategies` | `MemoryStrategyBase[]` | No | Built-in extraction strategies to use for this memory. Default: No extraction strategies (short term memory only) |\n| `executionRole` | `iam.IRole` | No | The IAM role that provides permissions for the memory to access AWS services. Default: A new role will be created. |\n| `tags` | `{ [key: string]: string }` | No | Tags for memory. Default: no tags. |\n\n### Basic Memory Creation\n\nBelow you can find how to configure a simple short-term memory (STM) with no long-term memory extraction strategies.\nNote how you set `expirationDuration`, which defines the time the events will be stored in the short-term memory before they expire.\n\n```typescript fixture=default\n\n// Create a basic memory with default settings, no LTM strategies\nconst memory = new agentcore.Memory(this, \"MyMemory\", {\n memoryName: \"my_memory\",\n description: \"A memory for storing user interactions for a period of 90 days\",\n expirationDuration: cdk.Duration.days(90),\n});\n```\n\nBasic Memory with Custom KMS Encryption\n\n```typescript fixture=default\n// Create a custom KMS key for encryption\nconst encryptionKey = new kms.Key(this, \"MemoryEncryptionKey\", {\n enableKeyRotation: true,\n description: \"KMS key for memory encryption\",\n});\n\n// Create memory with custom encryption\nconst memory = new agentcore.Memory(this, \"MyMemory\", {\n memoryName: \"my_encrypted_memory\",\n description: \"Memory with custom KMS encryption\",\n expirationDuration: cdk.Duration.days(90),\n kmsKey: encryptionKey,\n});\n```\n\n### LTM Memory Extraction Stategies\n\nIf you need long-term memory for context recall across sessions, you can setup memory extraction strategies\nto extract the relevant memory from the raw events.\n\nAmazon Bedrock AgentCore Memory has different memory strategies for extracting and organizing information:\n\n- **Summarization**: to summarize interactions to preserve critical context and key insights.\n- **Semantic Memory**: to extract general factual knowledge, concepts and meanings from raw conversations using vector embeddings.\nThis enables similarity-based retrieval of relevant facts and context.\n- **User Preferences**: to extract user behavior patterns from raw conversations.\n\nYou can use built-in extraction strategies for quick setup, or create custom extraction strategies with specific models and prompt templates.\n\n### Memory with Built-in Strategies\n\nThe library provides four built-in LTM strategies. These are default strategies for organizing and extracting memory data,\neach optimized for specific use cases.\n\nFor example: An agent helps multiple users with cloud storage setup. From these conversations,\nsee how each strategy processes users expressing confusion about account connection:\n\n1. **Summarization Strategy** (`MemoryStrategy.usingBuiltInSummarization()`)\nThis strategy compresses conversations into concise overviews, preserving essential context and key insights for quick recall.\nExtracted memory example: Users confused by cloud setup during onboarding.\n\n - Extracts concise summaries to preserve critical context and key insights\n - Namespace: `/strategies/{memoryStrategyId}/actors/{actorId}/sessions/{sessionId}`\n\n2. **Semantic Memory Strategy** (`MemoryStrategy.usingBuiltInSemantic()`)\nDistills general facts, concepts, and underlying meanings from raw conversational data, presenting the information in a context-independent format.\nExtracted memory example: In-context learning = task-solving via examples, no training needed.\n\n - Extracts general factual knowledge, concepts and meanings from raw conversations\n - Namespace: `/strategies/{memoryStrategyId}/actors/{actorId}`\n\n3. **User Preference Strategy** (`MemoryStrategy.usingBuiltInUserPreference()`)\nCaptures individual preferences, interaction patterns, and personalized settings to enhance future experiences.\nExtracted memory example: User needs clear guidance on cloud storage account connection during onboarding.\n\n - Extracts user behavior patterns from raw conversations\n - Namespace: `/strategies/{memoryStrategyId}/actors/{actorId}`\n\n4. **Episodic Memory Strategy** (`MemoryStrategy.usingBuiltInEpisodic()`)\nCaptures meaningful slices of user and system interactions, preserve them into compact records after summarizing.\nExtracted memory example: User first asked about pricing on Monday, then requested feature comparison on Tuesday, finally made purchase decision on Wednesday.\n\n - Captures event sequences and temporal relationships\n - Namespace: `/strategy/{memoryStrategyId}/actor/{actorId}/session/{sessionId}`\n - Reflections: `/strategy/{memoryStrategyId}/actor/{actorId}`\n\n```typescript fixture=default\n// Create memory with built-in strategies\nconst memory = new agentcore.Memory(this, \"MyMemory\", {\n memoryName: \"my_memory\",\n description: \"Memory with built-in strategies\",\n expirationDuration: cdk.Duration.days(90),\n memoryStrategies: [\n agentcore.MemoryStrategy.usingBuiltInSummarization(),\n agentcore.MemoryStrategy.usingBuiltInSemantic(),\n agentcore.MemoryStrategy.usingBuiltInUserPreference(),\n agentcore.MemoryStrategy.usingBuiltInEpisodic(),\n ],\n});\n```\n\nThe name generated for each built in memory strategy is as follows:\n\n- For Summarization: `summary_builtin_cdk001`\n- For Semantic:`semantic_builtin_cdk001>`\n- For User Preferences: `preference_builtin_cdk001`\n- For Episodic : `episodic_builtin_cdkGen0001`\n\n### Memory with custom Strategies\n\nWith Long-Term Memory, organization is managed through Namespaces.\n\nAn `actor` refers to entity such as end users or agent/user combinations. For example, in a coding support chatbot,\nthe actor is usually the developer asking questions. Using the actor ID helps the system know which user the memory belongs to,\nkeeping each user's data separate and organized.\n\nA `session` is usually a single conversation or interaction period between the user and the AI agent.\nIt groups all related messages and events that happen during that conversation.\n\nA `namespace` is used to logically group and organize long-term memories. It ensures data stays neat, separate, and secure.\n\nWith AgentCore Memory, you need to add a namespace when you define a memory strategy. This namespace helps define where the long-term memory\nwill be logically grouped. Every time a new long-term memory is extracted using this memory strategy, it is saved under the namespace you set.\nThis means that all long-term memories are scoped to their specific namespace, keeping them organized and preventing any mix-ups with other\nusers or sessions. You should use a hierarchical format separated by forward slashes /. This helps keep memories organized clearly. As needed,\nyou can choose to use the below pre-defined variables within braces in the namespace based on your applications' organization needs:\n\n- `actorId` – Identifies who the long-term memory belongs to, such as a user\n- `memoryStrategyId` – Shows which memory strategy is being used. This strategy identifier is auto-generated when you create a memory using CreateMemory operation.\n- `sessionId` – Identifies which session or conversation the memory is from.\n\nFor example, if you define the following namespace as the input to your strategy in CreateMemory operation:\n\n```shell\n/strategy/{memoryStrategyId}/actor/{actorId}/session/{sessionId}\n```\n\nAfter memory creation, this namespace might look like:\n\n```shell\n/strategy/summarization-93483043//actor/actor-9830m2w3/session/session-9330sds8\n```\n\nYou can customise the namespace, i.e. where the memories are stored by using the following methods:\n\n1. **Summarization Strategy** (`MemoryStrategy.usingSummarization(props)`)\n1. **Semantic Memory Strategy** (`MemoryStrategy.usingSemantic(props)`)\n1. **User Preference Strategy** (`MemoryStrategy.usingUserPreference(props)`)\n1. **Episodic Memory Strategy** (`MemoryStrategy.usingEpisodic(props)`)\n\n```typescript fixture=default\n// Create memory with custom strategies\nconst memory = new agentcore.Memory(this, \"MyMemory\", {\n memoryName: \"my_memory\",\n description: \"Memory with custom strategies\",\n expirationDuration: cdk.Duration.days(90),\n memoryStrategies: [\n agentcore.MemoryStrategy.usingUserPreference({\n name: \"CustomerPreferences\",\n namespaces: [\"support/customer/{actorId}/preferences\"]\n }),\n agentcore.MemoryStrategy.usingSemantic({\n name: \"CustomerSupportSemantic\",\n namespaces: [\"support/customer/{actorId}/semantic\"]\n }),\n agentcore.MemoryStrategy.usingEpisodic({\n name: \"customerJourneyEpisodic\",\n namespaces: [\"/journey/customer/{actorId}/episodes\"],\n reflectionConfiguration: {\n namespaces: [\"/journey/customer/{actorId}/reflections\"]\n }\n }),\n ],\n});\n```\n\nCustom memory strategies let you tailor memory extraction and consolidation to your specific domain or use case.\nYou can override the prompts for extracting and consolidating semantic, summary, or user preferences.\nYou can also choose the model that you want to use for extraction and consolidation.\n\nThe custom prompts you create are appended to a non-editable system prompt.\n\nSince a custom strategy requires you to invoke certain FMs, you need a role with appropriate permissions. For that, you can:\n\n- Let the L2 construct create a minimum permission role for you when use L2 Bedrock Foundation Models.\n- Use a custom role with the overly permissive `AmazonBedrockAgentCoreMemoryBedrockModelInferenceExecutionRolePolicy` managed policy.\n- Use a custom role with your own custom policies.\n\n#### Memory with Custom Execution Role\n\nKeep in mind that memories that **do not** use custom strategies do not require a service role.\nSo even if you provide it, it will be ignored as it will never be used.\n\n```typescript fixture=default\n// Create a custom execution role\nconst executionRole = new iam.Role(this, \"MemoryExecutionRole\", {\n assumedBy: new iam.ServicePrincipal(\"bedrock-agentcore.amazonaws.com\"),\n managedPolicies: [\n iam.ManagedPolicy.fromAwsManagedPolicyName(\n \"AmazonBedrockAgentCoreMemoryBedrockModelInferenceExecutionRolePolicy\"\n ),\n ],\n});\n\n// Create memory with custom execution role\nconst memory = new agentcore.Memory(this, \"MyMemory\", {\n memoryName: \"my_memory\",\n description: \"Memory with custom execution role\",\n expirationDuration: cdk.Duration.days(90),\n executionRole: executionRole,\n});\n```\n\nIn customConsolidation and customExtraction, the model property uses the [@aws-cdk/aws-bedrock-alph](https://www.npmjs.com/package/@aws-cdk/aws-bedrock-alpha) library which must be installed separately.\n\n```typescript fixture=default\n// Create a custom semantic memory strategy\nconst customSemanticStrategy = agentcore.MemoryStrategy.usingSemantic({\n name: \"customSemanticStrategy\",\n description: \"Custom semantic memory strategy\",\n namespaces: [\"/custom/strategies/{memoryStrategyId}/actors/{actorId}\"],\n customConsolidation: {\n model: bedrock.BedrockFoundationModel.ANTHROPIC_CLAUDE_3_5_SONNET_V1_0,\n appendToPrompt: \"Custom consolidation prompt for semantic memory\",\n },\n customExtraction: {\n model: bedrock.BedrockFoundationModel.ANTHROPIC_CLAUDE_3_5_SONNET_V1_0,\n appendToPrompt: \"Custom extraction prompt for semantic memory\",\n },\n});\n\n// Create memory with custom strategy\nconst memory = new agentcore.Memory(this, \"MyMemory\", {\n memoryName: \"my-custom-memory\",\n description: \"Memory with custom strategy\",\n expirationDuration: cdk.Duration.days(90),\n memoryStrategies: [customSemanticStrategy],\n});\n```\n\n### Memory with self-managed Strategies\n\nA self-managed strategy in Amazon Bedrock AgentCore Memory gives you complete control over your memory extraction and consolidation pipelines.\nWith a self-managed strategy, you can build custom memory processing workflows while leveraging Amazon Bedrock AgentCore for storage and retrieval.\n\nFor additional information, you can refer to the [developer guide for self managed strategies](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/memory-self-managed-strategies.html).\n\nCreate the required AWS resources including:\n\n- an S3 bucket in your account where Amazon Bedrock AgentCore will deliver batched event payloads.\n- an SNS topic for job notifications. Use FIFO topics if processing order within sessions is important for your use case.\n\nThe construct will apply the correct permissions to the memory execution role to access these resources.\n\n```typescript fixture=default\n\nconst bucket = new s3.Bucket(this, 'memoryBucket', {\n bucketName: 'test-memory',\n removalPolicy: cdk.RemovalPolicy.DESTROY,\n autoDeleteObjects: true,\n});\n\nconst topic = new sns.Topic(this, 'topic');\n\n// Create a custom semantic memory strategy\nconst selfManagedStrategy = agentcore.MemoryStrategy.usingSelfManaged({\n name: \"selfManagedStrategy\",\n description: \"self managed memory strategy\",\n historicalContextWindowSize: 5,\n invocationConfiguration: {\n topic: topic,\n s3Location: {\n bucketName: bucket.bucketName,\n objectKey: 'memory/',\n }\n },\n triggerConditions: {\n messageBasedTrigger: 1,\n timeBasedTrigger: cdk.Duration.seconds(10),\n tokenBasedTrigger: 100\n }\n});\n\n// Create memory with custom strategy\nconst memory = new agentcore.Memory(this, \"MyMemory\", {\n memoryName: \"my-custom-memory\",\n description: \"Memory with custom strategy\",\n expirationDuration: cdk.Duration.days(90),\n memoryStrategies: [selfManagedStrategy],\n});\n```\n\n### Memory Strategy Methods\n\nYou can add new memory strategies to the memory construct using the `addMemoryStrategy()` method, for instance:\n\n```typescript fixture=default\n// Create memory without initial strategies\nconst memory = new agentcore.Memory(this, \"test-memory\", {\n memoryName: \"test_memory_add_strategy\",\n description: \"A test memory for testing addMemoryStrategy method\",\n expirationDuration: cdk.Duration.days(90),\n});\n\n// Add strategies after instantiation\nmemory.addMemoryStrategy(agentcore.MemoryStrategy.usingBuiltInSummarization());\nmemory.addMemoryStrategy(agentcore.MemoryStrategy.usingBuiltInSemantic());\n```\n"
|
|
8556
|
+
"markdown": "# Amazon Bedrock AgentCore Construct Library\n\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n\n\n> The APIs of higher level constructs in this module are experimental and under active development.\n> They are subject to non-backward compatible changes or removal in any future version. These are\n> not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be\n> announced in the release notes. This means that while you may use them, you may need to update\n> your source code when upgrading to a newer version of this package.\n\n---\n\n<!--END STABILITY BANNER-->\n\n| **Language** | **Package** |\n| :--------------------------------------------------------------------------------------------- | --------------------------------------- |\n|  TypeScript | `@aws-cdk/aws-bedrock-agentcore-alpha` |\n\n[Amazon Bedrock AgentCore](https://aws.amazon.com/bedrock/agentcore/) enables you to deploy and operate highly capable AI agents securely, at scale. It offers infrastructure purpose-built for dynamic agent workloads, powerful tools to enhance agents, and essential controls for real-world deployment. AgentCore services can be used together or independently and work with any framework including CrewAI, LangGraph, LlamaIndex, and Strands Agents, as well as any foundation model in or outside of Amazon Bedrock, giving you ultimate flexibility. AgentCore eliminates the undifferentiated heavy lifting of building specialized agent infrastructure, so you can accelerate agents to production.\n\nThis construct library facilitates the deployment of Bedrock AgentCore primitives, enabling you to create sophisticated AI applications that can interact with your systems and data sources.\n\n> **Note:** Users need to ensure their CDK deployment role has the `iam:CreateServiceLinkedRole` permission for AgentCore service-linked roles.\n\n## Table of contents\n\n- [Amazon Bedrock AgentCore Construct Library](#amazon-bedrock-agentcore-construct-library)\n - [Table of contents](#table-of-contents)\n - [AgentCore Runtime](#agentcore-runtime)\n - [Runtime Endpoints](#runtime-endpoints)\n - [AgentCore Runtime Properties](#agentcore-runtime-properties)\n - [Runtime Endpoint Properties](#runtime-endpoint-properties)\n - [Creating a Runtime](#creating-a-runtime)\n - [Option 1: Use an existing image in ECR](#option-1-use-an-existing-image-in-ecr)\n - [Option 2: Use a local asset](#option-2-use-a-local-asset)\n - [Option 3: Use direct code deployment](#option-3-use-direct-code-deployment)\n - [Option 4: Use an ECR container image URI](#option-4-use-an-ecr-container-image-uri)\n - [Granting Permissions to Invoke Bedrock Models or Inference Profiles](#granting-permissions-to-invoke-bedrock-models-or-inference-profiles)\n - [Runtime Versioning](#runtime-versioning)\n - [Managing Endpoints and Versions](#managing-endpoints-and-versions)\n - [Step 1: Initial Deployment](#step-1-initial-deployment)\n - [Step 2: Creating Custom Endpoints](#step-2-creating-custom-endpoints)\n - [Step 3: Runtime Update Deployment](#step-3-runtime-update-deployment)\n - [Step 4: Testing with Staging Endpoints](#step-4-testing-with-staging-endpoints)\n - [Step 5: Promoting to Production](#step-5-promoting-to-production)\n - [Creating Standalone Runtime Endpoints](#creating-standalone-runtime-endpoints)\n - [Example: Creating an endpoint for an existing runtime](#example-creating-an-endpoint-for-an-existing-runtime)\n - [Runtime Authentication Configuration](#runtime-authentication-configuration)\n - [IAM Authentication (Default)](#iam-authentication-default)\n - [Cognito Authentication](#cognito-authentication)\n - [JWT Authentication](#jwt-authentication)\n - [OAuth Authentication](#oauth-authentication)\n - [Using a Custom IAM Role](#using-a-custom-iam-role)\n - [Runtime Network Configuration](#runtime-network-configuration)\n - [Public Network Mode (Default)](#public-network-mode-default)\n - [VPC Network Mode](#vpc-network-mode)\n - [Managing Security Groups with VPC Configuration](#managing-security-groups-with-vpc-configuration)\n - [Runtime IAM Permissions](#runtime-iam-permissions)\n - [Other configuration](#other-configuration)\n - [Lifecycle configuration](#lifecycle-configuration)\n - [Request header configuration](#request-header-configuration)\n - [Browser](#browser)\n - [Browser Network modes](#browser-network-modes)\n - [Browser Properties](#browser-properties)\n - [Basic Browser Creation](#basic-browser-creation)\n - [Browser with Tags](#browser-with-tags)\n - [Browser with VPC](#browser-with-vpc)\n - [Browser with Recording Configuration](#browser-with-recording-configuration)\n - [Browser with Custom Execution Role](#browser-with-custom-execution-role)\n - [Browser with S3 Recording and Permissions](#browser-with-s3-recording-and-permissions)\n - [Browser with Browser signing](#browser-with-browser-signing)\n - [Browser IAM Permissions](#browser-iam-permissions)\n - [Code Interpreter](#code-interpreter)\n - [Code Interpreter Network Modes](#code-interpreter-network-modes)\n - [Code Interpreter Properties](#code-interpreter-properties)\n - [Basic Code Interpreter Creation](#basic-code-interpreter-creation)\n - [Code Interpreter with VPC](#code-interpreter-with-vpc)\n - [Code Interpreter with Sandbox Network Mode](#code-interpreter-with-sandbox-network-mode)\n - [Code Interpreter with Custom Execution Role](#code-interpreter-with-custom-execution-role)\n - [Code Interpreter IAM Permissions](#code-interpreter-iam-permissions)\n - [Code interpreter with tags](#code-interpreter-with-tags)\n - [Gateway](#gateway)\n - [Gateway Properties](#gateway-properties)\n - [Basic Gateway Creation](#basic-gateway-creation)\n - [Protocol configuration](#protocol-configuration)\n - [Inbound authorization](#inbound-authorization)\n - [Gateway with KMS Encryption](#gateway-with-kms-encryption)\n - [Gateway with Custom Execution Role](#gateway-with-custom-execution-role)\n - [Gateway IAM Permissions](#gateway-iam-permissions)\n - [Gateway Target](#gateway-target)\n - [Gateway Target Properties](#gateway-target-properties)\n - [Targets types](#targets-types)\n - [Understanding Tool Naming](#understanding-tool-naming)\n - [Tools schema For Lambda target](#tools-schema-for-lambda-target)\n - [Api schema For OpenAPI and Smithy target](#api-schema-for-openapi-and-smithy-target)\n - [Outbound auth](#outbound-auth)\n - [Basic Gateway Target Creation](#basic-gateway-target-creation)\n - [Using addTarget methods (Recommended)](#using-addtarget-methods-recommended)\n - [Using static factory methods](#using-static-factory-methods)\n - [Advanced Usage: Direct Configuration for gateway target](#advanced-usage-direct-configuration-for-gateway-target)\n - [Configuration Factory Methods](#configuration-factory-methods)\n - [Example: Lambda Target with Custom Configuration](#example-lambda-target-with-custom-configuration)\n - [Gateway Target IAM Permissions](#gateway-target-iam-permissions)\n - [Memory](#memory)\n - [Memory Properties](#memory-properties)\n - [Basic Memory Creation](#basic-memory-creation)\n - [LTM Memory Extraction Stategies](#ltm-memory-extraction-stategies)\n - [Memory with Built-in Strategies](#memory-with-built-in-strategies)\n - [Memory with custom Strategies](#memory-with-custom-strategies)\n - [Memory with Custom Execution Role](#memory-with-custom-execution-role)\n - [Memory with self-managed Strategies](#memory-with-self-managed-strategies)\n - [Memory Strategy Methods](#memory-strategy-methods)\n\n## AgentCore Runtime\n\nThe AgentCore Runtime construct enables you to deploy containerized agents on Amazon Bedrock AgentCore.\nThis L2 construct simplifies runtime creation just pass your ECR repository name\nand the construct handles all the configuration with sensible defaults.\n\n### Runtime Endpoints\n\nEndpoints provide a stable way to invoke specific versions of your agent runtime, enabling controlled deployments across different environments.\nWhen you create an agent runtime, Amazon Bedrock AgentCore automatically creates a \"DEFAULT\" endpoint which always points to the latest version\nof runtime.\n\nYou can create additional endpoints in two ways:\n\n1. **Using Runtime.addEndpoint()** - Convenient method when creating endpoints alongside the runtime.\n2. **Using RuntimeEndpoint** - Flexible approach for existing runtimes.\n\nFor example, you might keep a \"production\" endpoint on a stable version while testing newer versions\nthrough a \"staging\" endpoint. This separation allows you to test changes thoroughly before promoting them\nto production by simply updating the endpoint to point to the newer version.\n\n### AgentCore Runtime Properties\n\n| Name | Type | Required | Description |\n|------|------|----------|-------------|\n| `runtimeName` | `string` | No | The name of the agent runtime. Valid characters are a-z, A-Z, 0-9, _ (underscore). Must start with a letter and can be up to 48 characters long. If not provided, a unique name will be auto-generated |\n| `agentRuntimeArtifact` | `AgentRuntimeArtifact` | Yes | The artifact configuration for the agent runtime containing the container configuration with ECR URI |\n| `executionRole` | `iam.IRole` | No | The IAM role that provides permissions for the agent runtime. If not provided, a role will be created automatically |\n| `networkConfiguration` | `NetworkConfiguration` | No | Network configuration for the agent runtime. Defaults to `RuntimeNetworkConfiguration.usingPublicNetwork()` |\n| `description` | `string` | No | Optional description for the agent runtime |\n| `protocolConfiguration` | `ProtocolType` | No | Protocol configuration for the agent runtime. Defaults to `ProtocolType.HTTP` |\n| `authorizerConfiguration` | `RuntimeAuthorizerConfiguration` | No | Authorizer configuration for the agent runtime. Use `RuntimeAuthorizerConfiguration` static methods to create configurations for IAM, Cognito, JWT, or OAuth authentication |\n| `environmentVariables` | `{ [key: string]: string }` | No | Environment variables for the agent runtime. Maximum 50 environment variables |\n| `tags` | `{ [key: string]: string }` | No | Tags for the agent runtime. A list of key:value pairs of tags to apply to this Runtime resource |\n| `lifecycleConfiguration` | LifecycleConfiguration | No | The life cycle configuration for the AgentCore Runtime. Defaults to 900 seconds (15 minutes) for idle, 28800 seconds (8 hours) for max life time |\n| `requestHeaderConfiguration` | RequestHeaderConfiguration | No | Configuration for HTTP request headers that will be passed through to the runtime. Defaults to no configuration |\n\n### Runtime Endpoint Properties\n\n| Name | Type | Required | Description |\n|------|------|----------|-------------|\n| `endpointName` | `string` | No | The name of the runtime endpoint. Valid characters are a-z, A-Z, 0-9, _ (underscore). Must start with a letter and can be up to 48 characters long. If not provided, a unique name will be auto-generated |\n| `agentRuntimeId` | `string` | Yes | The Agent Runtime ID for this endpoint |\n| `agentRuntimeVersion` | `string` | Yes | The Agent Runtime version for this endpoint. Must be between 1 and 5 characters long.|\n| `description` | `string` | No | Optional description for the runtime endpoint |\n| `tags` | `{ [key: string]: string }` | No | Tags for the runtime endpoint |\n\n### Creating a Runtime\n\n#### Option 1: Use an existing image in ECR\n\nReference an image available within ECR.\n\n```typescript fixture=default\nconst repository = new ecr.Repository(this, \"TestRepository\", {\n repositoryName: \"test-agent-runtime\",\n});\n\n// The runtime by default create ECR permission only for the repository available in the account the stack is being deployed\nconst agentRuntimeArtifact = agentcore.AgentRuntimeArtifact.fromEcrRepository(repository, \"v1.0.0\");\n\n// Create runtime using the built image\nconst runtime = new agentcore.Runtime(this, \"MyAgentRuntime\", {\n runtimeName: \"myAgent\",\n agentRuntimeArtifact: agentRuntimeArtifact\n});\n```\n\n#### Option 2: Use a local asset\n\nReference a local directory containing a Dockerfile.\nImages are built from a local Docker context directory (with a Dockerfile), uploaded to Amazon Elastic Container Registry (ECR)\nby the CDK toolkit,and can be naturally referenced in your CDK app.\n\n```typescript fixture=default\nconst agentRuntimeArtifact = agentcore.AgentRuntimeArtifact.fromAsset(\n path.join(__dirname, \"path to agent dockerfile directory\")\n);\n\nconst runtime = new agentcore.Runtime(this, \"MyAgentRuntime\", {\n runtimeName: \"myAgent\",\n agentRuntimeArtifact: agentRuntimeArtifact,\n});\n```\n\n#### Option 3: Use direct code deployment\n\nWith the container deployment method, developers create a Dockerfile, build ARM-compatible containers, manage ECR repositories, and upload containers for code changes. This works well where container DevOps pipelines have already been established to automate deployments.\n\nHowever, customers looking for fully managed deployments can benefit from direct code deployment, which can significantly improve developer time and productivity. Direct code deployment provides a secure and scalable path forward for rapid prototyping agent capabilities to deploying production workloads at scale.\n\nWith direct code deployment, developers create a zip archive of code and dependencies, upload to Amazon S3, and configure the bucket in the agent configuration. A ZIP archive containing Linux arm64 dependencies needs to be uploaded to S3 as a pre-requisite to Create Agent Runtime.\n\nFor more information, please refer to the [documentation](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/runtime-get-started-code-deploy.html).\n\n```typescript fixture=default\n// S3 bucket containing the agent core\nconst codeBucket = new s3.Bucket(this, \"AgentCode\", {\n bucketName: \"my-code-bucket\",\n removalPolicy: RemovalPolicy.DESTROY, // For demo purposes\n});\n\n// the bucket above needs to contain the agent code\n\nconst agentRuntimeArtifact = agentcore.AgentRuntimeArtifact.fromS3(\n {\n bucketName: codeBucket.bucketName,\n objectKey: 'deployment_package.zip',\n },\n agentcore.AgentCoreRuntime.PYTHON_3_12,\n ['opentelemetry-instrument', 'main.py']\n);\n\nconst runtimeInstance = new agentcore.Runtime(this, \"MyAgentRuntime\", {\n runtimeName: \"myAgent\",\n agentRuntimeArtifact: agentRuntimeArtifact,\n});\n```\n\nAlternatively, you can use local code assets that will be automatically packaged and uploaded to a CDK-managed S3 bucket:\n\n```typescript fixture=default\nconst agentRuntimeArtifact = agentcore.AgentRuntimeArtifact.fromCodeAsset({\n path: path.join(__dirname, 'path/to/agent/code'),\n runtime: agentcore.AgentCoreRuntime.PYTHON_3_12,\n entrypoint: ['opentelemetry-instrument', 'main.py'],\n});\n\nconst runtimeInstance = new agentcore.Runtime(this, \"MyAgentRuntime\", {\n runtimeName: \"myAgent\",\n agentRuntimeArtifact: agentRuntimeArtifact,\n});\n```\n\n#### Option 4: Use an ECR container image URI\n\nReference an ECR container image directly by its URI. This is useful when you have a pre-existing ECR image URI from CloudFormation parameters or cross-stack references. No IAM permissions are automatically granted - you must ensure the runtime has ECR pull permissions.\n\n```typescript fixture=default\n// Direct URI reference\nconst agentRuntimeArtifact = agentcore.AgentRuntimeArtifact.fromImageUri(\n \"123456789012.dkr.ecr.us-east-1.amazonaws.com/my-agent:v1.0.0\"\n);\n\nconst runtime = new agentcore.Runtime(this, \"MyAgentRuntime\", {\n runtimeName: \"myAgent\",\n agentRuntimeArtifact: agentRuntimeArtifact,\n});\n```\n\nYou can also use CloudFormation parameters or references:\n\n```typescript fixture=default\n// Using a CloudFormation parameter\nconst imageUriParam = new cdk.CfnParameter(this, \"ImageUri\", {\n type: \"String\",\n description: \"Container image URI for the agent runtime\",\n});\n\nconst agentRuntimeArtifact = agentcore.AgentRuntimeArtifact.fromImageUri(\n imageUriParam.valueAsString\n);\n\nconst runtime = new agentcore.Runtime(this, \"MyAgentRuntime\", {\n runtimeName: \"myAgent\",\n agentRuntimeArtifact: agentRuntimeArtifact,\n});\n```\n\n### Granting Permissions to Invoke Bedrock Models or Inference Profiles\n\nTo grant the runtime permissions to invoke Bedrock models or inference profiles:\n\n```typescript fixture=default\n// Note: This example uses @aws-cdk/aws-bedrock-alpha which must be installed separately\ndeclare const runtime: agentcore.Runtime;\n\n// Define the Bedrock Foundation Model\nconst model = bedrock.BedrockFoundationModel.ANTHROPIC_CLAUDE_3_7_SONNET_V1_0;\n\n// Grant the runtime permissions to invoke the model\nmodel.grantInvoke(runtime);\n\n// Create a cross-region inference profile for Claude 3.7 Sonnet\nconst inferenceProfile = bedrock.CrossRegionInferenceProfile.fromConfig({\n geoRegion: bedrock.CrossRegionInferenceProfileRegion.US,\n model: bedrock.BedrockFoundationModel.ANTHROPIC_CLAUDE_3_7_SONNET_V1_0\n});\n\n// Grant the runtime permissions to invoke the inference profile\ninferenceProfile.grantInvoke(runtime);\n```\n\n### Runtime Versioning\n\nAmazon Bedrock AgentCore automatically manages runtime versioning to ensure safe deployments and rollback capabilities.\nWhen you create an agent runtime, AgentCore automatically creates version 1 (V1). Each subsequent update to the\nruntime configuration (such as updating the container image, modifying network settings, or changing protocol configurations)\ncreates a new immutable version. These versions contain complete, self-contained configurations that can be referenced by endpoints,\nallowing you to maintain different versions for different environments or gradually roll out updates.\n\n#### Managing Endpoints and Versions\n\nAmazon Bedrock AgentCore automatically manages runtime versioning to provide safe deployments and rollback capabilities. You can follow\nthe steps below to understand how to use versioning with runtime for controlled deployments across different environments.\n\n##### Step 1: Initial Deployment\n\nWhen you first create an agent runtime, AgentCore automatically creates Version 1 of your runtime. At this point, a DEFAULT endpoint is\nautomatically created that points to Version 1. This DEFAULT endpoint serves as the main access point for your runtime.\n\n```typescript fixture=default\nconst repository = new ecr.Repository(this, \"TestRepository\", {\n repositoryName: \"test-agent-runtime\",\n});\n\nconst runtime = new agentcore.Runtime(this, \"MyAgentRuntime\", {\n runtimeName: \"myAgent\",\n agentRuntimeArtifact: agentcore.AgentRuntimeArtifact.fromEcrRepository(repository, \"v1.0.0\"),\n});\n```\n\n##### Step 2: Creating Custom Endpoints\n\nAfter the initial deployment, you can create additional endpoints for different environments. For example, you might create a \"production\"\nendpoint that explicitly points to Version 1. This allows you to maintain stable access points for specific environments while keeping the\nflexibility to test newer versions elsewhere.\n\n```typescript fixture=default\nconst repository = new ecr.Repository(this, \"TestRepository\", {\n repositoryName: \"test-agent-runtime\",\n});\n\nconst runtime = new agentcore.Runtime(this, \"MyAgentRuntime\", {\n runtimeName: \"myAgent\",\n agentRuntimeArtifact: agentcore.AgentRuntimeArtifact.fromEcrRepository(repository, \"v1.0.0\"),\n});\n\nconst prodEndpoint = runtime.addEndpoint(\"production\", {\n version: \"1\",\n description: \"Stable production endpoint - pinned to v1\"\n});\n```\n\n##### Step 3: Runtime Update Deployment\n\nWhen you update the runtime configuration (such as updating the container image, modifying network settings, or changing protocol\nconfigurations), AgentCore automatically creates a new version (Version 2). Upon this update:\n\n- Version 2 is created automatically with the new configuration\n- The DEFAULT endpoint automatically updates to point to Version 2\n- Any explicitly pinned endpoints (like the production endpoint) remain on their specified versions\n\n```typescript fixture=default\nconst repository = new ecr.Repository(this, \"TestRepository\", {\n repositoryName: \"test-agent-runtime\",\n});\n\nconst agentRuntimeArtifactNew = agentcore.AgentRuntimeArtifact.fromEcrRepository(repository, \"v2.0.0\");\n\nconst runtime = new agentcore.Runtime(this, \"MyAgentRuntime\", {\n runtimeName: \"myAgent\",\n agentRuntimeArtifact: agentRuntimeArtifactNew,\n});\n```\n\n##### Step 4: Testing with Staging Endpoints\n\nOnce Version 2 exists, you can create a staging endpoint that points to the new version. This staging endpoint allows you to test the\nnew version in a controlled environment before promoting it to production. This separation ensures that production traffic continues\nto use the stable version while you validate the new version.\n\n```typescript fixture=default\nconst repository = new ecr.Repository(this, \"TestRepository\", {\n repositoryName: \"test-agent-runtime\",\n});\n\nconst agentRuntimeArtifactNew = agentcore.AgentRuntimeArtifact.fromEcrRepository(repository, \"v2.0.0\");\n\nconst runtime = new agentcore.Runtime(this, \"MyAgentRuntime\", {\n runtimeName: \"myAgent\",\n agentRuntimeArtifact: agentRuntimeArtifactNew,\n});\n\nconst stagingEndpoint = runtime.addEndpoint(\"staging\", {\n version: \"2\",\n description: \"Staging environment for testing new version\"\n});\n```\n\n##### Step 5: Promoting to Production\n\nAfter thoroughly testing the new version through the staging endpoint, you can update the production endpoint to point to Version 2.\nThis controlled promotion process ensures that you can validate changes before they affect production traffic.\n\n```typescript fixture=default\nconst repository = new ecr.Repository(this, \"TestRepository\", {\n repositoryName: \"test-agent-runtime\",\n});\n\nconst agentRuntimeArtifactNew = agentcore.AgentRuntimeArtifact.fromEcrRepository(repository, \"v2.0.0\");\n\nconst runtime = new agentcore.Runtime(this, \"MyAgentRuntime\", {\n runtimeName: \"myAgent\",\n agentRuntimeArtifact: agentRuntimeArtifactNew,\n});\n\nconst prodEndpoint = runtime.addEndpoint(\"production\", {\n version: \"2\", // New version added here\n description: \"Stable production endpoint\"\n});\n```\n\n### Creating Standalone Runtime Endpoints\n\nRuntimeEndpoint can also be created as a standalone resource.\n\n#### Example: Creating an endpoint for an existing runtime\n\n```typescript fixture=default\n// Reference an existing runtime by its ID\nconst existingRuntimeId = \"abc123-runtime-id\"; // The ID of an existing runtime\n\n// Create a standalone endpoint\nconst endpoint = new agentcore.RuntimeEndpoint(this, \"MyEndpoint\", {\n endpointName: \"production\",\n agentRuntimeId: existingRuntimeId,\n agentRuntimeVersion: \"1\", // Specify which version to use\n description: \"Production endpoint for existing runtime\"\n});\n```\n\n### Runtime Authentication Configuration\n\nThe AgentCore Runtime supports multiple authentication modes to secure access to your agent endpoints. Authentication is configured during runtime creation using the `RuntimeAuthorizerConfiguration` class's static factory methods.\n\n#### IAM Authentication (Default)\n\nIAM authentication is the default mode, when no authorizerConfiguration is set then the underlying service use IAM.\n\n#### Cognito Authentication\n\nTo configure AWS Cognito User Pool authentication:\n\n```typescript fixture=default\ndeclare const userPool: cognito.UserPool;\ndeclare const userPoolClient: cognito.UserPoolClient;\ndeclare const anotherUserPoolClient: cognito.UserPoolClient;\n\nconst repository = new ecr.Repository(this, \"TestRepository\", {\n repositoryName: \"test-agent-runtime\",\n});\nconst agentRuntimeArtifact = agentcore.AgentRuntimeArtifact.fromEcrRepository(repository, \"v1.0.0\");\n\n// Optional: Create custom claims for additional validation\nconst customClaims = [\n agentcore.RuntimeCustomClaim.withStringValue('department', 'engineering'),\n agentcore.RuntimeCustomClaim.withStringArrayValue('roles', ['admin'], agentcore.CustomClaimOperator.CONTAINS),\n agentcore.RuntimeCustomClaim.withStringArrayValue('permissions', ['read', 'write'], agentcore.CustomClaimOperator.CONTAINS_ANY),\n];\n\nconst runtime = new agentcore.Runtime(this, \"MyAgentRuntime\", {\n runtimeName: \"myAgent\",\n agentRuntimeArtifact: agentRuntimeArtifact,\n authorizerConfiguration: agentcore.RuntimeAuthorizerConfiguration.usingCognito(\n userPool, // User Pool (required)\n [userPoolClient, anotherUserPoolClient], // User Pool Clients\n [\"audience1\"], // Allowed Audiences (optional)\n [\"read\", \"write\"], // Allowed Scopes (optional)\n customClaims, // Custom claims (optional) - see Custom Claims Validation section\n ),\n});\n```\n\nYou can configure:\n\n- User Pool: The Cognito User Pool that issues JWT tokens\n- User Pool Clients: One or more Cognito User Pool App Clients that are allowed to access the runtime\n- Allowed audiences: Used to validate that the audiences specified in the Cognito token match or are a subset of the audiences specified in the AgentCore Runtime\n- Allowed scopes: Allow access only if the token contains at least one of the required scopes configured here\n- Custom claims: A set of rules to match specific claims in the incoming token against predefined values for validating JWT tokens\n\n#### JWT Authentication\n\nTo configure custom JWT authentication with your own OpenID Connect (OIDC) provider:\n\n```typescript fixture=default\nconst repository = new ecr.Repository(this, \"TestRepository\", {\n repositoryName: \"test-agent-runtime\",\n});\nconst agentRuntimeArtifact = agentcore.AgentRuntimeArtifact.fromEcrRepository(repository, \"v1.0.0\");\n\nconst runtime = new agentcore.Runtime(this, \"MyAgentRuntime\", {\n runtimeName: \"myAgent\",\n agentRuntimeArtifact: agentRuntimeArtifact,\n authorizerConfiguration: agentcore.RuntimeAuthorizerConfiguration.usingJWT(\n \"https://example.com/.well-known/openid-configuration\", // Discovery URL (required)\n [\"client1\", \"client2\"], // Allowed Client IDs (optional)\n [\"audience1\"], // Allowed Audiences (optional)\n [\"read\", \"write\"], // Allowed Scopes (optional)\n // Custom claims (optional) - see Custom Claims Validation section below\n ),\n});\n```\n\nYou can configure:\n\n- Discovery URL: Enter the Discovery URL from your identity provider (e.g. Okta, Cognito, etc.), typically found in that provider's documentation. This allows your Agent or Tool to fetch login, downstream resource token, and verification settings.\n- Allowed audiences: This is used to validate that the audiences specified for the OAuth token matches or are a subset of the audiences specified in the AgentCore Runtime.\n- Allowed clients: This is used to validate that the public identifier of the client, as specified in the authorization token, is allowed to access the AgentCore Runtime.\n- Allowed scopes: Allow access only if the token contains at least one of the required scopes configured here.\n- Custom claims: A set of rules to match specific claims in the incoming token against predefined values for validating JWT tokens.\n\n**Note**: The discovery URL must end with `/.well-known/openid-configuration`.\n\n##### Custom Claims Validation\n\nCustom claims allow you to validate additional fields in JWT tokens beyond the standard audience, client, and scope validations. You can create custom claims using the `RuntimeCustomClaim` class:\n\n```typescript fixture=default\nconst repository = new ecr.Repository(this, \"TestRepository\", {\n repositoryName: \"test-agent-runtime\",\n});\nconst agentRuntimeArtifact = agentcore.AgentRuntimeArtifact.fromEcrRepository(repository, \"v1.0.0\");\n\n// String claim - validates that the claim exactly equals the specified value\n// Uses EQUALS operator automatically\nconst departmentClaim = agentcore.RuntimeCustomClaim.withStringValue('department', 'engineering');\n\n// String array claim with CONTAINS operator (default)\n// Validates that the claim array contains a specific string value\n// IMPORTANT: CONTAINS requires exactly one value in the array parameter\nconst rolesClaim = agentcore.RuntimeCustomClaim.withStringArrayValue('roles', ['admin']);\n\n// String array claim with CONTAINS_ANY operator\n// Validates that the claim array contains at least one of the specified values\n// Use this when you want to check for multiple possible values\nconst permissionsClaim = agentcore.RuntimeCustomClaim.withStringArrayValue(\n 'permissions',\n ['read', 'write'],\n agentcore.CustomClaimOperator.CONTAINS_ANY\n);\n\n// Use custom claims in authorizer configuration\nconst runtime = new agentcore.Runtime(this, \"MyAgentRuntime\", {\n runtimeName: \"myAgent\",\n agentRuntimeArtifact: agentRuntimeArtifact,\n authorizerConfiguration: agentcore.RuntimeAuthorizerConfiguration.usingJWT(\n \"https://example.com/.well-known/openid-configuration\",\n [\"client1\", \"client2\"],\n [\"audience1\"],\n [\"read\", \"write\"],\n [departmentClaim, rolesClaim, permissionsClaim] // Custom claims\n ),\n});\n```\n\n**Custom Claim Rules**:\n\n- **String claims**: Must use the `EQUALS` operator (automatically set). The claim value must exactly match the specified string.\n- **String array claims**: Can use `CONTAINS` (default) or `CONTAINS_ANY` operators:\n - **`CONTAINS`**: Checks if the claim array contains a specific string value. **Requires exactly one value** in the array parameter. For example, `['admin']` will check if the token's claim array contains the string `'admin'`.\n - **`CONTAINS_ANY`**: Checks if the claim array contains at least one of the provided string values. Use this when you want to validate against multiple possible values. For example, `['read', 'write']` will check if the token's claim array contains either `'read'` or `'write'`.\n\n**Example Use Cases**:\n\n- Use `CONTAINS` when you need to verify a user has a specific role: `RuntimeCustomClaim.withStringArrayValue('roles', ['admin'])`\n- Use `CONTAINS_ANY` when you need to verify a user has any of several permissions: `RuntimeCustomClaim.withStringArrayValue('permissions', ['read', 'write'], CustomClaimOperator.CONTAINS_ANY)`\n\n#### OAuth Authentication\n\nTo configure OAuth 2.0 authentication:\n\n```typescript fixture=default\nconst repository = new ecr.Repository(this, \"TestRepository\", {\n repositoryName: \"test-agent-runtime\",\n});\nconst agentRuntimeArtifact = agentcore.AgentRuntimeArtifact.fromEcrRepository(repository, \"v1.0.0\");\n\nconst runtime = new agentcore.Runtime(this, \"MyAgentRuntime\", {\n runtimeName: \"myAgent\",\n agentRuntimeArtifact: agentRuntimeArtifact,\n authorizerConfiguration: agentcore.RuntimeAuthorizerConfiguration.usingOAuth(\n \"https://github.com/.well-known/openid-configuration\", // Discovery URL (required)\n \"oauth_client_123\", // OAuth Client ID (required)\n [\"audience1\"], // Allowed Audiences (optional)\n [\"openid\", \"profile\"], // Allowed Scopes (optional)\n // Custom claims (optional) - see Custom Claims Validation section\n ),\n});\n```\n\n#### Using a Custom IAM Role\n\nInstead of using the auto-created execution role, you can provide your own IAM role with specific permissions:\nThe auto-created role includes all necessary baseline permissions for ECR access, CloudWatch logging, and X-Ray tracing. When providing a custom role, ensure these permissions are included.\n\n### Runtime Network Configuration\n\nThe AgentCore Runtime supports two network modes for deployment:\n\n#### Public Network Mode (Default)\n\nBy default, runtimes are deployed in PUBLIC network mode, which provides internet access suitable for less sensitive or open-use scenarios:\n\n```typescript fixture=default\nconst repository = new ecr.Repository(this, \"TestRepository\", {\n repositoryName: \"test-agent-runtime\",\n});\nconst agentRuntimeArtifact = agentcore.AgentRuntimeArtifact.fromEcrRepository(repository, \"v1.0.0\");\n\n// Explicitly using public network (this is the default)\nconst runtime = new agentcore.Runtime(this, \"MyAgentRuntime\", {\n runtimeName: \"myAgent\",\n agentRuntimeArtifact: agentRuntimeArtifact,\n networkConfiguration: agentcore.RuntimeNetworkConfiguration.usingPublicNetwork(),\n});\n```\n\n#### VPC Network Mode\n\nFor enhanced security and network isolation, you can deploy your runtime within a VPC:\n\n```typescript fixture=default\nconst repository = new ecr.Repository(this, \"TestRepository\", {\n repositoryName: \"test-agent-runtime\",\n});\nconst agentRuntimeArtifact = agentcore.AgentRuntimeArtifact.fromEcrRepository(repository, \"v1.0.0\");\n\n// Create or use an existing VPC\nconst vpc = new ec2.Vpc(this, 'MyVpc', {\n maxAzs: 2,\n});\n\n// Configure runtime with VPC\nconst runtime = new agentcore.Runtime(this, \"MyAgentRuntime\", {\n runtimeName: \"myAgent\",\n agentRuntimeArtifact: agentRuntimeArtifact,\n networkConfiguration: agentcore.RuntimeNetworkConfiguration.usingVpc(this, {\n vpc: vpc,\n vpcSubnets: { subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS },\n // Optionally specify security groups, or one will be created automatically\n // securityGroups: [mySecurityGroup],\n }),\n});\n\n```\n\n#### Managing Security Groups with VPC Configuration\n\nWhen using VPC mode, the Runtime implements `ec2.IConnectable`, allowing you to manage network access using the `connections` property:\n\n```typescript fixture=default\nconst vpc = new ec2.Vpc(this, 'MyVpc', {\n maxAzs: 2,\n});\n\nconst repository = new ecr.Repository(this, \"TestRepository\", {\n repositoryName: \"test-agent-runtime\",\n});\nconst agentRuntimeArtifact = agentcore.AgentRuntimeArtifact.fromEcrRepository(repository, \"v1.0.0\");\n\n// Create runtime with VPC configuration\nconst runtime = new agentcore.Runtime(this, \"MyAgentRuntime\", {\n runtimeName: \"myAgent\",\n agentRuntimeArtifact: agentRuntimeArtifact,\n networkConfiguration: agentcore.RuntimeNetworkConfiguration.usingVpc(this, {\n vpc: vpc,\n vpcSubnets: { subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS },\n }),\n});\n\n// Now you can manage network access using the connections property\n// Allow inbound HTTPS traffic from a specific security group\nconst webServerSecurityGroup = new ec2.SecurityGroup(this, 'WebServerSG', { vpc });\nruntime.connections.allowFrom(webServerSecurityGroup, ec2.Port.tcp(443), 'Allow HTTPS from web servers');\n\n// Allow outbound connections to a database\nconst databaseSecurityGroup = new ec2.SecurityGroup(this, 'DatabaseSG', { vpc });\nruntime.connections.allowTo(databaseSecurityGroup, ec2.Port.tcp(5432), 'Allow PostgreSQL connection');\n\n// Allow outbound HTTPS to anywhere (for external API calls)\nruntime.connections.allowToAnyIpv4(ec2.Port.tcp(443), 'Allow HTTPS outbound');\n```\n\n### Runtime IAM Permissions\n\nThe Runtime construct provides convenient methods for granting IAM permissions to principals that need to invoke the runtime or manage its execution role.\n\n```typescript fixture=default\nconst repository = new ecr.Repository(this, \"TestRepository\", {\n repositoryName: \"test-agent-runtime\",\n});\nconst agentRuntimeArtifact = agentcore.AgentRuntimeArtifact.fromEcrRepository(repository, \"v1.0.0\");\n\n// Create a runtime\nconst runtime = new agentcore.Runtime(this, \"MyRuntime\", {\n runtimeName: \"my_runtime\",\n agentRuntimeArtifact: agentRuntimeArtifact,\n});\n\n// Create a Lambda function that needs to invoke the runtime\nconst invokerFunction = new lambda.Function(this, \"InvokerFunction\", {\n runtime: lambda.Runtime.PYTHON_3_12,\n handler: \"index.handler\",\n code: lambda.Code.fromInline(`\nimport boto3\ndef handler(event, context):\n client = boto3.client('bedrock-agentcore')\n # Invoke the runtime...\n `),\n});\n\n// Grant permission to invoke the runtime directly\nruntime.grantInvokeRuntime(invokerFunction);\n\n// Grant permission to invoke the runtime on behalf of a user\n// (requires X-Amzn-Bedrock-AgentCore-Runtime-User-Id header)\nruntime.grantInvokeRuntimeForUser(invokerFunction);\n\n// Grant both invoke permissions (most common use case)\nruntime.grantInvoke(invokerFunction);\n\n// Grant specific custom permissions to the runtime's execution role\nruntime.grant(['bedrock:InvokeModel'], ['arn:aws:bedrock:*:*:*']);\n\n// Add a policy statement to the runtime's execution role\nruntime.addToRolePolicy(new iam.PolicyStatement({\n actions: ['s3:GetObject'],\n resources: ['arn:aws:s3:::my-bucket/*'],\n}));\n```\n\n### Other configuration\n\n#### Lifecycle configuration\n\nThe LifecycleConfiguration input parameter to CreateAgentRuntime lets you manage the lifecycle of runtime sessions and resources in Amazon Bedrock AgentCore Runtime. This configuration helps optimize resource utilization by automatically cleaning up idle sessions and preventing long-running instances from consuming resources indefinitely.\n\nYou can configure:\n\n- idleRuntimeSessionTimeout: Timeout in seconds for idle runtime sessions. When a session remains idle for this duration, it will trigger termination. Termination can last up to 15 seconds due to logging and other process completion. Default: 900 seconds (15 minutes)\n- maxLifetime: Maximum lifetime for the instance in seconds. Once reached, instances will initialize termination. Termination can last up to 15 seconds due to logging and other process completion. Default: 28800 seconds (8 hours)\n\nFor additional information, please refer to the [documentation](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/runtime-lifecycle-settings.html).\n\n```typescript fixture=default\nconst repository = new ecr.Repository(this, \"TestRepository\", {\n repositoryName: \"test-agent-runtime\",\n});\n\nconst agentRuntimeArtifact = agentcore.AgentRuntimeArtifact.fromEcrRepository(repository, \"v1.0.0\");\n\nnew agentcore.Runtime(this, 'test-runtime', {\n runtimeName: 'test_runtime',\n agentRuntimeArtifact: agentRuntimeArtifact,\n lifecycleConfiguration: {\n idleRuntimeSessionTimeout: Duration.minutes(10),\n maxLifetime: Duration.hours(4),\n },\n});\n```\n\n#### Request header configuration\n\nCustom headers let you pass contextual information from your application directly to your agent code without cluttering the main request payload. This includes authentication tokens like JWT (JSON Web Tokens, which contain user identity and authorization claims) through the Authorization header, allowing your agent to make decisions based on who is calling it. You can also pass custom metadata like user preferences, session identifiers, or trace context using headers prefixed with X-Amzn-Bedrock-AgentCore-Runtime-Custom-, giving your agent access to up to 20 pieces of runtime context that travel alongside each request. This information can be also used in downstream systems like AgentCore Memory that you can namespace based on those characteristics like user_id or aud in claims like line of business.\n\nFor additional information, please refer to the [documentation](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/runtime-header-allowlist.html).\n\n```typescript fixture=default\nconst repository = new ecr.Repository(this, \"TestRepository\", {\n repositoryName: \"test-agent-runtime\",\n});\n\nconst agentRuntimeArtifact = agentcore.AgentRuntimeArtifact.fromEcrRepository(repository, \"v1.0.0\");\n\nnew agentcore.Runtime(this, 'test-runtime', {\n runtimeName: 'test_runtime',\n agentRuntimeArtifact: agentRuntimeArtifact,\n requestHeaderConfiguration: {\n allowlistedHeaders: ['X-Amzn-Bedrock-AgentCore-Runtime-Custom-H1'],\n },\n});\n```\n\n## Browser\n\nThe Amazon Bedrock AgentCore Browser provides a secure, cloud-based browser that enables AI agents to interact with websites. It includes security features such as session isolation, built-in observability through live viewing, CloudTrail logging, and session replay capabilities.\n\nAdditional information about the browser tool can be found in the [official documentation](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/browser-tool.html)\n\n### Browser Network modes\n\nThe Browser construct supports the following network modes:\n\n1. **Public Network Mode** (`BrowserNetworkMode.usingPublicNetwork()`) - Default\n\n - Allows internet access for web browsing and external API calls\n - Suitable for scenarios where agents need to interact with publicly available websites\n - Enables full web browsing capabilities\n - VPC mode is not supported with this option\n\n2. **VPC (Virtual Private Cloud)** (`BrowserNetworkMode.usingVpc()`)\n\n - Select whether to run the browser in a virtual private cloud (VPC).\n - By configuring VPC connectivity, you enable secure access to private resources such as databases, internal APIs, and services within your VPC.\n\n While the VPC itself is mandatory, these are optional:\n - Subnets - if not provided, CDK will select appropriate subnets from the VPC\n - Security Groups - if not provided, CDK will create a default security group\n - Specific subnet selection criteria - you can let CDK choose automatically\n\nFor more information on VPC connectivity for Amazon Bedrock AgentCore Browser, please refer to the [official documentation](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/agentcore-vpc.html).\n\n### Browser Properties\n\n| Name | Type | Required | Description |\n|------|------|----------|-------------|\n| `browserCustomName` | `string` | No | The name of the browser. Must start with a letter and can be up to 48 characters long. Pattern: `[a-zA-Z][a-zA-Z0-9_]{0,47}`. If not provided, a unique name will be auto-generated |\n| `description` | `string` | No | Optional description for the browser. Can have up to 200 characters |\n| `networkConfiguration` | `BrowserNetworkConfiguration` | No | Network configuration for browser. Defaults to PUBLIC network mode |\n| `recordingConfig` | `RecordingConfig` | No | Recording configuration for browser. Defaults to no recording |\n| `executionRole` | `iam.IRole` | No | The IAM role that provides permissions for the browser to access AWS services. A new role will be created if not provided |\n| `tags` | `{ [key: string]: string }` | No | Tags to apply to the browser resource |\n| `browserSigning` | BrowserSigning | No | Browser signing configuration. Defaults to DISABLED |\n\n### Basic Browser Creation\n\n```typescript fixture=default\n// Create a basic browser with public network access\nconst browser = new agentcore.BrowserCustom(this, \"MyBrowser\", {\n browserCustomName: \"my_browser\",\n description: \"A browser for web automation\",\n});\n```\n\n### Browser with Tags\n\n```typescript fixture=default\n// Create a browser with custom tags\nconst browser = new agentcore.BrowserCustom(this, \"MyBrowser\", {\n browserCustomName: \"my_browser\",\n description: \"A browser for web automation with tags\",\n networkConfiguration: agentcore.BrowserNetworkConfiguration.usingPublicNetwork(),\n tags: {\n Environment: \"Production\",\n Team: \"AI/ML\",\n Project: \"AgentCore\",\n },\n});\n```\n\n### Browser with VPC\n\n```typescript fixture=default\nconst browser = new agentcore.BrowserCustom(this, 'BrowserVpcWithRecording', {\n browserCustomName: 'browser_recording',\n networkConfiguration: agentcore.BrowserNetworkConfiguration.usingVpc(this, {\n vpc: new ec2.Vpc(this, 'VPC', { restrictDefaultSecurityGroup: false }),\n }),\n});\n```\n\nBrowser exposes a [connections](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.Connections.html) property. This property returns a connections object, which simplifies the process of defining and managing ingress and egress rules for security groups in your AWS CDK applications. Instead of directly manipulating security group rules, you interact with the Connections object of a construct, which then translates your connectivity requirements into the appropriate security group rules. For instance:\n\n```typescript fixture=default\nconst vpc = new ec2.Vpc(this, 'testVPC');\n\nconst browser = new agentcore.BrowserCustom(this, 'test-browser', {\n browserCustomName: 'test_browser',\n networkConfiguration: agentcore.BrowserNetworkConfiguration.usingVpc(this, {\n vpc: vpc,\n }),\n});\n\nbrowser.connections.addSecurityGroup(new ec2.SecurityGroup(this, 'AdditionalGroup', { vpc }));\n```\n\nSo security groups can be added after the browser construct creation. You can use methods like allowFrom() and allowTo() to grant ingress access to/egress access from a specified peer over a given portRange. The Connections object automatically adds the necessary ingress or egress rules to the security group(s) associated with the calling construct.\n\n### Browser with Recording Configuration\n\n```typescript fixture=default\n// Create an S3 bucket for recordings\nconst recordingBucket = new s3.Bucket(this, \"RecordingBucket\", {\n bucketName: \"my-browser-recordings\",\n removalPolicy: RemovalPolicy.DESTROY, // For demo purposes\n});\n\n// Create browser with recording enabled\nconst browser = new agentcore.BrowserCustom(this, \"MyBrowser\", {\n browserCustomName: \"my_browser\",\n description: \"Browser with recording enabled\",\n networkConfiguration: agentcore.BrowserNetworkConfiguration.usingPublicNetwork(),\n recordingConfig: {\n enabled: true,\n s3Location: {\n bucketName: recordingBucket.bucketName,\n objectKey: \"browser-recordings/\",\n },\n },\n});\n```\n\n### Browser with Custom Execution Role\n\n```typescript fixture=default\n// Create a custom execution role\nconst executionRole = new iam.Role(this, \"BrowserExecutionRole\", {\n assumedBy: new iam.ServicePrincipal(\"bedrock-agentcore.amazonaws.com\"),\n managedPolicies: [\n iam.ManagedPolicy.fromAwsManagedPolicyName(\"AmazonBedrockAgentCoreBrowserExecutionRolePolicy\"),\n ],\n});\n\n// Create browser with custom execution role\nconst browser = new agentcore.BrowserCustom(this, \"MyBrowser\", {\n browserCustomName: \"my_browser\",\n description: \"Browser with custom execution role\",\n networkConfiguration: agentcore.BrowserNetworkConfiguration.usingPublicNetwork(),\n executionRole: executionRole,\n});\n```\n\n### Browser with S3 Recording and Permissions\n\n```typescript fixture=default\n// Create an S3 bucket for recordings\nconst recordingBucket = new s3.Bucket(this, \"RecordingBucket\", {\n bucketName: \"my-browser-recordings\",\n removalPolicy: RemovalPolicy.DESTROY, // For demo purposes\n});\n\n// Create browser with recording enabled\nconst browser = new agentcore.BrowserCustom(this, \"MyBrowser\", {\n browserCustomName: \"my_browser\",\n description: \"Browser with recording enabled\",\n networkConfiguration: agentcore.BrowserNetworkConfiguration.usingPublicNetwork(),\n recordingConfig: {\n enabled: true,\n s3Location: {\n bucketName: recordingBucket.bucketName,\n objectKey: \"browser-recordings/\",\n },\n },\n});\n\n// The browser construct automatically grants S3 permissions to the execution role\n// when recording is enabled, so no additional IAM configuration is needed\n```\n\n### Browser with Browser signing\n\nAI agents need to browse the web on your behalf. When your agent visits a website to gather information, complete a form, or verify data, it encounters the same defenses designed to stop unwanted bots: CAPTCHAs, rate limits, and outright blocks.\n\nAmazon Bedrock AgentCore Browser supports Web Bot Auth. Web Bot Auth is a draft IETF protocol that gives agents verifiable cryptographic identities. When you enable Web Bot Auth in AgentCore Browser, the service issues cryptographic credentials that websites can verify. The agent presents these credentials with every request. The WAF may now additionally check the signature, confirm it matches a trusted directory, and allow the request through if verified bots are allowed by the domain owner and other WAF checks are clear.\n\nTo enable the browser to sign requests using the Web Bot Auth protocol, create a browser tool with the browserSigning configuration:\n\n```typescript fixture=default\nconst browser = new agentcore.BrowserCustom(this, 'test-browser', {\n browserCustomName: 'test_browser',\n browserSigning: agentcore.BrowserSigning.ENABLED\n});\n```\n\n### Browser IAM Permissions\n\nThe Browser construct provides convenient methods for granting IAM permissions:\n\n```typescript fixture=default\n// Create a browser\nconst browser = new agentcore.BrowserCustom(this, \"MyBrowser\", {\n browserCustomName: \"my_browser\",\n description: \"Browser for web automation\",\n networkConfiguration: agentcore.BrowserNetworkConfiguration.usingPublicNetwork(),\n});\n\n// Create a role that needs access to the browser\nconst userRole = new iam.Role(this, \"UserRole\", {\n assumedBy: new iam.ServicePrincipal(\"lambda.amazonaws.com\"),\n});\n\n// Grant read permissions (Get and List actions)\nbrowser.grantRead(userRole);\n\n// Grant use permissions (Start, Update, Stop actions)\nbrowser.grantUse(userRole);\n\n// Grant specific custom permissions\nbrowser.grant(userRole, \"bedrock-agentcore:GetBrowserSession\");\n```\n\n## Code Interpreter\n\nThe Amazon Bedrock AgentCore Code Interpreter enables AI agents to write and execute code securely in sandbox environments, enhancing their accuracy and expanding their ability to solve complex end-to-end tasks. This is critical in Agentic AI applications where the agents may execute arbitrary code that can lead to data compromise or security risks. The AgentCore Code Interpreter tool provides secure code execution, which helps you avoid running into these issues.\n\nFor more information about code interpreter, please refer to the [official documentation](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/code-interpreter-tool.html)\n\n### Code Interpreter Network Modes\n\nThe Code Interpreter construct supports the following network modes:\n\n1. **Public Network Mode** (`CodeInterpreterNetworkMode.usingPublicNetwork()`) - Default\n\n - Allows internet access for package installation and external API calls\n - Suitable for development and testing environments\n - Enables downloading Python packages from PyPI\n\n2. **Sandbox Network Mode** (`CodeInterpreterNetworkMode.usingSandboxNetwork()`)\n - Isolated network environment with no internet access\n - Suitable for production environments with strict security requirements\n - Only allows access to pre-installed packages and local resources\n\n3. **VPC (Virtual Private Cloud)** (`CodeInterpreterNetworkMode.usingVpc()`)\n - Select whether to run the browser in a virtual private cloud (VPC).\n - By configuring VPC connectivity, you enable secure access to private resources such as databases, internal APIs, and services within your VPC.\n\n While the VPC itself is mandatory, these are optional:\n - Subnets - if not provided, CDK will select appropriate subnets from the VPC\n - Security Groups - if not provided, CDK will create a default security group\n - Specific subnet selection criteria - you can let CDK choose automatically\n\nFor more information on VPC connectivity for Amazon Bedrock AgentCore Browser, please refer to the [official documentation](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/agentcore-vpc.html).\n\n### Code Interpreter Properties\n\n| Name | Type | Required | Description |\n|------|------|----------|-------------|\n| `codeInterpreterCustomName` | `string` | No | The name of the code interpreter. Must start with a letter and can be up to 48 characters long. Pattern: `[a-zA-Z][a-zA-Z0-9_]{0,47}`. If not provided, a unique name will be auto-generated |\n| `description` | `string` | No | Optional description for the code interpreter. Can have up to 200 characters |\n| `executionRole` | `iam.IRole` | No | The IAM role that provides permissions for the code interpreter to access AWS services. A new role will be created if not provided |\n| `networkConfiguration` | `CodeInterpreterNetworkConfiguration` | No | Network configuration for code interpreter. Defaults to PUBLIC network mode |\n| `tags` | `{ [key: string]: string }` | No | Tags to apply to the code interpreter resource |\n\n### Basic Code Interpreter Creation\n\n```typescript fixture=default\n// Create a basic code interpreter with public network access\nconst codeInterpreter = new agentcore.CodeInterpreterCustom(this, \"MyCodeInterpreter\", {\n codeInterpreterCustomName: \"my_code_interpreter\",\n description: \"A code interpreter for Python execution\",\n});\n```\n\n### Code Interpreter with VPC\n\n```typescript fixture=default\nconst codeInterpreter = new agentcore.CodeInterpreterCustom(this, \"MyCodeInterpreter\", {\n codeInterpreterCustomName: \"my_sandbox_interpreter\",\n description: \"Code interpreter with isolated network access\",\n networkConfiguration: agentcore.BrowserNetworkConfiguration.usingVpc(this, {\n vpc: new ec2.Vpc(this, 'VPC', { restrictDefaultSecurityGroup: false }),\n }),\n});\n```\n\nCode Interpreter exposes a [connections](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.Connections.html) property. This property returns a connections object, which simplifies the process of defining and managing ingress and egress rules for security groups in your AWS CDK applications. Instead of directly manipulating security group rules, you interact with the Connections object of a construct, which then translates your connectivity requirements into the appropriate security group rules. For instance:\n\n```typescript fixture=default\nconst vpc = new ec2.Vpc(this, 'testVPC');\n\nconst codeInterpreter = new agentcore.CodeInterpreterCustom(this, \"MyCodeInterpreter\", {\n codeInterpreterCustomName: \"my_sandbox_interpreter\",\n description: \"Code interpreter with isolated network access\",\n networkConfiguration: agentcore.BrowserNetworkConfiguration.usingVpc(this, {\n vpc: vpc,\n }),\n});\n\ncodeInterpreter.connections.addSecurityGroup(new ec2.SecurityGroup(this, 'AdditionalGroup', { vpc }));\n```\n\nSo security groups can be added after the browser construct creation. You can use methods like allowFrom() and allowTo() to grant ingress access to/egress access from a specified peer over a given portRange. The Connections object automatically adds the necessary ingress or egress rules to the security group(s) associated with the calling construct.\n\n### Code Interpreter with Sandbox Network Mode\n\n```typescript fixture=default\n// Create code interpreter with sandbox network mode (isolated)\nconst codeInterpreter = new agentcore.CodeInterpreterCustom(this, \"MyCodeInterpreter\", {\n codeInterpreterCustomName: \"my_sandbox_interpreter\",\n description: \"Code interpreter with isolated network access\",\n networkConfiguration: agentcore.CodeInterpreterNetworkConfiguration.usingSandboxNetwork(),\n});\n```\n\n### Code Interpreter with Custom Execution Role\n\n```typescript fixture=default\n// Create a custom execution role\nconst executionRole = new iam.Role(this, \"CodeInterpreterExecutionRole\", {\n assumedBy: new iam.ServicePrincipal(\"bedrock-agentcore.amazonaws.com\"),\n});\n\n// Create code interpreter with custom execution role\nconst codeInterpreter = new agentcore.CodeInterpreterCustom(this, \"MyCodeInterpreter\", {\n codeInterpreterCustomName: \"my_code_interpreter\",\n description: \"Code interpreter with custom execution role\",\n networkConfiguration: agentcore.CodeInterpreterNetworkConfiguration.usingPublicNetwork(),\n executionRole: executionRole,\n});\n```\n\n### Code Interpreter IAM Permissions\n\nThe Code Interpreter construct provides convenient methods for granting IAM permissions:\n\n```typescript fixture=default\n// Create a code interpreter\nconst codeInterpreter = new agentcore.CodeInterpreterCustom(this, \"MyCodeInterpreter\", {\n codeInterpreterCustomName: \"my_code_interpreter\",\n description: \"Code interpreter for Python execution\",\n networkConfiguration: agentcore.CodeInterpreterNetworkConfiguration.usingPublicNetwork(),\n});\n\n// Create a role that needs access to the code interpreter\nconst userRole = new iam.Role(this, \"UserRole\", {\n assumedBy: new iam.ServicePrincipal(\"lambda.amazonaws.com\"),\n});\n\n// Grant read permissions (Get and List actions)\ncodeInterpreter.grantRead(userRole);\n\n// Grant use permissions (Start, Invoke, Stop actions)\ncodeInterpreter.grantUse(userRole);\n\n// Grant specific custom permissions\ncodeInterpreter.grant(userRole, \"bedrock-agentcore:GetCodeInterpreterSession\");\n```\n\n### Code interpreter with tags\n\n```typescript fixture=default\n// Create code interpreter with sandbox network mode (isolated)\nconst codeInterpreter = new agentcore.CodeInterpreterCustom(this, \"MyCodeInterpreter\", {\n codeInterpreterCustomName: \"my_sandbox_interpreter\",\n description: \"Code interpreter with isolated network access\",\n networkConfiguration: agentcore.CodeInterpreterNetworkConfiguration.usingPublicNetwork(),\n tags: {\n Environment: \"Production\",\n Team: \"AI/ML\",\n Project: \"AgentCore\",\n },\n});\n```\n\n## Gateway\n\nThe Gateway construct provides a way to create Amazon Bedrock Agent Core Gateways, which serve as integration points between agents and external services.\n\n### Gateway Properties\n\n| Name | Type | Required | Description |\n|------|------|----------|-------------|\n| `gatewayName` | `string` | No | The name of the gateway. Valid characters are a-z, A-Z, 0-9, _ (underscore) and - (hyphen). Maximum 100 characters. If not provided, a unique name will be auto-generated |\n| `description` | `string` | No | Optional description for the gateway. Maximum 200 characters |\n| `protocolConfiguration` | `IGatewayProtocolConfig` | No | The protocol configuration for the gateway. Defaults to MCP protocol |\n| `authorizerConfiguration` | `IGatewayAuthorizerConfig` | No | The authorizer configuration for the gateway. Defaults to Cognito |\n| `exceptionLevel` | `GatewayExceptionLevel` | No | The verbosity of exception messages. Use DEBUG mode to see granular exception messages |\n| `kmsKey` | `kms.IKey` | No | The AWS KMS key used to encrypt data associated with the gateway |\n| `role` | `iam.IRole` | No | The IAM role that provides permissions for the gateway to access AWS services. A new role will be created if not provided |\n| `tags` | `{ [key: string]: string }` | No | Tags for the gateway. A list of key:value pairs of tags to apply to this Gateway resource |\n\n### Basic Gateway Creation\n\nThe protocol configuration defaults to MCP and the inbound auth configuration uses Cognito (it is automatically created on your behalf).\n\n```typescript fixture=default\n// Create a basic gateway with default MCP protocol and Cognito authorizer\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n});\n```\n\n### Protocol configuration\n\nCurrently MCP is the only protocol available. To configure it, use the `protocol` property with `McpProtocolConfiguration`:\n\n- Instructions: Guidance for how to use the gateway with your tools\n- Semantic search: Smart tool discovery that finds the right tools without typical limits. It improves accuracy by finding relevant tools based on context\n- Supported versions: Which MCP protocol versions the gateway can use\n\n```typescript fixture=default\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n protocolConfiguration: new agentcore.McpProtocolConfiguration({\n instructions: \"Use this gateway to connect to external MCP tools\",\n searchType: agentcore.McpGatewaySearchType.SEMANTIC,\n supportedVersions: [agentcore.MCPProtocolVersion.MCP_2025_03_26],\n }),\n});\n```\n\n### Inbound authorization\n\nBefore you create your gateway, you must set up inbound authorization. Inbound authorization validates users who attempt to access targets through\nyour AgentCore gateway. By default, if not provided, the construct will create and configure Cognito as the default identity provider\n(inbound Auth setup). AgentCore supports the following types of inbound authorization:\n\n**JSON Web Token (JWT)** – A secure and compact token used for authorization. After creating the JWT, you specify it as the authorization\nconfiguration when you create the gateway. You can create a JWT with any of the identity providers at Provider setup and configuration.\n\nYou can configure a custom authorization provider using the `authorizerConfiguration` property with `GatewayAuthorizer.usingCustomJwt()`.\nYou need to specify an OAuth discovery server and client IDs/audiences when you create the gateway. You can specify the following:\n\n- Discovery Url — String that must match the pattern ^.+/\\.well-known/openid-configuration$ for OpenID Connect discovery URLs\n- At least one of the below options depending on the chosen identity provider.\n- Allowed audiences — List of allowed audiences for JWT tokens\n- Allowed clients — List of allowed client identifiers\n- Allowed scopes — List of allowed scopes for JWT tokens\n- Custom claims — Optional custom claim validations (see Custom Claims Validation section below)\n\n```typescript fixture=default\n\n// Optional: Create custom claims (CustomClaimOperator and GatewayCustomClaim from agentcore)\nconst customClaims = [\n agentcore.GatewayCustomClaim.withStringValue('department', 'engineering'),\n agentcore.GatewayCustomClaim.withStringArrayValue('roles', ['admin'], agentcore.CustomClaimOperator.CONTAINS),\n agentcore.GatewayCustomClaim.withStringArrayValue('permissions', ['read', 'write'], agentcore.CustomClaimOperator.CONTAINS_ANY),\n];\n\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n authorizerConfiguration: agentcore.GatewayAuthorizer.usingCustomJwt({\n discoveryUrl: \"https://auth.example.com/.well-known/openid-configuration\",\n allowedAudience: [\"my-app\"],\n allowedClients: [\"my-client-id\"],\n allowedScopes: [\"read\", \"write\"],\n customClaims: customClaims, // Optional custom claims\n }),\n});\n```\n\n**IAM** – Authorizes through the credentials of the AWS IAM identity trying to access the gateway.\n\n```typescript fixture=default\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n authorizerConfiguration: agentcore.GatewayAuthorizer.usingAwsIam(),\n});\n\n// Grant access to a Lambda function's role\nconst lambdaRole = new iam.Role(this, \"LambdaRole\", {\n assumedBy: new iam.ServicePrincipal(\"lambda.amazonaws.com\"),\n});\n\n// The Lambda needs permission to invoke the gateway\ngateway.grantInvoke(lambdaRole);\n```\n\n**Cognito with M2M (Machine-to-Machine) Authentication (Default)** – When no authorizer is specified, the construct automatically creates a Cognito User Pool configured for OAuth 2.0 client credentials flow. This enables machine-to-machine authentication suitable for AI agents and service-to-service communication.\n\nFor more information, see [Setting up Amazon Cognito for Gateway inbound authorization](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/identity-idp-cognito.html).\n\n```typescript fixture=default\n// Create a gateway with default Cognito M2M authorizer\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n});\n\n// Access the Cognito resources for authentication setup\nconst userPool = gateway.userPool;\nconst userPoolClient = gateway.userPoolClient;\n\n// Get the token endpoint URL and OAuth scopes for client credentials flow\nconst tokenEndpointUrl = gateway.tokenEndpointUrl;\nconst oauthScopes = gateway.oauthScopes;\n// oauthScopes are in the format: ['{resourceServerId}/read', '{resourceServerId}/write']\n```\n\n**Using Cognito User Pool Explicitly with Custom Claims** – You can also use an existing Cognito User Pool with custom claims:\n\n```typescript fixture=default\ndeclare const userPool: cognito.UserPool;\ndeclare const userPoolClient: cognito.UserPoolClient;\n\n// Optional: Create custom claims (CustomClaimOperator and GatewayCustomClaim from agentcore)\nconst customClaims = [\n agentcore.GatewayCustomClaim.withStringValue('department', 'engineering'),\n agentcore.GatewayCustomClaim.withStringArrayValue('roles', ['admin'], agentcore.CustomClaimOperator.CONTAINS),\n agentcore.GatewayCustomClaim.withStringArrayValue('permissions', ['read', 'write'], agentcore.CustomClaimOperator.CONTAINS_ANY),\n];\n\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n authorizerConfiguration: agentcore.GatewayAuthorizer.usingCognito({\n userPool: userPool,\n allowedClients: [userPoolClient],\n allowedAudiences: [\"audience1\"],\n allowedScopes: [\"read\", \"write\"],\n customClaims: customClaims, // Optional custom claims\n }),\n});\n```\n\nTo authenticate with the gateway, request an access token using the client credentials flow and use it to call Gateway endpoints. For more information about the token endpoint, see [The token issuer endpoint](https://docs.aws.amazon.com/cognito/latest/developerguide/token-endpoint.html).\n\nThe following is an example of a token request using curl:\n\n```bash\ncurl -X POST \"${TOKEN_ENDPOINT_URL}\" \\\n -H \"Content-Type: application/x-www-form-urlencoded\" \\\n -d \"grant_type=client_credentials\" \\\n -d \"client_id=${USER_POOL_CLIENT_ID}\" \\\n -d \"client_secret=${CLIENT_SECRET}\" \\\n -d \"scope=${OAUTH_SCOPES}\"\n```\n\n### Gateway with KMS Encryption\n\nYou can provide a KMS key, and configure the authorizer as well as the protocol configuration.\n\n```typescript fixture=default\n// Create a KMS key for encryption\nconst encryptionKey = new kms.Key(this, \"GatewayEncryptionKey\", {\n enableKeyRotation: true,\n description: \"KMS key for gateway encryption\",\n});\n\n// Create gateway with KMS encryption\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-encrypted-gateway\",\n description: \"Gateway with KMS encryption\",\n protocolConfiguration: new agentcore.McpProtocolConfiguration({\n instructions: \"Use this gateway to connect to external MCP tools\",\n searchType: agentcore.McpGatewaySearchType.SEMANTIC,\n supportedVersions: [agentcore.MCPProtocolVersion.MCP_2025_03_26],\n }),\n authorizerConfiguration: agentcore.GatewayAuthorizer.usingCustomJwt({\n discoveryUrl: \"https://auth.example.com/.well-known/openid-configuration\",\n allowedAudience: [\"my-app\"],\n allowedClients: [\"my-client-id\"],\n allowedScopes: [\"read\", \"write\"],\n }),\n kmsKey: encryptionKey,\n exceptionLevel: agentcore.GatewayExceptionLevel.DEBUG,\n});\n```\n\n### Gateway with Custom Execution Role\n\n```typescript fixture=default\n// Create a custom execution role\nconst executionRole = new iam.Role(this, \"GatewayExecutionRole\", {\n assumedBy: new iam.ServicePrincipal(\"bedrock-agentcore.amazonaws.com\"),\n managedPolicies: [\n iam.ManagedPolicy.fromAwsManagedPolicyName(\"AmazonBedrockAgentCoreGatewayExecutionRolePolicy\"),\n ],\n});\n\n// Create gateway with custom execution role\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n description: \"Gateway with custom execution role\",\n protocolConfiguration: new agentcore.McpProtocolConfiguration({\n instructions: \"Use this gateway to connect to external MCP tools\",\n searchType: agentcore.McpGatewaySearchType.SEMANTIC,\n supportedVersions: [agentcore.MCPProtocolVersion.MCP_2025_03_26],\n }),\n authorizerConfiguration: agentcore.GatewayAuthorizer.usingCustomJwt({\n discoveryUrl: \"https://auth.example.com/.well-known/openid-configuration\",\n allowedAudience: [\"my-app\"],\n allowedClients: [\"my-client-id\"],\n allowedScopes: [\"read\", \"write\"],\n }),\n role: executionRole,\n});\n```\n\n### Gateway IAM Permissions\n\nThe Gateway construct provides convenient methods for granting IAM permissions:\n\n```typescript fixture=default\n// Create a gateway\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n description: \"Gateway for external service integration\",\n protocolConfiguration: new agentcore.McpProtocolConfiguration({\n instructions: \"Use this gateway to connect to external MCP tools\",\n searchType: agentcore.McpGatewaySearchType.SEMANTIC,\n supportedVersions: [agentcore.MCPProtocolVersion.MCP_2025_03_26],\n }),\n authorizerConfiguration: agentcore.GatewayAuthorizer.usingCustomJwt({\n discoveryUrl: \"https://auth.example.com/.well-known/openid-configuration\",\n allowedAudience: [\"my-app\"],\n allowedClients: [\"my-client-id\"],\n allowedScopes: [\"read\", \"write\"],\n }),\n});\n\n// Create a role that needs access to the gateway\nconst userRole = new iam.Role(this, \"UserRole\", {\n assumedBy: new iam.ServicePrincipal(\"lambda.amazonaws.com\"),\n});\n\n// Grant read permissions (Get and List actions)\ngateway.grantRead(userRole);\n\n// Grant manage permissions (Create, Update, Delete actions)\ngateway.grantManage(userRole);\n\n// Grant specific custom permissions\ngateway.grant(userRole, \"bedrock-agentcore:GetGateway\");\n```\n\n## Gateway Target\n\nAfter Creating gateways, you can add targets which define the tools that your gateway will host. Gateway supports multiple target\ntypes including Lambda functions and API specifications (either OpenAPI schemas or Smithy models). Gateway allows you to attach multiple\ntargets to a Gateway and you can change the targets / tools attached to a gateway at any point. Each target can have its own\ncredential provider attached enabling you to securely access targets whether they need IAM, API Key, or OAuth credentials.\n\n### Gateway Target Properties\n\n| Name | Type | Required | Description |\n|------|------|----------|-------------|\n| `gatewayTargetName` | `string` | No | The name of the gateway target. Valid characters are a-z, A-Z, 0-9, _ (underscore) and - (hyphen). If not provided, a unique name will be auto-generated |\n| `description` | `string` | No | Optional description for the gateway target. Maximum 200 characters |\n| `gateway` | `IGateway` | Yes | The gateway this target belongs to |\n| `targetConfiguration` | `ITargetConfiguration` | Yes | The target configuration (Lambda, OpenAPI, Smithy, or API Gateway). **Note:** Users typically don't create this directly. When using convenience methods like `GatewayTarget.forLambda()`, `GatewayTarget.forOpenApi()`, `GatewayTarget.forSmithy()`, `GatewayTarget.forApiGateway()`, `GatewayTarget.forMcpServer()` or the gateway's `addLambdaTarget()`, `addOpenApiTarget()`, `addSmithyTarget()`, `addApiGatewayTarget()`, `addMcpServerTarget()` methods, this configuration is created internally for you. Only needed when using the GatewayTarget constructor directly for [advanced scenarios](#advanced-usage-direct-configuration-for-gateway-target). |\n| `credentialProviderConfigurations` | `IGatewayCredentialProvider[]` | No | Credential providers for authentication. Defaults to `[GatewayCredentialProvider.fromIamRole()]`. Use `GatewayCredentialProvider.fromApiKeyIdentityArn()`, `GatewayCredentialProvider.fromOauthIdentityArn()`, or `GatewayCredentialProvider.fromIamRole()` |\n| `validateOpenApiSchema` | `boolean` | No | (OpenAPI targets only) Whether to validate the OpenAPI schema at synthesis time. Defaults to `true`. Only applies to inline and local asset schemas. For more information refer here <https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway-schema-openapi.html> |\n\nThis approach gives you full control over the configuration but is typically not necessary for most use cases.\n\n### Targets types\n\nYou can create the following targets types:\n\n**Lambda Target**: Lambda targets allow you to connect your gateway to AWS Lambda functions that implement your tools. This is useful\nwhen you want to execute custom code in response to tool invocations.\n\n- Supports GATEWAY_IAM_ROLE credential provider only\n- Ideal for custom serverless function integration\n- Need tool schema (tool schema is a blueprint that describes the functions your Lambda provides to AI agents).\n The construct provide [3 ways to upload a tool schema to Lambda target](#tools-schema-for-lambda-target)\n- When using the default IAM authentication (no `credentialProviderConfigurations` specified),\n the construct automatocally grants the gateway role permission to invoke your Lambda function (`lambda:InvokeFunction`).\n\n**OpenAPI Schema Target** : OpenAPI widely used standard for describing RESTful APIs. Gateway supports OpenAPI 3.0\nspecifications for defining API targets. It connects to REST APIs using OpenAPI specifications\n\n- Supports OAUTH and API_KEY credential providers (Do not support IAM, you must provide `credentialProviderConfigurations`)\n- Ideal for integrating with external REST services\n- Need API schema. The construct provide [3 ways to upload a API schema to OpenAPI target](#api-schema-for-openapi-and-smithy-target)\n\n**Smithy Model Target** : Smithy is a language for defining services and software development kits (SDKs). Smithy models provide\na more structured approach to defining APIs compared to OpenAPI, and are particularly useful for connecting to AWS services.\nAgentCore Gateway supports built-in AWS service models only. It connects to services using Smithy model definitions\n\n- Supports OAUTH and API_KEY credential providers\n- Ideal for AWS service integrations\n- Need API schema. The construct provide 3 ways to upload a API schema to Smity target\n- When using the default IAM authentication (no `credentialProviderConfigurations` specified), The construct only\n grants permission to read the Smithy schema file from S3. You MUST manually grant permissions for the gateway\n role to invoke the actual Smithy API endpoints\n\n> Note: For Smithy model targets that access AWS services, your Gateway's execution role needs permissions to access those services.\nFor example, for a DynamoDB target, your execution role needs permissions to perform DynamoDB operations.\nThis is not managed by the construct due to the large number of options. Please refer to\n[Smithy Model Permission](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway-prerequisites-permissions.html) for example.\n\n**MCP Server Target**: Model Context Protocol (MCP) servers provide external tools, data access, and custom functions for AI agents.\nMCP servers enable agents to interact with external systems and services through a standardized protocol. Gateway automatically\ndiscovers and indexes available tools from MCP servers through synchronization.\n\n**Key Features:**\n\n- Requires explicit authentication configuration (OAuth2 recommended, empty array for NoAuth)\n- Ideal for connecting to external MCP-compliant servers\n- The endpoint must use HTTPS protocol\n- Supported MCP protocol versions: 2025-06-18, 2025-03-26\n- Automatic tool discovery through synchronization\n\n**Synchronization Behavior:**\n\nMCP Server targets require synchronization to discover and index available tools:\n\n- **Implicit Synchronization (Automatic)**: Tool discovery happens automatically during:\n - Target creation (`CreateGatewayTarget`)\n - Target updates (`UpdateGatewayTarget`)\n - The Gateway calls the MCP server's `tools/list` endpoint and indexes tools without user intervention\n\n- **Explicit Synchronization (Manual)**: When the MCP server's tools change independently (new tools added, schemas modified, tools removed):\n - The Gateway's tool catalog becomes stale\n - Call the `SynchronizeGatewayTargets` API to refresh the catalog\n - Use the `grantSync()` method to grant permissions to Lambda functions, CI/CD pipelines, or scheduled tasks that will trigger synchronization\n\n**Authentication & Permissions:**\n\nWhen using OAuth2, the Gateway service role automatically receives:\n\n- `bedrock-agentcore:GetWorkloadAccessToken`\n- `bedrock-agentcore:GetResourceOauth2Token`\n- `secretsmanager:GetSecretValue`\n- KMS decrypt (if secrets are encrypted)\n\nFor explicit synchronization, use `grantSync()` to grant `bedrock-agentcore:SynchronizeGatewayTargets` permission to your operator roles.\n\n> For more information, refer to the [MCP Server Target documentation](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway-target-MCPservers.html).\n\n### Understanding Tool Naming\n\nWhen tools are exposed through gateway targets, AgentCore Gateway prefixes each tool name with the target name to ensure uniqueness across multiple targets. This is important to understand when building your application logic.\n\n**Naming Pattern:**\n\n**Example:**\n\nIf your target is named `my-lambda-target` and provides a tool called `calculate_price`, agents will discover and invoke it as `my-lambda-target__calculate_price`.\n\n**Important Considerations:**\n\n- **For Lambda Targets**: Your Lambda handler must strip the target name prefix before processing the tool request. The full tool name (with prefix) is sent in the event.\n- **For MCP Server Targets**: The MCP server receives tool calls with the prefixed name from the gateway.\n- **For OpenAPI/Smithy Targets**: The gateway handles the prefix automatically when mapping to API operations based on the `operationId`.\n\nThis naming convention ensures that:\n\n- Tools from different targets don't collide even if they have the same name\n- Agents can access tools from multiple targets through a single gateway\n- Tool names remain unique in the unified tool catalog\n\nFor more details, see the [Gateway Tool Naming Documentation](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway-tool-naming.html).\n\n### Tools schema For Lambda target\n\nThe lambda target need tools schema to understand the fuunction lambda provides. You can upload the tool schema by following 3 ways:\n\n- From a local asset file\n\n```typescript\nconst toolSchema = agentcore.ToolSchema.fromLocalAsset(\n path.join(__dirname, \"schemas\", \"my-tool-schema.json\")\n );\n```\n\n- From an existing S3 file:\n\n```typescript\n\nconst toolSchema = agentcore.ToolSchema.fromS3File(\n s3.Bucket.fromBucketName(this, \"SchemasBucket\", \"my-schemas-bucket\"),\n \"tools/complex-tool-schema.json\",\n \"123456789012\"\n );\n```\n\n- From Inline:\n\n```typescript\nconst toolSchema = agentcore.ToolSchema.fromInline([{\n name: \"hello_world\",\n description: \"A simple hello world tool\",\n inputSchema: {\n type: agentcore.SchemaDefinitionType.OBJECT,\n properties: {\n name: {\n type: agentcore.SchemaDefinitionType.STRING,\n description: \"The name to greet\",\n },\n },\n required: [\"name\"],\n },\n }]);\n\n```\n\n### Api schema For OpenAPI and Smithy target\n\nThe OpenAPI and Smithy target need API Schema. The Gateway construct provide three ways to upload API schema for your target:\n\n- From a local asset file (requires binding to scope):\n\n```typescript fixture=default\n// When using ApiSchema.fromLocalAsset, you must bind the schema to a scope\nconst schema = agentcore.ApiSchema.fromLocalAsset(path.join(__dirname, \"mySchema.yml\"));\n\nschema.bind(this);\n```\n\n- From an inline schema:\n\n```typescript fixture=default\nconst inlineSchema = agentcore.ApiSchema.fromInline(`\nopenapi: 3.0.3\ninfo:\n title: Library API\n version: 1.0.0\npaths:\n /search:\n get:\n summary: Search for books\n operationId: searchBooks\n parameters:\n - name: query\n in: query\n required: true\n schema:\n type: string\n`);\n```\n\n- From an existing S3 file:\n\n```typescript fixture=default\nconst bucket = s3.Bucket.fromBucketName(this, \"ExistingBucket\", \"my-schema-bucket\");\nconst s3Schema = agentcore.ApiSchema.fromS3File(bucket, \"schemas/action-group.yaml\");\n```\n\n### Outbound auth\n\nOutbound authorization lets Amazon Bedrock AgentCore gateways securely access gateway targets on behalf of users authenticated\nand authorized during Inbound Auth.\n\nAgentCore Gateway supports the following types of outbound authorization:\n\n**IAM-based outbound authorization** – The gateway uses its execution role to authenticate with AWS services. This is the default\n and most common approach for Lambda targets and AWS service integrations.\n\n**2-legged OAuth (OAuth 2LO)** – Use OAuth 2.0 two-legged flow (2LO) for targets that require OAuth authentication.\nThe gateway authenticates on its own behalf, not on behalf of a user.\n\n**API key** – Use the AgentCore service/AWS console to generate an API key to authenticate access to the gateway target.\n\n**Note > You need to set up the outbound identity before you can create a gateway target.\n\n### Basic Gateway Target Creation\n\nYou can create targets in two ways: using the static factory methods on `GatewayTarget` or using the convenient `addTarget` methods on the gateway instance.\n\n#### Using addTarget methods (Recommended)\n\nThis approach is recommended for most use cases, especially when creating targets alongside the gateway. It provides a cleaner, more fluent API by eliminating the need to explicitly pass the gateway reference.\n\nBelow are the examples on how you can create Lambda, Smithy, OpenAPI, MCP Server, and API Gateway targets using `addTarget` methods.\n\n```typescript fixture=default\n// Create a gateway first\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n});\n\nconst lambdaFunction = new lambda.Function(this, \"MyFunction\", {\n runtime: lambda.Runtime.NODEJS_22_X,\n handler: \"index.handler\",\n code: lambda.Code.fromInline(`\n exports.handler = async (event) => {\n return {\n statusCode: 200,\n body: JSON.stringify({ message: 'Hello from Lambda!' })\n };\n };\n `),\n});\n\nconst lambdaTarget = gateway.addLambdaTarget(\"MyLambdaTarget\", {\n gatewayTargetName: \"my-lambda-target\",\n description: \"Lambda function target\",\n lambdaFunction: lambdaFunction,\n toolSchema: agentcore.ToolSchema.fromInline([\n {\n name: \"hello_world\",\n description: \"A simple hello world tool\",\n inputSchema: {\n type: agentcore.SchemaDefinitionType.OBJECT,\n properties: {\n name: {\n type: agentcore.SchemaDefinitionType.STRING,\n description: \"The name to greet\",\n },\n },\n required: [\"name\"],\n },\n },\n ]),\n});\n```\n\n- OpenAPI Target\n\n``` typescript\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n});\n\n// These ARNs are returned when creating the API key credential provider via Console or API\nconst apiKeyProviderArn = \"arn:aws:bedrock-agentcore:us-east-1:123456789012:token-vault/abc123/apikeycredentialprovider/my-apikey\"\nconst apiKeySecretArn = \"arn:aws:secretsmanager:us-east-1:123456789012:secret:my-apikey-secret-abc123\"\n\nconst bucket = s3.Bucket.fromBucketName(this, \"ExistingBucket\", \"my-schema-bucket\");\nconst s3mySchema = agentcore.ApiSchema.fromS3File(bucket, \"schemas/myschema.yaml\");\n\n// Add an OpenAPI target directly to the gateway\nconst target = gateway.addOpenApiTarget(\"MyTarget\", {\n gatewayTargetName: \"my-api-target\",\n description: \"Target for external API integration\",\n apiSchema: s3mySchema,\n credentialProviderConfigurations: [\n agentcore.GatewayCredentialProvider.fromApiKeyIdentityArn({\n providerArn: apiKeyProviderArn,\n secretArn: apiKeySecretArn,\n credentialLocation: agentcore.ApiKeyCredentialLocation.header({\n credentialParameterName: \"X-API-Key\",\n }),\n }),\n ],\n});\n\n// This make sure your s3 bucket is available before target\ntarget.node.addDependency(bucket);\n```\n\n- Smithy Target\n\n```typescript fixture=default\n\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n});\n\nconst smithySchema = agentcore.ApiSchema.fromLocalAsset(\n path.join(__dirname, \"models\", \"smithy-model.json\")\n);\nsmithySchema.bind(this);\n\nconst smithyTarget = gateway.addSmithyTarget(\"MySmithyTarget\", {\n gatewayTargetName: \"my-smithy-target\",\n description: \"Smithy model target\",\n smithyModel: smithySchema,\n\n});\n```\n\n- MCP Server Target\n\n```typescript fixture=default\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n});\n\n// OAuth2 authentication (recommended)\n// Note: Create the OAuth provider using AWS console or Identity L2 construct when available\nconst oauthProviderArn = \"arn:aws:bedrock-agentcore:us-east-1:123456789012:token-vault/abc123/oauth2credentialprovider/my-oauth\";\nconst oauthSecretArn = \"arn:aws:secretsmanager:us-east-1:123456789012:secret:my-oauth-secret-abc123\";\n\n// Add an MCP server target directly to the gateway\nconst mcpTarget = gateway.addMcpServerTarget(\"MyMcpServer\", {\n gatewayTargetName: \"my-mcp-server\",\n description: \"External MCP server integration\",\n endpoint: \"https://my-mcp-server.example.com\",\n credentialProviderConfigurations: [\n agentcore.GatewayCredentialProvider.fromOauthIdentityArn({\n providerArn: oauthProviderArn,\n secretArn: oauthSecretArn,\n scopes:['mcp-runtime-server/invoke']\n }),\n ],\n});\n\n// Grant sync permission to a Lambda function that will trigger synchronization\nconst syncFunction = new lambda.Function(this, \"SyncFunction\", {\n runtime: lambda.Runtime.PYTHON_3_12,\n handler: \"index.handler\",\n code: lambda.Code.fromInline(`\nimport boto3\n\ndef handler(event, context):\n client = boto3.client('bedrock-agentcore')\n response = client.synchronize_gateway_targets(\n gatewayIdentifier=event['gatewayId'],\n targetIds=[event['targetId']]\n )\n return response\n `),\n});\n\nmcpTarget.grantSync(syncFunction);\n```\n\n- API Gateway Target\n\n```typescript fixture=default\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n});\n\nconst api = new apigateway.RestApi(this, 'MyApi', {\n restApiName: 'my-api',\n});\n\n// Uses IAM authorization for outbound auth by default\nconst apiGatewayTarget = gateway.addApiGatewayTarget(\"MyApiGatewayTarget\", {\n restApi: api,\n apiGatewayToolConfiguration: {\n toolFilters: [\n {\n filterPath: \"/pets/*\",\n methods: [agentcore.ApiGatewayHttpMethod.GET],\n },\n ],\n },\n});\n```\n\n#### Using static factory methods\n\nUse static factory methods when working with imported gateways, creating targets in different constructs/stacks, or when you need more explicit control over the construct tree hierarchy.\n\nCreate Gateway target using static convenience methods.\n\n- Lambda Target\n\n```typescript fixture=default\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n});\n\nconst lambdaFunction = new lambda.Function(this, \"MyFunction\", {\n runtime: lambda.Runtime.NODEJS_22_X,\n handler: \"index.handler\",\n code: lambda.Code.fromInline(`\n exports.handler = async (event) => {\n return {\n statusCode: 200,\n body: JSON.stringify({ message: 'Hello from Lambda!' })\n };\n };\n `),\n});\n\n// Create a gateway target with Lambda and tool schema\nconst target = agentcore.GatewayTarget.forLambda(this, \"MyLambdaTarget\", {\n gatewayTargetName: \"my-lambda-target\",\n description: \"Target for Lambda function integration\",\n gateway: gateway,\n lambdaFunction: lambdaFunction,\n toolSchema: agentcore.ToolSchema.fromLocalAsset(\n path.join(__dirname, \"schemas\", \"my-tool-schema.json\")\n ),\n});\n```\n\n- OpenAPI Target\n\n```typescript fixture=default\n\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n});\n\n// outbound auth (Use AWS console to create it, Once Identity L2 construct is available you can use it to create identity)\nconst apiKeyIdentityArn = \"arn:aws:bedrock-agentcore:us-east-1:123456789012:token-vault/abc123/apikeycredentialprovider/my-apikey\"\nconst apiKeySecretArn = \"arn:aws:secretsmanager:us-east-1:123456789012:secret:my-apikey-secret-abc123\"\n\nconst opneapiSchema = agentcore.ApiSchema.fromLocalAsset(path.join(__dirname, \"mySchema.yml\"));\nopneapiSchema.bind(this);\n\n// Create a gateway target with OpenAPI Schema\nconst target = agentcore.GatewayTarget.forOpenApi(this, \"MyTarget\", {\n gatewayTargetName: \"my-api-target\",\n description: \"Target for external API integration\",\n gateway: gateway, // Note: you need to pass the gateway reference\n apiSchema: opneapiSchema,\n credentialProviderConfigurations: [\n agentcore.GatewayCredentialProvider.fromApiKeyIdentityArn({\n providerArn: apiKeyIdentityArn,\n secretArn: apiKeySecretArn\n }),\n ],\n});\n\n```\n\n- Smithy Target\n\n```typescript fixture=default\n\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n});\n\nconst smithySchema = agentcore.ApiSchema.fromLocalAsset(\n path.join(__dirname, \"models\", \"smithy-model.json\")\n);\nsmithySchema.bind(this);\n\n// Create a gateway target with Smithy Model and OAuth\nconst target = agentcore.GatewayTarget.forSmithy(this, \"MySmithyTarget\", {\n gatewayTargetName: \"my-smithy-target\",\n description: \"Target for Smithy model integration\",\n gateway: gateway,\n smithyModel: smithySchema,\n});\n\n```\n\n- MCP Server Target\n\n```typescript fixture=default\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n});\n\n// OAuth2 authentication (recommended)\n// Note: Create the OAuth provider using AWS console or Identity L2 construct when available\nconst oauthProviderArn = \"arn:aws:bedrock-agentcore:us-east-1:123456789012:token-vault/abc123/oauth2credentialprovider/my-oauth\";\nconst oauthSecretArn = \"arn:aws:secretsmanager:us-east-1:123456789012:secret:my-oauth-secret-abc123\";\n\n// Create a gateway target with MCP Server\nconst mcpTarget = agentcore.GatewayTarget.forMcpServer(this, \"MyMcpServer\", {\n gatewayTargetName: \"my-mcp-server\",\n description: \"External MCP server integration\",\n gateway: gateway,\n endpoint: \"https://my-mcp-server.example.com\",\n credentialProviderConfigurations: [\n agentcore.GatewayCredentialProvider.fromOauthIdentityArn({\n providerArn: oauthProviderArn,\n secretArn: oauthSecretArn,\n scopes:['mcp-runtime-server/invoke']\n }),\n ],\n});\n```\n\n- API Gateway Target\n\n```typescript fixture=default\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n});\n\nconst api = new apigateway.RestApi(this, 'MyApi', {\n restApiName: 'my-api',\n});\n\n// Create a gateway target using the static factory method\nconst apiGatewayTarget = agentcore.GatewayTarget.forApiGateway(this, \"MyApiGatewayTarget\", {\n gatewayTargetName: \"my-api-gateway-target\",\n description: \"Target for API Gateway REST API integration\",\n gateway: gateway,\n restApi: api,\n apiGatewayToolConfiguration: {\n toolFilters: [\n {\n filterPath: \"/pets/*\",\n methods: [agentcore.ApiGatewayHttpMethod.GET, agentcore.ApiGatewayHttpMethod.POST],\n },\n ],\n },\n metadataConfiguration: {\n allowedRequestHeaders: [\"X-User-Id\"],\n allowedQueryParameters: [\"limit\"],\n },\n});\n```\n\n### Advanced Usage: Direct Configuration for gateway target\n\nFor advanced use cases where you need full control over the target configuration, you can create configurations manually using the static factory methods and use the GatewayTarget constructor directly.\n\n#### Configuration Factory Methods\n\nEach target type has a corresponding configuration class with a static `create()` method:\n\n- **Lambda**: `LambdaTargetConfiguration.create(lambdaFunction, toolSchema)`\n- **OpenAPI**: `OpenApiTargetConfiguration.create(apiSchema, validateSchema?)`\n- **Smithy**: `SmithyTargetConfiguration.create(smithyModel)`\n- **API Gateway**: `ApiGatewayTargetConfiguration.create(props)`\n\n#### Example: Lambda Target with Custom Configuration\n\n```typescript\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n});\n\nconst myLambdaFunction = new lambda.Function(this, \"MyFunction\", {\n runtime: lambda.Runtime.NODEJS_22_X,\n handler: \"index.handler\",\n code: lambda.Code.fromInline(`\n exports.handler = async (event) => ({ statusCode: 200 });\n `),\n});\n\nconst myToolSchema = agentcore.ToolSchema.fromInline([{\n name: \"my_tool\",\n description: \"My custom tool\",\n inputSchema: {\n type: agentcore.SchemaDefinitionType.OBJECT,\n properties: {},\n },\n}]);\n\n// Create a custom Lambda configuration\nconst customConfig = agentcore.LambdaTargetConfiguration.create(\n myLambdaFunction,\n myToolSchema\n);\n\n// Use the GatewayTarget constructor directly\nconst target = new agentcore.GatewayTarget(this, \"AdvancedTarget\", {\n gateway: gateway,\n gatewayTargetName: \"advanced-target\",\n targetConfiguration: customConfig, // Manually created configuration\n credentialProviderConfigurations: [\n agentcore.GatewayCredentialProvider.fromIamRole()\n ]\n});\n```\n\nThis approach gives you full control over the configuration but is typically not necessary for most use cases. The convenience methods (`GatewayTarget.forLambda()`, `GatewayTarget.forOpenApi()`, `GatewayTarget.forSmithy()`, `GatewayTarget.forApiGateway()`) handle all of this internally.\n\n### Gateway Interceptors\n\nGateway interceptors allow you to run custom code during each gateway invocation to implement fine-grained access control, transform requests and responses, or implement custom authorization logic. A gateway can have at most one REQUEST interceptor and one RESPONSE interceptor.\n\n**Interceptor Types:**\n\n- **REQUEST interceptors**: Execute before the gateway calls the target. Useful for request validation, transformation, or custom authorization\n- **RESPONSE interceptors**: Execute after the target responds but before the gateway sends the response back. Useful for response transformation, filtering, or adding custom headers\n\n**Security Best Practices:**\n\n1. Keep `passRequestHeaders` disabled unless absolutely necessary (default: false)\n2. Implement idempotent Lambda functions (gateway may retry on failures)\n3. Restrict gateway execution role to specific Lambda functions\n4. Avoid logging sensitive information in your interceptor\n\nFor more information, see the [Gateway Interceptors documentation](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway-interceptors.html).\n\n#### Adding Interceptors via Constructor\n\n```typescript fixture=default\n// Create Lambda functions for interceptors\nconst requestInterceptorFn = new lambda.Function(this, \"RequestInterceptor\", {\n runtime: lambda.Runtime.PYTHON_3_12,\n handler: \"index.handler\",\n code: lambda.Code.fromInline(`\ndef handler(event, context):\n # Validate and transform request\n return {\n \"interceptorOutputVersion\": \"1.0\",\n \"mcp\": {\n \"transformedGatewayRequest\": event[\"mcp\"][\"gatewayRequest\"]\n }\n }\n `),\n});\n\nconst responseInterceptorFn = new lambda.Function(this, \"ResponseInterceptor\", {\n runtime: lambda.Runtime.PYTHON_3_12,\n handler: \"index.handler\",\n code: lambda.Code.fromInline(`\ndef handler(event, context):\n # Filter or transform response\n return {\n \"interceptorOutputVersion\": \"1.0\",\n \"mcp\": {\n \"transformedGatewayResponse\": event[\"mcp\"][\"gatewayResponse\"]\n }\n }\n `),\n});\n\n// Create gateway with interceptors\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n interceptorConfigurations: [\n agentcore.LambdaInterceptor.forRequest(requestInterceptorFn, {\n passRequestHeaders: true // Only if you need to inspect headers\n }),\n agentcore.LambdaInterceptor.forResponse(responseInterceptorFn)\n ]\n});\n```\n\n**Automatic Permission Granting:**\n\nWhen you add a Lambda interceptor to a gateway (either via constructor or `addInterceptor()`), the gateway's IAM role automatically receives `lambda:InvokeFunction` permission on the Lambda function. This permission grant happens internally during the bind process - you do not need to manually configure these IAM permissions.\n\n#### Adding Interceptors Dynamically\n\n```typescript fixture=default\n// Create a gateway first\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n});\n\n// Create Lambda functions for interceptors\nconst requestInterceptorFn = new lambda.Function(this, \"RequestInterceptor\", {\n runtime: lambda.Runtime.PYTHON_3_12,\n handler: \"index.handler\",\n code: lambda.Code.fromInline(`\ndef handler(event, context):\n # Custom request validation logic\n return {\n \"interceptorOutputVersion\": \"1.0\",\n \"mcp\": {\n \"transformedGatewayRequest\": event[\"mcp\"][\"gatewayRequest\"]\n }\n }\n `),\n});\n\nconst responseInterceptorFn = new lambda.Function(this, \"ResponseInterceptor\", {\n runtime: lambda.Runtime.PYTHON_3_12,\n handler: \"index.handler\",\n code: lambda.Code.fromInline(`\ndef handler(event, context):\n # Filter sensitive data from response\n return {\n \"interceptorOutputVersion\": \"1.0\",\n \"mcp\": {\n \"transformedGatewayResponse\": event[\"mcp\"][\"gatewayResponse\"]\n }\n }\n `),\n});\n\ngateway.addInterceptor(\n agentcore.LambdaInterceptor.forRequest(requestInterceptorFn, {\n passRequestHeaders: false // Default, headers not passed for security\n })\n);\n\ngateway.addInterceptor(\n agentcore.LambdaInterceptor.forResponse(responseInterceptorFn)\n);\n```\n\n### Gateway Target IAM Permissions\n\nThe Gateway Target construct provides convenient methods for granting IAM permissions:\n\n```typescript fixture=default\n// Create a gateway and target\nconst gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n});\n\nconst smithySchema = agentcore.ApiSchema.fromLocalAsset(\n path.join(__dirname, \"models\", \"smithy-model.json\")\n);\nsmithySchema.bind(this);\n\n// Create a gateway target with Smithy Model and OAuth\nconst target = agentcore.GatewayTarget.forSmithy(this, \"MySmithyTarget\", {\n gatewayTargetName: \"my-smithy-target\",\n description: \"Target for Smithy model integration\",\n gateway: gateway,\n smithyModel: smithySchema,\n});\n\n// Create a role that needs access to the gateway target\nconst userRole = new iam.Role(this, \"UserRole\", {\n assumedBy: new iam.ServicePrincipal(\"lambda.amazonaws.com\"),\n});\n\n// Grant read permissions (Get and List actions)\ntarget.grantRead(userRole);\n\n// Grant manage permissions (Create, Update, Delete actions)\ntarget.grantManage(userRole);\n\n// Grant specific custom permissions\ntarget.grant(userRole, \"bedrock-agentcore:GetGatewayTarget\");\n\n\n// Grants permission to invoke this Gateway\ngateway.grantInvoke(userRole);\n```\n\n## Memory\n\nMemory is a critical component of intelligence. While Large Language Models (LLMs) have impressive capabilities, they lack persistent memory across conversations. Amazon Bedrock AgentCore Memory addresses this limitation by providing a managed service that enables AI agents to maintain context over time, remember important facts, and deliver consistent, personalized experiences.\n\nAgentCore Memory operates on two levels:\n\n- **Short-Term Memory**: Immediate conversation context and session-based information that provides continuity within a single interaction or closely related sessions.\n- **Long-Term Memory**: Persistent information extracted and stored across multiple conversations, including facts, preferences, and summaries that enable personalized experiences over time.\n\nWhen you interact with the memory via the `CreateEvent` API, you store interactions in Short-Term Memory (STM) instantly. These interactions can include everything from user messages, assistant responses, to tool actions.\n\nTo write to long-term memory, you need to configure extraction strategies which define how and where to store information from conversations for future use. These strategies are asynchronously processed from raw events after every few turns based on the strategy that was selected. You can't create long term memory records directly, as they are extracted asynchronously by AgentCore Memory.\n\n### Memory Properties\n\n| Name | Type | Required | Description |\n|------|------|----------|-------------|\n| `memoryName` | `string` | No | The name of the memory. If not provided, a unique name will be auto-generated |\n| `expirationDuration` | `Duration` | No | Short-term memory expiration in days (between 7 and 365). Default: 90 days |\n| `description` | `string` | No | Optional description for the memory. Default: no description. |\n| `kmsKey` | `IKey` | No | Custom KMS key to use for encryption. Default: Your data is encrypted with a key that AWS owns and manages for you |\n| `memoryStrategies` | `MemoryStrategyBase[]` | No | Built-in extraction strategies to use for this memory. Default: No extraction strategies (short term memory only) |\n| `executionRole` | `iam.IRole` | No | The IAM role that provides permissions for the memory to access AWS services. Default: A new role will be created. |\n| `tags` | `{ [key: string]: string }` | No | Tags for memory. Default: no tags. |\n\n### Basic Memory Creation\n\nBelow you can find how to configure a simple short-term memory (STM) with no long-term memory extraction strategies.\nNote how you set `expirationDuration`, which defines the time the events will be stored in the short-term memory before they expire.\n\n```typescript fixture=default\n\n// Create a basic memory with default settings, no LTM strategies\nconst memory = new agentcore.Memory(this, \"MyMemory\", {\n memoryName: \"my_memory\",\n description: \"A memory for storing user interactions for a period of 90 days\",\n expirationDuration: cdk.Duration.days(90),\n});\n```\n\nBasic Memory with Custom KMS Encryption\n\n```typescript fixture=default\n// Create a custom KMS key for encryption\nconst encryptionKey = new kms.Key(this, \"MemoryEncryptionKey\", {\n enableKeyRotation: true,\n description: \"KMS key for memory encryption\",\n});\n\n// Create memory with custom encryption\nconst memory = new agentcore.Memory(this, \"MyMemory\", {\n memoryName: \"my_encrypted_memory\",\n description: \"Memory with custom KMS encryption\",\n expirationDuration: cdk.Duration.days(90),\n kmsKey: encryptionKey,\n});\n```\n\n### LTM Memory Extraction Stategies\n\nIf you need long-term memory for context recall across sessions, you can setup memory extraction strategies\nto extract the relevant memory from the raw events.\n\nAmazon Bedrock AgentCore Memory has different memory strategies for extracting and organizing information:\n\n- **Summarization**: to summarize interactions to preserve critical context and key insights.\n- **Semantic Memory**: to extract general factual knowledge, concepts and meanings from raw conversations using vector embeddings.\nThis enables similarity-based retrieval of relevant facts and context.\n- **User Preferences**: to extract user behavior patterns from raw conversations.\n\nYou can use built-in extraction strategies for quick setup, or create custom extraction strategies with specific models and prompt templates.\n\n### Memory with Built-in Strategies\n\nThe library provides four built-in LTM strategies. These are default strategies for organizing and extracting memory data,\neach optimized for specific use cases.\n\nFor example: An agent helps multiple users with cloud storage setup. From these conversations,\nsee how each strategy processes users expressing confusion about account connection:\n\n1. **Summarization Strategy** (`MemoryStrategy.usingBuiltInSummarization()`)\nThis strategy compresses conversations into concise overviews, preserving essential context and key insights for quick recall.\nExtracted memory example: Users confused by cloud setup during onboarding.\n\n - Extracts concise summaries to preserve critical context and key insights\n - Namespace: `/strategies/{memoryStrategyId}/actors/{actorId}/sessions/{sessionId}`\n\n2. **Semantic Memory Strategy** (`MemoryStrategy.usingBuiltInSemantic()`)\nDistills general facts, concepts, and underlying meanings from raw conversational data, presenting the information in a context-independent format.\nExtracted memory example: In-context learning = task-solving via examples, no training needed.\n\n - Extracts general factual knowledge, concepts and meanings from raw conversations\n - Namespace: `/strategies/{memoryStrategyId}/actors/{actorId}`\n\n3. **User Preference Strategy** (`MemoryStrategy.usingBuiltInUserPreference()`)\nCaptures individual preferences, interaction patterns, and personalized settings to enhance future experiences.\nExtracted memory example: User needs clear guidance on cloud storage account connection during onboarding.\n\n - Extracts user behavior patterns from raw conversations\n - Namespace: `/strategies/{memoryStrategyId}/actors/{actorId}`\n\n4. **Episodic Memory Strategy** (`MemoryStrategy.usingBuiltInEpisodic()`)\nCaptures meaningful slices of user and system interactions, preserve them into compact records after summarizing.\nExtracted memory example: User first asked about pricing on Monday, then requested feature comparison on Tuesday, finally made purchase decision on Wednesday.\n\n - Captures event sequences and temporal relationships\n - Namespace: `/strategy/{memoryStrategyId}/actor/{actorId}/session/{sessionId}`\n - Reflections: `/strategy/{memoryStrategyId}/actor/{actorId}`\n\n```typescript fixture=default\n// Create memory with built-in strategies\nconst memory = new agentcore.Memory(this, \"MyMemory\", {\n memoryName: \"my_memory\",\n description: \"Memory with built-in strategies\",\n expirationDuration: cdk.Duration.days(90),\n memoryStrategies: [\n agentcore.MemoryStrategy.usingBuiltInSummarization(),\n agentcore.MemoryStrategy.usingBuiltInSemantic(),\n agentcore.MemoryStrategy.usingBuiltInUserPreference(),\n agentcore.MemoryStrategy.usingBuiltInEpisodic(),\n ],\n});\n```\n\nThe name generated for each built in memory strategy is as follows:\n\n- For Summarization: `summary_builtin_cdk001`\n- For Semantic:`semantic_builtin_cdk001>`\n- For User Preferences: `preference_builtin_cdk001`\n- For Episodic : `episodic_builtin_cdkGen0001`\n\n### Memory with custom Strategies\n\nWith Long-Term Memory, organization is managed through Namespaces.\n\nAn `actor` refers to entity such as end users or agent/user combinations. For example, in a coding support chatbot,\nthe actor is usually the developer asking questions. Using the actor ID helps the system know which user the memory belongs to,\nkeeping each user's data separate and organized.\n\nA `session` is usually a single conversation or interaction period between the user and the AI agent.\nIt groups all related messages and events that happen during that conversation.\n\nA `namespace` is used to logically group and organize long-term memories. It ensures data stays neat, separate, and secure.\n\nWith AgentCore Memory, you need to add a namespace when you define a memory strategy. This namespace helps define where the long-term memory\nwill be logically grouped. Every time a new long-term memory is extracted using this memory strategy, it is saved under the namespace you set.\nThis means that all long-term memories are scoped to their specific namespace, keeping them organized and preventing any mix-ups with other\nusers or sessions. You should use a hierarchical format separated by forward slashes /. This helps keep memories organized clearly. As needed,\nyou can choose to use the below pre-defined variables within braces in the namespace based on your applications' organization needs:\n\n- `actorId` – Identifies who the long-term memory belongs to, such as a user\n- `memoryStrategyId` – Shows which memory strategy is being used. This strategy identifier is auto-generated when you create a memory using CreateMemory operation.\n- `sessionId` – Identifies which session or conversation the memory is from.\n\nFor example, if you define the following namespace as the input to your strategy in CreateMemory operation:\n\n```shell\n/strategy/{memoryStrategyId}/actor/{actorId}/session/{sessionId}\n```\n\nAfter memory creation, this namespace might look like:\n\n```shell\n/strategy/summarization-93483043//actor/actor-9830m2w3/session/session-9330sds8\n```\n\nYou can customise the namespace, i.e. where the memories are stored by using the following methods:\n\n1. **Summarization Strategy** (`MemoryStrategy.usingSummarization(props)`)\n1. **Semantic Memory Strategy** (`MemoryStrategy.usingSemantic(props)`)\n1. **User Preference Strategy** (`MemoryStrategy.usingUserPreference(props)`)\n1. **Episodic Memory Strategy** (`MemoryStrategy.usingEpisodic(props)`)\n\n```typescript fixture=default\n// Create memory with custom strategies\nconst memory = new agentcore.Memory(this, \"MyMemory\", {\n memoryName: \"my_memory\",\n description: \"Memory with custom strategies\",\n expirationDuration: cdk.Duration.days(90),\n memoryStrategies: [\n agentcore.MemoryStrategy.usingUserPreference({\n name: \"CustomerPreferences\",\n namespaces: [\"support/customer/{actorId}/preferences\"]\n }),\n agentcore.MemoryStrategy.usingSemantic({\n name: \"CustomerSupportSemantic\",\n namespaces: [\"support/customer/{actorId}/semantic\"]\n }),\n agentcore.MemoryStrategy.usingEpisodic({\n name: \"customerJourneyEpisodic\",\n namespaces: [\"/journey/customer/{actorId}/episodes\"],\n reflectionConfiguration: {\n namespaces: [\"/journey/customer/{actorId}/reflections\"]\n }\n }),\n ],\n});\n```\n\nCustom memory strategies let you tailor memory extraction and consolidation to your specific domain or use case.\nYou can override the prompts for extracting and consolidating semantic, summary, or user preferences.\nYou can also choose the model that you want to use for extraction and consolidation.\n\nThe custom prompts you create are appended to a non-editable system prompt.\n\nSince a custom strategy requires you to invoke certain FMs, you need a role with appropriate permissions. For that, you can:\n\n- Let the L2 construct create a minimum permission role for you when use L2 Bedrock Foundation Models.\n- Use a custom role with the overly permissive `AmazonBedrockAgentCoreMemoryBedrockModelInferenceExecutionRolePolicy` managed policy.\n- Use a custom role with your own custom policies.\n\n#### Memory with Custom Execution Role\n\nKeep in mind that memories that **do not** use custom strategies do not require a service role.\nSo even if you provide it, it will be ignored as it will never be used.\n\n```typescript fixture=default\n// Create a custom execution role\nconst executionRole = new iam.Role(this, \"MemoryExecutionRole\", {\n assumedBy: new iam.ServicePrincipal(\"bedrock-agentcore.amazonaws.com\"),\n managedPolicies: [\n iam.ManagedPolicy.fromAwsManagedPolicyName(\n \"AmazonBedrockAgentCoreMemoryBedrockModelInferenceExecutionRolePolicy\"\n ),\n ],\n});\n\n// Create memory with custom execution role\nconst memory = new agentcore.Memory(this, \"MyMemory\", {\n memoryName: \"my_memory\",\n description: \"Memory with custom execution role\",\n expirationDuration: cdk.Duration.days(90),\n executionRole: executionRole,\n});\n```\n\nIn customConsolidation and customExtraction, the model property uses the [@aws-cdk/aws-bedrock-alph](https://www.npmjs.com/package/@aws-cdk/aws-bedrock-alpha) library which must be installed separately.\n\n```typescript fixture=default\n// Create a custom semantic memory strategy\nconst customSemanticStrategy = agentcore.MemoryStrategy.usingSemantic({\n name: \"customSemanticStrategy\",\n description: \"Custom semantic memory strategy\",\n namespaces: [\"/custom/strategies/{memoryStrategyId}/actors/{actorId}\"],\n customConsolidation: {\n model: bedrock.BedrockFoundationModel.ANTHROPIC_CLAUDE_3_5_SONNET_V1_0,\n appendToPrompt: \"Custom consolidation prompt for semantic memory\",\n },\n customExtraction: {\n model: bedrock.BedrockFoundationModel.ANTHROPIC_CLAUDE_3_5_SONNET_V1_0,\n appendToPrompt: \"Custom extraction prompt for semantic memory\",\n },\n});\n\n// Create memory with custom strategy\nconst memory = new agentcore.Memory(this, \"MyMemory\", {\n memoryName: \"my-custom-memory\",\n description: \"Memory with custom strategy\",\n expirationDuration: cdk.Duration.days(90),\n memoryStrategies: [customSemanticStrategy],\n});\n```\n\n### Memory with self-managed Strategies\n\nA self-managed strategy in Amazon Bedrock AgentCore Memory gives you complete control over your memory extraction and consolidation pipelines.\nWith a self-managed strategy, you can build custom memory processing workflows while leveraging Amazon Bedrock AgentCore for storage and retrieval.\n\nFor additional information, you can refer to the [developer guide for self managed strategies](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/memory-self-managed-strategies.html).\n\nCreate the required AWS resources including:\n\n- an S3 bucket in your account where Amazon Bedrock AgentCore will deliver batched event payloads.\n- an SNS topic for job notifications. Use FIFO topics if processing order within sessions is important for your use case.\n\nThe construct will apply the correct permissions to the memory execution role to access these resources.\n\n```typescript fixture=default\n\nconst bucket = new s3.Bucket(this, 'memoryBucket', {\n bucketName: 'test-memory',\n removalPolicy: cdk.RemovalPolicy.DESTROY,\n autoDeleteObjects: true,\n});\n\nconst topic = new sns.Topic(this, 'topic');\n\n// Create a custom semantic memory strategy\nconst selfManagedStrategy = agentcore.MemoryStrategy.usingSelfManaged({\n name: \"selfManagedStrategy\",\n description: \"self managed memory strategy\",\n historicalContextWindowSize: 5,\n invocationConfiguration: {\n topic: topic,\n s3Location: {\n bucketName: bucket.bucketName,\n objectKey: 'memory/',\n }\n },\n triggerConditions: {\n messageBasedTrigger: 1,\n timeBasedTrigger: cdk.Duration.seconds(10),\n tokenBasedTrigger: 100\n }\n});\n\n// Create memory with custom strategy\nconst memory = new agentcore.Memory(this, \"MyMemory\", {\n memoryName: \"my-custom-memory\",\n description: \"Memory with custom strategy\",\n expirationDuration: cdk.Duration.days(90),\n memoryStrategies: [selfManagedStrategy],\n});\n```\n\n### Memory Strategy Methods\n\nYou can add new memory strategies to the memory construct using the `addMemoryStrategy()` method, for instance:\n\n```typescript fixture=default\n// Create memory without initial strategies\nconst memory = new agentcore.Memory(this, \"test-memory\", {\n memoryName: \"test_memory_add_strategy\",\n description: \"A test memory for testing addMemoryStrategy method\",\n expirationDuration: cdk.Duration.days(90),\n});\n\n// Add strategies after instantiation\nmemory.addMemoryStrategy(agentcore.MemoryStrategy.usingBuiltInSummarization());\nmemory.addMemoryStrategy(agentcore.MemoryStrategy.usingBuiltInSemantic());\n```\n"
|
|
8557
8557
|
},
|
|
8558
8558
|
"repository": {
|
|
8559
8559
|
"directory": "packages/@aws-cdk/aws-bedrock-agentcore-alpha",
|
|
@@ -8591,6 +8591,155 @@
|
|
|
8591
8591
|
}
|
|
8592
8592
|
},
|
|
8593
8593
|
"types": {
|
|
8594
|
+
"@aws-cdk/aws-bedrock-agentcore-alpha.AddApiGatewayTargetOptions": {
|
|
8595
|
+
"assembly": "@aws-cdk/aws-bedrock-agentcore-alpha",
|
|
8596
|
+
"datatype": true,
|
|
8597
|
+
"docs": {
|
|
8598
|
+
"stability": "experimental",
|
|
8599
|
+
"summary": "Options for adding an API Gateway target to a gateway.",
|
|
8600
|
+
"example": "const gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n});\n\nconst api = new apigateway.RestApi(this, 'MyApi', {\n restApiName: 'my-api',\n});\n\n// Uses IAM authorization for outbound auth by default\nconst apiGatewayTarget = gateway.addApiGatewayTarget(\"MyApiGatewayTarget\", {\n restApi: api,\n apiGatewayToolConfiguration: {\n toolFilters: [\n {\n filterPath: \"/pets/*\",\n methods: [agentcore.ApiGatewayHttpMethod.GET],\n },\n ],\n },\n});",
|
|
8601
|
+
"custom": {
|
|
8602
|
+
"exampleMetadata": "fixture=default infused"
|
|
8603
|
+
}
|
|
8604
|
+
},
|
|
8605
|
+
"fqn": "@aws-cdk/aws-bedrock-agentcore-alpha.AddApiGatewayTargetOptions",
|
|
8606
|
+
"kind": "interface",
|
|
8607
|
+
"locationInModule": {
|
|
8608
|
+
"filename": "lib/gateway/gateway.ts",
|
|
8609
|
+
"line": 171
|
|
8610
|
+
},
|
|
8611
|
+
"name": "AddApiGatewayTargetOptions",
|
|
8612
|
+
"properties": [
|
|
8613
|
+
{
|
|
8614
|
+
"abstract": true,
|
|
8615
|
+
"docs": {
|
|
8616
|
+
"stability": "experimental",
|
|
8617
|
+
"summary": "Tool configuration defining which operations to expose."
|
|
8618
|
+
},
|
|
8619
|
+
"immutable": true,
|
|
8620
|
+
"locationInModule": {
|
|
8621
|
+
"filename": "lib/gateway/gateway.ts",
|
|
8622
|
+
"line": 201
|
|
8623
|
+
},
|
|
8624
|
+
"name": "apiGatewayToolConfiguration",
|
|
8625
|
+
"type": {
|
|
8626
|
+
"fqn": "@aws-cdk/aws-bedrock-agentcore-alpha.ApiGatewayToolConfiguration"
|
|
8627
|
+
}
|
|
8628
|
+
},
|
|
8629
|
+
{
|
|
8630
|
+
"abstract": true,
|
|
8631
|
+
"docs": {
|
|
8632
|
+
"stability": "experimental",
|
|
8633
|
+
"summary": "The REST API to integrate with Must be in the same account and region as the gateway [disable-awslint:prefer-ref-interface]."
|
|
8634
|
+
},
|
|
8635
|
+
"immutable": true,
|
|
8636
|
+
"locationInModule": {
|
|
8637
|
+
"filename": "lib/gateway/gateway.ts",
|
|
8638
|
+
"line": 190
|
|
8639
|
+
},
|
|
8640
|
+
"name": "restApi",
|
|
8641
|
+
"type": {
|
|
8642
|
+
"fqn": "aws-cdk-lib.aws_apigateway.IRestApi"
|
|
8643
|
+
}
|
|
8644
|
+
},
|
|
8645
|
+
{
|
|
8646
|
+
"abstract": true,
|
|
8647
|
+
"docs": {
|
|
8648
|
+
"default": "- Empty array (service handles IAM automatically)",
|
|
8649
|
+
"stability": "experimental",
|
|
8650
|
+
"summary": "Credential providers for authentication API Gateway targets support IAM and API key authentication."
|
|
8651
|
+
},
|
|
8652
|
+
"immutable": true,
|
|
8653
|
+
"locationInModule": {
|
|
8654
|
+
"filename": "lib/gateway/gateway.ts",
|
|
8655
|
+
"line": 208
|
|
8656
|
+
},
|
|
8657
|
+
"name": "credentialProviderConfigurations",
|
|
8658
|
+
"optional": true,
|
|
8659
|
+
"type": {
|
|
8660
|
+
"collection": {
|
|
8661
|
+
"elementtype": {
|
|
8662
|
+
"fqn": "@aws-cdk/aws-bedrock-agentcore-alpha.ICredentialProviderConfig"
|
|
8663
|
+
},
|
|
8664
|
+
"kind": "array"
|
|
8665
|
+
}
|
|
8666
|
+
}
|
|
8667
|
+
},
|
|
8668
|
+
{
|
|
8669
|
+
"abstract": true,
|
|
8670
|
+
"docs": {
|
|
8671
|
+
"default": "- No description",
|
|
8672
|
+
"stability": "experimental",
|
|
8673
|
+
"summary": "Optional description for the gateway target."
|
|
8674
|
+
},
|
|
8675
|
+
"immutable": true,
|
|
8676
|
+
"locationInModule": {
|
|
8677
|
+
"filename": "lib/gateway/gateway.ts",
|
|
8678
|
+
"line": 183
|
|
8679
|
+
},
|
|
8680
|
+
"name": "description",
|
|
8681
|
+
"optional": true,
|
|
8682
|
+
"type": {
|
|
8683
|
+
"primitive": "string"
|
|
8684
|
+
}
|
|
8685
|
+
},
|
|
8686
|
+
{
|
|
8687
|
+
"abstract": true,
|
|
8688
|
+
"docs": {
|
|
8689
|
+
"default": "- auto generate",
|
|
8690
|
+
"stability": "experimental",
|
|
8691
|
+
"summary": "The name of the gateway target Valid characters are a-z, A-Z, 0-9, _ (underscore) and - (hyphen)."
|
|
8692
|
+
},
|
|
8693
|
+
"immutable": true,
|
|
8694
|
+
"locationInModule": {
|
|
8695
|
+
"filename": "lib/gateway/gateway.ts",
|
|
8696
|
+
"line": 177
|
|
8697
|
+
},
|
|
8698
|
+
"name": "gatewayTargetName",
|
|
8699
|
+
"optional": true,
|
|
8700
|
+
"type": {
|
|
8701
|
+
"primitive": "string"
|
|
8702
|
+
}
|
|
8703
|
+
},
|
|
8704
|
+
{
|
|
8705
|
+
"abstract": true,
|
|
8706
|
+
"docs": {
|
|
8707
|
+
"default": "- No metadata configuration",
|
|
8708
|
+
"stability": "experimental",
|
|
8709
|
+
"summary": "Metadata configuration for passing headers and query parameters Allows you to pass additional context through headers and query parameters."
|
|
8710
|
+
},
|
|
8711
|
+
"immutable": true,
|
|
8712
|
+
"locationInModule": {
|
|
8713
|
+
"filename": "lib/gateway/gateway.ts",
|
|
8714
|
+
"line": 215
|
|
8715
|
+
},
|
|
8716
|
+
"name": "metadataConfiguration",
|
|
8717
|
+
"optional": true,
|
|
8718
|
+
"type": {
|
|
8719
|
+
"fqn": "@aws-cdk/aws-bedrock-agentcore-alpha.MetadataConfiguration"
|
|
8720
|
+
}
|
|
8721
|
+
},
|
|
8722
|
+
{
|
|
8723
|
+
"abstract": true,
|
|
8724
|
+
"docs": {
|
|
8725
|
+
"default": "- Uses the deployment stage from the RestApi (restApi.deploymentStage.stageName)",
|
|
8726
|
+
"stability": "experimental",
|
|
8727
|
+
"summary": "The stage name of the REST API."
|
|
8728
|
+
},
|
|
8729
|
+
"immutable": true,
|
|
8730
|
+
"locationInModule": {
|
|
8731
|
+
"filename": "lib/gateway/gateway.ts",
|
|
8732
|
+
"line": 196
|
|
8733
|
+
},
|
|
8734
|
+
"name": "stage",
|
|
8735
|
+
"optional": true,
|
|
8736
|
+
"type": {
|
|
8737
|
+
"primitive": "string"
|
|
8738
|
+
}
|
|
8739
|
+
}
|
|
8740
|
+
],
|
|
8741
|
+
"symbolId": "lib/gateway/gateway:AddApiGatewayTargetOptions"
|
|
8742
|
+
},
|
|
8594
8743
|
"@aws-cdk/aws-bedrock-agentcore-alpha.AddEndpointOptions": {
|
|
8595
8744
|
"assembly": "@aws-cdk/aws-bedrock-agentcore-alpha",
|
|
8596
8745
|
"datatype": true,
|
|
@@ -8664,7 +8813,7 @@
|
|
|
8664
8813
|
"kind": "interface",
|
|
8665
8814
|
"locationInModule": {
|
|
8666
8815
|
"filename": "lib/gateway/gateway.ts",
|
|
8667
|
-
"line":
|
|
8816
|
+
"line": 35
|
|
8668
8817
|
},
|
|
8669
8818
|
"name": "AddLambdaTargetOptions",
|
|
8670
8819
|
"properties": [
|
|
@@ -8677,7 +8826,7 @@
|
|
|
8677
8826
|
"immutable": true,
|
|
8678
8827
|
"locationInModule": {
|
|
8679
8828
|
"filename": "lib/gateway/gateway.ts",
|
|
8680
|
-
"line":
|
|
8829
|
+
"line": 52
|
|
8681
8830
|
},
|
|
8682
8831
|
"name": "lambdaFunction",
|
|
8683
8832
|
"type": {
|
|
@@ -8693,7 +8842,7 @@
|
|
|
8693
8842
|
"immutable": true,
|
|
8694
8843
|
"locationInModule": {
|
|
8695
8844
|
"filename": "lib/gateway/gateway.ts",
|
|
8696
|
-
"line":
|
|
8845
|
+
"line": 57
|
|
8697
8846
|
},
|
|
8698
8847
|
"name": "toolSchema",
|
|
8699
8848
|
"type": {
|
|
@@ -8710,7 +8859,7 @@
|
|
|
8710
8859
|
"immutable": true,
|
|
8711
8860
|
"locationInModule": {
|
|
8712
8861
|
"filename": "lib/gateway/gateway.ts",
|
|
8713
|
-
"line":
|
|
8862
|
+
"line": 63
|
|
8714
8863
|
},
|
|
8715
8864
|
"name": "credentialProviderConfigurations",
|
|
8716
8865
|
"optional": true,
|
|
@@ -8733,7 +8882,7 @@
|
|
|
8733
8882
|
"immutable": true,
|
|
8734
8883
|
"locationInModule": {
|
|
8735
8884
|
"filename": "lib/gateway/gateway.ts",
|
|
8736
|
-
"line":
|
|
8885
|
+
"line": 47
|
|
8737
8886
|
},
|
|
8738
8887
|
"name": "description",
|
|
8739
8888
|
"optional": true,
|
|
@@ -8751,7 +8900,7 @@
|
|
|
8751
8900
|
"immutable": true,
|
|
8752
8901
|
"locationInModule": {
|
|
8753
8902
|
"filename": "lib/gateway/gateway.ts",
|
|
8754
|
-
"line":
|
|
8903
|
+
"line": 41
|
|
8755
8904
|
},
|
|
8756
8905
|
"name": "gatewayTargetName",
|
|
8757
8906
|
"optional": true,
|
|
@@ -8777,7 +8926,7 @@
|
|
|
8777
8926
|
"kind": "interface",
|
|
8778
8927
|
"locationInModule": {
|
|
8779
8928
|
"filename": "lib/gateway/gateway.ts",
|
|
8780
|
-
"line":
|
|
8929
|
+
"line": 135
|
|
8781
8930
|
},
|
|
8782
8931
|
"name": "AddMcpServerTargetOptions",
|
|
8783
8932
|
"properties": [
|
|
@@ -8791,7 +8940,7 @@
|
|
|
8791
8940
|
"immutable": true,
|
|
8792
8941
|
"locationInModule": {
|
|
8793
8942
|
"filename": "lib/gateway/gateway.ts",
|
|
8794
|
-
"line":
|
|
8943
|
+
"line": 165
|
|
8795
8944
|
},
|
|
8796
8945
|
"name": "credentialProviderConfigurations",
|
|
8797
8946
|
"type": {
|
|
@@ -8813,7 +8962,7 @@
|
|
|
8813
8962
|
"immutable": true,
|
|
8814
8963
|
"locationInModule": {
|
|
8815
8964
|
"filename": "lib/gateway/gateway.ts",
|
|
8816
|
-
"line":
|
|
8965
|
+
"line": 157
|
|
8817
8966
|
},
|
|
8818
8967
|
"name": "endpoint",
|
|
8819
8968
|
"type": {
|
|
@@ -8830,7 +8979,7 @@
|
|
|
8830
8979
|
"immutable": true,
|
|
8831
8980
|
"locationInModule": {
|
|
8832
8981
|
"filename": "lib/gateway/gateway.ts",
|
|
8833
|
-
"line":
|
|
8982
|
+
"line": 147
|
|
8834
8983
|
},
|
|
8835
8984
|
"name": "description",
|
|
8836
8985
|
"optional": true,
|
|
@@ -8848,7 +8997,7 @@
|
|
|
8848
8997
|
"immutable": true,
|
|
8849
8998
|
"locationInModule": {
|
|
8850
8999
|
"filename": "lib/gateway/gateway.ts",
|
|
8851
|
-
"line":
|
|
9000
|
+
"line": 141
|
|
8852
9001
|
},
|
|
8853
9002
|
"name": "gatewayTargetName",
|
|
8854
9003
|
"optional": true,
|
|
@@ -8874,7 +9023,7 @@
|
|
|
8874
9023
|
"kind": "interface",
|
|
8875
9024
|
"locationInModule": {
|
|
8876
9025
|
"filename": "lib/gateway/gateway.ts",
|
|
8877
|
-
"line":
|
|
9026
|
+
"line": 69
|
|
8878
9027
|
},
|
|
8879
9028
|
"name": "AddOpenApiTargetOptions",
|
|
8880
9029
|
"properties": [
|
|
@@ -8887,7 +9036,7 @@
|
|
|
8887
9036
|
"immutable": true,
|
|
8888
9037
|
"locationInModule": {
|
|
8889
9038
|
"filename": "lib/gateway/gateway.ts",
|
|
8890
|
-
"line":
|
|
9039
|
+
"line": 86
|
|
8891
9040
|
},
|
|
8892
9041
|
"name": "apiSchema",
|
|
8893
9042
|
"type": {
|
|
@@ -8904,7 +9053,7 @@
|
|
|
8904
9053
|
"immutable": true,
|
|
8905
9054
|
"locationInModule": {
|
|
8906
9055
|
"filename": "lib/gateway/gateway.ts",
|
|
8907
|
-
"line":
|
|
9056
|
+
"line": 100
|
|
8908
9057
|
},
|
|
8909
9058
|
"name": "credentialProviderConfigurations",
|
|
8910
9059
|
"optional": true,
|
|
@@ -8927,7 +9076,7 @@
|
|
|
8927
9076
|
"immutable": true,
|
|
8928
9077
|
"locationInModule": {
|
|
8929
9078
|
"filename": "lib/gateway/gateway.ts",
|
|
8930
|
-
"line":
|
|
9079
|
+
"line": 81
|
|
8931
9080
|
},
|
|
8932
9081
|
"name": "description",
|
|
8933
9082
|
"optional": true,
|
|
@@ -8945,7 +9094,7 @@
|
|
|
8945
9094
|
"immutable": true,
|
|
8946
9095
|
"locationInModule": {
|
|
8947
9096
|
"filename": "lib/gateway/gateway.ts",
|
|
8948
|
-
"line":
|
|
9097
|
+
"line": 75
|
|
8949
9098
|
},
|
|
8950
9099
|
"name": "gatewayTargetName",
|
|
8951
9100
|
"optional": true,
|
|
@@ -8964,7 +9113,7 @@
|
|
|
8964
9113
|
"immutable": true,
|
|
8965
9114
|
"locationInModule": {
|
|
8966
9115
|
"filename": "lib/gateway/gateway.ts",
|
|
8967
|
-
"line":
|
|
9116
|
+
"line": 94
|
|
8968
9117
|
},
|
|
8969
9118
|
"name": "validateOpenApiSchema",
|
|
8970
9119
|
"optional": true,
|
|
@@ -8990,7 +9139,7 @@
|
|
|
8990
9139
|
"kind": "interface",
|
|
8991
9140
|
"locationInModule": {
|
|
8992
9141
|
"filename": "lib/gateway/gateway.ts",
|
|
8993
|
-
"line":
|
|
9142
|
+
"line": 106
|
|
8994
9143
|
},
|
|
8995
9144
|
"name": "AddSmithyTargetOptions",
|
|
8996
9145
|
"properties": [
|
|
@@ -9003,7 +9152,7 @@
|
|
|
9003
9152
|
"immutable": true,
|
|
9004
9153
|
"locationInModule": {
|
|
9005
9154
|
"filename": "lib/gateway/gateway.ts",
|
|
9006
|
-
"line":
|
|
9155
|
+
"line": 123
|
|
9007
9156
|
},
|
|
9008
9157
|
"name": "smithyModel",
|
|
9009
9158
|
"type": {
|
|
@@ -9020,7 +9169,7 @@
|
|
|
9020
9169
|
"immutable": true,
|
|
9021
9170
|
"locationInModule": {
|
|
9022
9171
|
"filename": "lib/gateway/gateway.ts",
|
|
9023
|
-
"line":
|
|
9172
|
+
"line": 129
|
|
9024
9173
|
},
|
|
9025
9174
|
"name": "credentialProviderConfigurations",
|
|
9026
9175
|
"optional": true,
|
|
@@ -9043,7 +9192,7 @@
|
|
|
9043
9192
|
"immutable": true,
|
|
9044
9193
|
"locationInModule": {
|
|
9045
9194
|
"filename": "lib/gateway/gateway.ts",
|
|
9046
|
-
"line":
|
|
9195
|
+
"line": 118
|
|
9047
9196
|
},
|
|
9048
9197
|
"name": "description",
|
|
9049
9198
|
"optional": true,
|
|
@@ -9061,7 +9210,7 @@
|
|
|
9061
9210
|
"immutable": true,
|
|
9062
9211
|
"locationInModule": {
|
|
9063
9212
|
"filename": "lib/gateway/gateway.ts",
|
|
9064
|
-
"line":
|
|
9213
|
+
"line": 112
|
|
9065
9214
|
},
|
|
9066
9215
|
"name": "gatewayTargetName",
|
|
9067
9216
|
"optional": true,
|
|
@@ -9086,7 +9235,7 @@
|
|
|
9086
9235
|
"kind": "enum",
|
|
9087
9236
|
"locationInModule": {
|
|
9088
9237
|
"filename": "lib/runtime/runtime-artifact.ts",
|
|
9089
|
-
"line":
|
|
9238
|
+
"line": 28
|
|
9090
9239
|
},
|
|
9091
9240
|
"members": [
|
|
9092
9241
|
{
|
|
@@ -9142,7 +9291,7 @@
|
|
|
9142
9291
|
"kind": "class",
|
|
9143
9292
|
"locationInModule": {
|
|
9144
9293
|
"filename": "lib/runtime/runtime-artifact.ts",
|
|
9145
|
-
"line":
|
|
9294
|
+
"line": 71
|
|
9146
9295
|
},
|
|
9147
9296
|
"methods": [
|
|
9148
9297
|
{
|
|
@@ -9152,7 +9301,7 @@
|
|
|
9152
9301
|
},
|
|
9153
9302
|
"locationInModule": {
|
|
9154
9303
|
"filename": "lib/runtime/runtime-artifact.ts",
|
|
9155
|
-
"line":
|
|
9304
|
+
"line": 84
|
|
9156
9305
|
},
|
|
9157
9306
|
"name": "fromAsset",
|
|
9158
9307
|
"parameters": [
|
|
@@ -9183,6 +9332,34 @@
|
|
|
9183
9332
|
},
|
|
9184
9333
|
"static": true
|
|
9185
9334
|
},
|
|
9335
|
+
{
|
|
9336
|
+
"docs": {
|
|
9337
|
+
"stability": "experimental",
|
|
9338
|
+
"summary": "Reference an agent runtime artifact that's constructed from local code assets uploaded to a CDK-managed S3 bucket."
|
|
9339
|
+
},
|
|
9340
|
+
"locationInModule": {
|
|
9341
|
+
"filename": "lib/runtime/runtime-artifact.ts",
|
|
9342
|
+
"line": 102
|
|
9343
|
+
},
|
|
9344
|
+
"name": "fromCodeAsset",
|
|
9345
|
+
"parameters": [
|
|
9346
|
+
{
|
|
9347
|
+
"docs": {
|
|
9348
|
+
"summary": "The options for configuring the code asset."
|
|
9349
|
+
},
|
|
9350
|
+
"name": "options",
|
|
9351
|
+
"type": {
|
|
9352
|
+
"fqn": "@aws-cdk/aws-bedrock-agentcore-alpha.CodeAssetOptions"
|
|
9353
|
+
}
|
|
9354
|
+
}
|
|
9355
|
+
],
|
|
9356
|
+
"returns": {
|
|
9357
|
+
"type": {
|
|
9358
|
+
"fqn": "@aws-cdk/aws-bedrock-agentcore-alpha.AgentRuntimeArtifact"
|
|
9359
|
+
}
|
|
9360
|
+
},
|
|
9361
|
+
"static": true
|
|
9362
|
+
},
|
|
9186
9363
|
{
|
|
9187
9364
|
"docs": {
|
|
9188
9365
|
"stability": "experimental",
|
|
@@ -9190,7 +9367,7 @@
|
|
|
9190
9367
|
},
|
|
9191
9368
|
"locationInModule": {
|
|
9192
9369
|
"filename": "lib/runtime/runtime-artifact.ts",
|
|
9193
|
-
"line":
|
|
9370
|
+
"line": 75
|
|
9194
9371
|
},
|
|
9195
9372
|
"name": "fromEcrRepository",
|
|
9196
9373
|
"parameters": [
|
|
@@ -9223,7 +9400,7 @@
|
|
|
9223
9400
|
},
|
|
9224
9401
|
"locationInModule": {
|
|
9225
9402
|
"filename": "lib/runtime/runtime-artifact.ts",
|
|
9226
|
-
"line":
|
|
9403
|
+
"line": 116
|
|
9227
9404
|
},
|
|
9228
9405
|
"name": "fromImageUri",
|
|
9229
9406
|
"parameters": [
|
|
@@ -9251,7 +9428,7 @@
|
|
|
9251
9428
|
},
|
|
9252
9429
|
"locationInModule": {
|
|
9253
9430
|
"filename": "lib/runtime/runtime-artifact.ts",
|
|
9254
|
-
"line":
|
|
9431
|
+
"line": 94
|
|
9255
9432
|
},
|
|
9256
9433
|
"name": "fromS3",
|
|
9257
9434
|
"parameters": [
|
|
@@ -9304,7 +9481,7 @@
|
|
|
9304
9481
|
},
|
|
9305
9482
|
"locationInModule": {
|
|
9306
9483
|
"filename": "lib/runtime/runtime-artifact.ts",
|
|
9307
|
-
"line":
|
|
9484
|
+
"line": 123
|
|
9308
9485
|
},
|
|
9309
9486
|
"name": "bind",
|
|
9310
9487
|
"parameters": [
|
|
@@ -9323,124 +9500,670 @@
|
|
|
9323
9500
|
]
|
|
9324
9501
|
}
|
|
9325
9502
|
],
|
|
9326
|
-
"name": "AgentRuntimeArtifact",
|
|
9327
|
-
"symbolId": "lib/runtime/runtime-artifact:AgentRuntimeArtifact"
|
|
9503
|
+
"name": "AgentRuntimeArtifact",
|
|
9504
|
+
"symbolId": "lib/runtime/runtime-artifact:AgentRuntimeArtifact"
|
|
9505
|
+
},
|
|
9506
|
+
"@aws-cdk/aws-bedrock-agentcore-alpha.AgentRuntimeAttributes": {
|
|
9507
|
+
"assembly": "@aws-cdk/aws-bedrock-agentcore-alpha",
|
|
9508
|
+
"datatype": true,
|
|
9509
|
+
"docs": {
|
|
9510
|
+
"stability": "experimental",
|
|
9511
|
+
"summary": "Attributes for importing an existing Agent Runtime.",
|
|
9512
|
+
"example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as bedrock_agentcore_alpha from '@aws-cdk/aws-bedrock-agentcore-alpha';\nimport { aws_ec2 as ec2 } from 'aws-cdk-lib';\n\ndeclare const securityGroup: ec2.SecurityGroup;\nconst agentRuntimeAttributes: bedrock_agentcore_alpha.AgentRuntimeAttributes = {\n agentRuntimeArn: 'agentRuntimeArn',\n agentRuntimeId: 'agentRuntimeId',\n agentRuntimeName: 'agentRuntimeName',\n roleArn: 'roleArn',\n\n // the properties below are optional\n agentRuntimeVersion: 'agentRuntimeVersion',\n agentStatus: 'agentStatus',\n createdAt: 'createdAt',\n description: 'description',\n lastUpdatedAt: 'lastUpdatedAt',\n securityGroups: [securityGroup],\n};",
|
|
9513
|
+
"custom": {
|
|
9514
|
+
"exampleMetadata": "fixture=_generated"
|
|
9515
|
+
}
|
|
9516
|
+
},
|
|
9517
|
+
"fqn": "@aws-cdk/aws-bedrock-agentcore-alpha.AgentRuntimeAttributes",
|
|
9518
|
+
"kind": "interface",
|
|
9519
|
+
"locationInModule": {
|
|
9520
|
+
"filename": "lib/runtime/runtime-base.ts",
|
|
9521
|
+
"line": 417
|
|
9522
|
+
},
|
|
9523
|
+
"name": "AgentRuntimeAttributes",
|
|
9524
|
+
"properties": [
|
|
9525
|
+
{
|
|
9526
|
+
"abstract": true,
|
|
9527
|
+
"docs": {
|
|
9528
|
+
"stability": "experimental",
|
|
9529
|
+
"summary": "The ARN of the agent runtime."
|
|
9530
|
+
},
|
|
9531
|
+
"immutable": true,
|
|
9532
|
+
"locationInModule": {
|
|
9533
|
+
"filename": "lib/runtime/runtime-base.ts",
|
|
9534
|
+
"line": 421
|
|
9535
|
+
},
|
|
9536
|
+
"name": "agentRuntimeArn",
|
|
9537
|
+
"type": {
|
|
9538
|
+
"primitive": "string"
|
|
9539
|
+
}
|
|
9540
|
+
},
|
|
9541
|
+
{
|
|
9542
|
+
"abstract": true,
|
|
9543
|
+
"docs": {
|
|
9544
|
+
"stability": "experimental",
|
|
9545
|
+
"summary": "The ID of the agent runtime."
|
|
9546
|
+
},
|
|
9547
|
+
"immutable": true,
|
|
9548
|
+
"locationInModule": {
|
|
9549
|
+
"filename": "lib/runtime/runtime-base.ts",
|
|
9550
|
+
"line": 426
|
|
9551
|
+
},
|
|
9552
|
+
"name": "agentRuntimeId",
|
|
9553
|
+
"type": {
|
|
9554
|
+
"primitive": "string"
|
|
9555
|
+
}
|
|
9556
|
+
},
|
|
9557
|
+
{
|
|
9558
|
+
"abstract": true,
|
|
9559
|
+
"docs": {
|
|
9560
|
+
"stability": "experimental",
|
|
9561
|
+
"summary": "The name of the agent runtime."
|
|
9562
|
+
},
|
|
9563
|
+
"immutable": true,
|
|
9564
|
+
"locationInModule": {
|
|
9565
|
+
"filename": "lib/runtime/runtime-base.ts",
|
|
9566
|
+
"line": 431
|
|
9567
|
+
},
|
|
9568
|
+
"name": "agentRuntimeName",
|
|
9569
|
+
"type": {
|
|
9570
|
+
"primitive": "string"
|
|
9571
|
+
}
|
|
9572
|
+
},
|
|
9573
|
+
{
|
|
9574
|
+
"abstract": true,
|
|
9575
|
+
"docs": {
|
|
9576
|
+
"stability": "experimental",
|
|
9577
|
+
"summary": "The IAM role ARN."
|
|
9578
|
+
},
|
|
9579
|
+
"immutable": true,
|
|
9580
|
+
"locationInModule": {
|
|
9581
|
+
"filename": "lib/runtime/runtime-base.ts",
|
|
9582
|
+
"line": 436
|
|
9583
|
+
},
|
|
9584
|
+
"name": "roleArn",
|
|
9585
|
+
"type": {
|
|
9586
|
+
"primitive": "string"
|
|
9587
|
+
}
|
|
9588
|
+
},
|
|
9589
|
+
{
|
|
9590
|
+
"abstract": true,
|
|
9591
|
+
"docs": {
|
|
9592
|
+
"default": "- undefined",
|
|
9593
|
+
"stability": "experimental",
|
|
9594
|
+
"summary": "The version of the agent runtime When importing a runtime and this is not specified or undefined, endpoints created on this runtime will point to version \"1\" unless explicitly overridden."
|
|
9595
|
+
},
|
|
9596
|
+
"immutable": true,
|
|
9597
|
+
"locationInModule": {
|
|
9598
|
+
"filename": "lib/runtime/runtime-base.ts",
|
|
9599
|
+
"line": 444
|
|
9600
|
+
},
|
|
9601
|
+
"name": "agentRuntimeVersion",
|
|
9602
|
+
"optional": true,
|
|
9603
|
+
"type": {
|
|
9604
|
+
"primitive": "string"
|
|
9605
|
+
}
|
|
9606
|
+
},
|
|
9607
|
+
{
|
|
9608
|
+
"abstract": true,
|
|
9609
|
+
"docs": {
|
|
9610
|
+
"default": "- Status not available",
|
|
9611
|
+
"stability": "experimental",
|
|
9612
|
+
"summary": "The current status of the agent runtime."
|
|
9613
|
+
},
|
|
9614
|
+
"immutable": true,
|
|
9615
|
+
"locationInModule": {
|
|
9616
|
+
"filename": "lib/runtime/runtime-base.ts",
|
|
9617
|
+
"line": 462
|
|
9618
|
+
},
|
|
9619
|
+
"name": "agentStatus",
|
|
9620
|
+
"optional": true,
|
|
9621
|
+
"type": {
|
|
9622
|
+
"primitive": "string"
|
|
9623
|
+
}
|
|
9624
|
+
},
|
|
9625
|
+
{
|
|
9626
|
+
"abstract": true,
|
|
9627
|
+
"docs": {
|
|
9628
|
+
"default": "- Creation time not available",
|
|
9629
|
+
"stability": "experimental",
|
|
9630
|
+
"summary": "The time at which the runtime was created."
|
|
9631
|
+
},
|
|
9632
|
+
"immutable": true,
|
|
9633
|
+
"locationInModule": {
|
|
9634
|
+
"filename": "lib/runtime/runtime-base.ts",
|
|
9635
|
+
"line": 468
|
|
9636
|
+
},
|
|
9637
|
+
"name": "createdAt",
|
|
9638
|
+
"optional": true,
|
|
9639
|
+
"type": {
|
|
9640
|
+
"primitive": "string"
|
|
9641
|
+
}
|
|
9642
|
+
},
|
|
9643
|
+
{
|
|
9644
|
+
"abstract": true,
|
|
9645
|
+
"docs": {
|
|
9646
|
+
"default": "- No description",
|
|
9647
|
+
"stability": "experimental",
|
|
9648
|
+
"summary": "The description of the agent runtime."
|
|
9649
|
+
},
|
|
9650
|
+
"immutable": true,
|
|
9651
|
+
"locationInModule": {
|
|
9652
|
+
"filename": "lib/runtime/runtime-base.ts",
|
|
9653
|
+
"line": 450
|
|
9654
|
+
},
|
|
9655
|
+
"name": "description",
|
|
9656
|
+
"optional": true,
|
|
9657
|
+
"type": {
|
|
9658
|
+
"primitive": "string"
|
|
9659
|
+
}
|
|
9660
|
+
},
|
|
9661
|
+
{
|
|
9662
|
+
"abstract": true,
|
|
9663
|
+
"docs": {
|
|
9664
|
+
"default": "- Last update time not available",
|
|
9665
|
+
"stability": "experimental",
|
|
9666
|
+
"summary": "The time at which the runtime was last updated."
|
|
9667
|
+
},
|
|
9668
|
+
"immutable": true,
|
|
9669
|
+
"locationInModule": {
|
|
9670
|
+
"filename": "lib/runtime/runtime-base.ts",
|
|
9671
|
+
"line": 474
|
|
9672
|
+
},
|
|
9673
|
+
"name": "lastUpdatedAt",
|
|
9674
|
+
"optional": true,
|
|
9675
|
+
"type": {
|
|
9676
|
+
"primitive": "string"
|
|
9677
|
+
}
|
|
9678
|
+
},
|
|
9679
|
+
{
|
|
9680
|
+
"abstract": true,
|
|
9681
|
+
"docs": {
|
|
9682
|
+
"default": "- By default, the runtime is not in a VPC.",
|
|
9683
|
+
"stability": "experimental",
|
|
9684
|
+
"summary": "The security groups for this runtime, if in a VPC."
|
|
9685
|
+
},
|
|
9686
|
+
"immutable": true,
|
|
9687
|
+
"locationInModule": {
|
|
9688
|
+
"filename": "lib/runtime/runtime-base.ts",
|
|
9689
|
+
"line": 456
|
|
9690
|
+
},
|
|
9691
|
+
"name": "securityGroups",
|
|
9692
|
+
"optional": true,
|
|
9693
|
+
"type": {
|
|
9694
|
+
"collection": {
|
|
9695
|
+
"elementtype": {
|
|
9696
|
+
"fqn": "aws-cdk-lib.aws_ec2.ISecurityGroup"
|
|
9697
|
+
},
|
|
9698
|
+
"kind": "array"
|
|
9699
|
+
}
|
|
9700
|
+
}
|
|
9701
|
+
}
|
|
9702
|
+
],
|
|
9703
|
+
"symbolId": "lib/runtime/runtime-base:AgentRuntimeAttributes"
|
|
9704
|
+
},
|
|
9705
|
+
"@aws-cdk/aws-bedrock-agentcore-alpha.ApiGatewayHttpMethod": {
|
|
9706
|
+
"assembly": "@aws-cdk/aws-bedrock-agentcore-alpha",
|
|
9707
|
+
"docs": {
|
|
9708
|
+
"stability": "experimental",
|
|
9709
|
+
"summary": "HTTP methods supported by API Gateway.",
|
|
9710
|
+
"example": "const gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n});\n\nconst api = new apigateway.RestApi(this, 'MyApi', {\n restApiName: 'my-api',\n});\n\n// Uses IAM authorization for outbound auth by default\nconst apiGatewayTarget = gateway.addApiGatewayTarget(\"MyApiGatewayTarget\", {\n restApi: api,\n apiGatewayToolConfiguration: {\n toolFilters: [\n {\n filterPath: \"/pets/*\",\n methods: [agentcore.ApiGatewayHttpMethod.GET],\n },\n ],\n },\n});",
|
|
9711
|
+
"custom": {
|
|
9712
|
+
"exampleMetadata": "fixture=default infused"
|
|
9713
|
+
}
|
|
9714
|
+
},
|
|
9715
|
+
"fqn": "@aws-cdk/aws-bedrock-agentcore-alpha.ApiGatewayHttpMethod",
|
|
9716
|
+
"kind": "enum",
|
|
9717
|
+
"locationInModule": {
|
|
9718
|
+
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
9719
|
+
"line": 419
|
|
9720
|
+
},
|
|
9721
|
+
"members": [
|
|
9722
|
+
{
|
|
9723
|
+
"docs": {
|
|
9724
|
+
"stability": "experimental",
|
|
9725
|
+
"summary": "GET method."
|
|
9726
|
+
},
|
|
9727
|
+
"name": "GET"
|
|
9728
|
+
},
|
|
9729
|
+
{
|
|
9730
|
+
"docs": {
|
|
9731
|
+
"stability": "experimental",
|
|
9732
|
+
"summary": "POST method."
|
|
9733
|
+
},
|
|
9734
|
+
"name": "POST"
|
|
9735
|
+
},
|
|
9736
|
+
{
|
|
9737
|
+
"docs": {
|
|
9738
|
+
"stability": "experimental",
|
|
9739
|
+
"summary": "PUT method."
|
|
9740
|
+
},
|
|
9741
|
+
"name": "PUT"
|
|
9742
|
+
},
|
|
9743
|
+
{
|
|
9744
|
+
"docs": {
|
|
9745
|
+
"stability": "experimental",
|
|
9746
|
+
"summary": "DELETE method."
|
|
9747
|
+
},
|
|
9748
|
+
"name": "DELETE"
|
|
9749
|
+
},
|
|
9750
|
+
{
|
|
9751
|
+
"docs": {
|
|
9752
|
+
"stability": "experimental",
|
|
9753
|
+
"summary": "PATCH method."
|
|
9754
|
+
},
|
|
9755
|
+
"name": "PATCH"
|
|
9756
|
+
},
|
|
9757
|
+
{
|
|
9758
|
+
"docs": {
|
|
9759
|
+
"stability": "experimental",
|
|
9760
|
+
"summary": "HEAD method."
|
|
9761
|
+
},
|
|
9762
|
+
"name": "HEAD"
|
|
9763
|
+
},
|
|
9764
|
+
{
|
|
9765
|
+
"docs": {
|
|
9766
|
+
"stability": "experimental",
|
|
9767
|
+
"summary": "OPTIONS method."
|
|
9768
|
+
},
|
|
9769
|
+
"name": "OPTIONS"
|
|
9770
|
+
}
|
|
9771
|
+
],
|
|
9772
|
+
"name": "ApiGatewayHttpMethod",
|
|
9773
|
+
"symbolId": "lib/gateway/targets/target-configuration:ApiGatewayHttpMethod"
|
|
9774
|
+
},
|
|
9775
|
+
"@aws-cdk/aws-bedrock-agentcore-alpha.ApiGatewayTargetConfiguration": {
|
|
9776
|
+
"assembly": "@aws-cdk/aws-bedrock-agentcore-alpha",
|
|
9777
|
+
"base": "@aws-cdk/aws-bedrock-agentcore-alpha.McpTargetConfiguration",
|
|
9778
|
+
"docs": {
|
|
9779
|
+
"remarks": "This configuration connects your gateway to an Amazon API Gateway REST API stage.\nThe gateway translates incoming MCP requests into HTTP requests to your REST API\nand handles response formatting.\n\nKey considerations:\n- API must be in the same account and region as the gateway\n- Only REST APIs are supported (no HTTP or WebSocket APIs)\n- API must use a public endpoint type\n- Methods with both AWS_IAM authorization and API key requirements are not supported\n- Proxy resources (e.g., `/pets/{proxy+}`) are not supported",
|
|
9780
|
+
"stability": "experimental",
|
|
9781
|
+
"summary": "Configuration for API Gateway-based MCP targets.",
|
|
9782
|
+
"example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as bedrock_agentcore_alpha from '@aws-cdk/aws-bedrock-agentcore-alpha';\nimport { aws_apigateway as apigateway } from 'aws-cdk-lib';\n\ndeclare const restApi: apigateway.RestApi;\nconst apiGatewayTargetConfiguration = new bedrock_agentcore_alpha.ApiGatewayTargetConfiguration({\n apiGatewayToolConfiguration: {\n toolFilters: [{\n filterPath: 'filterPath',\n methods: [bedrock_agentcore_alpha.ApiGatewayHttpMethod.GET],\n }],\n\n // the properties below are optional\n toolOverrides: [{\n method: bedrock_agentcore_alpha.ApiGatewayHttpMethod.GET,\n name: 'name',\n path: 'path',\n\n // the properties below are optional\n description: 'description',\n }],\n },\n restApi: restApi,\n\n // the properties below are optional\n metadataConfiguration: {\n allowedQueryParameters: ['allowedQueryParameters'],\n allowedRequestHeaders: ['allowedRequestHeaders'],\n allowedResponseHeaders: ['allowedResponseHeaders'],\n },\n stage: 'stage',\n});",
|
|
9783
|
+
"custom": {
|
|
9784
|
+
"exampleMetadata": "fixture=_generated"
|
|
9785
|
+
}
|
|
9786
|
+
},
|
|
9787
|
+
"fqn": "@aws-cdk/aws-bedrock-agentcore-alpha.ApiGatewayTargetConfiguration",
|
|
9788
|
+
"initializer": {
|
|
9789
|
+
"docs": {
|
|
9790
|
+
"stability": "experimental"
|
|
9791
|
+
},
|
|
9792
|
+
"locationInModule": {
|
|
9793
|
+
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
9794
|
+
"line": 638
|
|
9795
|
+
},
|
|
9796
|
+
"parameters": [
|
|
9797
|
+
{
|
|
9798
|
+
"name": "props",
|
|
9799
|
+
"type": {
|
|
9800
|
+
"fqn": "@aws-cdk/aws-bedrock-agentcore-alpha.ApiGatewayTargetConfigurationProps"
|
|
9801
|
+
}
|
|
9802
|
+
}
|
|
9803
|
+
]
|
|
9804
|
+
},
|
|
9805
|
+
"kind": "class",
|
|
9806
|
+
"locationInModule": {
|
|
9807
|
+
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
9808
|
+
"line": 600
|
|
9809
|
+
},
|
|
9810
|
+
"methods": [
|
|
9811
|
+
{
|
|
9812
|
+
"docs": {
|
|
9813
|
+
"returns": "A new ApiGatewayTargetConfiguration instance",
|
|
9814
|
+
"stability": "experimental",
|
|
9815
|
+
"summary": "Create an API Gateway target configuration."
|
|
9816
|
+
},
|
|
9817
|
+
"locationInModule": {
|
|
9818
|
+
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
9819
|
+
"line": 607
|
|
9820
|
+
},
|
|
9821
|
+
"name": "create",
|
|
9822
|
+
"parameters": [
|
|
9823
|
+
{
|
|
9824
|
+
"docs": {
|
|
9825
|
+
"summary": "The configuration properties."
|
|
9826
|
+
},
|
|
9827
|
+
"name": "props",
|
|
9828
|
+
"type": {
|
|
9829
|
+
"fqn": "@aws-cdk/aws-bedrock-agentcore-alpha.ApiGatewayTargetConfigurationProps"
|
|
9830
|
+
}
|
|
9831
|
+
}
|
|
9832
|
+
],
|
|
9833
|
+
"returns": {
|
|
9834
|
+
"type": {
|
|
9835
|
+
"fqn": "@aws-cdk/aws-bedrock-agentcore-alpha.ApiGatewayTargetConfiguration"
|
|
9836
|
+
}
|
|
9837
|
+
},
|
|
9838
|
+
"static": true
|
|
9839
|
+
},
|
|
9840
|
+
{
|
|
9841
|
+
"docs": {
|
|
9842
|
+
"stability": "experimental",
|
|
9843
|
+
"summary": "Binds this configuration to a construct scope Sets up necessary permissions for the gateway to access the API Gateway."
|
|
9844
|
+
},
|
|
9845
|
+
"locationInModule": {
|
|
9846
|
+
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
9847
|
+
"line": 656
|
|
9848
|
+
},
|
|
9849
|
+
"name": "bind",
|
|
9850
|
+
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.McpTargetConfiguration",
|
|
9851
|
+
"parameters": [
|
|
9852
|
+
{
|
|
9853
|
+
"docs": {
|
|
9854
|
+
"summary": "The construct scope."
|
|
9855
|
+
},
|
|
9856
|
+
"name": "_scope",
|
|
9857
|
+
"type": {
|
|
9858
|
+
"fqn": "constructs.Construct"
|
|
9859
|
+
}
|
|
9860
|
+
},
|
|
9861
|
+
{
|
|
9862
|
+
"docs": {
|
|
9863
|
+
"summary": "The gateway that will use this target."
|
|
9864
|
+
},
|
|
9865
|
+
"name": "gateway",
|
|
9866
|
+
"type": {
|
|
9867
|
+
"fqn": "@aws-cdk/aws-bedrock-agentcore-alpha.IGateway"
|
|
9868
|
+
}
|
|
9869
|
+
}
|
|
9870
|
+
],
|
|
9871
|
+
"returns": {
|
|
9872
|
+
"type": {
|
|
9873
|
+
"fqn": "@aws-cdk/aws-bedrock-agentcore-alpha.TargetConfigurationConfig"
|
|
9874
|
+
}
|
|
9875
|
+
}
|
|
9876
|
+
},
|
|
9877
|
+
{
|
|
9878
|
+
"docs": {
|
|
9879
|
+
"stability": "experimental",
|
|
9880
|
+
"summary": "Renders the MCP-specific configuration."
|
|
9881
|
+
},
|
|
9882
|
+
"locationInModule": {
|
|
9883
|
+
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
9884
|
+
"line": 677
|
|
9885
|
+
},
|
|
9886
|
+
"name": "renderMcpConfiguration",
|
|
9887
|
+
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.McpTargetConfiguration",
|
|
9888
|
+
"protected": true,
|
|
9889
|
+
"returns": {
|
|
9890
|
+
"type": {
|
|
9891
|
+
"primitive": "any"
|
|
9892
|
+
}
|
|
9893
|
+
}
|
|
9894
|
+
}
|
|
9895
|
+
],
|
|
9896
|
+
"name": "ApiGatewayTargetConfiguration",
|
|
9897
|
+
"properties": [
|
|
9898
|
+
{
|
|
9899
|
+
"docs": {
|
|
9900
|
+
"stability": "experimental",
|
|
9901
|
+
"summary": "Tool configuration for the API Gateway target."
|
|
9902
|
+
},
|
|
9903
|
+
"immutable": true,
|
|
9904
|
+
"locationInModule": {
|
|
9905
|
+
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
9906
|
+
"line": 631
|
|
9907
|
+
},
|
|
9908
|
+
"name": "apiGatewayToolConfiguration",
|
|
9909
|
+
"type": {
|
|
9910
|
+
"fqn": "@aws-cdk/aws-bedrock-agentcore-alpha.ApiGatewayToolConfiguration"
|
|
9911
|
+
}
|
|
9912
|
+
},
|
|
9913
|
+
{
|
|
9914
|
+
"docs": {
|
|
9915
|
+
"stability": "experimental",
|
|
9916
|
+
"summary": "The ID of the REST API."
|
|
9917
|
+
},
|
|
9918
|
+
"immutable": true,
|
|
9919
|
+
"locationInModule": {
|
|
9920
|
+
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
9921
|
+
"line": 621
|
|
9922
|
+
},
|
|
9923
|
+
"name": "restApiId",
|
|
9924
|
+
"type": {
|
|
9925
|
+
"primitive": "string"
|
|
9926
|
+
}
|
|
9927
|
+
},
|
|
9928
|
+
{
|
|
9929
|
+
"docs": {
|
|
9930
|
+
"stability": "experimental",
|
|
9931
|
+
"summary": "The stage name of the REST API."
|
|
9932
|
+
},
|
|
9933
|
+
"immutable": true,
|
|
9934
|
+
"locationInModule": {
|
|
9935
|
+
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
9936
|
+
"line": 626
|
|
9937
|
+
},
|
|
9938
|
+
"name": "stage",
|
|
9939
|
+
"type": {
|
|
9940
|
+
"primitive": "string"
|
|
9941
|
+
}
|
|
9942
|
+
},
|
|
9943
|
+
{
|
|
9944
|
+
"docs": {
|
|
9945
|
+
"stability": "experimental",
|
|
9946
|
+
"summary": "The target type."
|
|
9947
|
+
},
|
|
9948
|
+
"immutable": true,
|
|
9949
|
+
"locationInModule": {
|
|
9950
|
+
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
9951
|
+
"line": 611
|
|
9952
|
+
},
|
|
9953
|
+
"name": "targetType",
|
|
9954
|
+
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.McpTargetConfiguration",
|
|
9955
|
+
"type": {
|
|
9956
|
+
"fqn": "@aws-cdk/aws-bedrock-agentcore-alpha.McpTargetType"
|
|
9957
|
+
}
|
|
9958
|
+
},
|
|
9959
|
+
{
|
|
9960
|
+
"docs": {
|
|
9961
|
+
"stability": "experimental",
|
|
9962
|
+
"summary": "Metadata configuration for the API Gateway target."
|
|
9963
|
+
},
|
|
9964
|
+
"immutable": true,
|
|
9965
|
+
"locationInModule": {
|
|
9966
|
+
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
9967
|
+
"line": 636
|
|
9968
|
+
},
|
|
9969
|
+
"name": "metadataConfiguration",
|
|
9970
|
+
"optional": true,
|
|
9971
|
+
"type": {
|
|
9972
|
+
"fqn": "@aws-cdk/aws-bedrock-agentcore-alpha.MetadataConfiguration"
|
|
9973
|
+
}
|
|
9974
|
+
}
|
|
9975
|
+
],
|
|
9976
|
+
"symbolId": "lib/gateway/targets/target-configuration:ApiGatewayTargetConfiguration"
|
|
9328
9977
|
},
|
|
9329
|
-
"@aws-cdk/aws-bedrock-agentcore-alpha.
|
|
9978
|
+
"@aws-cdk/aws-bedrock-agentcore-alpha.ApiGatewayTargetConfigurationProps": {
|
|
9330
9979
|
"assembly": "@aws-cdk/aws-bedrock-agentcore-alpha",
|
|
9331
9980
|
"datatype": true,
|
|
9332
9981
|
"docs": {
|
|
9333
9982
|
"stability": "experimental",
|
|
9334
|
-
"summary": "
|
|
9335
|
-
"example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as bedrock_agentcore_alpha from '@aws-cdk/aws-bedrock-agentcore-alpha';\nimport {
|
|
9983
|
+
"summary": "Properties for creating an API Gateway target configuration.",
|
|
9984
|
+
"example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as bedrock_agentcore_alpha from '@aws-cdk/aws-bedrock-agentcore-alpha';\nimport { aws_apigateway as apigateway } from 'aws-cdk-lib';\n\ndeclare const restApi: apigateway.RestApi;\nconst apiGatewayTargetConfigurationProps: bedrock_agentcore_alpha.ApiGatewayTargetConfigurationProps = {\n apiGatewayToolConfiguration: {\n toolFilters: [{\n filterPath: 'filterPath',\n methods: [bedrock_agentcore_alpha.ApiGatewayHttpMethod.GET],\n }],\n\n // the properties below are optional\n toolOverrides: [{\n method: bedrock_agentcore_alpha.ApiGatewayHttpMethod.GET,\n name: 'name',\n path: 'path',\n\n // the properties below are optional\n description: 'description',\n }],\n },\n restApi: restApi,\n\n // the properties below are optional\n metadataConfiguration: {\n allowedQueryParameters: ['allowedQueryParameters'],\n allowedRequestHeaders: ['allowedRequestHeaders'],\n allowedResponseHeaders: ['allowedResponseHeaders'],\n },\n stage: 'stage',\n};",
|
|
9336
9985
|
"custom": {
|
|
9337
9986
|
"exampleMetadata": "fixture=_generated"
|
|
9338
9987
|
}
|
|
9339
9988
|
},
|
|
9340
|
-
"fqn": "@aws-cdk/aws-bedrock-agentcore-alpha.
|
|
9989
|
+
"fqn": "@aws-cdk/aws-bedrock-agentcore-alpha.ApiGatewayTargetConfigurationProps",
|
|
9341
9990
|
"kind": "interface",
|
|
9342
9991
|
"locationInModule": {
|
|
9343
|
-
"filename": "lib/
|
|
9344
|
-
"line":
|
|
9992
|
+
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
9993
|
+
"line": 560
|
|
9345
9994
|
},
|
|
9346
|
-
"name": "
|
|
9995
|
+
"name": "ApiGatewayTargetConfigurationProps",
|
|
9347
9996
|
"properties": [
|
|
9348
9997
|
{
|
|
9349
9998
|
"abstract": true,
|
|
9350
9999
|
"docs": {
|
|
9351
10000
|
"stability": "experimental",
|
|
9352
|
-
"summary": "
|
|
10001
|
+
"summary": "Tool configuration defining which operations to expose."
|
|
9353
10002
|
},
|
|
9354
10003
|
"immutable": true,
|
|
9355
10004
|
"locationInModule": {
|
|
9356
|
-
"filename": "lib/
|
|
9357
|
-
"line":
|
|
10005
|
+
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
10006
|
+
"line": 576
|
|
9358
10007
|
},
|
|
9359
|
-
"name": "
|
|
10008
|
+
"name": "apiGatewayToolConfiguration",
|
|
9360
10009
|
"type": {
|
|
9361
|
-
"
|
|
10010
|
+
"fqn": "@aws-cdk/aws-bedrock-agentcore-alpha.ApiGatewayToolConfiguration"
|
|
9362
10011
|
}
|
|
9363
10012
|
},
|
|
9364
10013
|
{
|
|
9365
10014
|
"abstract": true,
|
|
9366
10015
|
"docs": {
|
|
9367
10016
|
"stability": "experimental",
|
|
9368
|
-
"summary": "The
|
|
10017
|
+
"summary": "The REST API to integrate with Must be in the same account and region as the gateway."
|
|
9369
10018
|
},
|
|
9370
10019
|
"immutable": true,
|
|
9371
10020
|
"locationInModule": {
|
|
9372
|
-
"filename": "lib/
|
|
9373
|
-
"line":
|
|
10021
|
+
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
10022
|
+
"line": 565
|
|
9374
10023
|
},
|
|
9375
|
-
"name": "
|
|
10024
|
+
"name": "restApi",
|
|
9376
10025
|
"type": {
|
|
9377
|
-
"
|
|
10026
|
+
"fqn": "aws-cdk-lib.aws_apigateway.IRestApi"
|
|
9378
10027
|
}
|
|
9379
10028
|
},
|
|
9380
10029
|
{
|
|
9381
10030
|
"abstract": true,
|
|
9382
10031
|
"docs": {
|
|
10032
|
+
"default": "- No metadata configuration",
|
|
9383
10033
|
"stability": "experimental",
|
|
9384
|
-
"summary": "
|
|
10034
|
+
"summary": "Metadata configuration for passing headers and query parameters Allows you to pass additional context through headers and query parameters."
|
|
9385
10035
|
},
|
|
9386
10036
|
"immutable": true,
|
|
9387
10037
|
"locationInModule": {
|
|
9388
|
-
"filename": "lib/
|
|
9389
|
-
"line":
|
|
10038
|
+
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
10039
|
+
"line": 583
|
|
9390
10040
|
},
|
|
9391
|
-
"name": "
|
|
10041
|
+
"name": "metadataConfiguration",
|
|
10042
|
+
"optional": true,
|
|
9392
10043
|
"type": {
|
|
9393
|
-
"
|
|
10044
|
+
"fqn": "@aws-cdk/aws-bedrock-agentcore-alpha.MetadataConfiguration"
|
|
9394
10045
|
}
|
|
9395
10046
|
},
|
|
9396
10047
|
{
|
|
9397
10048
|
"abstract": true,
|
|
9398
10049
|
"docs": {
|
|
10050
|
+
"default": "- Uses the deployment stage from the RestApi (restApi.deploymentStage.stageName)",
|
|
9399
10051
|
"stability": "experimental",
|
|
9400
|
-
"summary": "The
|
|
10052
|
+
"summary": "The stage name of the REST API."
|
|
9401
10053
|
},
|
|
9402
10054
|
"immutable": true,
|
|
9403
10055
|
"locationInModule": {
|
|
9404
|
-
"filename": "lib/
|
|
9405
|
-
"line":
|
|
10056
|
+
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
10057
|
+
"line": 571
|
|
9406
10058
|
},
|
|
9407
|
-
"name": "
|
|
10059
|
+
"name": "stage",
|
|
10060
|
+
"optional": true,
|
|
9408
10061
|
"type": {
|
|
9409
10062
|
"primitive": "string"
|
|
9410
10063
|
}
|
|
9411
|
-
}
|
|
10064
|
+
}
|
|
10065
|
+
],
|
|
10066
|
+
"symbolId": "lib/gateway/targets/target-configuration:ApiGatewayTargetConfigurationProps"
|
|
10067
|
+
},
|
|
10068
|
+
"@aws-cdk/aws-bedrock-agentcore-alpha.ApiGatewayToolConfiguration": {
|
|
10069
|
+
"assembly": "@aws-cdk/aws-bedrock-agentcore-alpha",
|
|
10070
|
+
"datatype": true,
|
|
10071
|
+
"docs": {
|
|
10072
|
+
"remarks": "The API Gateway tool configuration defines which operations from your REST API\nare exposed as tools. It requires a list of tool filters to select operations\nto expose, and optionally accepts tool overrides to customize tool metadata.",
|
|
10073
|
+
"stability": "experimental",
|
|
10074
|
+
"summary": "Configuration for API Gateway tools.",
|
|
10075
|
+
"example": "const gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n});\n\nconst api = new apigateway.RestApi(this, 'MyApi', {\n restApiName: 'my-api',\n});\n\n// Uses IAM authorization for outbound auth by default\nconst apiGatewayTarget = gateway.addApiGatewayTarget(\"MyApiGatewayTarget\", {\n restApi: api,\n apiGatewayToolConfiguration: {\n toolFilters: [\n {\n filterPath: \"/pets/*\",\n methods: [agentcore.ApiGatewayHttpMethod.GET],\n },\n ],\n },\n});",
|
|
10076
|
+
"custom": {
|
|
10077
|
+
"exampleMetadata": "fixture=default infused"
|
|
10078
|
+
}
|
|
10079
|
+
},
|
|
10080
|
+
"fqn": "@aws-cdk/aws-bedrock-agentcore-alpha.ApiGatewayToolConfiguration",
|
|
10081
|
+
"kind": "interface",
|
|
10082
|
+
"locationInModule": {
|
|
10083
|
+
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
10084
|
+
"line": 542
|
|
10085
|
+
},
|
|
10086
|
+
"name": "ApiGatewayToolConfiguration",
|
|
10087
|
+
"properties": [
|
|
9412
10088
|
{
|
|
9413
10089
|
"abstract": true,
|
|
9414
10090
|
"docs": {
|
|
9415
|
-
"default": "- undefined",
|
|
9416
10091
|
"stability": "experimental",
|
|
9417
|
-
"summary": "
|
|
10092
|
+
"summary": "List of tool filters to select operations At least one filter is required."
|
|
9418
10093
|
},
|
|
9419
10094
|
"immutable": true,
|
|
9420
10095
|
"locationInModule": {
|
|
9421
|
-
"filename": "lib/
|
|
9422
|
-
"line":
|
|
10096
|
+
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
10097
|
+
"line": 547
|
|
9423
10098
|
},
|
|
9424
|
-
"name": "
|
|
9425
|
-
"optional": true,
|
|
10099
|
+
"name": "toolFilters",
|
|
9426
10100
|
"type": {
|
|
9427
|
-
"
|
|
10101
|
+
"collection": {
|
|
10102
|
+
"elementtype": {
|
|
10103
|
+
"fqn": "@aws-cdk/aws-bedrock-agentcore-alpha.ApiGatewayToolFilter"
|
|
10104
|
+
},
|
|
10105
|
+
"kind": "array"
|
|
10106
|
+
}
|
|
9428
10107
|
}
|
|
9429
10108
|
},
|
|
9430
10109
|
{
|
|
9431
10110
|
"abstract": true,
|
|
9432
10111
|
"docs": {
|
|
9433
|
-
"default": "-
|
|
10112
|
+
"default": "- No tool overrides",
|
|
9434
10113
|
"stability": "experimental",
|
|
9435
|
-
"summary": "
|
|
10114
|
+
"summary": "Optional list of tool overrides to customize tool metadata Each override must correspond to an operation selected by the filters."
|
|
9436
10115
|
},
|
|
9437
10116
|
"immutable": true,
|
|
9438
10117
|
"locationInModule": {
|
|
9439
|
-
"filename": "lib/
|
|
9440
|
-
"line":
|
|
10118
|
+
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
10119
|
+
"line": 554
|
|
9441
10120
|
},
|
|
9442
|
-
"name": "
|
|
10121
|
+
"name": "toolOverrides",
|
|
9443
10122
|
"optional": true,
|
|
10123
|
+
"type": {
|
|
10124
|
+
"collection": {
|
|
10125
|
+
"elementtype": {
|
|
10126
|
+
"fqn": "@aws-cdk/aws-bedrock-agentcore-alpha.ApiGatewayToolOverride"
|
|
10127
|
+
},
|
|
10128
|
+
"kind": "array"
|
|
10129
|
+
}
|
|
10130
|
+
}
|
|
10131
|
+
}
|
|
10132
|
+
],
|
|
10133
|
+
"symbolId": "lib/gateway/targets/target-configuration:ApiGatewayToolConfiguration"
|
|
10134
|
+
},
|
|
10135
|
+
"@aws-cdk/aws-bedrock-agentcore-alpha.ApiGatewayToolFilter": {
|
|
10136
|
+
"assembly": "@aws-cdk/aws-bedrock-agentcore-alpha",
|
|
10137
|
+
"datatype": true,
|
|
10138
|
+
"docs": {
|
|
10139
|
+
"remarks": "Tool filters allow you to select REST API operations using path and method combinations.\nEach filter supports two path matching strategies:\n- **Explicit paths**: Matches a single specific path, such as `/pets/{petId}`\n- **Wildcard paths**: Matches all paths starting with the specified prefix, such as `/pets/*`",
|
|
10140
|
+
"stability": "experimental",
|
|
10141
|
+
"summary": "Configuration for filtering API Gateway tools.",
|
|
10142
|
+
"example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as bedrock_agentcore_alpha from '@aws-cdk/aws-bedrock-agentcore-alpha';\nconst apiGatewayToolFilter: bedrock_agentcore_alpha.ApiGatewayToolFilter = {\n filterPath: 'filterPath',\n methods: [bedrock_agentcore_alpha.ApiGatewayHttpMethod.GET],\n};",
|
|
10143
|
+
"custom": {
|
|
10144
|
+
"exampleMetadata": "fixture=_generated"
|
|
10145
|
+
}
|
|
10146
|
+
},
|
|
10147
|
+
"fqn": "@aws-cdk/aws-bedrock-agentcore-alpha.ApiGatewayToolFilter",
|
|
10148
|
+
"kind": "interface",
|
|
10149
|
+
"locationInModule": {
|
|
10150
|
+
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
10151
|
+
"line": 444
|
|
10152
|
+
},
|
|
10153
|
+
"name": "ApiGatewayToolFilter",
|
|
10154
|
+
"properties": [
|
|
10155
|
+
{
|
|
10156
|
+
"abstract": true,
|
|
10157
|
+
"docs": {
|
|
10158
|
+
"stability": "experimental",
|
|
10159
|
+
"summary": "The resource path to filter Can be an explicit path (e.g., `/pets/{petId}`) or a wildcard path (e.g., `/pets/*`) Must start with a forward slash."
|
|
10160
|
+
},
|
|
10161
|
+
"immutable": true,
|
|
10162
|
+
"locationInModule": {
|
|
10163
|
+
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
10164
|
+
"line": 450
|
|
10165
|
+
},
|
|
10166
|
+
"name": "filterPath",
|
|
9444
10167
|
"type": {
|
|
9445
10168
|
"primitive": "string"
|
|
9446
10169
|
}
|
|
@@ -9448,35 +10171,75 @@
|
|
|
9448
10171
|
{
|
|
9449
10172
|
"abstract": true,
|
|
9450
10173
|
"docs": {
|
|
9451
|
-
"default": "- Creation time not available",
|
|
9452
10174
|
"stability": "experimental",
|
|
9453
|
-
"summary": "
|
|
10175
|
+
"summary": "List of HTTP methods to include for this path Each filter specifies both a path and a list of HTTP methods Multiple filters can overlap and duplicates are automatically de-duplicated."
|
|
9454
10176
|
},
|
|
9455
10177
|
"immutable": true,
|
|
9456
10178
|
"locationInModule": {
|
|
9457
|
-
"filename": "lib/
|
|
9458
|
-
"line":
|
|
10179
|
+
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
10180
|
+
"line": 457
|
|
9459
10181
|
},
|
|
9460
|
-
"name": "
|
|
9461
|
-
"optional": true,
|
|
10182
|
+
"name": "methods",
|
|
9462
10183
|
"type": {
|
|
9463
|
-
"
|
|
10184
|
+
"collection": {
|
|
10185
|
+
"elementtype": {
|
|
10186
|
+
"fqn": "@aws-cdk/aws-bedrock-agentcore-alpha.ApiGatewayHttpMethod"
|
|
10187
|
+
},
|
|
10188
|
+
"kind": "array"
|
|
10189
|
+
}
|
|
10190
|
+
}
|
|
10191
|
+
}
|
|
10192
|
+
],
|
|
10193
|
+
"symbolId": "lib/gateway/targets/target-configuration:ApiGatewayToolFilter"
|
|
10194
|
+
},
|
|
10195
|
+
"@aws-cdk/aws-bedrock-agentcore-alpha.ApiGatewayToolOverride": {
|
|
10196
|
+
"assembly": "@aws-cdk/aws-bedrock-agentcore-alpha",
|
|
10197
|
+
"datatype": true,
|
|
10198
|
+
"docs": {
|
|
10199
|
+
"remarks": "Tool overrides allow you to customize the tool name or description for specific operations\nafter filtering. Each override must specify an explicit path and a single HTTP method.\nThe override must match an operation that exists in your API and must correspond to one\nof the operations resolved by your filters.",
|
|
10200
|
+
"stability": "experimental",
|
|
10201
|
+
"summary": "Configuration for overriding API Gateway tool metadata.",
|
|
10202
|
+
"example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as bedrock_agentcore_alpha from '@aws-cdk/aws-bedrock-agentcore-alpha';\nconst apiGatewayToolOverride: bedrock_agentcore_alpha.ApiGatewayToolOverride = {\n method: bedrock_agentcore_alpha.ApiGatewayHttpMethod.GET,\n name: 'name',\n path: 'path',\n\n // the properties below are optional\n description: 'description',\n};",
|
|
10203
|
+
"custom": {
|
|
10204
|
+
"exampleMetadata": "fixture=_generated"
|
|
10205
|
+
}
|
|
10206
|
+
},
|
|
10207
|
+
"fqn": "@aws-cdk/aws-bedrock-agentcore-alpha.ApiGatewayToolOverride",
|
|
10208
|
+
"kind": "interface",
|
|
10209
|
+
"locationInModule": {
|
|
10210
|
+
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
10211
|
+
"line": 468
|
|
10212
|
+
},
|
|
10213
|
+
"name": "ApiGatewayToolOverride",
|
|
10214
|
+
"properties": [
|
|
10215
|
+
{
|
|
10216
|
+
"abstract": true,
|
|
10217
|
+
"docs": {
|
|
10218
|
+
"stability": "experimental",
|
|
10219
|
+
"summary": "The HTTP method for this override Must be a single method (no wildcards)."
|
|
10220
|
+
},
|
|
10221
|
+
"immutable": true,
|
|
10222
|
+
"locationInModule": {
|
|
10223
|
+
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
10224
|
+
"line": 479
|
|
10225
|
+
},
|
|
10226
|
+
"name": "method",
|
|
10227
|
+
"type": {
|
|
10228
|
+
"fqn": "@aws-cdk/aws-bedrock-agentcore-alpha.ApiGatewayHttpMethod"
|
|
9464
10229
|
}
|
|
9465
10230
|
},
|
|
9466
10231
|
{
|
|
9467
10232
|
"abstract": true,
|
|
9468
10233
|
"docs": {
|
|
9469
|
-
"default": "- No description",
|
|
9470
10234
|
"stability": "experimental",
|
|
9471
|
-
"summary": "The
|
|
10235
|
+
"summary": "The custom tool name If not provided, the operationId from the OpenAPI definition will be used."
|
|
9472
10236
|
},
|
|
9473
10237
|
"immutable": true,
|
|
9474
10238
|
"locationInModule": {
|
|
9475
|
-
"filename": "lib/
|
|
9476
|
-
"line":
|
|
10239
|
+
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
10240
|
+
"line": 485
|
|
9477
10241
|
},
|
|
9478
|
-
"name": "
|
|
9479
|
-
"optional": true,
|
|
10242
|
+
"name": "name",
|
|
9480
10243
|
"type": {
|
|
9481
10244
|
"primitive": "string"
|
|
9482
10245
|
}
|
|
@@ -9484,17 +10247,15 @@
|
|
|
9484
10247
|
{
|
|
9485
10248
|
"abstract": true,
|
|
9486
10249
|
"docs": {
|
|
9487
|
-
"default": "- Last update time not available",
|
|
9488
10250
|
"stability": "experimental",
|
|
9489
|
-
"summary": "The
|
|
10251
|
+
"summary": "The explicit resource path (no wildcards) Must match an operation that exists in your API."
|
|
9490
10252
|
},
|
|
9491
10253
|
"immutable": true,
|
|
9492
10254
|
"locationInModule": {
|
|
9493
|
-
"filename": "lib/
|
|
9494
|
-
"line":
|
|
10255
|
+
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
10256
|
+
"line": 473
|
|
9495
10257
|
},
|
|
9496
|
-
"name": "
|
|
9497
|
-
"optional": true,
|
|
10258
|
+
"name": "path",
|
|
9498
10259
|
"type": {
|
|
9499
10260
|
"primitive": "string"
|
|
9500
10261
|
}
|
|
@@ -9502,28 +10263,23 @@
|
|
|
9502
10263
|
{
|
|
9503
10264
|
"abstract": true,
|
|
9504
10265
|
"docs": {
|
|
9505
|
-
"default": "-
|
|
10266
|
+
"default": "- No custom description",
|
|
9506
10267
|
"stability": "experimental",
|
|
9507
|
-
"summary": "
|
|
10268
|
+
"summary": "Optional custom description for the tool."
|
|
9508
10269
|
},
|
|
9509
10270
|
"immutable": true,
|
|
9510
10271
|
"locationInModule": {
|
|
9511
|
-
"filename": "lib/
|
|
9512
|
-
"line":
|
|
10272
|
+
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
10273
|
+
"line": 491
|
|
9513
10274
|
},
|
|
9514
|
-
"name": "
|
|
10275
|
+
"name": "description",
|
|
9515
10276
|
"optional": true,
|
|
9516
10277
|
"type": {
|
|
9517
|
-
"
|
|
9518
|
-
"elementtype": {
|
|
9519
|
-
"fqn": "aws-cdk-lib.aws_ec2.ISecurityGroup"
|
|
9520
|
-
},
|
|
9521
|
-
"kind": "array"
|
|
9522
|
-
}
|
|
10278
|
+
"primitive": "string"
|
|
9523
10279
|
}
|
|
9524
10280
|
}
|
|
9525
10281
|
],
|
|
9526
|
-
"symbolId": "lib/
|
|
10282
|
+
"symbolId": "lib/gateway/targets/target-configuration:ApiGatewayToolOverride"
|
|
9527
10283
|
},
|
|
9528
10284
|
"@aws-cdk/aws-bedrock-agentcore-alpha.ApiKeyAdditionalConfiguration": {
|
|
9529
10285
|
"assembly": "@aws-cdk/aws-bedrock-agentcore-alpha",
|
|
@@ -11791,6 +12547,84 @@
|
|
|
11791
12547
|
"name": "BrowserSigning",
|
|
11792
12548
|
"symbolId": "lib/tools/browser:BrowserSigning"
|
|
11793
12549
|
},
|
|
12550
|
+
"@aws-cdk/aws-bedrock-agentcore-alpha.CodeAssetOptions": {
|
|
12551
|
+
"assembly": "@aws-cdk/aws-bedrock-agentcore-alpha",
|
|
12552
|
+
"datatype": true,
|
|
12553
|
+
"docs": {
|
|
12554
|
+
"stability": "experimental",
|
|
12555
|
+
"summary": "Options for configuring an S3 code asset from local files for agent runtime artifact.",
|
|
12556
|
+
"example": "const agentRuntimeArtifact = agentcore.AgentRuntimeArtifact.fromCodeAsset({\n path: path.join(__dirname, 'path/to/agent/code'),\n runtime: agentcore.AgentCoreRuntime.PYTHON_3_12,\n entrypoint: ['opentelemetry-instrument', 'main.py'],\n});\n\nconst runtimeInstance = new agentcore.Runtime(this, \"MyAgentRuntime\", {\n runtimeName: \"myAgent\",\n agentRuntimeArtifact: agentRuntimeArtifact,\n});",
|
|
12557
|
+
"custom": {
|
|
12558
|
+
"exampleMetadata": "fixture=default infused"
|
|
12559
|
+
}
|
|
12560
|
+
},
|
|
12561
|
+
"fqn": "@aws-cdk/aws-bedrock-agentcore-alpha.CodeAssetOptions",
|
|
12562
|
+
"interfaces": [
|
|
12563
|
+
"aws-cdk-lib.aws_s3_assets.AssetOptions"
|
|
12564
|
+
],
|
|
12565
|
+
"kind": "interface",
|
|
12566
|
+
"locationInModule": {
|
|
12567
|
+
"filename": "lib/runtime/runtime-artifact.ts",
|
|
12568
|
+
"line": 50
|
|
12569
|
+
},
|
|
12570
|
+
"name": "CodeAssetOptions",
|
|
12571
|
+
"properties": [
|
|
12572
|
+
{
|
|
12573
|
+
"abstract": true,
|
|
12574
|
+
"docs": {
|
|
12575
|
+
"stability": "experimental",
|
|
12576
|
+
"summary": "The entry point for the code execution, specifying the function or method that should be invoked when the code runs."
|
|
12577
|
+
},
|
|
12578
|
+
"immutable": true,
|
|
12579
|
+
"locationInModule": {
|
|
12580
|
+
"filename": "lib/runtime/runtime-artifact.ts",
|
|
12581
|
+
"line": 64
|
|
12582
|
+
},
|
|
12583
|
+
"name": "entrypoint",
|
|
12584
|
+
"type": {
|
|
12585
|
+
"collection": {
|
|
12586
|
+
"elementtype": {
|
|
12587
|
+
"primitive": "string"
|
|
12588
|
+
},
|
|
12589
|
+
"kind": "array"
|
|
12590
|
+
}
|
|
12591
|
+
}
|
|
12592
|
+
},
|
|
12593
|
+
{
|
|
12594
|
+
"abstract": true,
|
|
12595
|
+
"docs": {
|
|
12596
|
+
"stability": "experimental",
|
|
12597
|
+
"summary": "The file path to the code asset."
|
|
12598
|
+
},
|
|
12599
|
+
"immutable": true,
|
|
12600
|
+
"locationInModule": {
|
|
12601
|
+
"filename": "lib/runtime/runtime-artifact.ts",
|
|
12602
|
+
"line": 54
|
|
12603
|
+
},
|
|
12604
|
+
"name": "path",
|
|
12605
|
+
"type": {
|
|
12606
|
+
"primitive": "string"
|
|
12607
|
+
}
|
|
12608
|
+
},
|
|
12609
|
+
{
|
|
12610
|
+
"abstract": true,
|
|
12611
|
+
"docs": {
|
|
12612
|
+
"stability": "experimental",
|
|
12613
|
+
"summary": "The runtime environment for executing the code."
|
|
12614
|
+
},
|
|
12615
|
+
"immutable": true,
|
|
12616
|
+
"locationInModule": {
|
|
12617
|
+
"filename": "lib/runtime/runtime-artifact.ts",
|
|
12618
|
+
"line": 59
|
|
12619
|
+
},
|
|
12620
|
+
"name": "runtime",
|
|
12621
|
+
"type": {
|
|
12622
|
+
"fqn": "@aws-cdk/aws-bedrock-agentcore-alpha.AgentCoreRuntime"
|
|
12623
|
+
}
|
|
12624
|
+
}
|
|
12625
|
+
],
|
|
12626
|
+
"symbolId": "lib/runtime/runtime-artifact:CodeAssetOptions"
|
|
12627
|
+
},
|
|
11794
12628
|
"@aws-cdk/aws-bedrock-agentcore-alpha.CodeInterpreterCustom": {
|
|
11795
12629
|
"assembly": "@aws-cdk/aws-bedrock-agentcore-alpha",
|
|
11796
12630
|
"base": "@aws-cdk/aws-bedrock-agentcore-alpha.CodeInterpreterCustomBase",
|
|
@@ -13673,7 +14507,7 @@
|
|
|
13673
14507
|
},
|
|
13674
14508
|
"locationInModule": {
|
|
13675
14509
|
"filename": "lib/gateway/gateway.ts",
|
|
13676
|
-
"line":
|
|
14510
|
+
"line": 502
|
|
13677
14511
|
},
|
|
13678
14512
|
"parameters": [
|
|
13679
14513
|
{
|
|
@@ -13700,7 +14534,7 @@
|
|
|
13700
14534
|
"kind": "class",
|
|
13701
14535
|
"locationInModule": {
|
|
13702
14536
|
"filename": "lib/gateway/gateway.ts",
|
|
13703
|
-
"line":
|
|
14537
|
+
"line": 329
|
|
13704
14538
|
},
|
|
13705
14539
|
"methods": [
|
|
13706
14540
|
{
|
|
@@ -13711,7 +14545,7 @@
|
|
|
13711
14545
|
},
|
|
13712
14546
|
"locationInModule": {
|
|
13713
14547
|
"filename": "lib/gateway/gateway.ts",
|
|
13714
|
-
"line":
|
|
14548
|
+
"line": 341
|
|
13715
14549
|
},
|
|
13716
14550
|
"name": "fromGatewayAttributes",
|
|
13717
14551
|
"parameters": [
|
|
@@ -13750,6 +14584,44 @@
|
|
|
13750
14584
|
},
|
|
13751
14585
|
"static": true
|
|
13752
14586
|
},
|
|
14587
|
+
{
|
|
14588
|
+
"docs": {
|
|
14589
|
+
"returns": "The created GatewayTarget",
|
|
14590
|
+
"see": "https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway-target-api-gateway.html",
|
|
14591
|
+
"stability": "experimental",
|
|
14592
|
+
"summary": "Add an API Gateway target to this gateway This is a convenience method that creates a GatewayTarget associated with this gateway."
|
|
14593
|
+
},
|
|
14594
|
+
"locationInModule": {
|
|
14595
|
+
"filename": "lib/gateway/gateway.ts",
|
|
14596
|
+
"line": 704
|
|
14597
|
+
},
|
|
14598
|
+
"name": "addApiGatewayTarget",
|
|
14599
|
+
"parameters": [
|
|
14600
|
+
{
|
|
14601
|
+
"docs": {
|
|
14602
|
+
"summary": "The construct id for the target."
|
|
14603
|
+
},
|
|
14604
|
+
"name": "id",
|
|
14605
|
+
"type": {
|
|
14606
|
+
"primitive": "string"
|
|
14607
|
+
}
|
|
14608
|
+
},
|
|
14609
|
+
{
|
|
14610
|
+
"docs": {
|
|
14611
|
+
"summary": "Properties for the API Gateway target."
|
|
14612
|
+
},
|
|
14613
|
+
"name": "props",
|
|
14614
|
+
"type": {
|
|
14615
|
+
"fqn": "@aws-cdk/aws-bedrock-agentcore-alpha.AddApiGatewayTargetOptions"
|
|
14616
|
+
}
|
|
14617
|
+
}
|
|
14618
|
+
],
|
|
14619
|
+
"returns": {
|
|
14620
|
+
"type": {
|
|
14621
|
+
"fqn": "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayTarget"
|
|
14622
|
+
}
|
|
14623
|
+
}
|
|
14624
|
+
},
|
|
13753
14625
|
{
|
|
13754
14626
|
"docs": {
|
|
13755
14627
|
"custom": {
|
|
@@ -13761,7 +14633,7 @@
|
|
|
13761
14633
|
},
|
|
13762
14634
|
"locationInModule": {
|
|
13763
14635
|
"filename": "lib/gateway/gateway.ts",
|
|
13764
|
-
"line":
|
|
14636
|
+
"line": 937
|
|
13765
14637
|
},
|
|
13766
14638
|
"name": "addInterceptor",
|
|
13767
14639
|
"parameters": [
|
|
@@ -13784,7 +14656,7 @@
|
|
|
13784
14656
|
},
|
|
13785
14657
|
"locationInModule": {
|
|
13786
14658
|
"filename": "lib/gateway/gateway.ts",
|
|
13787
|
-
"line":
|
|
14659
|
+
"line": 588
|
|
13788
14660
|
},
|
|
13789
14661
|
"name": "addLambdaTarget",
|
|
13790
14662
|
"parameters": [
|
|
@@ -13822,7 +14694,7 @@
|
|
|
13822
14694
|
},
|
|
13823
14695
|
"locationInModule": {
|
|
13824
14696
|
"filename": "lib/gateway/gateway.ts",
|
|
13825
|
-
"line":
|
|
14697
|
+
"line": 674
|
|
13826
14698
|
},
|
|
13827
14699
|
"name": "addMcpServerTarget",
|
|
13828
14700
|
"parameters": [
|
|
@@ -13859,7 +14731,7 @@
|
|
|
13859
14731
|
},
|
|
13860
14732
|
"locationInModule": {
|
|
13861
14733
|
"filename": "lib/gateway/gateway.ts",
|
|
13862
|
-
"line":
|
|
14734
|
+
"line": 619
|
|
13863
14735
|
},
|
|
13864
14736
|
"name": "addOpenApiTarget",
|
|
13865
14737
|
"parameters": [
|
|
@@ -13896,7 +14768,7 @@
|
|
|
13896
14768
|
},
|
|
13897
14769
|
"locationInModule": {
|
|
13898
14770
|
"filename": "lib/gateway/gateway.ts",
|
|
13899
|
-
"line":
|
|
14771
|
+
"line": 644
|
|
13900
14772
|
},
|
|
13901
14773
|
"name": "addSmithyTarget",
|
|
13902
14774
|
"parameters": [
|
|
@@ -13937,7 +14809,7 @@
|
|
|
13937
14809
|
"immutable": true,
|
|
13938
14810
|
"locationInModule": {
|
|
13939
14811
|
"filename": "lib/gateway/gateway.ts",
|
|
13940
|
-
"line":
|
|
14812
|
+
"line": 332
|
|
13941
14813
|
},
|
|
13942
14814
|
"name": "PROPERTY_INJECTION_ID",
|
|
13943
14815
|
"static": true,
|
|
@@ -13953,7 +14825,7 @@
|
|
|
13953
14825
|
"immutable": true,
|
|
13954
14826
|
"locationInModule": {
|
|
13955
14827
|
"filename": "lib/gateway/gateway.ts",
|
|
13956
|
-
"line":
|
|
14828
|
+
"line": 406
|
|
13957
14829
|
},
|
|
13958
14830
|
"name": "authorizerConfiguration",
|
|
13959
14831
|
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayBase",
|
|
@@ -13972,7 +14844,7 @@
|
|
|
13972
14844
|
"immutable": true,
|
|
13973
14845
|
"locationInModule": {
|
|
13974
14846
|
"filename": "lib/gateway/gateway.ts",
|
|
13975
|
-
"line":
|
|
14847
|
+
"line": 380
|
|
13976
14848
|
},
|
|
13977
14849
|
"name": "gatewayArn",
|
|
13978
14850
|
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayBase",
|
|
@@ -13991,7 +14863,7 @@
|
|
|
13991
14863
|
"immutable": true,
|
|
13992
14864
|
"locationInModule": {
|
|
13993
14865
|
"filename": "lib/gateway/gateway.ts",
|
|
13994
|
-
"line":
|
|
14866
|
+
"line": 386
|
|
13995
14867
|
},
|
|
13996
14868
|
"name": "gatewayId",
|
|
13997
14869
|
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayBase",
|
|
@@ -14007,7 +14879,7 @@
|
|
|
14007
14879
|
"immutable": true,
|
|
14008
14880
|
"locationInModule": {
|
|
14009
14881
|
"filename": "lib/gateway/gateway.ts",
|
|
14010
|
-
"line":
|
|
14882
|
+
"line": 391
|
|
14011
14883
|
},
|
|
14012
14884
|
"name": "name",
|
|
14013
14885
|
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayBase",
|
|
@@ -14023,7 +14895,7 @@
|
|
|
14023
14895
|
"immutable": true,
|
|
14024
14896
|
"locationInModule": {
|
|
14025
14897
|
"filename": "lib/gateway/gateway.ts",
|
|
14026
|
-
"line":
|
|
14898
|
+
"line": 401
|
|
14027
14899
|
},
|
|
14028
14900
|
"name": "protocolConfiguration",
|
|
14029
14901
|
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayBase",
|
|
@@ -14039,7 +14911,7 @@
|
|
|
14039
14911
|
"immutable": true,
|
|
14040
14912
|
"locationInModule": {
|
|
14041
14913
|
"filename": "lib/gateway/gateway.ts",
|
|
14042
|
-
"line":
|
|
14914
|
+
"line": 421
|
|
14043
14915
|
},
|
|
14044
14916
|
"name": "role",
|
|
14045
14917
|
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayBase",
|
|
@@ -14058,7 +14930,7 @@
|
|
|
14058
14930
|
"immutable": true,
|
|
14059
14931
|
"locationInModule": {
|
|
14060
14932
|
"filename": "lib/gateway/gateway.ts",
|
|
14061
|
-
"line":
|
|
14933
|
+
"line": 445
|
|
14062
14934
|
},
|
|
14063
14935
|
"name": "createdAt",
|
|
14064
14936
|
"optional": true,
|
|
@@ -14075,7 +14947,7 @@
|
|
|
14075
14947
|
"immutable": true,
|
|
14076
14948
|
"locationInModule": {
|
|
14077
14949
|
"filename": "lib/gateway/gateway.ts",
|
|
14078
|
-
"line":
|
|
14950
|
+
"line": 396
|
|
14079
14951
|
},
|
|
14080
14952
|
"name": "description",
|
|
14081
14953
|
"optional": true,
|
|
@@ -14092,7 +14964,7 @@
|
|
|
14092
14964
|
"immutable": true,
|
|
14093
14965
|
"locationInModule": {
|
|
14094
14966
|
"filename": "lib/gateway/gateway.ts",
|
|
14095
|
-
"line":
|
|
14967
|
+
"line": 411
|
|
14096
14968
|
},
|
|
14097
14969
|
"name": "exceptionLevel",
|
|
14098
14970
|
"optional": true,
|
|
@@ -14112,7 +14984,7 @@
|
|
|
14112
14984
|
"immutable": true,
|
|
14113
14985
|
"locationInModule": {
|
|
14114
14986
|
"filename": "lib/gateway/gateway.ts",
|
|
14115
|
-
"line":
|
|
14987
|
+
"line": 427
|
|
14116
14988
|
},
|
|
14117
14989
|
"name": "gatewayUrl",
|
|
14118
14990
|
"optional": true,
|
|
@@ -14129,7 +15001,7 @@
|
|
|
14129
15001
|
"immutable": true,
|
|
14130
15002
|
"locationInModule": {
|
|
14131
15003
|
"filename": "lib/gateway/gateway.ts",
|
|
14132
|
-
"line":
|
|
15004
|
+
"line": 416
|
|
14133
15005
|
},
|
|
14134
15006
|
"name": "kmsKey",
|
|
14135
15007
|
"optional": true,
|
|
@@ -14147,7 +15019,7 @@
|
|
|
14147
15019
|
"immutable": true,
|
|
14148
15020
|
"locationInModule": {
|
|
14149
15021
|
"filename": "lib/gateway/gateway.ts",
|
|
14150
|
-
"line":
|
|
15022
|
+
"line": 500
|
|
14151
15023
|
},
|
|
14152
15024
|
"name": "oauthScopes",
|
|
14153
15025
|
"optional": true,
|
|
@@ -14171,7 +15043,7 @@
|
|
|
14171
15043
|
"immutable": true,
|
|
14172
15044
|
"locationInModule": {
|
|
14173
15045
|
"filename": "lib/gateway/gateway.ts",
|
|
14174
|
-
"line":
|
|
15046
|
+
"line": 433
|
|
14175
15047
|
},
|
|
14176
15048
|
"name": "status",
|
|
14177
15049
|
"optional": true,
|
|
@@ -14191,7 +15063,7 @@
|
|
|
14191
15063
|
"immutable": true,
|
|
14192
15064
|
"locationInModule": {
|
|
14193
15065
|
"filename": "lib/gateway/gateway.ts",
|
|
14194
|
-
"line":
|
|
15066
|
+
"line": 439
|
|
14195
15067
|
},
|
|
14196
15068
|
"name": "statusReason",
|
|
14197
15069
|
"optional": true,
|
|
@@ -14213,7 +15085,7 @@
|
|
|
14213
15085
|
"immutable": true,
|
|
14214
15086
|
"locationInModule": {
|
|
14215
15087
|
"filename": "lib/gateway/gateway.ts",
|
|
14216
|
-
"line":
|
|
15088
|
+
"line": 456
|
|
14217
15089
|
},
|
|
14218
15090
|
"name": "tags",
|
|
14219
15091
|
"optional": true,
|
|
@@ -14235,7 +15107,7 @@
|
|
|
14235
15107
|
"immutable": true,
|
|
14236
15108
|
"locationInModule": {
|
|
14237
15109
|
"filename": "lib/gateway/gateway.ts",
|
|
14238
|
-
"line":
|
|
15110
|
+
"line": 494
|
|
14239
15111
|
},
|
|
14240
15112
|
"name": "tokenEndpointUrl",
|
|
14241
15113
|
"optional": true,
|
|
@@ -14254,7 +15126,7 @@
|
|
|
14254
15126
|
"immutable": true,
|
|
14255
15127
|
"locationInModule": {
|
|
14256
15128
|
"filename": "lib/gateway/gateway.ts",
|
|
14257
|
-
"line":
|
|
15129
|
+
"line": 451
|
|
14258
15130
|
},
|
|
14259
15131
|
"name": "updatedAt",
|
|
14260
15132
|
"optional": true,
|
|
@@ -14270,7 +15142,7 @@
|
|
|
14270
15142
|
},
|
|
14271
15143
|
"locationInModule": {
|
|
14272
15144
|
"filename": "lib/gateway/gateway.ts",
|
|
14273
|
-
"line":
|
|
15145
|
+
"line": 488
|
|
14274
15146
|
},
|
|
14275
15147
|
"name": "resourceServer",
|
|
14276
15148
|
"optional": true,
|
|
@@ -14285,7 +15157,7 @@
|
|
|
14285
15157
|
},
|
|
14286
15158
|
"locationInModule": {
|
|
14287
15159
|
"filename": "lib/gateway/gateway.ts",
|
|
14288
|
-
"line":
|
|
15160
|
+
"line": 461
|
|
14289
15161
|
},
|
|
14290
15162
|
"name": "userPool",
|
|
14291
15163
|
"optional": true,
|
|
@@ -14300,7 +15172,7 @@
|
|
|
14300
15172
|
},
|
|
14301
15173
|
"locationInModule": {
|
|
14302
15174
|
"filename": "lib/gateway/gateway.ts",
|
|
14303
|
-
"line":
|
|
15175
|
+
"line": 466
|
|
14304
15176
|
},
|
|
14305
15177
|
"name": "userPoolClient",
|
|
14306
15178
|
"optional": true,
|
|
@@ -14315,7 +15187,7 @@
|
|
|
14315
15187
|
},
|
|
14316
15188
|
"locationInModule": {
|
|
14317
15189
|
"filename": "lib/gateway/gateway.ts",
|
|
14318
|
-
"line":
|
|
15190
|
+
"line": 483
|
|
14319
15191
|
},
|
|
14320
15192
|
"name": "userPoolDomain",
|
|
14321
15193
|
"optional": true,
|
|
@@ -14341,7 +15213,7 @@
|
|
|
14341
15213
|
"kind": "interface",
|
|
14342
15214
|
"locationInModule": {
|
|
14343
15215
|
"filename": "lib/gateway/gateway.ts",
|
|
14344
|
-
"line":
|
|
15216
|
+
"line": 297
|
|
14345
15217
|
},
|
|
14346
15218
|
"name": "GatewayAttributes",
|
|
14347
15219
|
"properties": [
|
|
@@ -14354,7 +15226,7 @@
|
|
|
14354
15226
|
"immutable": true,
|
|
14355
15227
|
"locationInModule": {
|
|
14356
15228
|
"filename": "lib/gateway/gateway.ts",
|
|
14357
|
-
"line":
|
|
15229
|
+
"line": 301
|
|
14358
15230
|
},
|
|
14359
15231
|
"name": "gatewayArn",
|
|
14360
15232
|
"type": {
|
|
@@ -14370,7 +15242,7 @@
|
|
|
14370
15242
|
"immutable": true,
|
|
14371
15243
|
"locationInModule": {
|
|
14372
15244
|
"filename": "lib/gateway/gateway.ts",
|
|
14373
|
-
"line":
|
|
15245
|
+
"line": 306
|
|
14374
15246
|
},
|
|
14375
15247
|
"name": "gatewayId",
|
|
14376
15248
|
"type": {
|
|
@@ -14386,7 +15258,7 @@
|
|
|
14386
15258
|
"immutable": true,
|
|
14387
15259
|
"locationInModule": {
|
|
14388
15260
|
"filename": "lib/gateway/gateway.ts",
|
|
14389
|
-
"line":
|
|
15261
|
+
"line": 311
|
|
14390
15262
|
},
|
|
14391
15263
|
"name": "gatewayName",
|
|
14392
15264
|
"type": {
|
|
@@ -14402,7 +15274,7 @@
|
|
|
14402
15274
|
"immutable": true,
|
|
14403
15275
|
"locationInModule": {
|
|
14404
15276
|
"filename": "lib/gateway/gateway.ts",
|
|
14405
|
-
"line":
|
|
15277
|
+
"line": 316
|
|
14406
15278
|
},
|
|
14407
15279
|
"name": "role",
|
|
14408
15280
|
"type": {
|
|
@@ -15526,7 +16398,7 @@
|
|
|
15526
16398
|
"kind": "interface",
|
|
15527
16399
|
"locationInModule": {
|
|
15528
16400
|
"filename": "lib/gateway/gateway.ts",
|
|
15529
|
-
"line":
|
|
16401
|
+
"line": 221
|
|
15530
16402
|
},
|
|
15531
16403
|
"name": "GatewayProps",
|
|
15532
16404
|
"properties": [
|
|
@@ -15540,7 +16412,7 @@
|
|
|
15540
16412
|
"immutable": true,
|
|
15541
16413
|
"locationInModule": {
|
|
15542
16414
|
"filename": "lib/gateway/gateway.ts",
|
|
15543
|
-
"line":
|
|
16415
|
+
"line": 251
|
|
15544
16416
|
},
|
|
15545
16417
|
"name": "authorizerConfiguration",
|
|
15546
16418
|
"optional": true,
|
|
@@ -15558,7 +16430,7 @@
|
|
|
15558
16430
|
"immutable": true,
|
|
15559
16431
|
"locationInModule": {
|
|
15560
16432
|
"filename": "lib/gateway/gateway.ts",
|
|
15561
|
-
"line":
|
|
16433
|
+
"line": 236
|
|
15562
16434
|
},
|
|
15563
16435
|
"name": "description",
|
|
15564
16436
|
"optional": true,
|
|
@@ -15576,7 +16448,7 @@
|
|
|
15576
16448
|
"immutable": true,
|
|
15577
16449
|
"locationInModule": {
|
|
15578
16450
|
"filename": "lib/gateway/gateway.ts",
|
|
15579
|
-
"line":
|
|
16451
|
+
"line": 258
|
|
15580
16452
|
},
|
|
15581
16453
|
"name": "exceptionLevel",
|
|
15582
16454
|
"optional": true,
|
|
@@ -15594,7 +16466,7 @@
|
|
|
15594
16466
|
"immutable": true,
|
|
15595
16467
|
"locationInModule": {
|
|
15596
16468
|
"filename": "lib/gateway/gateway.ts",
|
|
15597
|
-
"line":
|
|
16469
|
+
"line": 228
|
|
15598
16470
|
},
|
|
15599
16471
|
"name": "gatewayName",
|
|
15600
16472
|
"optional": true,
|
|
@@ -15614,7 +16486,7 @@
|
|
|
15614
16486
|
"immutable": true,
|
|
15615
16487
|
"locationInModule": {
|
|
15616
16488
|
"filename": "lib/gateway/gateway.ts",
|
|
15617
|
-
"line":
|
|
16489
|
+
"line": 291
|
|
15618
16490
|
},
|
|
15619
16491
|
"name": "interceptorConfigurations",
|
|
15620
16492
|
"optional": true,
|
|
@@ -15637,7 +16509,7 @@
|
|
|
15637
16509
|
"immutable": true,
|
|
15638
16510
|
"locationInModule": {
|
|
15639
16511
|
"filename": "lib/gateway/gateway.ts",
|
|
15640
|
-
"line":
|
|
16512
|
+
"line": 264
|
|
15641
16513
|
},
|
|
15642
16514
|
"name": "kmsKey",
|
|
15643
16515
|
"optional": true,
|
|
@@ -15655,7 +16527,7 @@
|
|
|
15655
16527
|
"immutable": true,
|
|
15656
16528
|
"locationInModule": {
|
|
15657
16529
|
"filename": "lib/gateway/gateway.ts",
|
|
15658
|
-
"line":
|
|
16530
|
+
"line": 245
|
|
15659
16531
|
},
|
|
15660
16532
|
"name": "protocolConfiguration",
|
|
15661
16533
|
"optional": true,
|
|
@@ -15673,7 +16545,7 @@
|
|
|
15673
16545
|
"immutable": true,
|
|
15674
16546
|
"locationInModule": {
|
|
15675
16547
|
"filename": "lib/gateway/gateway.ts",
|
|
15676
|
-
"line":
|
|
16548
|
+
"line": 270
|
|
15677
16549
|
},
|
|
15678
16550
|
"name": "role",
|
|
15679
16551
|
"optional": true,
|
|
@@ -15691,7 +16563,7 @@
|
|
|
15691
16563
|
"immutable": true,
|
|
15692
16564
|
"locationInModule": {
|
|
15693
16565
|
"filename": "lib/gateway/gateway.ts",
|
|
15694
|
-
"line":
|
|
16566
|
+
"line": 277
|
|
15695
16567
|
},
|
|
15696
16568
|
"name": "tags",
|
|
15697
16569
|
"optional": true,
|
|
@@ -15781,7 +16653,7 @@
|
|
|
15781
16653
|
},
|
|
15782
16654
|
"locationInModule": {
|
|
15783
16655
|
"filename": "lib/gateway/targets/target.ts",
|
|
15784
|
-
"line":
|
|
16656
|
+
"line": 508
|
|
15785
16657
|
},
|
|
15786
16658
|
"parameters": [
|
|
15787
16659
|
{
|
|
@@ -15810,9 +16682,57 @@
|
|
|
15810
16682
|
"kind": "class",
|
|
15811
16683
|
"locationInModule": {
|
|
15812
16684
|
"filename": "lib/gateway/targets/target.ts",
|
|
15813
|
-
"line":
|
|
16685
|
+
"line": 275
|
|
15814
16686
|
},
|
|
15815
16687
|
"methods": [
|
|
16688
|
+
{
|
|
16689
|
+
"docs": {
|
|
16690
|
+
"returns": "A new GatewayTarget instance",
|
|
16691
|
+
"see": "https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway-target-api-gateway.html",
|
|
16692
|
+
"stability": "experimental",
|
|
16693
|
+
"summary": "Create an API Gateway-based target Convenience method for creating a target that connects to an API Gateway REST API."
|
|
16694
|
+
},
|
|
16695
|
+
"locationInModule": {
|
|
16696
|
+
"filename": "lib/gateway/targets/target.ts",
|
|
16697
|
+
"line": 420
|
|
16698
|
+
},
|
|
16699
|
+
"name": "forApiGateway",
|
|
16700
|
+
"parameters": [
|
|
16701
|
+
{
|
|
16702
|
+
"docs": {
|
|
16703
|
+
"summary": "The construct scope."
|
|
16704
|
+
},
|
|
16705
|
+
"name": "scope",
|
|
16706
|
+
"type": {
|
|
16707
|
+
"fqn": "constructs.Construct"
|
|
16708
|
+
}
|
|
16709
|
+
},
|
|
16710
|
+
{
|
|
16711
|
+
"docs": {
|
|
16712
|
+
"summary": "The construct id."
|
|
16713
|
+
},
|
|
16714
|
+
"name": "id",
|
|
16715
|
+
"type": {
|
|
16716
|
+
"primitive": "string"
|
|
16717
|
+
}
|
|
16718
|
+
},
|
|
16719
|
+
{
|
|
16720
|
+
"docs": {
|
|
16721
|
+
"summary": "The properties for the API Gateway target."
|
|
16722
|
+
},
|
|
16723
|
+
"name": "props",
|
|
16724
|
+
"type": {
|
|
16725
|
+
"fqn": "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayTargetApiGatewayProps"
|
|
16726
|
+
}
|
|
16727
|
+
}
|
|
16728
|
+
],
|
|
16729
|
+
"returns": {
|
|
16730
|
+
"type": {
|
|
16731
|
+
"fqn": "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayTarget"
|
|
16732
|
+
}
|
|
16733
|
+
},
|
|
16734
|
+
"static": true
|
|
16735
|
+
},
|
|
15816
16736
|
{
|
|
15817
16737
|
"docs": {
|
|
15818
16738
|
"returns": "A new GatewayTarget instance",
|
|
@@ -15821,7 +16741,7 @@
|
|
|
15821
16741
|
},
|
|
15822
16742
|
"locationInModule": {
|
|
15823
16743
|
"filename": "lib/gateway/targets/target.ts",
|
|
15824
|
-
"line":
|
|
16744
|
+
"line": 322
|
|
15825
16745
|
},
|
|
15826
16746
|
"name": "forLambda",
|
|
15827
16747
|
"parameters": [
|
|
@@ -15869,7 +16789,7 @@
|
|
|
15869
16789
|
},
|
|
15870
16790
|
"locationInModule": {
|
|
15871
16791
|
"filename": "lib/gateway/targets/target.ts",
|
|
15872
|
-
"line":
|
|
16792
|
+
"line": 396
|
|
15873
16793
|
},
|
|
15874
16794
|
"name": "forMcpServer",
|
|
15875
16795
|
"parameters": [
|
|
@@ -15916,7 +16836,7 @@
|
|
|
15916
16836
|
},
|
|
15917
16837
|
"locationInModule": {
|
|
15918
16838
|
"filename": "lib/gateway/targets/target.ts",
|
|
15919
|
-
"line":
|
|
16839
|
+
"line": 349
|
|
15920
16840
|
},
|
|
15921
16841
|
"name": "forOpenApi",
|
|
15922
16842
|
"parameters": [
|
|
@@ -15963,7 +16883,7 @@
|
|
|
15963
16883
|
},
|
|
15964
16884
|
"locationInModule": {
|
|
15965
16885
|
"filename": "lib/gateway/targets/target.ts",
|
|
15966
|
-
"line":
|
|
16886
|
+
"line": 372
|
|
15967
16887
|
},
|
|
15968
16888
|
"name": "forSmithy",
|
|
15969
16889
|
"parameters": [
|
|
@@ -16010,7 +16930,7 @@
|
|
|
16010
16930
|
},
|
|
16011
16931
|
"locationInModule": {
|
|
16012
16932
|
"filename": "lib/gateway/targets/target.ts",
|
|
16013
|
-
"line":
|
|
16933
|
+
"line": 288
|
|
16014
16934
|
},
|
|
16015
16935
|
"name": "fromGatewayTargetAttributes",
|
|
16016
16936
|
"parameters": [
|
|
@@ -16057,7 +16977,7 @@
|
|
|
16057
16977
|
},
|
|
16058
16978
|
"locationInModule": {
|
|
16059
16979
|
"filename": "lib/gateway/targets/target.ts",
|
|
16060
|
-
"line":
|
|
16980
|
+
"line": 597
|
|
16061
16981
|
},
|
|
16062
16982
|
"name": "grantSync",
|
|
16063
16983
|
"parameters": [
|
|
@@ -16086,7 +17006,7 @@
|
|
|
16086
17006
|
"immutable": true,
|
|
16087
17007
|
"locationInModule": {
|
|
16088
17008
|
"filename": "lib/gateway/targets/target.ts",
|
|
16089
|
-
"line":
|
|
17009
|
+
"line": 278
|
|
16090
17010
|
},
|
|
16091
17011
|
"name": "PROPERTY_INJECTION_ID",
|
|
16092
17012
|
"static": true,
|
|
@@ -16102,7 +17022,7 @@
|
|
|
16102
17022
|
"immutable": true,
|
|
16103
17023
|
"locationInModule": {
|
|
16104
17024
|
"filename": "lib/gateway/targets/target.ts",
|
|
16105
|
-
"line":
|
|
17025
|
+
"line": 464
|
|
16106
17026
|
},
|
|
16107
17027
|
"name": "gateway",
|
|
16108
17028
|
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayTargetBase",
|
|
@@ -16118,7 +17038,7 @@
|
|
|
16118
17038
|
"immutable": true,
|
|
16119
17039
|
"locationInModule": {
|
|
16120
17040
|
"filename": "lib/gateway/targets/target.ts",
|
|
16121
|
-
"line":
|
|
17041
|
+
"line": 454
|
|
16122
17042
|
},
|
|
16123
17043
|
"name": "name",
|
|
16124
17044
|
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayTargetBase",
|
|
@@ -16137,7 +17057,7 @@
|
|
|
16137
17057
|
"immutable": true,
|
|
16138
17058
|
"locationInModule": {
|
|
16139
17059
|
"filename": "lib/gateway/targets/target.ts",
|
|
16140
|
-
"line":
|
|
17060
|
+
"line": 443
|
|
16141
17061
|
},
|
|
16142
17062
|
"name": "targetArn",
|
|
16143
17063
|
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayTargetBase",
|
|
@@ -16156,7 +17076,7 @@
|
|
|
16156
17076
|
"immutable": true,
|
|
16157
17077
|
"locationInModule": {
|
|
16158
17078
|
"filename": "lib/gateway/targets/target.ts",
|
|
16159
|
-
"line":
|
|
17079
|
+
"line": 449
|
|
16160
17080
|
},
|
|
16161
17081
|
"name": "targetId",
|
|
16162
17082
|
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayTargetBase",
|
|
@@ -16172,7 +17092,7 @@
|
|
|
16172
17092
|
"immutable": true,
|
|
16173
17093
|
"locationInModule": {
|
|
16174
17094
|
"filename": "lib/gateway/targets/target.ts",
|
|
16175
|
-
"line":
|
|
17095
|
+
"line": 474
|
|
16176
17096
|
},
|
|
16177
17097
|
"name": "targetProtocolType",
|
|
16178
17098
|
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayTargetBase",
|
|
@@ -16188,7 +17108,7 @@
|
|
|
16188
17108
|
"immutable": true,
|
|
16189
17109
|
"locationInModule": {
|
|
16190
17110
|
"filename": "lib/gateway/targets/target.ts",
|
|
16191
|
-
"line":
|
|
17111
|
+
"line": 479
|
|
16192
17112
|
},
|
|
16193
17113
|
"name": "targetType",
|
|
16194
17114
|
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.IMcpGatewayTarget",
|
|
@@ -16207,7 +17127,7 @@
|
|
|
16207
17127
|
"immutable": true,
|
|
16208
17128
|
"locationInModule": {
|
|
16209
17129
|
"filename": "lib/gateway/targets/target.ts",
|
|
16210
|
-
"line":
|
|
17130
|
+
"line": 497
|
|
16211
17131
|
},
|
|
16212
17132
|
"name": "createdAt",
|
|
16213
17133
|
"optional": true,
|
|
@@ -16224,7 +17144,7 @@
|
|
|
16224
17144
|
"immutable": true,
|
|
16225
17145
|
"locationInModule": {
|
|
16226
17146
|
"filename": "lib/gateway/targets/target.ts",
|
|
16227
|
-
"line":
|
|
17147
|
+
"line": 469
|
|
16228
17148
|
},
|
|
16229
17149
|
"name": "credentialProviderConfigurations",
|
|
16230
17150
|
"optional": true,
|
|
@@ -16246,7 +17166,7 @@
|
|
|
16246
17166
|
"immutable": true,
|
|
16247
17167
|
"locationInModule": {
|
|
16248
17168
|
"filename": "lib/gateway/targets/target.ts",
|
|
16249
|
-
"line":
|
|
17169
|
+
"line": 459
|
|
16250
17170
|
},
|
|
16251
17171
|
"name": "description",
|
|
16252
17172
|
"optional": true,
|
|
@@ -16266,62 +17186,194 @@
|
|
|
16266
17186
|
"immutable": true,
|
|
16267
17187
|
"locationInModule": {
|
|
16268
17188
|
"filename": "lib/gateway/targets/target.ts",
|
|
16269
|
-
"line":
|
|
17189
|
+
"line": 485
|
|
16270
17190
|
},
|
|
16271
17191
|
"name": "status",
|
|
16272
17192
|
"optional": true,
|
|
16273
|
-
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayTargetBase",
|
|
17193
|
+
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayTargetBase",
|
|
17194
|
+
"type": {
|
|
17195
|
+
"primitive": "string"
|
|
17196
|
+
}
|
|
17197
|
+
},
|
|
17198
|
+
{
|
|
17199
|
+
"docs": {
|
|
17200
|
+
"custom": {
|
|
17201
|
+
"attribute": "true"
|
|
17202
|
+
},
|
|
17203
|
+
"stability": "experimental",
|
|
17204
|
+
"summary": "The status reasons for the gateway target."
|
|
17205
|
+
},
|
|
17206
|
+
"immutable": true,
|
|
17207
|
+
"locationInModule": {
|
|
17208
|
+
"filename": "lib/gateway/targets/target.ts",
|
|
17209
|
+
"line": 491
|
|
17210
|
+
},
|
|
17211
|
+
"name": "statusReasons",
|
|
17212
|
+
"optional": true,
|
|
17213
|
+
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayTargetBase",
|
|
17214
|
+
"type": {
|
|
17215
|
+
"collection": {
|
|
17216
|
+
"elementtype": {
|
|
17217
|
+
"primitive": "string"
|
|
17218
|
+
},
|
|
17219
|
+
"kind": "array"
|
|
17220
|
+
}
|
|
17221
|
+
}
|
|
17222
|
+
},
|
|
17223
|
+
{
|
|
17224
|
+
"docs": {
|
|
17225
|
+
"custom": {
|
|
17226
|
+
"attribute": "true"
|
|
17227
|
+
},
|
|
17228
|
+
"stability": "experimental",
|
|
17229
|
+
"summary": "Timestamp when the gateway target was last updated."
|
|
17230
|
+
},
|
|
17231
|
+
"immutable": true,
|
|
17232
|
+
"locationInModule": {
|
|
17233
|
+
"filename": "lib/gateway/targets/target.ts",
|
|
17234
|
+
"line": 503
|
|
17235
|
+
},
|
|
17236
|
+
"name": "updatedAt",
|
|
17237
|
+
"optional": true,
|
|
17238
|
+
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayTargetBase",
|
|
17239
|
+
"type": {
|
|
17240
|
+
"primitive": "string"
|
|
17241
|
+
}
|
|
17242
|
+
}
|
|
17243
|
+
],
|
|
17244
|
+
"symbolId": "lib/gateway/targets/target:GatewayTarget"
|
|
17245
|
+
},
|
|
17246
|
+
"@aws-cdk/aws-bedrock-agentcore-alpha.GatewayTargetApiGatewayProps": {
|
|
17247
|
+
"assembly": "@aws-cdk/aws-bedrock-agentcore-alpha",
|
|
17248
|
+
"datatype": true,
|
|
17249
|
+
"docs": {
|
|
17250
|
+
"stability": "experimental",
|
|
17251
|
+
"summary": "Properties for creating an API Gateway-based Gateway Target.",
|
|
17252
|
+
"example": "const gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n});\n\nconst api = new apigateway.RestApi(this, 'MyApi', {\n restApiName: 'my-api',\n});\n\n// Create a gateway target using the static factory method\nconst apiGatewayTarget = agentcore.GatewayTarget.forApiGateway(this, \"MyApiGatewayTarget\", {\n gatewayTargetName: \"my-api-gateway-target\",\n description: \"Target for API Gateway REST API integration\",\n gateway: gateway,\n restApi: api,\n apiGatewayToolConfiguration: {\n toolFilters: [\n {\n filterPath: \"/pets/*\",\n methods: [agentcore.ApiGatewayHttpMethod.GET, agentcore.ApiGatewayHttpMethod.POST],\n },\n ],\n },\n metadataConfiguration: {\n allowedRequestHeaders: [\"X-User-Id\"],\n allowedQueryParameters: [\"limit\"],\n },\n});",
|
|
17253
|
+
"custom": {
|
|
17254
|
+
"exampleMetadata": "fixture=default infused"
|
|
17255
|
+
}
|
|
17256
|
+
},
|
|
17257
|
+
"fqn": "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayTargetApiGatewayProps",
|
|
17258
|
+
"interfaces": [
|
|
17259
|
+
"@aws-cdk/aws-bedrock-agentcore-alpha.GatewayTargetCommonProps"
|
|
17260
|
+
],
|
|
17261
|
+
"kind": "interface",
|
|
17262
|
+
"locationInModule": {
|
|
17263
|
+
"filename": "lib/gateway/targets/target.ts",
|
|
17264
|
+
"line": 178
|
|
17265
|
+
},
|
|
17266
|
+
"name": "GatewayTargetApiGatewayProps",
|
|
17267
|
+
"properties": [
|
|
17268
|
+
{
|
|
17269
|
+
"abstract": true,
|
|
17270
|
+
"docs": {
|
|
17271
|
+
"stability": "experimental",
|
|
17272
|
+
"summary": "Tool configuration defining which operations to expose."
|
|
17273
|
+
},
|
|
17274
|
+
"immutable": true,
|
|
17275
|
+
"locationInModule": {
|
|
17276
|
+
"filename": "lib/gateway/targets/target.ts",
|
|
17277
|
+
"line": 201
|
|
17278
|
+
},
|
|
17279
|
+
"name": "apiGatewayToolConfiguration",
|
|
17280
|
+
"type": {
|
|
17281
|
+
"fqn": "@aws-cdk/aws-bedrock-agentcore-alpha.ApiGatewayToolConfiguration"
|
|
17282
|
+
}
|
|
17283
|
+
},
|
|
17284
|
+
{
|
|
17285
|
+
"abstract": true,
|
|
17286
|
+
"docs": {
|
|
17287
|
+
"stability": "experimental",
|
|
17288
|
+
"summary": "The gateway this target belongs to [disable-awslint:prefer-ref-interface]."
|
|
17289
|
+
},
|
|
17290
|
+
"immutable": true,
|
|
17291
|
+
"locationInModule": {
|
|
17292
|
+
"filename": "lib/gateway/targets/target.ts",
|
|
17293
|
+
"line": 183
|
|
17294
|
+
},
|
|
17295
|
+
"name": "gateway",
|
|
17296
|
+
"type": {
|
|
17297
|
+
"fqn": "@aws-cdk/aws-bedrock-agentcore-alpha.IGateway"
|
|
17298
|
+
}
|
|
17299
|
+
},
|
|
17300
|
+
{
|
|
17301
|
+
"abstract": true,
|
|
17302
|
+
"docs": {
|
|
17303
|
+
"stability": "experimental",
|
|
17304
|
+
"summary": "The REST API to integrate with Must be in the same account and region as the gateway [disable-awslint:prefer-ref-interface]."
|
|
17305
|
+
},
|
|
17306
|
+
"immutable": true,
|
|
17307
|
+
"locationInModule": {
|
|
17308
|
+
"filename": "lib/gateway/targets/target.ts",
|
|
17309
|
+
"line": 190
|
|
17310
|
+
},
|
|
17311
|
+
"name": "restApi",
|
|
17312
|
+
"type": {
|
|
17313
|
+
"fqn": "aws-cdk-lib.aws_apigateway.IRestApi"
|
|
17314
|
+
}
|
|
17315
|
+
},
|
|
17316
|
+
{
|
|
17317
|
+
"abstract": true,
|
|
17318
|
+
"docs": {
|
|
17319
|
+
"default": "- Empty array (service handles IAM automatically)",
|
|
17320
|
+
"stability": "experimental",
|
|
17321
|
+
"summary": "Credential providers for authentication API Gateway targets support IAM and API key authentication."
|
|
17322
|
+
},
|
|
17323
|
+
"immutable": true,
|
|
17324
|
+
"locationInModule": {
|
|
17325
|
+
"filename": "lib/gateway/targets/target.ts",
|
|
17326
|
+
"line": 208
|
|
17327
|
+
},
|
|
17328
|
+
"name": "credentialProviderConfigurations",
|
|
17329
|
+
"optional": true,
|
|
16274
17330
|
"type": {
|
|
16275
|
-
"
|
|
17331
|
+
"collection": {
|
|
17332
|
+
"elementtype": {
|
|
17333
|
+
"fqn": "@aws-cdk/aws-bedrock-agentcore-alpha.ICredentialProviderConfig"
|
|
17334
|
+
},
|
|
17335
|
+
"kind": "array"
|
|
17336
|
+
}
|
|
16276
17337
|
}
|
|
16277
17338
|
},
|
|
16278
17339
|
{
|
|
17340
|
+
"abstract": true,
|
|
16279
17341
|
"docs": {
|
|
16280
|
-
"
|
|
16281
|
-
"attribute": "true"
|
|
16282
|
-
},
|
|
17342
|
+
"default": "- No metadata configuration",
|
|
16283
17343
|
"stability": "experimental",
|
|
16284
|
-
"summary": "
|
|
17344
|
+
"summary": "Metadata configuration for passing headers and query parameters Allows you to pass additional context through headers and query parameters."
|
|
16285
17345
|
},
|
|
16286
17346
|
"immutable": true,
|
|
16287
17347
|
"locationInModule": {
|
|
16288
17348
|
"filename": "lib/gateway/targets/target.ts",
|
|
16289
|
-
"line":
|
|
17349
|
+
"line": 215
|
|
16290
17350
|
},
|
|
16291
|
-
"name": "
|
|
17351
|
+
"name": "metadataConfiguration",
|
|
16292
17352
|
"optional": true,
|
|
16293
|
-
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayTargetBase",
|
|
16294
17353
|
"type": {
|
|
16295
|
-
"
|
|
16296
|
-
"elementtype": {
|
|
16297
|
-
"primitive": "string"
|
|
16298
|
-
},
|
|
16299
|
-
"kind": "array"
|
|
16300
|
-
}
|
|
17354
|
+
"fqn": "@aws-cdk/aws-bedrock-agentcore-alpha.MetadataConfiguration"
|
|
16301
17355
|
}
|
|
16302
17356
|
},
|
|
16303
17357
|
{
|
|
17358
|
+
"abstract": true,
|
|
16304
17359
|
"docs": {
|
|
16305
|
-
"
|
|
16306
|
-
"attribute": "true"
|
|
16307
|
-
},
|
|
17360
|
+
"default": "- Uses the deployment stage from the RestApi (restApi.deploymentStage.stageName)",
|
|
16308
17361
|
"stability": "experimental",
|
|
16309
|
-
"summary": "
|
|
17362
|
+
"summary": "The stage name of the REST API."
|
|
16310
17363
|
},
|
|
16311
17364
|
"immutable": true,
|
|
16312
17365
|
"locationInModule": {
|
|
16313
17366
|
"filename": "lib/gateway/targets/target.ts",
|
|
16314
|
-
"line":
|
|
17367
|
+
"line": 196
|
|
16315
17368
|
},
|
|
16316
|
-
"name": "
|
|
17369
|
+
"name": "stage",
|
|
16317
17370
|
"optional": true,
|
|
16318
|
-
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayTargetBase",
|
|
16319
17371
|
"type": {
|
|
16320
17372
|
"primitive": "string"
|
|
16321
17373
|
}
|
|
16322
17374
|
}
|
|
16323
17375
|
],
|
|
16324
|
-
"symbolId": "lib/gateway/targets/target:
|
|
17376
|
+
"symbolId": "lib/gateway/targets/target:GatewayTargetApiGatewayProps"
|
|
16325
17377
|
},
|
|
16326
17378
|
"@aws-cdk/aws-bedrock-agentcore-alpha.GatewayTargetAttributes": {
|
|
16327
17379
|
"assembly": "@aws-cdk/aws-bedrock-agentcore-alpha",
|
|
@@ -16338,7 +17390,7 @@
|
|
|
16338
17390
|
"kind": "interface",
|
|
16339
17391
|
"locationInModule": {
|
|
16340
17392
|
"filename": "lib/gateway/targets/target.ts",
|
|
16341
|
-
"line":
|
|
17393
|
+
"line": 221
|
|
16342
17394
|
},
|
|
16343
17395
|
"name": "GatewayTargetAttributes",
|
|
16344
17396
|
"properties": [
|
|
@@ -16351,7 +17403,7 @@
|
|
|
16351
17403
|
"immutable": true,
|
|
16352
17404
|
"locationInModule": {
|
|
16353
17405
|
"filename": "lib/gateway/targets/target.ts",
|
|
16354
|
-
"line":
|
|
17406
|
+
"line": 240
|
|
16355
17407
|
},
|
|
16356
17408
|
"name": "gateway",
|
|
16357
17409
|
"type": {
|
|
@@ -16367,7 +17419,7 @@
|
|
|
16367
17419
|
"immutable": true,
|
|
16368
17420
|
"locationInModule": {
|
|
16369
17421
|
"filename": "lib/gateway/targets/target.ts",
|
|
16370
|
-
"line":
|
|
17422
|
+
"line": 235
|
|
16371
17423
|
},
|
|
16372
17424
|
"name": "gatewayTargetName",
|
|
16373
17425
|
"type": {
|
|
@@ -16383,7 +17435,7 @@
|
|
|
16383
17435
|
"immutable": true,
|
|
16384
17436
|
"locationInModule": {
|
|
16385
17437
|
"filename": "lib/gateway/targets/target.ts",
|
|
16386
|
-
"line":
|
|
17438
|
+
"line": 225
|
|
16387
17439
|
},
|
|
16388
17440
|
"name": "targetArn",
|
|
16389
17441
|
"type": {
|
|
@@ -16399,7 +17451,7 @@
|
|
|
16399
17451
|
"immutable": true,
|
|
16400
17452
|
"locationInModule": {
|
|
16401
17453
|
"filename": "lib/gateway/targets/target.ts",
|
|
16402
|
-
"line":
|
|
17454
|
+
"line": 230
|
|
16403
17455
|
},
|
|
16404
17456
|
"name": "targetId",
|
|
16405
17457
|
"type": {
|
|
@@ -16416,7 +17468,7 @@
|
|
|
16416
17468
|
"immutable": true,
|
|
16417
17469
|
"locationInModule": {
|
|
16418
17470
|
"filename": "lib/gateway/targets/target.ts",
|
|
16419
|
-
"line":
|
|
17471
|
+
"line": 252
|
|
16420
17472
|
},
|
|
16421
17473
|
"name": "createdAt",
|
|
16422
17474
|
"optional": true,
|
|
@@ -16434,7 +17486,7 @@
|
|
|
16434
17486
|
"immutable": true,
|
|
16435
17487
|
"locationInModule": {
|
|
16436
17488
|
"filename": "lib/gateway/targets/target.ts",
|
|
16437
|
-
"line":
|
|
17489
|
+
"line": 246
|
|
16438
17490
|
},
|
|
16439
17491
|
"name": "status",
|
|
16440
17492
|
"optional": true,
|
|
@@ -16452,7 +17504,7 @@
|
|
|
16452
17504
|
"immutable": true,
|
|
16453
17505
|
"locationInModule": {
|
|
16454
17506
|
"filename": "lib/gateway/targets/target.ts",
|
|
16455
|
-
"line":
|
|
17507
|
+
"line": 258
|
|
16456
17508
|
},
|
|
16457
17509
|
"name": "updatedAt",
|
|
16458
17510
|
"optional": true,
|
|
@@ -16509,7 +17561,7 @@
|
|
|
16509
17561
|
"kind": "class",
|
|
16510
17562
|
"locationInModule": {
|
|
16511
17563
|
"filename": "lib/gateway/targets/target-base.ts",
|
|
16512
|
-
"line":
|
|
17564
|
+
"line": 145
|
|
16513
17565
|
},
|
|
16514
17566
|
"methods": [
|
|
16515
17567
|
{
|
|
@@ -16520,7 +17572,7 @@
|
|
|
16520
17572
|
},
|
|
16521
17573
|
"locationInModule": {
|
|
16522
17574
|
"filename": "lib/gateway/targets/target-base.ts",
|
|
16523
|
-
"line":
|
|
17575
|
+
"line": 176
|
|
16524
17576
|
},
|
|
16525
17577
|
"name": "grant",
|
|
16526
17578
|
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.IGatewayTarget",
|
|
@@ -16560,7 +17612,7 @@
|
|
|
16560
17612
|
},
|
|
16561
17613
|
"locationInModule": {
|
|
16562
17614
|
"filename": "lib/gateway/targets/target-base.ts",
|
|
16563
|
-
"line":
|
|
17615
|
+
"line": 210
|
|
16564
17616
|
},
|
|
16565
17617
|
"name": "grantManage",
|
|
16566
17618
|
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.IGatewayTarget",
|
|
@@ -16589,7 +17641,7 @@
|
|
|
16589
17641
|
},
|
|
16590
17642
|
"locationInModule": {
|
|
16591
17643
|
"filename": "lib/gateway/targets/target-base.ts",
|
|
16592
|
-
"line":
|
|
17644
|
+
"line": 191
|
|
16593
17645
|
},
|
|
16594
17646
|
"name": "grantRead",
|
|
16595
17647
|
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.IGatewayTarget",
|
|
@@ -16622,7 +17674,7 @@
|
|
|
16622
17674
|
"immutable": true,
|
|
16623
17675
|
"locationInModule": {
|
|
16624
17676
|
"filename": "lib/gateway/targets/target-base.ts",
|
|
16625
|
-
"line":
|
|
17677
|
+
"line": 150
|
|
16626
17678
|
},
|
|
16627
17679
|
"name": "gateway",
|
|
16628
17680
|
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.IGatewayTarget",
|
|
@@ -16638,7 +17690,7 @@
|
|
|
16638
17690
|
"immutable": true,
|
|
16639
17691
|
"locationInModule": {
|
|
16640
17692
|
"filename": "lib/gateway/targets/target-base.ts",
|
|
16641
|
-
"line":
|
|
17693
|
+
"line": 161
|
|
16642
17694
|
},
|
|
16643
17695
|
"name": "gatewayTargetRef",
|
|
16644
17696
|
"overrides": "aws-cdk-lib.interfaces.aws_bedrockagentcore.IGatewayTargetRef",
|
|
@@ -16655,7 +17707,7 @@
|
|
|
16655
17707
|
"immutable": true,
|
|
16656
17708
|
"locationInModule": {
|
|
16657
17709
|
"filename": "lib/gateway/targets/target-base.ts",
|
|
16658
|
-
"line":
|
|
17710
|
+
"line": 148
|
|
16659
17711
|
},
|
|
16660
17712
|
"name": "name",
|
|
16661
17713
|
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.IGatewayTarget",
|
|
@@ -16672,7 +17724,7 @@
|
|
|
16672
17724
|
"immutable": true,
|
|
16673
17725
|
"locationInModule": {
|
|
16674
17726
|
"filename": "lib/gateway/targets/target-base.ts",
|
|
16675
|
-
"line":
|
|
17727
|
+
"line": 146
|
|
16676
17728
|
},
|
|
16677
17729
|
"name": "targetArn",
|
|
16678
17730
|
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.IGatewayTarget",
|
|
@@ -16689,7 +17741,7 @@
|
|
|
16689
17741
|
"immutable": true,
|
|
16690
17742
|
"locationInModule": {
|
|
16691
17743
|
"filename": "lib/gateway/targets/target-base.ts",
|
|
16692
|
-
"line":
|
|
17744
|
+
"line": 147
|
|
16693
17745
|
},
|
|
16694
17746
|
"name": "targetId",
|
|
16695
17747
|
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.IGatewayTarget",
|
|
@@ -16706,7 +17758,7 @@
|
|
|
16706
17758
|
"immutable": true,
|
|
16707
17759
|
"locationInModule": {
|
|
16708
17760
|
"filename": "lib/gateway/targets/target-base.ts",
|
|
16709
|
-
"line":
|
|
17761
|
+
"line": 156
|
|
16710
17762
|
},
|
|
16711
17763
|
"name": "targetProtocolType",
|
|
16712
17764
|
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.IGatewayTarget",
|
|
@@ -16723,7 +17775,7 @@
|
|
|
16723
17775
|
"immutable": true,
|
|
16724
17776
|
"locationInModule": {
|
|
16725
17777
|
"filename": "lib/gateway/targets/target-base.ts",
|
|
16726
|
-
"line":
|
|
17778
|
+
"line": 154
|
|
16727
17779
|
},
|
|
16728
17780
|
"name": "createdAt",
|
|
16729
17781
|
"optional": true,
|
|
@@ -16741,7 +17793,7 @@
|
|
|
16741
17793
|
"immutable": true,
|
|
16742
17794
|
"locationInModule": {
|
|
16743
17795
|
"filename": "lib/gateway/targets/target-base.ts",
|
|
16744
|
-
"line":
|
|
17796
|
+
"line": 151
|
|
16745
17797
|
},
|
|
16746
17798
|
"name": "credentialProviderConfigurations",
|
|
16747
17799
|
"optional": true,
|
|
@@ -16764,7 +17816,7 @@
|
|
|
16764
17816
|
"immutable": true,
|
|
16765
17817
|
"locationInModule": {
|
|
16766
17818
|
"filename": "lib/gateway/targets/target-base.ts",
|
|
16767
|
-
"line":
|
|
17819
|
+
"line": 149
|
|
16768
17820
|
},
|
|
16769
17821
|
"name": "description",
|
|
16770
17822
|
"optional": true,
|
|
@@ -16782,7 +17834,7 @@
|
|
|
16782
17834
|
"immutable": true,
|
|
16783
17835
|
"locationInModule": {
|
|
16784
17836
|
"filename": "lib/gateway/targets/target-base.ts",
|
|
16785
|
-
"line":
|
|
17837
|
+
"line": 152
|
|
16786
17838
|
},
|
|
16787
17839
|
"name": "status",
|
|
16788
17840
|
"optional": true,
|
|
@@ -16800,7 +17852,7 @@
|
|
|
16800
17852
|
"immutable": true,
|
|
16801
17853
|
"locationInModule": {
|
|
16802
17854
|
"filename": "lib/gateway/targets/target-base.ts",
|
|
16803
|
-
"line":
|
|
17855
|
+
"line": 153
|
|
16804
17856
|
},
|
|
16805
17857
|
"name": "statusReasons",
|
|
16806
17858
|
"optional": true,
|
|
@@ -16823,7 +17875,7 @@
|
|
|
16823
17875
|
"immutable": true,
|
|
16824
17876
|
"locationInModule": {
|
|
16825
17877
|
"filename": "lib/gateway/targets/target-base.ts",
|
|
16826
|
-
"line":
|
|
17878
|
+
"line": 155
|
|
16827
17879
|
},
|
|
16828
17880
|
"name": "updatedAt",
|
|
16829
17881
|
"optional": true,
|
|
@@ -16850,7 +17902,7 @@
|
|
|
16850
17902
|
"kind": "interface",
|
|
16851
17903
|
"locationInModule": {
|
|
16852
17904
|
"filename": "lib/gateway/targets/target.ts",
|
|
16853
|
-
"line":
|
|
17905
|
+
"line": 28
|
|
16854
17906
|
},
|
|
16855
17907
|
"name": "GatewayTargetCommonProps",
|
|
16856
17908
|
"properties": [
|
|
@@ -16864,7 +17916,7 @@
|
|
|
16864
17916
|
"immutable": true,
|
|
16865
17917
|
"locationInModule": {
|
|
16866
17918
|
"filename": "lib/gateway/targets/target.ts",
|
|
16867
|
-
"line":
|
|
17919
|
+
"line": 42
|
|
16868
17920
|
},
|
|
16869
17921
|
"name": "description",
|
|
16870
17922
|
"optional": true,
|
|
@@ -16882,7 +17934,7 @@
|
|
|
16882
17934
|
"immutable": true,
|
|
16883
17935
|
"locationInModule": {
|
|
16884
17936
|
"filename": "lib/gateway/targets/target.ts",
|
|
16885
|
-
"line":
|
|
17937
|
+
"line": 35
|
|
16886
17938
|
},
|
|
16887
17939
|
"name": "gatewayTargetName",
|
|
16888
17940
|
"optional": true,
|
|
@@ -16911,7 +17963,7 @@
|
|
|
16911
17963
|
"kind": "interface",
|
|
16912
17964
|
"locationInModule": {
|
|
16913
17965
|
"filename": "lib/gateway/targets/target.ts",
|
|
16914
|
-
"line":
|
|
17966
|
+
"line": 74
|
|
16915
17967
|
},
|
|
16916
17968
|
"name": "GatewayTargetLambdaProps",
|
|
16917
17969
|
"properties": [
|
|
@@ -16924,7 +17976,7 @@
|
|
|
16924
17976
|
"immutable": true,
|
|
16925
17977
|
"locationInModule": {
|
|
16926
17978
|
"filename": "lib/gateway/targets/target.ts",
|
|
16927
|
-
"line":
|
|
17979
|
+
"line": 78
|
|
16928
17980
|
},
|
|
16929
17981
|
"name": "gateway",
|
|
16930
17982
|
"type": {
|
|
@@ -16940,7 +17992,7 @@
|
|
|
16940
17992
|
"immutable": true,
|
|
16941
17993
|
"locationInModule": {
|
|
16942
17994
|
"filename": "lib/gateway/targets/target.ts",
|
|
16943
|
-
"line":
|
|
17995
|
+
"line": 83
|
|
16944
17996
|
},
|
|
16945
17997
|
"name": "lambdaFunction",
|
|
16946
17998
|
"type": {
|
|
@@ -16956,7 +18008,7 @@
|
|
|
16956
18008
|
"immutable": true,
|
|
16957
18009
|
"locationInModule": {
|
|
16958
18010
|
"filename": "lib/gateway/targets/target.ts",
|
|
16959
|
-
"line":
|
|
18011
|
+
"line": 88
|
|
16960
18012
|
},
|
|
16961
18013
|
"name": "toolSchema",
|
|
16962
18014
|
"type": {
|
|
@@ -16973,7 +18025,7 @@
|
|
|
16973
18025
|
"immutable": true,
|
|
16974
18026
|
"locationInModule": {
|
|
16975
18027
|
"filename": "lib/gateway/targets/target.ts",
|
|
16976
|
-
"line":
|
|
18028
|
+
"line": 95
|
|
16977
18029
|
},
|
|
16978
18030
|
"name": "credentialProviderConfigurations",
|
|
16979
18031
|
"optional": true,
|
|
@@ -17007,7 +18059,7 @@
|
|
|
17007
18059
|
"kind": "interface",
|
|
17008
18060
|
"locationInModule": {
|
|
17009
18061
|
"filename": "lib/gateway/targets/target.ts",
|
|
17010
|
-
"line":
|
|
18062
|
+
"line": 153
|
|
17011
18063
|
},
|
|
17012
18064
|
"name": "GatewayTargetMcpServerProps",
|
|
17013
18065
|
"properties": [
|
|
@@ -17020,7 +18072,7 @@
|
|
|
17020
18072
|
"immutable": true,
|
|
17021
18073
|
"locationInModule": {
|
|
17022
18074
|
"filename": "lib/gateway/targets/target.ts",
|
|
17023
|
-
"line":
|
|
18075
|
+
"line": 172
|
|
17024
18076
|
},
|
|
17025
18077
|
"name": "credentialProviderConfigurations",
|
|
17026
18078
|
"type": {
|
|
@@ -17042,7 +18094,7 @@
|
|
|
17042
18094
|
"immutable": true,
|
|
17043
18095
|
"locationInModule": {
|
|
17044
18096
|
"filename": "lib/gateway/targets/target.ts",
|
|
17045
|
-
"line":
|
|
18097
|
+
"line": 167
|
|
17046
18098
|
},
|
|
17047
18099
|
"name": "endpoint",
|
|
17048
18100
|
"type": {
|
|
@@ -17058,7 +18110,7 @@
|
|
|
17058
18110
|
"immutable": true,
|
|
17059
18111
|
"locationInModule": {
|
|
17060
18112
|
"filename": "lib/gateway/targets/target.ts",
|
|
17061
|
-
"line":
|
|
18113
|
+
"line": 157
|
|
17062
18114
|
},
|
|
17063
18115
|
"name": "gateway",
|
|
17064
18116
|
"type": {
|
|
@@ -17086,7 +18138,7 @@
|
|
|
17086
18138
|
"kind": "interface",
|
|
17087
18139
|
"locationInModule": {
|
|
17088
18140
|
"filename": "lib/gateway/targets/target.ts",
|
|
17089
|
-
"line":
|
|
18141
|
+
"line": 101
|
|
17090
18142
|
},
|
|
17091
18143
|
"name": "GatewayTargetOpenApiProps",
|
|
17092
18144
|
"properties": [
|
|
@@ -17099,7 +18151,7 @@
|
|
|
17099
18151
|
"immutable": true,
|
|
17100
18152
|
"locationInModule": {
|
|
17101
18153
|
"filename": "lib/gateway/targets/target.ts",
|
|
17102
|
-
"line":
|
|
18154
|
+
"line": 110
|
|
17103
18155
|
},
|
|
17104
18156
|
"name": "apiSchema",
|
|
17105
18157
|
"type": {
|
|
@@ -17115,7 +18167,7 @@
|
|
|
17115
18167
|
"immutable": true,
|
|
17116
18168
|
"locationInModule": {
|
|
17117
18169
|
"filename": "lib/gateway/targets/target.ts",
|
|
17118
|
-
"line":
|
|
18170
|
+
"line": 105
|
|
17119
18171
|
},
|
|
17120
18172
|
"name": "gateway",
|
|
17121
18173
|
"type": {
|
|
@@ -17132,7 +18184,7 @@
|
|
|
17132
18184
|
"immutable": true,
|
|
17133
18185
|
"locationInModule": {
|
|
17134
18186
|
"filename": "lib/gateway/targets/target.ts",
|
|
17135
|
-
"line":
|
|
18187
|
+
"line": 125
|
|
17136
18188
|
},
|
|
17137
18189
|
"name": "credentialProviderConfigurations",
|
|
17138
18190
|
"optional": true,
|
|
@@ -17156,7 +18208,7 @@
|
|
|
17156
18208
|
"immutable": true,
|
|
17157
18209
|
"locationInModule": {
|
|
17158
18210
|
"filename": "lib/gateway/targets/target.ts",
|
|
17159
|
-
"line":
|
|
18211
|
+
"line": 118
|
|
17160
18212
|
},
|
|
17161
18213
|
"name": "validateOpenApiSchema",
|
|
17162
18214
|
"optional": true,
|
|
@@ -17185,7 +18237,7 @@
|
|
|
17185
18237
|
"kind": "interface",
|
|
17186
18238
|
"locationInModule": {
|
|
17187
18239
|
"filename": "lib/gateway/targets/target.ts",
|
|
17188
|
-
"line":
|
|
18240
|
+
"line": 48
|
|
17189
18241
|
},
|
|
17190
18242
|
"name": "GatewayTargetProps",
|
|
17191
18243
|
"properties": [
|
|
@@ -17198,7 +18250,7 @@
|
|
|
17198
18250
|
"immutable": true,
|
|
17199
18251
|
"locationInModule": {
|
|
17200
18252
|
"filename": "lib/gateway/targets/target.ts",
|
|
17201
|
-
"line":
|
|
18253
|
+
"line": 52
|
|
17202
18254
|
},
|
|
17203
18255
|
"name": "gateway",
|
|
17204
18256
|
"type": {
|
|
@@ -17214,7 +18266,7 @@
|
|
|
17214
18266
|
"immutable": true,
|
|
17215
18267
|
"locationInModule": {
|
|
17216
18268
|
"filename": "lib/gateway/targets/target.ts",
|
|
17217
|
-
"line":
|
|
18269
|
+
"line": 61
|
|
17218
18270
|
},
|
|
17219
18271
|
"name": "targetConfiguration",
|
|
17220
18272
|
"type": {
|
|
@@ -17231,7 +18283,7 @@
|
|
|
17231
18283
|
"immutable": true,
|
|
17232
18284
|
"locationInModule": {
|
|
17233
18285
|
"filename": "lib/gateway/targets/target.ts",
|
|
17234
|
-
"line":
|
|
18286
|
+
"line": 67
|
|
17235
18287
|
},
|
|
17236
18288
|
"name": "credentialProviderConfigurations",
|
|
17237
18289
|
"optional": true,
|
|
@@ -17289,7 +18341,7 @@
|
|
|
17289
18341
|
"kind": "interface",
|
|
17290
18342
|
"locationInModule": {
|
|
17291
18343
|
"filename": "lib/gateway/targets/target.ts",
|
|
17292
|
-
"line":
|
|
18344
|
+
"line": 131
|
|
17293
18345
|
},
|
|
17294
18346
|
"name": "GatewayTargetSmithyProps",
|
|
17295
18347
|
"properties": [
|
|
@@ -17302,7 +18354,7 @@
|
|
|
17302
18354
|
"immutable": true,
|
|
17303
18355
|
"locationInModule": {
|
|
17304
18356
|
"filename": "lib/gateway/targets/target.ts",
|
|
17305
|
-
"line":
|
|
18357
|
+
"line": 135
|
|
17306
18358
|
},
|
|
17307
18359
|
"name": "gateway",
|
|
17308
18360
|
"type": {
|
|
@@ -17318,7 +18370,7 @@
|
|
|
17318
18370
|
"immutable": true,
|
|
17319
18371
|
"locationInModule": {
|
|
17320
18372
|
"filename": "lib/gateway/targets/target.ts",
|
|
17321
|
-
"line":
|
|
18373
|
+
"line": 140
|
|
17322
18374
|
},
|
|
17323
18375
|
"name": "smithyModel",
|
|
17324
18376
|
"type": {
|
|
@@ -17335,7 +18387,7 @@
|
|
|
17335
18387
|
"immutable": true,
|
|
17336
18388
|
"locationInModule": {
|
|
17337
18389
|
"filename": "lib/gateway/targets/target.ts",
|
|
17338
|
-
"line":
|
|
18390
|
+
"line": 147
|
|
17339
18391
|
},
|
|
17340
18392
|
"name": "credentialProviderConfigurations",
|
|
17341
18393
|
"optional": true,
|
|
@@ -19924,7 +20976,7 @@
|
|
|
19924
20976
|
"kind": "interface",
|
|
19925
20977
|
"locationInModule": {
|
|
19926
20978
|
"filename": "lib/gateway/targets/target-base.ts",
|
|
19927
|
-
"line":
|
|
20979
|
+
"line": 45
|
|
19928
20980
|
},
|
|
19929
20981
|
"methods": [
|
|
19930
20982
|
{
|
|
@@ -19935,7 +20987,7 @@
|
|
|
19935
20987
|
},
|
|
19936
20988
|
"locationInModule": {
|
|
19937
20989
|
"filename": "lib/gateway/targets/target-base.ts",
|
|
19938
|
-
"line":
|
|
20990
|
+
"line": 110
|
|
19939
20991
|
},
|
|
19940
20992
|
"name": "grant",
|
|
19941
20993
|
"parameters": [
|
|
@@ -19968,7 +21020,7 @@
|
|
|
19968
21020
|
},
|
|
19969
21021
|
"locationInModule": {
|
|
19970
21022
|
"filename": "lib/gateway/targets/target-base.ts",
|
|
19971
|
-
"line":
|
|
21023
|
+
"line": 120
|
|
19972
21024
|
},
|
|
19973
21025
|
"name": "grantManage",
|
|
19974
21026
|
"parameters": [
|
|
@@ -19993,7 +21045,7 @@
|
|
|
19993
21045
|
},
|
|
19994
21046
|
"locationInModule": {
|
|
19995
21047
|
"filename": "lib/gateway/targets/target-base.ts",
|
|
19996
|
-
"line":
|
|
21048
|
+
"line": 115
|
|
19997
21049
|
},
|
|
19998
21050
|
"name": "grantRead",
|
|
19999
21051
|
"parameters": [
|
|
@@ -20022,7 +21074,7 @@
|
|
|
20022
21074
|
"immutable": true,
|
|
20023
21075
|
"locationInModule": {
|
|
20024
21076
|
"filename": "lib/gateway/targets/target-base.ts",
|
|
20025
|
-
"line":
|
|
21077
|
+
"line": 71
|
|
20026
21078
|
},
|
|
20027
21079
|
"name": "gateway",
|
|
20028
21080
|
"type": {
|
|
@@ -20038,7 +21090,7 @@
|
|
|
20038
21090
|
"immutable": true,
|
|
20039
21091
|
"locationInModule": {
|
|
20040
21092
|
"filename": "lib/gateway/targets/target-base.ts",
|
|
20041
|
-
"line":
|
|
21093
|
+
"line": 61
|
|
20042
21094
|
},
|
|
20043
21095
|
"name": "name",
|
|
20044
21096
|
"type": {
|
|
@@ -20057,7 +21109,7 @@
|
|
|
20057
21109
|
"immutable": true,
|
|
20058
21110
|
"locationInModule": {
|
|
20059
21111
|
"filename": "lib/gateway/targets/target-base.ts",
|
|
20060
|
-
"line":
|
|
21112
|
+
"line": 50
|
|
20061
21113
|
},
|
|
20062
21114
|
"name": "targetArn",
|
|
20063
21115
|
"type": {
|
|
@@ -20076,7 +21128,7 @@
|
|
|
20076
21128
|
"immutable": true,
|
|
20077
21129
|
"locationInModule": {
|
|
20078
21130
|
"filename": "lib/gateway/targets/target-base.ts",
|
|
20079
|
-
"line":
|
|
21131
|
+
"line": 56
|
|
20080
21132
|
},
|
|
20081
21133
|
"name": "targetId",
|
|
20082
21134
|
"type": {
|
|
@@ -20092,7 +21144,7 @@
|
|
|
20092
21144
|
"immutable": true,
|
|
20093
21145
|
"locationInModule": {
|
|
20094
21146
|
"filename": "lib/gateway/targets/target-base.ts",
|
|
20095
|
-
"line":
|
|
21147
|
+
"line": 76
|
|
20096
21148
|
},
|
|
20097
21149
|
"name": "targetProtocolType",
|
|
20098
21150
|
"type": {
|
|
@@ -20111,7 +21163,7 @@
|
|
|
20111
21163
|
"immutable": true,
|
|
20112
21164
|
"locationInModule": {
|
|
20113
21165
|
"filename": "lib/gateway/targets/target-base.ts",
|
|
20114
|
-
"line":
|
|
21166
|
+
"line": 99
|
|
20115
21167
|
},
|
|
20116
21168
|
"name": "createdAt",
|
|
20117
21169
|
"optional": true,
|
|
@@ -20128,7 +21180,7 @@
|
|
|
20128
21180
|
"immutable": true,
|
|
20129
21181
|
"locationInModule": {
|
|
20130
21182
|
"filename": "lib/gateway/targets/target-base.ts",
|
|
20131
|
-
"line":
|
|
21183
|
+
"line": 81
|
|
20132
21184
|
},
|
|
20133
21185
|
"name": "credentialProviderConfigurations",
|
|
20134
21186
|
"optional": true,
|
|
@@ -20150,7 +21202,7 @@
|
|
|
20150
21202
|
"immutable": true,
|
|
20151
21203
|
"locationInModule": {
|
|
20152
21204
|
"filename": "lib/gateway/targets/target-base.ts",
|
|
20153
|
-
"line":
|
|
21205
|
+
"line": 66
|
|
20154
21206
|
},
|
|
20155
21207
|
"name": "description",
|
|
20156
21208
|
"optional": true,
|
|
@@ -20170,7 +21222,7 @@
|
|
|
20170
21222
|
"immutable": true,
|
|
20171
21223
|
"locationInModule": {
|
|
20172
21224
|
"filename": "lib/gateway/targets/target-base.ts",
|
|
20173
|
-
"line":
|
|
21225
|
+
"line": 87
|
|
20174
21226
|
},
|
|
20175
21227
|
"name": "status",
|
|
20176
21228
|
"optional": true,
|
|
@@ -20190,7 +21242,7 @@
|
|
|
20190
21242
|
"immutable": true,
|
|
20191
21243
|
"locationInModule": {
|
|
20192
21244
|
"filename": "lib/gateway/targets/target-base.ts",
|
|
20193
|
-
"line":
|
|
21245
|
+
"line": 93
|
|
20194
21246
|
},
|
|
20195
21247
|
"name": "statusReasons",
|
|
20196
21248
|
"optional": true,
|
|
@@ -20215,7 +21267,7 @@
|
|
|
20215
21267
|
"immutable": true,
|
|
20216
21268
|
"locationInModule": {
|
|
20217
21269
|
"filename": "lib/gateway/targets/target-base.ts",
|
|
20218
|
-
"line":
|
|
21270
|
+
"line": 105
|
|
20219
21271
|
},
|
|
20220
21272
|
"name": "updatedAt",
|
|
20221
21273
|
"optional": true,
|
|
@@ -20315,7 +21367,7 @@
|
|
|
20315
21367
|
"kind": "interface",
|
|
20316
21368
|
"locationInModule": {
|
|
20317
21369
|
"filename": "lib/gateway/targets/target-base.ts",
|
|
20318
|
-
"line":
|
|
21370
|
+
"line": 129
|
|
20319
21371
|
},
|
|
20320
21372
|
"name": "IMcpGatewayTarget",
|
|
20321
21373
|
"properties": [
|
|
@@ -20328,7 +21380,7 @@
|
|
|
20328
21380
|
"immutable": true,
|
|
20329
21381
|
"locationInModule": {
|
|
20330
21382
|
"filename": "lib/gateway/targets/target-base.ts",
|
|
20331
|
-
"line":
|
|
21383
|
+
"line": 133
|
|
20332
21384
|
},
|
|
20333
21385
|
"name": "targetType",
|
|
20334
21386
|
"type": {
|
|
@@ -21254,7 +22306,7 @@
|
|
|
21254
22306
|
"kind": "interface",
|
|
21255
22307
|
"locationInModule": {
|
|
21256
22308
|
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
21257
|
-
"line":
|
|
22309
|
+
"line": 31
|
|
21258
22310
|
},
|
|
21259
22311
|
"methods": [
|
|
21260
22312
|
{
|
|
@@ -21265,7 +22317,7 @@
|
|
|
21265
22317
|
},
|
|
21266
22318
|
"locationInModule": {
|
|
21267
22319
|
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
21268
|
-
"line":
|
|
22320
|
+
"line": 41
|
|
21269
22321
|
},
|
|
21270
22322
|
"name": "bind",
|
|
21271
22323
|
"parameters": [
|
|
@@ -21300,7 +22352,7 @@
|
|
|
21300
22352
|
"immutable": true,
|
|
21301
22353
|
"locationInModule": {
|
|
21302
22354
|
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
21303
|
-
"line":
|
|
22355
|
+
"line": 35
|
|
21304
22356
|
},
|
|
21305
22357
|
"name": "targetType",
|
|
21306
22358
|
"type": {
|
|
@@ -21866,7 +22918,7 @@
|
|
|
21866
22918
|
},
|
|
21867
22919
|
"locationInModule": {
|
|
21868
22920
|
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
21869
|
-
"line":
|
|
22921
|
+
"line": 123
|
|
21870
22922
|
},
|
|
21871
22923
|
"parameters": [
|
|
21872
22924
|
{
|
|
@@ -21886,7 +22938,7 @@
|
|
|
21886
22938
|
"kind": "class",
|
|
21887
22939
|
"locationInModule": {
|
|
21888
22940
|
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
21889
|
-
"line":
|
|
22941
|
+
"line": 96
|
|
21890
22942
|
},
|
|
21891
22943
|
"methods": [
|
|
21892
22944
|
{
|
|
@@ -21897,7 +22949,7 @@
|
|
|
21897
22949
|
},
|
|
21898
22950
|
"locationInModule": {
|
|
21899
22951
|
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
21900
|
-
"line":
|
|
22952
|
+
"line": 104
|
|
21901
22953
|
},
|
|
21902
22954
|
"name": "create",
|
|
21903
22955
|
"parameters": [
|
|
@@ -21934,7 +22986,7 @@
|
|
|
21934
22986
|
},
|
|
21935
22987
|
"locationInModule": {
|
|
21936
22988
|
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
21937
|
-
"line":
|
|
22989
|
+
"line": 136
|
|
21938
22990
|
},
|
|
21939
22991
|
"name": "bind",
|
|
21940
22992
|
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.McpTargetConfiguration",
|
|
@@ -21971,7 +23023,7 @@
|
|
|
21971
23023
|
},
|
|
21972
23024
|
"locationInModule": {
|
|
21973
23025
|
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
21974
|
-
"line":
|
|
23026
|
+
"line": 149
|
|
21975
23027
|
},
|
|
21976
23028
|
"name": "renderMcpConfiguration",
|
|
21977
23029
|
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.McpTargetConfiguration",
|
|
@@ -21993,7 +23045,7 @@
|
|
|
21993
23045
|
"immutable": true,
|
|
21994
23046
|
"locationInModule": {
|
|
21995
23047
|
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
21996
|
-
"line":
|
|
23048
|
+
"line": 116
|
|
21997
23049
|
},
|
|
21998
23050
|
"name": "lambdaFunction",
|
|
21999
23051
|
"type": {
|
|
@@ -22008,7 +23060,7 @@
|
|
|
22008
23060
|
"immutable": true,
|
|
22009
23061
|
"locationInModule": {
|
|
22010
23062
|
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
22011
|
-
"line":
|
|
23063
|
+
"line": 111
|
|
22012
23064
|
},
|
|
22013
23065
|
"name": "targetType",
|
|
22014
23066
|
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.McpTargetConfiguration",
|
|
@@ -22024,7 +23076,7 @@
|
|
|
22024
23076
|
"immutable": true,
|
|
22025
23077
|
"locationInModule": {
|
|
22026
23078
|
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
22027
|
-
"line":
|
|
23079
|
+
"line": 121
|
|
22028
23080
|
},
|
|
22029
23081
|
"name": "toolSchema",
|
|
22030
23082
|
"type": {
|
|
@@ -22701,7 +23753,7 @@
|
|
|
22701
23753
|
},
|
|
22702
23754
|
"locationInModule": {
|
|
22703
23755
|
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
22704
|
-
"line":
|
|
23756
|
+
"line": 347
|
|
22705
23757
|
},
|
|
22706
23758
|
"parameters": [
|
|
22707
23759
|
{
|
|
@@ -22715,7 +23767,7 @@
|
|
|
22715
23767
|
"kind": "class",
|
|
22716
23768
|
"locationInModule": {
|
|
22717
23769
|
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
22718
|
-
"line":
|
|
23770
|
+
"line": 329
|
|
22719
23771
|
},
|
|
22720
23772
|
"methods": [
|
|
22721
23773
|
{
|
|
@@ -22726,7 +23778,7 @@
|
|
|
22726
23778
|
},
|
|
22727
23779
|
"locationInModule": {
|
|
22728
23780
|
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
22729
|
-
"line":
|
|
23781
|
+
"line": 336
|
|
22730
23782
|
},
|
|
22731
23783
|
"name": "create",
|
|
22732
23784
|
"parameters": [
|
|
@@ -22754,7 +23806,7 @@
|
|
|
22754
23806
|
},
|
|
22755
23807
|
"locationInModule": {
|
|
22756
23808
|
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
22757
|
-
"line":
|
|
23809
|
+
"line": 360
|
|
22758
23810
|
},
|
|
22759
23811
|
"name": "bind",
|
|
22760
23812
|
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.McpTargetConfiguration",
|
|
@@ -22791,7 +23843,7 @@
|
|
|
22791
23843
|
},
|
|
22792
23844
|
"locationInModule": {
|
|
22793
23845
|
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
22794
|
-
"line":
|
|
23846
|
+
"line": 369
|
|
22795
23847
|
},
|
|
22796
23848
|
"name": "renderMcpConfiguration",
|
|
22797
23849
|
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.McpTargetConfiguration",
|
|
@@ -22813,7 +23865,7 @@
|
|
|
22813
23865
|
"immutable": true,
|
|
22814
23866
|
"locationInModule": {
|
|
22815
23867
|
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
22816
|
-
"line":
|
|
23868
|
+
"line": 345
|
|
22817
23869
|
},
|
|
22818
23870
|
"name": "endpoint",
|
|
22819
23871
|
"type": {
|
|
@@ -22828,7 +23880,7 @@
|
|
|
22828
23880
|
"immutable": true,
|
|
22829
23881
|
"locationInModule": {
|
|
22830
23882
|
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
22831
|
-
"line":
|
|
23883
|
+
"line": 340
|
|
22832
23884
|
},
|
|
22833
23885
|
"name": "targetType",
|
|
22834
23886
|
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.McpTargetConfiguration",
|
|
@@ -22858,7 +23910,7 @@
|
|
|
22858
23910
|
"kind": "class",
|
|
22859
23911
|
"locationInModule": {
|
|
22860
23912
|
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
22861
|
-
"line":
|
|
23913
|
+
"line": 58
|
|
22862
23914
|
},
|
|
22863
23915
|
"methods": [
|
|
22864
23916
|
{
|
|
@@ -22869,7 +23921,7 @@
|
|
|
22869
23921
|
},
|
|
22870
23922
|
"locationInModule": {
|
|
22871
23923
|
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
22872
|
-
"line":
|
|
23924
|
+
"line": 68
|
|
22873
23925
|
},
|
|
22874
23926
|
"name": "bind",
|
|
22875
23927
|
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.ITargetConfiguration",
|
|
@@ -22901,7 +23953,7 @@
|
|
|
22901
23953
|
},
|
|
22902
23954
|
"locationInModule": {
|
|
22903
23955
|
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
22904
|
-
"line":
|
|
23956
|
+
"line": 73
|
|
22905
23957
|
},
|
|
22906
23958
|
"name": "renderMcpConfiguration",
|
|
22907
23959
|
"protected": true,
|
|
@@ -22923,7 +23975,7 @@
|
|
|
22923
23975
|
"immutable": true,
|
|
22924
23976
|
"locationInModule": {
|
|
22925
23977
|
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
22926
|
-
"line":
|
|
23978
|
+
"line": 62
|
|
22927
23979
|
},
|
|
22928
23980
|
"name": "targetType",
|
|
22929
23981
|
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.ITargetConfiguration",
|
|
@@ -22974,6 +24026,13 @@
|
|
|
22974
24026
|
"summary": "MCP server target type."
|
|
22975
24027
|
},
|
|
22976
24028
|
"name": "MCP_SERVER"
|
|
24029
|
+
},
|
|
24030
|
+
{
|
|
24031
|
+
"docs": {
|
|
24032
|
+
"stability": "experimental",
|
|
24033
|
+
"summary": "API Gateway target type."
|
|
24034
|
+
},
|
|
24035
|
+
"name": "API_GATEWAY"
|
|
22977
24036
|
}
|
|
22978
24037
|
],
|
|
22979
24038
|
"name": "McpTargetType",
|
|
@@ -24788,6 +25847,100 @@
|
|
|
24788
25847
|
"name": "MemoryStrategyType",
|
|
24789
25848
|
"symbolId": "lib/memory/memory-strategy:MemoryStrategyType"
|
|
24790
25849
|
},
|
|
25850
|
+
"@aws-cdk/aws-bedrock-agentcore-alpha.MetadataConfiguration": {
|
|
25851
|
+
"assembly": "@aws-cdk/aws-bedrock-agentcore-alpha",
|
|
25852
|
+
"datatype": true,
|
|
25853
|
+
"docs": {
|
|
25854
|
+
"stability": "experimental",
|
|
25855
|
+
"summary": "Configuration for passing metadata (headers and query parameters) to the API Gateway target.",
|
|
25856
|
+
"example": "const gateway = new agentcore.Gateway(this, \"MyGateway\", {\n gatewayName: \"my-gateway\",\n});\n\nconst api = new apigateway.RestApi(this, 'MyApi', {\n restApiName: 'my-api',\n});\n\n// Create a gateway target using the static factory method\nconst apiGatewayTarget = agentcore.GatewayTarget.forApiGateway(this, \"MyApiGatewayTarget\", {\n gatewayTargetName: \"my-api-gateway-target\",\n description: \"Target for API Gateway REST API integration\",\n gateway: gateway,\n restApi: api,\n apiGatewayToolConfiguration: {\n toolFilters: [\n {\n filterPath: \"/pets/*\",\n methods: [agentcore.ApiGatewayHttpMethod.GET, agentcore.ApiGatewayHttpMethod.POST],\n },\n ],\n },\n metadataConfiguration: {\n allowedRequestHeaders: [\"X-User-Id\"],\n allowedQueryParameters: [\"limit\"],\n },\n});",
|
|
25857
|
+
"custom": {
|
|
25858
|
+
"exampleMetadata": "fixture=default infused"
|
|
25859
|
+
}
|
|
25860
|
+
},
|
|
25861
|
+
"fqn": "@aws-cdk/aws-bedrock-agentcore-alpha.MetadataConfiguration",
|
|
25862
|
+
"kind": "interface",
|
|
25863
|
+
"locationInModule": {
|
|
25864
|
+
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
25865
|
+
"line": 497
|
|
25866
|
+
},
|
|
25867
|
+
"name": "MetadataConfiguration",
|
|
25868
|
+
"properties": [
|
|
25869
|
+
{
|
|
25870
|
+
"abstract": true,
|
|
25871
|
+
"docs": {
|
|
25872
|
+
"default": "- No query parameters are passed through",
|
|
25873
|
+
"remarks": "Constraints:\n- Array must contain 1-10 items\n- Each parameter name must be 1-40 characters\n- Cannot be an empty array",
|
|
25874
|
+
"stability": "experimental",
|
|
25875
|
+
"summary": "List of query parameter names to pass through to the target."
|
|
25876
|
+
},
|
|
25877
|
+
"immutable": true,
|
|
25878
|
+
"locationInModule": {
|
|
25879
|
+
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
25880
|
+
"line": 508
|
|
25881
|
+
},
|
|
25882
|
+
"name": "allowedQueryParameters",
|
|
25883
|
+
"optional": true,
|
|
25884
|
+
"type": {
|
|
25885
|
+
"collection": {
|
|
25886
|
+
"elementtype": {
|
|
25887
|
+
"primitive": "string"
|
|
25888
|
+
},
|
|
25889
|
+
"kind": "array"
|
|
25890
|
+
}
|
|
25891
|
+
}
|
|
25892
|
+
},
|
|
25893
|
+
{
|
|
25894
|
+
"abstract": true,
|
|
25895
|
+
"docs": {
|
|
25896
|
+
"default": "- No request headers are passed through",
|
|
25897
|
+
"remarks": "Constraints:\n- Array must contain 1-10 items\n- Each header name must be 1-100 characters\n- Cannot be an empty array",
|
|
25898
|
+
"stability": "experimental",
|
|
25899
|
+
"summary": "List of request header names to pass through to the target."
|
|
25900
|
+
},
|
|
25901
|
+
"immutable": true,
|
|
25902
|
+
"locationInModule": {
|
|
25903
|
+
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
25904
|
+
"line": 520
|
|
25905
|
+
},
|
|
25906
|
+
"name": "allowedRequestHeaders",
|
|
25907
|
+
"optional": true,
|
|
25908
|
+
"type": {
|
|
25909
|
+
"collection": {
|
|
25910
|
+
"elementtype": {
|
|
25911
|
+
"primitive": "string"
|
|
25912
|
+
},
|
|
25913
|
+
"kind": "array"
|
|
25914
|
+
}
|
|
25915
|
+
}
|
|
25916
|
+
},
|
|
25917
|
+
{
|
|
25918
|
+
"abstract": true,
|
|
25919
|
+
"docs": {
|
|
25920
|
+
"default": "- No response headers are passed through",
|
|
25921
|
+
"remarks": "Constraints:\n- Array must contain 1-10 items\n- Each header name must be 1-100 characters\n- Cannot be an empty array",
|
|
25922
|
+
"stability": "experimental",
|
|
25923
|
+
"summary": "List of response header names to pass through from the target."
|
|
25924
|
+
},
|
|
25925
|
+
"immutable": true,
|
|
25926
|
+
"locationInModule": {
|
|
25927
|
+
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
25928
|
+
"line": 532
|
|
25929
|
+
},
|
|
25930
|
+
"name": "allowedResponseHeaders",
|
|
25931
|
+
"optional": true,
|
|
25932
|
+
"type": {
|
|
25933
|
+
"collection": {
|
|
25934
|
+
"elementtype": {
|
|
25935
|
+
"primitive": "string"
|
|
25936
|
+
},
|
|
25937
|
+
"kind": "array"
|
|
25938
|
+
}
|
|
25939
|
+
}
|
|
25940
|
+
}
|
|
25941
|
+
],
|
|
25942
|
+
"symbolId": "lib/gateway/targets/target-configuration:MetadataConfiguration"
|
|
25943
|
+
},
|
|
24791
25944
|
"@aws-cdk/aws-bedrock-agentcore-alpha.NetworkConfiguration": {
|
|
24792
25945
|
"abstract": true,
|
|
24793
25946
|
"assembly": "@aws-cdk/aws-bedrock-agentcore-alpha",
|
|
@@ -25026,7 +26179,7 @@
|
|
|
25026
26179
|
},
|
|
25027
26180
|
"locationInModule": {
|
|
25028
26181
|
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
25029
|
-
"line":
|
|
26182
|
+
"line": 193
|
|
25030
26183
|
},
|
|
25031
26184
|
"parameters": [
|
|
25032
26185
|
{
|
|
@@ -25047,7 +26200,7 @@
|
|
|
25047
26200
|
"kind": "class",
|
|
25048
26201
|
"locationInModule": {
|
|
25049
26202
|
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
25050
|
-
"line":
|
|
26203
|
+
"line": 169
|
|
25051
26204
|
},
|
|
25052
26205
|
"methods": [
|
|
25053
26206
|
{
|
|
@@ -25058,7 +26211,7 @@
|
|
|
25058
26211
|
},
|
|
25059
26212
|
"locationInModule": {
|
|
25060
26213
|
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
25061
|
-
"line":
|
|
26214
|
+
"line": 177
|
|
25062
26215
|
},
|
|
25063
26216
|
"name": "create",
|
|
25064
26217
|
"parameters": [
|
|
@@ -25096,7 +26249,7 @@
|
|
|
25096
26249
|
},
|
|
25097
26250
|
"locationInModule": {
|
|
25098
26251
|
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
25099
|
-
"line":
|
|
26252
|
+
"line": 206
|
|
25100
26253
|
},
|
|
25101
26254
|
"name": "bind",
|
|
25102
26255
|
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.McpTargetConfiguration",
|
|
@@ -25133,7 +26286,7 @@
|
|
|
25133
26286
|
},
|
|
25134
26287
|
"locationInModule": {
|
|
25135
26288
|
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
25136
|
-
"line":
|
|
26289
|
+
"line": 251
|
|
25137
26290
|
},
|
|
25138
26291
|
"name": "renderMcpConfiguration",
|
|
25139
26292
|
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.McpTargetConfiguration",
|
|
@@ -25155,7 +26308,7 @@
|
|
|
25155
26308
|
"immutable": true,
|
|
25156
26309
|
"locationInModule": {
|
|
25157
26310
|
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
25158
|
-
"line":
|
|
26311
|
+
"line": 186
|
|
25159
26312
|
},
|
|
25160
26313
|
"name": "apiSchema",
|
|
25161
26314
|
"type": {
|
|
@@ -25170,7 +26323,7 @@
|
|
|
25170
26323
|
"immutable": true,
|
|
25171
26324
|
"locationInModule": {
|
|
25172
26325
|
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
25173
|
-
"line":
|
|
26326
|
+
"line": 181
|
|
25174
26327
|
},
|
|
25175
26328
|
"name": "targetType",
|
|
25176
26329
|
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.McpTargetConfiguration",
|
|
@@ -28763,7 +29916,7 @@
|
|
|
28763
29916
|
},
|
|
28764
29917
|
"locationInModule": {
|
|
28765
29918
|
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
28766
|
-
"line":
|
|
29919
|
+
"line": 286
|
|
28767
29920
|
},
|
|
28768
29921
|
"parameters": [
|
|
28769
29922
|
{
|
|
@@ -28777,7 +29930,7 @@
|
|
|
28777
29930
|
"kind": "class",
|
|
28778
29931
|
"locationInModule": {
|
|
28779
29932
|
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
28780
|
-
"line":
|
|
29933
|
+
"line": 268
|
|
28781
29934
|
},
|
|
28782
29935
|
"methods": [
|
|
28783
29936
|
{
|
|
@@ -28788,7 +29941,7 @@
|
|
|
28788
29941
|
},
|
|
28789
29942
|
"locationInModule": {
|
|
28790
29943
|
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
28791
|
-
"line":
|
|
29944
|
+
"line": 275
|
|
28792
29945
|
},
|
|
28793
29946
|
"name": "create",
|
|
28794
29947
|
"parameters": [
|
|
@@ -28816,7 +29969,7 @@
|
|
|
28816
29969
|
},
|
|
28817
29970
|
"locationInModule": {
|
|
28818
29971
|
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
28819
|
-
"line":
|
|
29972
|
+
"line": 298
|
|
28820
29973
|
},
|
|
28821
29974
|
"name": "bind",
|
|
28822
29975
|
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.McpTargetConfiguration",
|
|
@@ -28853,7 +30006,7 @@
|
|
|
28853
30006
|
},
|
|
28854
30007
|
"locationInModule": {
|
|
28855
30008
|
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
28856
|
-
"line":
|
|
30009
|
+
"line": 310
|
|
28857
30010
|
},
|
|
28858
30011
|
"name": "renderMcpConfiguration",
|
|
28859
30012
|
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.McpTargetConfiguration",
|
|
@@ -28875,7 +30028,7 @@
|
|
|
28875
30028
|
"immutable": true,
|
|
28876
30029
|
"locationInModule": {
|
|
28877
30030
|
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
28878
|
-
"line":
|
|
30031
|
+
"line": 284
|
|
28879
30032
|
},
|
|
28880
30033
|
"name": "smithyModel",
|
|
28881
30034
|
"type": {
|
|
@@ -28890,7 +30043,7 @@
|
|
|
28890
30043
|
"immutable": true,
|
|
28891
30044
|
"locationInModule": {
|
|
28892
30045
|
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
28893
|
-
"line":
|
|
30046
|
+
"line": 279
|
|
28894
30047
|
},
|
|
28895
30048
|
"name": "targetType",
|
|
28896
30049
|
"overrides": "@aws-cdk/aws-bedrock-agentcore-alpha.McpTargetConfiguration",
|
|
@@ -28916,7 +30069,7 @@
|
|
|
28916
30069
|
"kind": "interface",
|
|
28917
30070
|
"locationInModule": {
|
|
28918
30071
|
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
28919
|
-
"line":
|
|
30072
|
+
"line": 21
|
|
28920
30073
|
},
|
|
28921
30074
|
"name": "TargetConfigurationConfig",
|
|
28922
30075
|
"properties": [
|
|
@@ -28929,7 +30082,7 @@
|
|
|
28929
30082
|
"immutable": true,
|
|
28930
30083
|
"locationInModule": {
|
|
28931
30084
|
"filename": "lib/gateway/targets/target-configuration.ts",
|
|
28932
|
-
"line":
|
|
30085
|
+
"line": 25
|
|
28933
30086
|
},
|
|
28934
30087
|
"name": "bound",
|
|
28935
30088
|
"type": {
|
|
@@ -29476,6 +30629,6 @@
|
|
|
29476
30629
|
"symbolId": "lib/network/network-configuration:VpcConfigProps"
|
|
29477
30630
|
}
|
|
29478
30631
|
},
|
|
29479
|
-
"version": "2.
|
|
30632
|
+
"version": "2.239.0-alpha.0",
|
|
29480
30633
|
"fingerprint": "**********"
|
|
29481
30634
|
}
|