@aws-cdk/aws-bedrock-agentcore-alpha 2.225.0-alpha.0 → 2.227.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 +14021 -5792
- package/.jsii.tabl.json.gz +0 -0
- package/.warnings.jsii.js +343 -1
- package/README.md +880 -19
- package/agentcore/gateway/gateway-base.d.ts +292 -0
- package/agentcore/gateway/gateway-base.js +171 -0
- package/agentcore/gateway/gateway.d.ts +383 -0
- package/agentcore/gateway/gateway.js +521 -0
- package/agentcore/gateway/inbound-auth/authorizer.d.ts +121 -0
- package/agentcore/gateway/inbound-auth/authorizer.js +133 -0
- package/agentcore/gateway/outbound-auth/api-key.d.ts +117 -0
- package/agentcore/gateway/outbound-auth/api-key.js +141 -0
- package/agentcore/gateway/outbound-auth/credential-provider.d.ts +70 -0
- package/agentcore/gateway/outbound-auth/credential-provider.js +80 -0
- package/agentcore/gateway/outbound-auth/iam-role.d.ts +28 -0
- package/agentcore/gateway/outbound-auth/iam-role.js +40 -0
- package/agentcore/gateway/outbound-auth/oauth.d.ts +80 -0
- package/agentcore/gateway/outbound-auth/oauth.js +76 -0
- package/agentcore/gateway/perms.d.ts +75 -0
- package/agentcore/gateway/perms.js +112 -0
- package/agentcore/gateway/protocol.d.ts +121 -0
- package/agentcore/gateway/protocol.js +120 -0
- package/agentcore/gateway/targets/schema/api-schema.d.ts +110 -0
- package/agentcore/gateway/targets/schema/api-schema.js +207 -0
- package/agentcore/gateway/targets/schema/base-schema.d.ts +24 -0
- package/agentcore/gateway/targets/schema/base-schema.js +12 -0
- package/agentcore/gateway/targets/schema/tool-schema.d.ts +198 -0
- package/agentcore/gateway/targets/schema/tool-schema.js +213 -0
- package/agentcore/gateway/targets/target-base.d.ts +153 -0
- package/agentcore/gateway/targets/target-base.js +81 -0
- package/agentcore/gateway/targets/target-configuration.d.ts +230 -0
- package/agentcore/gateway/targets/target-configuration.js +407 -0
- package/agentcore/gateway/targets/target.d.ts +345 -0
- package/agentcore/gateway/targets/target.js +444 -0
- package/agentcore/gateway/validation-helpers.d.ts +65 -0
- package/agentcore/gateway/validation-helpers.js +333 -0
- package/agentcore/index.d.ts +15 -0
- package/agentcore/index.js +32 -1
- package/agentcore/memory/memory-strategy.js +1 -1
- package/agentcore/memory/memory.js +6 -3
- package/agentcore/memory/strategies/managed-strategy.js +1 -1
- package/agentcore/memory/strategies/self-managed-strategy.js +1 -1
- package/agentcore/network/network-configuration.js +4 -4
- package/agentcore/runtime/runtime-artifact.js +1 -1
- package/agentcore/runtime/runtime-authorizer-configuration.d.ts +1 -1
- package/agentcore/runtime/runtime-authorizer-configuration.js +6 -5
- package/agentcore/runtime/runtime-base.js +1 -1
- package/agentcore/runtime/runtime-endpoint-base.js +1 -1
- package/agentcore/runtime/runtime-endpoint.js +1 -1
- package/agentcore/runtime/runtime.js +1 -1
- package/agentcore/tools/browser.js +2 -2
- package/agentcore/tools/code-interpreter.js +2 -2
- package/package.json +9 -9
- package/rosetta/default.ts-fixture +15 -6
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import { IRole } from 'aws-cdk-lib/aws-iam';
|
|
2
|
+
import { IBucket, Location } from 'aws-cdk-lib/aws-s3';
|
|
3
|
+
import * as s3_assets from 'aws-cdk-lib/aws-s3-assets';
|
|
4
|
+
import { Construct } from 'constructs';
|
|
5
|
+
import { TargetSchema } from './base-schema';
|
|
6
|
+
/******************************************************************************
|
|
7
|
+
* Tool Schema Configuration
|
|
8
|
+
*****************************************************************************/
|
|
9
|
+
/**
|
|
10
|
+
* Abstract interface for tool schema configuration
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export interface IToolSchemaConfiguration {
|
|
14
|
+
/**
|
|
15
|
+
* The tool schema configuration type
|
|
16
|
+
*/
|
|
17
|
+
readonly toolSchemaType: string;
|
|
18
|
+
/**
|
|
19
|
+
* The tool schema configuration object
|
|
20
|
+
*/
|
|
21
|
+
readonly configuration: any;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Schema definition types
|
|
25
|
+
*/
|
|
26
|
+
export declare enum SchemaDefinitionType {
|
|
27
|
+
/** String type */
|
|
28
|
+
STRING = "string",
|
|
29
|
+
/** Number type */
|
|
30
|
+
NUMBER = "number",
|
|
31
|
+
/** Object type */
|
|
32
|
+
OBJECT = "object",
|
|
33
|
+
/** Array type */
|
|
34
|
+
ARRAY = "array",
|
|
35
|
+
/** Boolean type */
|
|
36
|
+
BOOLEAN = "boolean",
|
|
37
|
+
/** Integer type */
|
|
38
|
+
INTEGER = "integer"
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Schema definition for tool input/output
|
|
42
|
+
*/
|
|
43
|
+
export interface SchemaDefinition {
|
|
44
|
+
/**
|
|
45
|
+
* The type of the schema definition. This field specifies the data type of the schema.
|
|
46
|
+
*/
|
|
47
|
+
readonly type: SchemaDefinitionType;
|
|
48
|
+
/**
|
|
49
|
+
* The description of the schema definition. This description provides information about the purpose and usage of the schema.
|
|
50
|
+
*/
|
|
51
|
+
/**
|
|
52
|
+
* The description of the schema definition. This description provides information about the purpose and usage of the schema.
|
|
53
|
+
* @default - No description
|
|
54
|
+
*/
|
|
55
|
+
readonly description?: string;
|
|
56
|
+
/**
|
|
57
|
+
* The items in the schema definition. This field is used for array types to define the structure of the array elements.
|
|
58
|
+
*/
|
|
59
|
+
/**
|
|
60
|
+
* The items in the schema definition. This field is used for array types to define the structure of the array elements.
|
|
61
|
+
* @default - No items definition
|
|
62
|
+
*/
|
|
63
|
+
readonly items?: SchemaDefinition;
|
|
64
|
+
/**
|
|
65
|
+
* The properties of the schema definition. These properties define the fields in the schema.
|
|
66
|
+
*/
|
|
67
|
+
/**
|
|
68
|
+
* The properties of the schema definition. These properties define the fields in the schema.
|
|
69
|
+
* @default - No properties
|
|
70
|
+
*/
|
|
71
|
+
readonly properties?: Record<string, SchemaDefinition>;
|
|
72
|
+
/**
|
|
73
|
+
* The required fields in the schema definition. These fields must be provided when using the schema.
|
|
74
|
+
* @default - No required fields
|
|
75
|
+
*/
|
|
76
|
+
readonly required?: string[];
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Tool definition for inline payload
|
|
80
|
+
*/
|
|
81
|
+
export interface ToolDefinition {
|
|
82
|
+
/**
|
|
83
|
+
* The name of the tool. This name identifies the tool in the Model Context Protocol.
|
|
84
|
+
*/
|
|
85
|
+
readonly name: string;
|
|
86
|
+
/**
|
|
87
|
+
* The description of the tool. This description provides information about the purpose and usage of the tool.
|
|
88
|
+
*/
|
|
89
|
+
readonly description: string;
|
|
90
|
+
/**
|
|
91
|
+
* The input schema for the tool. This schema defines the structure of the input that the tool accepts.
|
|
92
|
+
*/
|
|
93
|
+
readonly inputSchema: SchemaDefinition;
|
|
94
|
+
/**
|
|
95
|
+
* The output schema for the tool. This schema defines the structure of the output that the tool produces.
|
|
96
|
+
*/
|
|
97
|
+
/**
|
|
98
|
+
* The output schema for the tool. This schema defines the structure of the output that the tool produces.
|
|
99
|
+
* @default - No output schema
|
|
100
|
+
*/
|
|
101
|
+
readonly outputSchema?: SchemaDefinition;
|
|
102
|
+
}
|
|
103
|
+
/******************************************************************************
|
|
104
|
+
* TOOL SCHEMA CLASS
|
|
105
|
+
*****************************************************************************/
|
|
106
|
+
export declare abstract class ToolSchema extends TargetSchema {
|
|
107
|
+
/**
|
|
108
|
+
* Creates a tool Schema from a local file.
|
|
109
|
+
* @param path - the path to the local file containing the function schema for the tool
|
|
110
|
+
*/
|
|
111
|
+
static fromLocalAsset(path: string): ToolSchema;
|
|
112
|
+
/**
|
|
113
|
+
* Creates a Tool Schema from an inline string.
|
|
114
|
+
* @param schema - the JSON or YAML payload defining the OpenAPI schema for the action group
|
|
115
|
+
*/
|
|
116
|
+
static fromInline(schema: ToolDefinition[]): InlineToolSchema;
|
|
117
|
+
/**
|
|
118
|
+
* Creates a Tool Schema from an S3 File
|
|
119
|
+
* @param bucket - the bucket containing the local file containing the OpenAPI schema for the action group
|
|
120
|
+
* @param objectKey - object key in the bucket
|
|
121
|
+
* @param bucketOwnerAccountId - optional The account ID of the Amazon S3 bucket owner. This ID is used for cross-account access to the bucket.
|
|
122
|
+
*/
|
|
123
|
+
static fromS3File(bucket: IBucket, objectKey: string, bucketOwnerAccountId?: string): S3ToolSchema;
|
|
124
|
+
/**
|
|
125
|
+
* The S3 location of the tool schema file, if using an S3-based schema.
|
|
126
|
+
* Contains the bucket name and object key information.
|
|
127
|
+
*/
|
|
128
|
+
readonly s3File?: Location;
|
|
129
|
+
/**
|
|
130
|
+
* The inline tool schema definition as a string, if using an inline schema.
|
|
131
|
+
* Can be in JSON or YAML format.
|
|
132
|
+
*/
|
|
133
|
+
readonly inlineSchema?: ToolDefinition[];
|
|
134
|
+
/**
|
|
135
|
+
* The account ID of the S3 bucket owner for cross-account access
|
|
136
|
+
*/
|
|
137
|
+
readonly bucketOwnerAccountId?: string;
|
|
138
|
+
protected constructor(s3File?: Location, bucketOwnerAccountId?: string, inlineSchema?: ToolDefinition[]);
|
|
139
|
+
/**
|
|
140
|
+
* Format as CFN properties
|
|
141
|
+
* @internal This is an internal core function and should not be called directly.
|
|
142
|
+
*/
|
|
143
|
+
abstract _render(): any;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Tool Schema from a local asset.
|
|
147
|
+
*
|
|
148
|
+
* The asset is uploaded to an S3 staging bucket, then moved to its final location
|
|
149
|
+
* by CloudFormation during deployment.
|
|
150
|
+
*/
|
|
151
|
+
export declare class AssetToolSchema extends ToolSchema {
|
|
152
|
+
private readonly path;
|
|
153
|
+
private readonly options;
|
|
154
|
+
private asset?;
|
|
155
|
+
constructor(path: string, options?: s3_assets.AssetOptions);
|
|
156
|
+
/**
|
|
157
|
+
* Binds this tool schema to a construct scope.
|
|
158
|
+
* This method initializes the S3 asset if it hasn't been initialized yet.
|
|
159
|
+
* Must be called before rendering the schema as CFN properties.
|
|
160
|
+
*
|
|
161
|
+
* @param scope - The construct scope to bind to
|
|
162
|
+
*/
|
|
163
|
+
bind(scope: Construct): void;
|
|
164
|
+
/**
|
|
165
|
+
* Format as CFN properties
|
|
166
|
+
* @internal This is an internal core function and should not be called directly.
|
|
167
|
+
*/
|
|
168
|
+
_render(): any;
|
|
169
|
+
grantPermissionsToRole(role: IRole): void;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Class to define a Tool Schema from an inline string.
|
|
173
|
+
* The schema can be provided directly as a string in either JSON or YAML format.
|
|
174
|
+
*/
|
|
175
|
+
export declare class InlineToolSchema extends ToolSchema {
|
|
176
|
+
private readonly schema;
|
|
177
|
+
constructor(schema: ToolDefinition[]);
|
|
178
|
+
/**
|
|
179
|
+
* @internal This is an internal core function and should not be called directly.
|
|
180
|
+
*/
|
|
181
|
+
_render(): any;
|
|
182
|
+
bind(scope: Construct): void;
|
|
183
|
+
grantPermissionsToRole(_role: IRole): void;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Class to define a Tool Schema from an S3 object.
|
|
187
|
+
*/
|
|
188
|
+
export declare class S3ToolSchema extends ToolSchema {
|
|
189
|
+
private readonly location;
|
|
190
|
+
readonly bucketOwnerAccountId?: string | undefined;
|
|
191
|
+
constructor(location: Location, bucketOwnerAccountId?: string | undefined);
|
|
192
|
+
/**
|
|
193
|
+
* @internal This is an internal core function and should not be called directly.
|
|
194
|
+
*/
|
|
195
|
+
_render(): any;
|
|
196
|
+
bind(scope: Construct): void;
|
|
197
|
+
grantPermissionsToRole(role: IRole): void;
|
|
198
|
+
}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.S3ToolSchema = exports.InlineToolSchema = exports.AssetToolSchema = exports.ToolSchema = exports.SchemaDefinitionType = void 0;
|
|
4
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
5
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
6
|
+
const aws_iam_1 = require("aws-cdk-lib/aws-iam");
|
|
7
|
+
const s3_assets = require("aws-cdk-lib/aws-s3-assets");
|
|
8
|
+
const base_schema_1 = require("./base-schema");
|
|
9
|
+
/**
|
|
10
|
+
* Schema definition types
|
|
11
|
+
*/
|
|
12
|
+
var SchemaDefinitionType;
|
|
13
|
+
(function (SchemaDefinitionType) {
|
|
14
|
+
/** String type */
|
|
15
|
+
SchemaDefinitionType["STRING"] = "string";
|
|
16
|
+
/** Number type */
|
|
17
|
+
SchemaDefinitionType["NUMBER"] = "number";
|
|
18
|
+
/** Object type */
|
|
19
|
+
SchemaDefinitionType["OBJECT"] = "object";
|
|
20
|
+
/** Array type */
|
|
21
|
+
SchemaDefinitionType["ARRAY"] = "array";
|
|
22
|
+
/** Boolean type */
|
|
23
|
+
SchemaDefinitionType["BOOLEAN"] = "boolean";
|
|
24
|
+
/** Integer type */
|
|
25
|
+
SchemaDefinitionType["INTEGER"] = "integer";
|
|
26
|
+
})(SchemaDefinitionType || (exports.SchemaDefinitionType = SchemaDefinitionType = {}));
|
|
27
|
+
/**
|
|
28
|
+
* Error thrown when a ToolSchema is not properly initialized.
|
|
29
|
+
*/
|
|
30
|
+
class ToolSchemaError extends Error {
|
|
31
|
+
cause;
|
|
32
|
+
constructor(message, cause) {
|
|
33
|
+
super(message);
|
|
34
|
+
this.cause = cause;
|
|
35
|
+
this.name = 'ToolSchemaError';
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/******************************************************************************
|
|
39
|
+
* TOOL SCHEMA CLASS
|
|
40
|
+
*****************************************************************************/
|
|
41
|
+
class ToolSchema extends base_schema_1.TargetSchema {
|
|
42
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.ToolSchema", version: "2.227.0-alpha.0" };
|
|
43
|
+
/**
|
|
44
|
+
* Creates a tool Schema from a local file.
|
|
45
|
+
* @param path - the path to the local file containing the function schema for the tool
|
|
46
|
+
*/
|
|
47
|
+
static fromLocalAsset(path) {
|
|
48
|
+
return new AssetToolSchema(path);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Creates a Tool Schema from an inline string.
|
|
52
|
+
* @param schema - the JSON or YAML payload defining the OpenAPI schema for the action group
|
|
53
|
+
*/
|
|
54
|
+
static fromInline(schema) {
|
|
55
|
+
return new InlineToolSchema(schema);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Creates a Tool Schema from an S3 File
|
|
59
|
+
* @param bucket - the bucket containing the local file containing the OpenAPI schema for the action group
|
|
60
|
+
* @param objectKey - object key in the bucket
|
|
61
|
+
* @param bucketOwnerAccountId - optional The account ID of the Amazon S3 bucket owner. This ID is used for cross-account access to the bucket.
|
|
62
|
+
*/
|
|
63
|
+
static fromS3File(bucket, objectKey, bucketOwnerAccountId) {
|
|
64
|
+
return new S3ToolSchema({
|
|
65
|
+
bucketName: bucket.bucketName,
|
|
66
|
+
objectKey: objectKey,
|
|
67
|
+
}, bucketOwnerAccountId);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* The S3 location of the tool schema file, if using an S3-based schema.
|
|
71
|
+
* Contains the bucket name and object key information.
|
|
72
|
+
*/
|
|
73
|
+
s3File;
|
|
74
|
+
/**
|
|
75
|
+
* The inline tool schema definition as a string, if using an inline schema.
|
|
76
|
+
* Can be in JSON or YAML format.
|
|
77
|
+
*/
|
|
78
|
+
inlineSchema;
|
|
79
|
+
/**
|
|
80
|
+
* The account ID of the S3 bucket owner for cross-account access
|
|
81
|
+
*/
|
|
82
|
+
bucketOwnerAccountId;
|
|
83
|
+
constructor(s3File, bucketOwnerAccountId, inlineSchema) {
|
|
84
|
+
super();
|
|
85
|
+
this.s3File = s3File;
|
|
86
|
+
this.inlineSchema = inlineSchema;
|
|
87
|
+
this.bucketOwnerAccountId = bucketOwnerAccountId;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
exports.ToolSchema = ToolSchema;
|
|
91
|
+
/**
|
|
92
|
+
* Tool Schema from a local asset.
|
|
93
|
+
*
|
|
94
|
+
* The asset is uploaded to an S3 staging bucket, then moved to its final location
|
|
95
|
+
* by CloudFormation during deployment.
|
|
96
|
+
*/
|
|
97
|
+
class AssetToolSchema extends ToolSchema {
|
|
98
|
+
path;
|
|
99
|
+
options;
|
|
100
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.AssetToolSchema", version: "2.227.0-alpha.0" };
|
|
101
|
+
asset;
|
|
102
|
+
constructor(path, options = {}) {
|
|
103
|
+
super();
|
|
104
|
+
this.path = path;
|
|
105
|
+
this.options = options;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Binds this tool schema to a construct scope.
|
|
109
|
+
* This method initializes the S3 asset if it hasn't been initialized yet.
|
|
110
|
+
* Must be called before rendering the schema as CFN properties.
|
|
111
|
+
*
|
|
112
|
+
* @param scope - The construct scope to bind to
|
|
113
|
+
*/
|
|
114
|
+
bind(scope) {
|
|
115
|
+
// If the same AssetToolSchema is used multiple times, retain only the first instantiation
|
|
116
|
+
if (!this.asset) {
|
|
117
|
+
this.asset = new s3_assets.Asset(scope, 'Schema', {
|
|
118
|
+
path: this.path,
|
|
119
|
+
...this.options,
|
|
120
|
+
});
|
|
121
|
+
// Note: Permissions will be granted by the Gateway target construct when adding the target
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Format as CFN properties
|
|
126
|
+
* @internal This is an internal core function and should not be called directly.
|
|
127
|
+
*/
|
|
128
|
+
_render() {
|
|
129
|
+
if (!this.asset) {
|
|
130
|
+
throw new ToolSchemaError('ToolSchema must be bound to a scope before rendering. Call bind() first.', 'Asset not initialized');
|
|
131
|
+
}
|
|
132
|
+
return {
|
|
133
|
+
s3: {
|
|
134
|
+
uri: `s3://${this.asset.s3BucketName}/${this.asset.s3ObjectKey}`,
|
|
135
|
+
},
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
grantPermissionsToRole(role) {
|
|
139
|
+
if (!this.asset) {
|
|
140
|
+
throw new ToolSchemaError('ToolSchema must be bound to a scope before rendering. Call bind() first.', 'Asset not initialized');
|
|
141
|
+
}
|
|
142
|
+
this.asset.grantRead(role);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
exports.AssetToolSchema = AssetToolSchema;
|
|
146
|
+
// ------------------------------------------------------
|
|
147
|
+
/**
|
|
148
|
+
* Class to define a Tool Schema from an inline string.
|
|
149
|
+
* The schema can be provided directly as a string in either JSON or YAML format.
|
|
150
|
+
*/
|
|
151
|
+
class InlineToolSchema extends ToolSchema {
|
|
152
|
+
schema;
|
|
153
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.InlineToolSchema", version: "2.227.0-alpha.0" };
|
|
154
|
+
constructor(schema) {
|
|
155
|
+
super(undefined, undefined, schema);
|
|
156
|
+
this.schema = schema;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* @internal This is an internal core function and should not be called directly.
|
|
160
|
+
*/
|
|
161
|
+
_render() {
|
|
162
|
+
return {
|
|
163
|
+
inlinePayload: this.schema,
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
bind(scope) {
|
|
167
|
+
if (scope) {
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
grantPermissionsToRole(_role) {
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
exports.InlineToolSchema = InlineToolSchema;
|
|
174
|
+
// ------------------------------------------------------
|
|
175
|
+
// S3 File
|
|
176
|
+
// ------------------------------------------------------
|
|
177
|
+
/**
|
|
178
|
+
* Class to define a Tool Schema from an S3 object.
|
|
179
|
+
*/
|
|
180
|
+
class S3ToolSchema extends ToolSchema {
|
|
181
|
+
location;
|
|
182
|
+
bucketOwnerAccountId;
|
|
183
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.S3ToolSchema", version: "2.227.0-alpha.0" };
|
|
184
|
+
constructor(location, bucketOwnerAccountId) {
|
|
185
|
+
super(location, bucketOwnerAccountId, undefined);
|
|
186
|
+
this.location = location;
|
|
187
|
+
this.bucketOwnerAccountId = bucketOwnerAccountId;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* @internal This is an internal core function and should not be called directly.
|
|
191
|
+
*/
|
|
192
|
+
_render() {
|
|
193
|
+
return {
|
|
194
|
+
s3: {
|
|
195
|
+
uri: `s3://${this.location.bucketName}/${this.location.objectKey}`,
|
|
196
|
+
...(this.bucketOwnerAccountId && { bucketOwnerAccountId: this.bucketOwnerAccountId }),
|
|
197
|
+
},
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
bind(scope) {
|
|
201
|
+
if (scope) {
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
grantPermissionsToRole(role) {
|
|
205
|
+
aws_iam_1.Grant.addToPrincipal({
|
|
206
|
+
grantee: role,
|
|
207
|
+
actions: ['s3:GetObject'],
|
|
208
|
+
resourceArns: [`arn:${aws_cdk_lib_1.Aws.PARTITION}:s3:::${this.location.bucketName}/${this.location.objectKey}`],
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
exports.S3ToolSchema = S3ToolSchema;
|
|
213
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbC1zY2hlbWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0b29sLXNjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsNkNBQWtDO0FBQ2xDLGlEQUFtRDtBQUVuRCx1REFBdUQ7QUFFdkQsK0NBQTZDO0FBc0I3Qzs7R0FFRztBQUNILElBQVksb0JBYVg7QUFiRCxXQUFZLG9CQUFvQjtJQUM5QixrQkFBa0I7SUFDbEIseUNBQWlCLENBQUE7SUFDakIsa0JBQWtCO0lBQ2xCLHlDQUFpQixDQUFBO0lBQ2pCLGtCQUFrQjtJQUNsQix5Q0FBaUIsQ0FBQTtJQUNqQixpQkFBaUI7SUFDakIsdUNBQWUsQ0FBQTtJQUNmLG1CQUFtQjtJQUNuQiwyQ0FBbUIsQ0FBQTtJQUNuQixtQkFBbUI7SUFDbkIsMkNBQW1CLENBQUE7QUFDckIsQ0FBQyxFQWJXLG9CQUFvQixvQ0FBcEIsb0JBQW9CLFFBYS9CO0FBMEVEOztHQUVHO0FBQ0gsTUFBTSxlQUFnQixTQUFRLEtBQUs7SUFDWTtJQUE3QyxZQUFZLE9BQWUsRUFBa0IsS0FBYztRQUN6RCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFENEIsVUFBSyxHQUFMLEtBQUssQ0FBUztRQUV6RCxJQUFJLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFDO0tBQy9CO0NBQ0Y7QUFFRDs7K0VBRStFO0FBQy9FLE1BQXNCLFVBQVcsU0FBUSwwQkFBWTs7SUFDbkQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFZO1FBQ3ZDLE9BQU8sSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDbEM7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQXdCO1FBQy9DLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUNyQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFlLEVBQUUsU0FBaUIsRUFBRSxvQkFBNkI7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QUFDO1FBRHRCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFBa0IseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFTO0tBRTdGO0lBQ0Q7O09BRUc7SUFDSSxPQUFPO1FBQ1osT0FBTztZQUNMLEVBQUUsRUFBRTtnQkFDRixHQUFHLEVBQUUsUUFBUSxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRTtnQkFDbEUsR0FBRyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxFQUFFLG9CQUFvQixFQUFFLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO2FBQ3RGO1NBQ0YsQ0FBQztLQUNIO0lBRU0sSUFBSSxDQUFDLEtBQWdCO1FBQzFCLElBQUksS0FBSyxFQUFFLENBQUM7UUFDWixDQUFDO0tBRUY7SUFFTSxzQkFBc0IsQ0FBQyxJQUFXO1FBQ3ZDLGVBQUssQ0FBQyxjQUFjLENBQUM7WUFDbkIsT0FBTyxFQUFFLElBQUk7WUFDYixPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7WUFDekIsWUFBWSxFQUFFLENBQUMsT0FBTyxpQkFBRyxDQUFDLFNBQVMsU0FBUyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ25HLENBQUMsQ0FBQztLQUNKOztBQTVCSCxvQ0E2QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBd3MgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBHcmFudCwgSVJvbGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IElCdWNrZXQsIExvY2F0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCAqIGFzIHMzX2Fzc2V0cyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMtYXNzZXRzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgVGFyZ2V0U2NoZW1hIH0gZnJvbSAnLi9iYXNlLXNjaGVtYSc7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb29sIFNjaGVtYSBDb25maWd1cmF0aW9uXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qKlxuICogQWJzdHJhY3QgaW50ZXJmYWNlIGZvciB0b29sIHNjaGVtYSBjb25maWd1cmF0aW9uXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJVG9vbFNjaGVtYUNvbmZpZ3VyYXRpb24ge1xuICAvKipcbiAgICogVGhlIHRvb2wgc2NoZW1hIGNvbmZpZ3VyYXRpb24gdHlwZVxuICAgKi9cbiAgcmVhZG9ubHkgdG9vbFNjaGVtYVR5cGU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHRvb2wgc2NoZW1hIGNvbmZpZ3VyYXRpb24gb2JqZWN0XG4gICAqL1xuICByZWFkb25seSBjb25maWd1cmF0aW9uOiBhbnk7XG59XG5cbi8qKlxuICogU2NoZW1hIGRlZmluaXRpb24gdHlwZXNcbiAqL1xuZXhwb3J0IGVudW0gU2NoZW1hRGVmaW5pdGlvblR5cGUge1xuICAvKiogU3RyaW5nIHR5cGUgKi9cbiAgU1RSSU5HID0gJ3N0cmluZycsXG4gIC8qKiBOdW1iZXIgdHlwZSAqL1xuICBOVU1CRVIgPSAnbnVtYmVyJyxcbiAgLyoqIE9iamVjdCB0eXBlICovXG4gIE9CSkVDVCA9ICdvYmplY3QnLFxuICAvKiogQXJyYXkgdHlwZSAqL1xuICBBUlJBWSA9ICdhcnJheScsXG4gIC8qKiBCb29sZWFuIHR5cGUgKi9cbiAgQk9PTEVBTiA9ICdib29sZWFuJyxcbiAgLyoqIEludGVnZXIgdHlwZSAqL1xuICBJTlRFR0VSID0gJ2ludGVnZXInLFxufVxuXG4vKipcbiAqIFNjaGVtYSBkZWZpbml0aW9uIGZvciB0b29sIGlucHV0L291dHB1dFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNjaGVtYURlZmluaXRpb24ge1xuICAvKipcbiAgICogVGhlIHR5cGUgb2YgdGhlIHNjaGVtYSBkZWZpbml0aW9uLiBUaGlzIGZpZWxkIHNwZWNpZmllcyB0aGUgZGF0YSB0eXBlIG9mIHRoZSBzY2hlbWEuXG4gICAqL1xuICByZWFkb25seSB0eXBlOiBTY2hlbWFEZWZpbml0aW9uVHlwZTtcblxuICAvKipcbiAgICogVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBzY2hlbWEgZGVmaW5pdGlvbi4gVGhpcyBkZXNjcmlwdGlvbiBwcm92aWRlcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcHVycG9zZSBhbmQgdXNhZ2Ugb2YgdGhlIHNjaGVtYS5cbiAgICovXG4gIC8qKlxuICAgKiBUaGUgZGVzY3JpcHRpb24gb2YgdGhlIHNjaGVtYSBkZWZpbml0aW9uLiBUaGlzIGRlc2NyaXB0aW9uIHByb3ZpZGVzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBwdXJwb3NlIGFuZCB1c2FnZSBvZiB0aGUgc2NoZW1hLlxuICAgKiBAZGVmYXVsdCAtIE5vIGRlc2NyaXB0aW9uXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGl0ZW1zIGluIHRoZSBzY2hlbWEgZGVmaW5pdGlvbi4gVGhpcyBmaWVsZCBpcyB1c2VkIGZvciBhcnJheSB0eXBlcyB0byBkZWZpbmUgdGhlIHN0cnVjdHVyZSBvZiB0aGUgYXJyYXkgZWxlbWVudHMuXG4gICAqL1xuICAvKipcbiAgICogVGhlIGl0ZW1zIGluIHRoZSBzY2hlbWEgZGVmaW5pdGlvbi4gVGhpcyBmaWVsZCBpcyB1c2VkIGZvciBhcnJheSB0eXBlcyB0byBkZWZpbmUgdGhlIHN0cnVjdHVyZSBvZiB0aGUgYXJyYXkgZWxlbWVudHMuXG4gICAqIEBkZWZhdWx0IC0gTm8gaXRlbXMgZGVmaW5pdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgaXRlbXM/OiBTY2hlbWFEZWZpbml0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJvcGVydGllcyBvZiB0aGUgc2NoZW1hIGRlZmluaXRpb24uIFRoZXNlIHByb3BlcnRpZXMgZGVmaW5lIHRoZSBmaWVsZHMgaW4gdGhlIHNjaGVtYS5cbiAgICovXG4gIC8qKlxuICAgKiBUaGUgcHJvcGVydGllcyBvZiB0aGUgc2NoZW1hIGRlZmluaXRpb24uIFRoZXNlIHByb3BlcnRpZXMgZGVmaW5lIHRoZSBmaWVsZHMgaW4gdGhlIHNjaGVtYS5cbiAgICogQGRlZmF1bHQgLSBObyBwcm9wZXJ0aWVzXG4gICAqL1xuICByZWFkb25seSBwcm9wZXJ0aWVzPzogUmVjb3JkPHN0cmluZywgU2NoZW1hRGVmaW5pdGlvbj47XG5cbiAgLyoqXG4gICAqIFRoZSByZXF1aXJlZCBmaWVsZHMgaW4gdGhlIHNjaGVtYSBkZWZpbml0aW9uLiBUaGVzZSBmaWVsZHMgbXVzdCBiZSBwcm92aWRlZCB3aGVuIHVzaW5nIHRoZSBzY2hlbWEuXG4gICAqIEBkZWZhdWx0IC0gTm8gcmVxdWlyZWQgZmllbGRzXG4gICAqL1xuICByZWFkb25seSByZXF1aXJlZD86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFRvb2wgZGVmaW5pdGlvbiBmb3IgaW5saW5lIHBheWxvYWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUb29sRGVmaW5pdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgdG9vbC4gVGhpcyBuYW1lIGlkZW50aWZpZXMgdGhlIHRvb2wgaW4gdGhlIE1vZGVsIENvbnRleHQgUHJvdG9jb2wuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgdG9vbC4gVGhpcyBkZXNjcmlwdGlvbiBwcm92aWRlcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcHVycG9zZSBhbmQgdXNhZ2Ugb2YgdGhlIHRvb2wuXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgaW5wdXQgc2NoZW1hIGZvciB0aGUgdG9vbC4gVGhpcyBzY2hlbWEgZGVmaW5lcyB0aGUgc3RydWN0dXJlIG9mIHRoZSBpbnB1dCB0aGF0IHRoZSB0b29sIGFjY2VwdHMuXG4gICAqL1xuICByZWFkb25seSBpbnB1dFNjaGVtYTogU2NoZW1hRGVmaW5pdGlvbjtcblxuICAvKipcbiAgICogVGhlIG91dHB1dCBzY2hlbWEgZm9yIHRoZSB0b29sLiBUaGlzIHNjaGVtYSBkZWZpbmVzIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIG91dHB1dCB0aGF0IHRoZSB0b29sIHByb2R1Y2VzLlxuICAgKi9cbiAgLyoqXG4gICAqIFRoZSBvdXRwdXQgc2NoZW1hIGZvciB0aGUgdG9vbC4gVGhpcyBzY2hlbWEgZGVmaW5lcyB0aGUgc3RydWN0dXJlIG9mIHRoZSBvdXRwdXQgdGhhdCB0aGUgdG9vbCBwcm9kdWNlcy5cbiAgICogQGRlZmF1bHQgLSBObyBvdXRwdXQgc2NoZW1hXG4gICAqL1xuICByZWFkb25seSBvdXRwdXRTY2hlbWE/OiBTY2hlbWFEZWZpbml0aW9uO1xufVxuXG4vKipcbiAqIEVycm9yIHRocm93biB3aGVuIGEgVG9vbFNjaGVtYSBpcyBub3QgcHJvcGVybHkgaW5pdGlhbGl6ZWQuXG4gKi9cbmNsYXNzIFRvb2xTY2hlbWFFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nLCBwdWJsaWMgcmVhZG9ubHkgY2F1c2U/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgICB0aGlzLm5hbWUgPSAnVG9vbFNjaGVtYUVycm9yJztcbiAgfVxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiAgICAgICAgICAgICAgICAgICAgICAgVE9PTCBTQ0hFTUEgQ0xBU1NcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUb29sU2NoZW1hIGV4dGVuZHMgVGFyZ2V0U2NoZW1hIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSB0b29sIFNjaGVtYSBmcm9tIGEgbG9jYWwgZmlsZS5cbiAgICogQHBhcmFtIHBhdGggLSB0aGUgcGF0aCB0byB0aGUgbG9jYWwgZmlsZSBjb250YWluaW5nIHRoZSBmdW5jdGlvbiBzY2hlbWEgZm9yIHRoZSB0b29sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Mb2NhbEFzc2V0KHBhdGg6IHN0cmluZyk6IFRvb2xTY2hlbWEge1xuICAgIHJldHVybiBuZXcgQXNzZXRUb29sU2NoZW1hKHBhdGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBUb29sIFNjaGVtYSBmcm9tIGFuIGlubGluZSBzdHJpbmcuXG4gICAqIEBwYXJhbSBzY2hlbWEgLSB0aGUgSlNPTiBvciBZQU1MIHBheWxvYWQgZGVmaW5pbmcgdGhlIE9wZW5BUEkgc2NoZW1hIGZvciB0aGUgYWN0aW9uIGdyb3VwXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21JbmxpbmUoc2NoZW1hOiBUb29sRGVmaW5pdGlvbltdKTogSW5saW5lVG9vbFNjaGVtYSB7XG4gICAgcmV0dXJuIG5ldyBJbmxpbmVUb29sU2NoZW1hKHNjaGVtYSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIFRvb2wgU2NoZW1hIGZyb20gYW4gUzMgRmlsZVxuICAgKiBAcGFyYW0gYnVja2V0IC0gdGhlIGJ1Y2tldCBjb250YWluaW5nIHRoZSBsb2NhbCBmaWxlIGNvbnRhaW5pbmcgdGhlIE9wZW5BUEkgc2NoZW1hIGZvciB0aGUgYWN0aW9uIGdyb3VwXG4gICAqIEBwYXJhbSBvYmplY3RLZXkgLSBvYmplY3Qga2V5IGluIHRoZSBidWNrZXRcbiAgICogQHBhcmFtIGJ1Y2tldE93bmVyQWNjb3VudElkIC0gb3B0aW9uYWwgVGhlIGFjY291bnQgSUQgb2YgdGhlIEFtYXpvbiBTMyBidWNrZXQgb3duZXIuIFRoaXMgSUQgaXMgdXNlZCBmb3IgY3Jvc3MtYWNjb3VudCBhY2Nlc3MgdG8gdGhlIGJ1Y2tldC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVMzRmlsZShidWNrZXQ6IElCdWNrZXQsIG9iamVjdEtleTogc3RyaW5nLCBidWNrZXRPd25lckFjY291bnRJZD86IHN0cmluZyk6IFMzVG9vbFNjaGVtYSB7XG4gICAgcmV0dXJuIG5ldyBTM1Rvb2xTY2hlbWEoXG4gICAgICB7XG4gICAgICAgIGJ1Y2tldE5hbWU6IGJ1Y2tldC5idWNrZXROYW1lLFxuICAgICAgICBvYmplY3RLZXk6IG9iamVjdEtleSxcbiAgICAgIH0sXG4gICAgICBidWNrZXRPd25lckFjY291bnRJZCxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBTMyBsb2NhdGlvbiBvZiB0aGUgdG9vbCBzY2hlbWEgZmlsZSwgaWYgdXNpbmcgYW4gUzMtYmFzZWQgc2NoZW1hLlxuICAgKiBDb250YWlucyB0aGUgYnVja2V0IG5hbWUgYW5kIG9iamVjdCBrZXkgaW5mb3JtYXRpb24uXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgczNGaWxlPzogTG9jYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBpbmxpbmUgdG9vbCBzY2hlbWEgZGVmaW5pdGlvbiBhcyBhIHN0cmluZywgaWYgdXNpbmcgYW4gaW5saW5lIHNjaGVtYS5cbiAgICogQ2FuIGJlIGluIEpTT04gb3IgWUFNTCBmb3JtYXQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaW5saW5lU2NoZW1hPzogVG9vbERlZmluaXRpb25bXTtcblxuICAvKipcbiAgICogVGhlIGFjY291bnQgSUQgb2YgdGhlIFMzIGJ1Y2tldCBvd25lciBmb3IgY3Jvc3MtYWNjb3VudCBhY2Nlc3NcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBidWNrZXRPd25lckFjY291bnRJZD86IHN0cmluZztcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoczNGaWxlPzogTG9jYXRpb24sIGJ1Y2tldE93bmVyQWNjb3VudElkPzogc3RyaW5nLCBpbmxpbmVTY2hlbWE/OiBUb29sRGVmaW5pdGlvbltdKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnMzRmlsZSA9IHMzRmlsZTtcbiAgICB0aGlzLmlubGluZVNjaGVtYSA9IGlubGluZVNjaGVtYTtcbiAgICB0aGlzLmJ1Y2tldE93bmVyQWNjb3VudElkID0gYnVja2V0T3duZXJBY2NvdW50SWQ7XG4gIH1cblxuICAvKipcbiAgICogRm9ybWF0IGFzIENGTiBwcm9wZXJ0aWVzXG4gICAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5LlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IF9yZW5kZXIoKTogYW55O1xufVxuXG4vKipcbiAqIFRvb2wgU2NoZW1hIGZyb20gYSBsb2NhbCBhc3NldC5cbiAqXG4gKiBUaGUgYXNzZXQgaXMgdXBsb2FkZWQgdG8gYW4gUzMgc3RhZ2luZyBidWNrZXQsIHRoZW4gbW92ZWQgdG8gaXRzIGZpbmFsIGxvY2F0aW9uXG4gKiBieSBDbG91ZEZvcm1hdGlvbiBkdXJpbmcgZGVwbG95bWVudC5cbiAqL1xuZXhwb3J0IGNsYXNzIEFzc2V0VG9vbFNjaGVtYSBleHRlbmRzIFRvb2xTY2hlbWEge1xuICBwcml2YXRlIGFzc2V0PzogczNfYXNzZXRzLkFzc2V0O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcGF0aDogc3RyaW5nLCBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IHMzX2Fzc2V0cy5Bc3NldE9wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogQmluZHMgdGhpcyB0b29sIHNjaGVtYSB0byBhIGNvbnN0cnVjdCBzY29wZS5cbiAgICogVGhpcyBtZXRob2QgaW5pdGlhbGl6ZXMgdGhlIFMzIGFzc2V0IGlmIGl0IGhhc24ndCBiZWVuIGluaXRpYWxpemVkIHlldC5cbiAgICogTXVzdCBiZSBjYWxsZWQgYmVmb3JlIHJlbmRlcmluZyB0aGUgc2NoZW1hIGFzIENGTiBwcm9wZXJ0aWVzLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgLSBUaGUgY29uc3RydWN0IHNjb3BlIHRvIGJpbmQgdG9cbiAgICovXG4gIHB1YmxpYyBiaW5kKHNjb3BlOiBDb25zdHJ1Y3QpOiB2b2lkIHtcbiAgICAvLyBJZiB0aGUgc2FtZSBBc3NldFRvb2xTY2hlbWEgaXMgdXNlZCBtdWx0aXBsZSB0aW1lcywgcmV0YWluIG9ubHkgdGhlIGZpcnN0IGluc3RhbnRpYXRpb25cbiAgICBpZiAoIXRoaXMuYXNzZXQpIHtcbiAgICAgIHRoaXMuYXNzZXQgPSBuZXcgczNfYXNzZXRzLkFzc2V0KHNjb3BlLCAnU2NoZW1hJywge1xuICAgICAgICBwYXRoOiB0aGlzLnBhdGgsXG4gICAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIH0pO1xuICAgICAgLy8gTm90ZTogUGVybWlzc2lvbnMgd2lsbCBiZSBncmFudGVkIGJ5IHRoZSBHYXRld2F5IHRhcmdldCBjb25zdHJ1Y3Qgd2hlbiBhZGRpbmcgdGhlIHRhcmdldFxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGb3JtYXQgYXMgQ0ZOIHByb3BlcnRpZXNcbiAgICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkuXG4gICAqL1xuICBwdWJsaWMgX3JlbmRlcigpOiBhbnkge1xuICAgIGlmICghdGhpcy5hc3NldCkge1xuICAgICAgdGhyb3cgbmV3IFRvb2xTY2hlbWFFcnJvcihcbiAgICAgICAgJ1Rvb2xTY2hlbWEgbXVzdCBiZSBib3VuZCB0byBhIHNjb3BlIGJlZm9yZSByZW5kZXJpbmcuIENhbGwgYmluZCgpIGZpcnN0LicsXG4gICAgICAgICdBc3NldCBub3QgaW5pdGlhbGl6ZWQnLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgczM6IHtcbiAgICAgICAgdXJpOiBgczM6Ly8ke3RoaXMuYXNzZXQuczNCdWNrZXROYW1lfS8ke3RoaXMuYXNzZXQuczNPYmplY3RLZXl9YCxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBncmFudFBlcm1pc3Npb25zVG9Sb2xlKHJvbGU6IElSb2xlKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmFzc2V0KSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbFNjaGVtYUVycm9yKFxuICAgICAgICAnVG9vbFNjaGVtYSBtdXN0IGJlIGJvdW5kIHRvIGEgc2NvcGUgYmVmb3JlIHJlbmRlcmluZy4gQ2FsbCBiaW5kKCkgZmlyc3QuJyxcbiAgICAgICAgJ0Fzc2V0IG5vdCBpbml0aWFsaXplZCcsXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLmFzc2V0LmdyYW50UmVhZChyb2xlKTtcbiAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8qKlxuICogQ2xhc3MgdG8gZGVmaW5lIGEgVG9vbCBTY2hlbWEgZnJvbSBhbiBpbmxpbmUgc3RyaW5nLlxuICogVGhlIHNjaGVtYSBjYW4gYmUgcHJvdmlkZWQgZGlyZWN0bHkgYXMgYSBzdHJpbmcgaW4gZWl0aGVyIEpTT04gb3IgWUFNTCBmb3JtYXQuXG4gKi9cbmV4cG9ydCBjbGFzcyBJbmxpbmVUb29sU2NoZW1hIGV4dGVuZHMgVG9vbFNjaGVtYSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgc2NoZW1hOiBUb29sRGVmaW5pdGlvbltdKSB7XG4gICAgc3VwZXIodW5kZWZpbmVkLCB1bmRlZmluZWQsIHNjaGVtYSk7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkuXG4gICAqL1xuICBwdWJsaWMgX3JlbmRlcigpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICBpbmxpbmVQYXlsb2FkOiB0aGlzLnNjaGVtYSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGJpbmQoc2NvcGU6IENvbnN0cnVjdCk6IHZvaWQge1xuICAgIGlmIChzY29wZSkge1xuICAgIH1cbiAgICAvLyBOby1vcFxuICB9XG5cbiAgcHVibGljIGdyYW50UGVybWlzc2lvbnNUb1JvbGUoX3JvbGU6IElSb2xlKTogdm9pZCB7XG4gICAgLy8gTm8tb3AgLSBJbmxpbmVUb29sU2NoZW1hIGRvZXNuJ3QgbmVlZCBwZXJtaXNzaW9uc1xuICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUzMgRmlsZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vKipcbiAqIENsYXNzIHRvIGRlZmluZSBhIFRvb2wgU2NoZW1hIGZyb20gYW4gUzMgb2JqZWN0LlxuICovXG5leHBvcnQgY2xhc3MgUzNUb29sU2NoZW1hIGV4dGVuZHMgVG9vbFNjaGVtYSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgbG9jYXRpb246IExvY2F0aW9uLCBwdWJsaWMgcmVhZG9ubHkgYnVja2V0T3duZXJBY2NvdW50SWQ/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihsb2NhdGlvbiwgYnVja2V0T3duZXJBY2NvdW50SWQsIHVuZGVmaW5lZCk7XG4gIH1cbiAgLyoqXG4gICAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5LlxuICAgKi9cbiAgcHVibGljIF9yZW5kZXIoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgczM6IHtcbiAgICAgICAgdXJpOiBgczM6Ly8ke3RoaXMubG9jYXRpb24uYnVja2V0TmFtZX0vJHt0aGlzLmxvY2F0aW9uLm9iamVjdEtleX1gLFxuICAgICAgICAuLi4odGhpcy5idWNrZXRPd25lckFjY291bnRJZCAmJiB7IGJ1Y2tldE93bmVyQWNjb3VudElkOiB0aGlzLmJ1Y2tldE93bmVyQWNjb3VudElkIH0pLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGJpbmQoc2NvcGU6IENvbnN0cnVjdCk6IHZvaWQge1xuICAgIGlmIChzY29wZSkge1xuICAgIH1cbiAgICAvLyBOby1vcFxuICB9XG5cbiAgcHVibGljIGdyYW50UGVybWlzc2lvbnNUb1JvbGUocm9sZTogSVJvbGUpOiB2b2lkIHtcbiAgICBHcmFudC5hZGRUb1ByaW5jaXBhbCh7XG4gICAgICBncmFudGVlOiByb2xlLFxuICAgICAgYWN0aW9uczogWydzMzpHZXRPYmplY3QnXSxcbiAgICAgIHJlc291cmNlQXJuczogW2Bhcm46JHtBd3MuUEFSVElUSU9OfTpzMzo6OiR7dGhpcy5sb2NhdGlvbi5idWNrZXROYW1lfS8ke3RoaXMubG9jYXRpb24ub2JqZWN0S2V5fWBdLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { Resource, IResource } from 'aws-cdk-lib';
|
|
2
|
+
import * as iam from 'aws-cdk-lib/aws-iam';
|
|
3
|
+
import { IGateway } from '../gateway-base';
|
|
4
|
+
import { ICredentialProviderConfig } from '../outbound-auth/credential-provider';
|
|
5
|
+
/******************************************************************************
|
|
6
|
+
* ENUM
|
|
7
|
+
*****************************************************************************/
|
|
8
|
+
/**
|
|
9
|
+
* Protocol types supported by gateway targets
|
|
10
|
+
*/
|
|
11
|
+
export declare enum GatewayTargetProtocolType {
|
|
12
|
+
/** Model Context Protocol type */
|
|
13
|
+
MCP = "MCP"
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* MCP target types
|
|
17
|
+
*/
|
|
18
|
+
export declare enum McpTargetType {
|
|
19
|
+
/** OpenAPI schema target type */
|
|
20
|
+
OPENAPI_SCHEMA = "OPENAPI_SCHEMA",
|
|
21
|
+
/** Smithy model target type */
|
|
22
|
+
SMITHY_MODEL = "SMITHY_MODEL",
|
|
23
|
+
/** Lambda function target type */
|
|
24
|
+
LAMBDA = "LAMBDA",
|
|
25
|
+
/** MCP server target type */
|
|
26
|
+
MCP_SERVER = "MCP_SERVER"
|
|
27
|
+
}
|
|
28
|
+
/******************************************************************************
|
|
29
|
+
* Interface
|
|
30
|
+
*****************************************************************************/
|
|
31
|
+
/**
|
|
32
|
+
* Interface for GatewayTarget resources
|
|
33
|
+
*
|
|
34
|
+
* Represents a target that hosts tools for the gateway.
|
|
35
|
+
* Targets can be Lambda functions, OpenAPI schemas, or Smithy models.
|
|
36
|
+
*/
|
|
37
|
+
export interface IGatewayTarget extends IResource {
|
|
38
|
+
/**
|
|
39
|
+
* The ARN of the gateway target resource
|
|
40
|
+
* @attribute
|
|
41
|
+
*/
|
|
42
|
+
readonly targetArn: string;
|
|
43
|
+
/**
|
|
44
|
+
* The id of the gateway target
|
|
45
|
+
* @attribute
|
|
46
|
+
*/
|
|
47
|
+
readonly targetId: string;
|
|
48
|
+
/**
|
|
49
|
+
* The name of the gateway target
|
|
50
|
+
*/
|
|
51
|
+
readonly name: string;
|
|
52
|
+
/**
|
|
53
|
+
* The description of the gateway target
|
|
54
|
+
*/
|
|
55
|
+
readonly description?: string;
|
|
56
|
+
/**
|
|
57
|
+
* The gateway that this target belongs to
|
|
58
|
+
*/
|
|
59
|
+
readonly gateway: IGateway;
|
|
60
|
+
/**
|
|
61
|
+
* The target protocol
|
|
62
|
+
*/
|
|
63
|
+
readonly targetProtocolType: GatewayTargetProtocolType;
|
|
64
|
+
/**
|
|
65
|
+
* The credential provider configuration for the target
|
|
66
|
+
*/
|
|
67
|
+
readonly credentialProviderConfigurations: ICredentialProviderConfig[] | undefined;
|
|
68
|
+
/**
|
|
69
|
+
* The status of the gateway target
|
|
70
|
+
* @attribute
|
|
71
|
+
*/
|
|
72
|
+
readonly status?: string;
|
|
73
|
+
/**
|
|
74
|
+
* The status reasons for the gateway target
|
|
75
|
+
* @attribute
|
|
76
|
+
*/
|
|
77
|
+
readonly statusReasons?: string[];
|
|
78
|
+
/**
|
|
79
|
+
* Timestamp when the gateway target was created
|
|
80
|
+
* @attribute
|
|
81
|
+
*/
|
|
82
|
+
readonly createdAt?: string;
|
|
83
|
+
/**
|
|
84
|
+
* Timestamp when the gateway target was last updated
|
|
85
|
+
* @attribute
|
|
86
|
+
*/
|
|
87
|
+
readonly updatedAt?: string;
|
|
88
|
+
/**
|
|
89
|
+
* Grants IAM actions to the IAM Principal
|
|
90
|
+
*/
|
|
91
|
+
grant(grantee: iam.IGrantable, ...actions: string[]): iam.Grant;
|
|
92
|
+
/**
|
|
93
|
+
* Grants `Get` and `List` actions on the Gateway Target
|
|
94
|
+
*/
|
|
95
|
+
grantRead(grantee: iam.IGrantable): iam.Grant;
|
|
96
|
+
/**
|
|
97
|
+
* Grants `Create`, `Update`, and `Delete` actions on the Gateway Target
|
|
98
|
+
*/
|
|
99
|
+
grantManage(grantee: iam.IGrantable): iam.Grant;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Interface for MCP gateway targets
|
|
103
|
+
*
|
|
104
|
+
* Extends the base gateway target interface with MCP-specific properties.
|
|
105
|
+
* MCP targets expose tools using the Model Context Protocol.
|
|
106
|
+
*/
|
|
107
|
+
export interface IMcpGatewayTarget extends IGatewayTarget {
|
|
108
|
+
/**
|
|
109
|
+
* The type of target (Lambda, OpenAPI, or Smithy)
|
|
110
|
+
*/
|
|
111
|
+
readonly targetType: McpTargetType;
|
|
112
|
+
}
|
|
113
|
+
/******************************************************************************
|
|
114
|
+
* Base Class
|
|
115
|
+
*****************************************************************************/
|
|
116
|
+
/**
|
|
117
|
+
* Base class for gateway target implementations
|
|
118
|
+
*
|
|
119
|
+
* Provides common functionality for all gateway target types including
|
|
120
|
+
* permission management and property definitions.
|
|
121
|
+
*/
|
|
122
|
+
export declare abstract class GatewayTargetBase extends Resource implements IGatewayTarget {
|
|
123
|
+
abstract readonly targetArn: string;
|
|
124
|
+
abstract readonly targetId: string;
|
|
125
|
+
abstract readonly name: string;
|
|
126
|
+
abstract readonly description?: string;
|
|
127
|
+
abstract readonly gateway: IGateway;
|
|
128
|
+
abstract readonly credentialProviderConfigurations: ICredentialProviderConfig[] | undefined;
|
|
129
|
+
abstract readonly status?: string;
|
|
130
|
+
abstract readonly statusReasons?: string[];
|
|
131
|
+
abstract readonly createdAt?: string;
|
|
132
|
+
abstract readonly updatedAt?: string;
|
|
133
|
+
abstract readonly targetProtocolType: GatewayTargetProtocolType;
|
|
134
|
+
/**
|
|
135
|
+
* Grants IAM actions to the IAM Principal
|
|
136
|
+
*
|
|
137
|
+
* @param grantee The principal to grant permissions to
|
|
138
|
+
* @param actions The IAM actions to grant
|
|
139
|
+
*/
|
|
140
|
+
grant(grantee: iam.IGrantable, ...actions: string[]): iam.Grant;
|
|
141
|
+
/**
|
|
142
|
+
* Grants `Get` and `List` actions on the Gateway Target
|
|
143
|
+
*
|
|
144
|
+
* @param grantee The principal to grant read permissions to
|
|
145
|
+
*/
|
|
146
|
+
grantRead(grantee: iam.IGrantable): iam.Grant;
|
|
147
|
+
/**
|
|
148
|
+
* Grants `Create`, `Update`, and `Delete` actions on the Gateway Target
|
|
149
|
+
*
|
|
150
|
+
* @param grantee The principal to grant manage permissions to
|
|
151
|
+
*/
|
|
152
|
+
grantManage(grantee: iam.IGrantable): iam.Grant;
|
|
153
|
+
}
|