@aws-cdk/aws-bedrock-agentcore-alpha 2.221.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/.eslintrc.js +4 -0
- package/.jsii +12000 -0
- package/.jsii.tabl.json.gz +0 -0
- package/.warnings.jsii.js +183 -0
- package/LICENSE +201 -0
- package/NOTICE +2 -0
- package/README.md +796 -0
- package/agentcore/index.d.ts +11 -0
- package/agentcore/index.js +36 -0
- package/agentcore/network/network-configuration.d.ts +152 -0
- package/agentcore/network/network-configuration.js +234 -0
- package/agentcore/runtime/perms.d.ts +67 -0
- package/agentcore/runtime/perms.js +101 -0
- package/agentcore/runtime/runtime-artifact.d.ts +42 -0
- package/agentcore/runtime/runtime-artifact.js +90 -0
- package/agentcore/runtime/runtime-authorizer-configuration.d.ts +62 -0
- package/agentcore/runtime/runtime-authorizer-configuration.js +165 -0
- package/agentcore/runtime/runtime-base.d.ts +309 -0
- package/agentcore/runtime/runtime-base.js +207 -0
- package/agentcore/runtime/runtime-endpoint-base.d.ts +130 -0
- package/agentcore/runtime/runtime-endpoint-base.js +31 -0
- package/agentcore/runtime/runtime-endpoint.d.ts +182 -0
- package/agentcore/runtime/runtime-endpoint.js +372 -0
- package/agentcore/runtime/runtime.d.ts +230 -0
- package/agentcore/runtime/runtime.js +590 -0
- package/agentcore/runtime/types.d.ts +16 -0
- package/agentcore/runtime/types.js +21 -0
- package/agentcore/runtime/validation-helpers.d.ts +37 -0
- package/agentcore/runtime/validation-helpers.js +85 -0
- package/agentcore/tools/browser.d.ts +519 -0
- package/agentcore/tools/browser.js +641 -0
- package/agentcore/tools/code-interpreter.d.ts +447 -0
- package/agentcore/tools/code-interpreter.js +553 -0
- package/agentcore/tools/perms.d.ts +74 -0
- package/agentcore/tools/perms.js +122 -0
- package/agentcore/tools/validation-helpers.d.ts +37 -0
- package/agentcore/tools/validation-helpers.js +85 -0
- package/jest.config.js +2 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +22 -0
- package/package.json +122 -0
- package/rosetta/_generated.ts-fixture +6 -0
- package/rosetta/default.ts-fixture +19 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './network/network-configuration';
|
|
2
|
+
export * from './runtime/perms';
|
|
3
|
+
export * from './runtime/types';
|
|
4
|
+
export * from './runtime/runtime-base';
|
|
5
|
+
export * from './runtime/runtime-artifact';
|
|
6
|
+
export * from './runtime/runtime-authorizer-configuration';
|
|
7
|
+
export * from './runtime/runtime-endpoint-base';
|
|
8
|
+
export * from './runtime/runtime-endpoint';
|
|
9
|
+
export * from './runtime/runtime';
|
|
10
|
+
export * from './tools/code-interpreter';
|
|
11
|
+
export * from './tools/browser';
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
// ===================================
|
|
18
|
+
// Network Configuration
|
|
19
|
+
// ===================================
|
|
20
|
+
__exportStar(require("./network/network-configuration"), exports);
|
|
21
|
+
// ===================================
|
|
22
|
+
// Runtime
|
|
23
|
+
// ===================================
|
|
24
|
+
__exportStar(require("./runtime/perms"), exports);
|
|
25
|
+
__exportStar(require("./runtime/types"), exports);
|
|
26
|
+
__exportStar(require("./runtime/runtime-base"), exports);
|
|
27
|
+
__exportStar(require("./runtime/runtime-artifact"), exports);
|
|
28
|
+
__exportStar(require("./runtime/runtime-authorizer-configuration"), exports);
|
|
29
|
+
__exportStar(require("./runtime/runtime-endpoint-base"), exports);
|
|
30
|
+
__exportStar(require("./runtime/runtime-endpoint"), exports);
|
|
31
|
+
__exportStar(require("./runtime/runtime"), exports);
|
|
32
|
+
// Tools
|
|
33
|
+
// ===================================
|
|
34
|
+
__exportStar(require("./tools/code-interpreter"), exports);
|
|
35
|
+
__exportStar(require("./tools/browser"), exports);
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0NBQXNDO0FBQ3RDLHdCQUF3QjtBQUN4QixzQ0FBc0M7QUFDdEMsa0VBQWdEO0FBRWhELHNDQUFzQztBQUN0QyxVQUFVO0FBQ1Ysc0NBQXNDO0FBQ3RDLGtEQUFnQztBQUNoQyxrREFBZ0M7QUFDaEMseURBQXVDO0FBQ3ZDLDZEQUEyQztBQUMzQyw2RUFBMkQ7QUFDM0Qsa0VBQWdEO0FBQ2hELDZEQUEyQztBQUMzQyxvREFBa0M7QUFDbEMsUUFBUTtBQUNSLHNDQUFzQztBQUN0QywyREFBeUM7QUFDekMsa0RBQWdDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE5ldHdvcmsgQ29uZmlndXJhdGlvblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmV4cG9ydCAqIGZyb20gJy4vbmV0d29yay9uZXR3b3JrLWNvbmZpZ3VyYXRpb24nO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUnVudGltZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmV4cG9ydCAqIGZyb20gJy4vcnVudGltZS9wZXJtcyc7XG5leHBvcnQgKiBmcm9tICcuL3J1bnRpbWUvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9ydW50aW1lL3J1bnRpbWUtYmFzZSc7XG5leHBvcnQgKiBmcm9tICcuL3J1bnRpbWUvcnVudGltZS1hcnRpZmFjdCc7XG5leHBvcnQgKiBmcm9tICcuL3J1bnRpbWUvcnVudGltZS1hdXRob3JpemVyLWNvbmZpZ3VyYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9ydW50aW1lL3J1bnRpbWUtZW5kcG9pbnQtYmFzZSc7XG5leHBvcnQgKiBmcm9tICcuL3J1bnRpbWUvcnVudGltZS1lbmRwb2ludCc7XG5leHBvcnQgKiBmcm9tICcuL3J1bnRpbWUvcnVudGltZSc7XG4vLyBUb29sc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmV4cG9ydCAqIGZyb20gJy4vdG9vbHMvY29kZS1pbnRlcnByZXRlcic7XG5leHBvcnQgKiBmcm9tICcuL3Rvb2xzL2Jyb3dzZXInO1xuIl19
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import * as ec2 from 'aws-cdk-lib/aws-ec2';
|
|
2
|
+
import { CfnBrowserCustom, CfnCodeInterpreterCustom, CfnRuntime } from 'aws-cdk-lib/aws-bedrockagentcore';
|
|
3
|
+
import { Construct } from 'constructs';
|
|
4
|
+
/**
|
|
5
|
+
* VPC configuration properties.
|
|
6
|
+
* Only used when network mode is VPC.
|
|
7
|
+
*/
|
|
8
|
+
export interface VpcConfigProps {
|
|
9
|
+
/**
|
|
10
|
+
* The VPC to deploy the resource to.
|
|
11
|
+
*/
|
|
12
|
+
readonly vpc: ec2.IVpc;
|
|
13
|
+
/**
|
|
14
|
+
* Where to place the network interfaces within the VPC.
|
|
15
|
+
*
|
|
16
|
+
* This requires `vpc` to be specified in order for interfaces to actually be
|
|
17
|
+
* placed in the subnets. If `vpc` is not specify, this will raise an error.
|
|
18
|
+
*
|
|
19
|
+
* @default - the Vpc default strategy if not specified
|
|
20
|
+
*/
|
|
21
|
+
readonly vpcSubnets?: ec2.SubnetSelection;
|
|
22
|
+
/**
|
|
23
|
+
* The list of security groups to associate with the resource's network interfaces.
|
|
24
|
+
*
|
|
25
|
+
* Only used if 'vpc' is supplied.
|
|
26
|
+
*
|
|
27
|
+
* @default - If the resource is placed within a VPC and a security group is
|
|
28
|
+
* not specified by this prop, a dedicated security
|
|
29
|
+
* group will be created for this resource.
|
|
30
|
+
*/
|
|
31
|
+
readonly securityGroups?: ec2.ISecurityGroup[];
|
|
32
|
+
/**
|
|
33
|
+
* Whether to allow the resource to send all network traffic (except ipv6)
|
|
34
|
+
*
|
|
35
|
+
* If set to false, you must individually add traffic rules to allow the
|
|
36
|
+
* resource to connect to network targets.
|
|
37
|
+
*
|
|
38
|
+
* Do not specify this property if the `securityGroups` property is set.
|
|
39
|
+
* Instead, configure `allowAllOutbound` directly on the security group.
|
|
40
|
+
*
|
|
41
|
+
* @default true
|
|
42
|
+
*/
|
|
43
|
+
readonly allowAllOutbound?: boolean;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Abstract base class for network configuration.
|
|
47
|
+
*/
|
|
48
|
+
export declare abstract class NetworkConfiguration {
|
|
49
|
+
/**
|
|
50
|
+
* The network mode to use.
|
|
51
|
+
* Configure the security level for agent
|
|
52
|
+
* execution to control access, isolate resources, and protect sensitive data.
|
|
53
|
+
*/
|
|
54
|
+
readonly networkMode: string;
|
|
55
|
+
/**
|
|
56
|
+
* The connections object to the network.
|
|
57
|
+
*/
|
|
58
|
+
readonly connections: ec2.Connections | undefined;
|
|
59
|
+
/**
|
|
60
|
+
* The scope to create the resource in.
|
|
61
|
+
*/
|
|
62
|
+
readonly scope?: Construct | undefined;
|
|
63
|
+
/**
|
|
64
|
+
* The VPC subnets to use.
|
|
65
|
+
*/
|
|
66
|
+
readonly vpcSubnets?: ec2.SubnetSelection;
|
|
67
|
+
/**
|
|
68
|
+
* Creates a new network configuration.
|
|
69
|
+
* @param mode - the network mode to use for the tool.
|
|
70
|
+
*/
|
|
71
|
+
protected constructor(mode: string, scope?: Construct, vpcConfig?: VpcConfigProps);
|
|
72
|
+
/**
|
|
73
|
+
* Validates the vpc config.
|
|
74
|
+
*/
|
|
75
|
+
private _validateAndConfigureVpcConfig;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Network configuration for the Browser tool.
|
|
79
|
+
*/
|
|
80
|
+
export declare class BrowserNetworkConfiguration extends NetworkConfiguration {
|
|
81
|
+
/**
|
|
82
|
+
* Creates a public network configuration. PUBLIC is the default network mode.
|
|
83
|
+
* @returns A BrowserNetworkConfiguration.
|
|
84
|
+
* Run this tool to operate in a public environment with internet access, suitable for less sensitive or open-use scenarios.
|
|
85
|
+
*/
|
|
86
|
+
static usingPublicNetwork(): BrowserNetworkConfiguration;
|
|
87
|
+
/**
|
|
88
|
+
* Creates a network configuration from a VPC configuration.
|
|
89
|
+
* @param vpcConfig - The VPC configuration.
|
|
90
|
+
* @returns A BrowserNetworkConfiguration.
|
|
91
|
+
*/
|
|
92
|
+
static usingVpc(scope: Construct, vpcConfig: VpcConfigProps): BrowserNetworkConfiguration;
|
|
93
|
+
/**
|
|
94
|
+
* Renders the network configuration as a CloudFormation property.
|
|
95
|
+
* @param browserConnections - The connections object to the browser.
|
|
96
|
+
* @internal This is an internal core function and should not be called directly.
|
|
97
|
+
*/
|
|
98
|
+
_render(browserConnections?: ec2.Connections): CfnBrowserCustom.BrowserNetworkConfigurationProperty;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Network configuration for the Code Interpreter tool.
|
|
102
|
+
*/
|
|
103
|
+
export declare class CodeInterpreterNetworkConfiguration extends NetworkConfiguration {
|
|
104
|
+
/**
|
|
105
|
+
* Creates a public network configuration.
|
|
106
|
+
* @returns A CodeInterpreterNetworkConfiguration.
|
|
107
|
+
* Run this tool to operate in a public environment with internet access, suitable for less sensitive or open-use scenarios.
|
|
108
|
+
*/
|
|
109
|
+
static usingPublicNetwork(): CodeInterpreterNetworkConfiguration;
|
|
110
|
+
/**
|
|
111
|
+
* Creates a sandbox network configuration.
|
|
112
|
+
* @returns A CodeInterpreterNetworkConfiguration.
|
|
113
|
+
* Run this tool in a restricted environment with limited Permissions and Encryption to enhance safety and reduce potential risks.
|
|
114
|
+
*/
|
|
115
|
+
static usingSandboxNetwork(): CodeInterpreterNetworkConfiguration;
|
|
116
|
+
/**
|
|
117
|
+
* Creates a network configuration from a VPC configuration.
|
|
118
|
+
* @param vpcConfig - The VPC configuration.
|
|
119
|
+
* @returns A CodeInterpreterNetworkConfiguration.
|
|
120
|
+
*/
|
|
121
|
+
static usingVpc(scope: Construct, vpcConfig: VpcConfigProps): CodeInterpreterNetworkConfiguration;
|
|
122
|
+
/**
|
|
123
|
+
* Renders the network configuration as a CloudFormation property.
|
|
124
|
+
* @param codeInterpreterConnections - The connections object to the code interpreter.
|
|
125
|
+
* @internal This is an internal core function and should not be called directly.
|
|
126
|
+
*/
|
|
127
|
+
_render(codeInterpreterConnections?: ec2.Connections): CfnCodeInterpreterCustom.CodeInterpreterNetworkConfigurationProperty;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Network configuration for the Runtime.
|
|
131
|
+
*/
|
|
132
|
+
export declare class RuntimeNetworkConfiguration extends NetworkConfiguration {
|
|
133
|
+
/**
|
|
134
|
+
* Creates a public network configuration. PUBLIC is the default network mode.
|
|
135
|
+
* @returns A RuntimeNetworkConfiguration.
|
|
136
|
+
* Run the runtime in a public environment with internet access, suitable for less sensitive or open-use scenarios.
|
|
137
|
+
*/
|
|
138
|
+
static usingPublicNetwork(): RuntimeNetworkConfiguration;
|
|
139
|
+
/**
|
|
140
|
+
* Creates a network configuration from a VPC configuration.
|
|
141
|
+
* @param scope - The construct scope for creating resources.
|
|
142
|
+
* @param vpcConfig - The VPC configuration.
|
|
143
|
+
* @returns A RuntimeNetworkConfiguration.
|
|
144
|
+
*/
|
|
145
|
+
static usingVpc(scope: Construct, vpcConfig: VpcConfigProps): RuntimeNetworkConfiguration;
|
|
146
|
+
/**
|
|
147
|
+
* Renders the network configuration as a CloudFormation property.
|
|
148
|
+
* @param runtimeConnections - The connections object to the runtime.
|
|
149
|
+
* @internal This is an internal core function and should not be called directly.
|
|
150
|
+
*/
|
|
151
|
+
_render(_runtimeConnections?: ec2.Connections): CfnRuntime.NetworkConfigurationProperty;
|
|
152
|
+
}
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RuntimeNetworkConfiguration = exports.CodeInterpreterNetworkConfiguration = exports.BrowserNetworkConfiguration = exports.NetworkConfiguration = void 0;
|
|
4
|
+
const jsiiDeprecationWarnings = require("../../.warnings.jsii.js");
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
/* eslint-disable @cdklabs/no-throw-default-error */
|
|
7
|
+
const ec2 = require("aws-cdk-lib/aws-ec2");
|
|
8
|
+
/**
|
|
9
|
+
* Abstract base class for network configuration.
|
|
10
|
+
*/
|
|
11
|
+
class NetworkConfiguration {
|
|
12
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.NetworkConfiguration", version: "2.221.0-alpha.0" };
|
|
13
|
+
/**
|
|
14
|
+
* The network mode to use.
|
|
15
|
+
* Configure the security level for agent
|
|
16
|
+
* execution to control access, isolate resources, and protect sensitive data.
|
|
17
|
+
*/
|
|
18
|
+
networkMode;
|
|
19
|
+
/**
|
|
20
|
+
* The connections object to the network.
|
|
21
|
+
*/
|
|
22
|
+
connections;
|
|
23
|
+
/**
|
|
24
|
+
* The scope to create the resource in.
|
|
25
|
+
*/
|
|
26
|
+
scope;
|
|
27
|
+
/**
|
|
28
|
+
* The VPC subnets to use.
|
|
29
|
+
*/
|
|
30
|
+
vpcSubnets;
|
|
31
|
+
/**
|
|
32
|
+
* Creates a new network configuration.
|
|
33
|
+
* @param mode - the network mode to use for the tool.
|
|
34
|
+
*/
|
|
35
|
+
constructor(mode, scope, vpcConfig) {
|
|
36
|
+
try {
|
|
37
|
+
jsiiDeprecationWarnings._aws_cdk_aws_bedrock_agentcore_alpha_VpcConfigProps(vpcConfig);
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
41
|
+
Error.captureStackTrace(error, NetworkConfiguration);
|
|
42
|
+
}
|
|
43
|
+
throw error;
|
|
44
|
+
}
|
|
45
|
+
this.scope = scope;
|
|
46
|
+
this.networkMode = mode;
|
|
47
|
+
// Validate vpc config and configure connections
|
|
48
|
+
const networkConfig = this._validateAndConfigureVpcConfig(vpcConfig);
|
|
49
|
+
this.connections = networkConfig?.connections;
|
|
50
|
+
this.vpcSubnets = networkConfig?.vpcSubnets;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Validates the vpc config.
|
|
54
|
+
*/
|
|
55
|
+
_validateAndConfigureVpcConfig = (vpcConfig) => {
|
|
56
|
+
if ((vpcConfig?.securityGroups || vpcConfig?.allowAllOutbound !== undefined) && !vpcConfig?.vpc) {
|
|
57
|
+
throw new Error('Cannot configure \'securityGroups\' or \'allowAllOutbound\' without configuring a VPC');
|
|
58
|
+
}
|
|
59
|
+
if (!vpcConfig?.vpc) {
|
|
60
|
+
return undefined;
|
|
61
|
+
}
|
|
62
|
+
if ((vpcConfig?.securityGroups && vpcConfig?.securityGroups.length > 0) && vpcConfig?.allowAllOutbound !== undefined) {
|
|
63
|
+
throw new Error('Configure \'allowAllOutbound\' directly on the supplied SecurityGroups');
|
|
64
|
+
}
|
|
65
|
+
if (!this.scope) {
|
|
66
|
+
throw new Error('Scope is required to create the security group');
|
|
67
|
+
}
|
|
68
|
+
let securityGroups;
|
|
69
|
+
if (vpcConfig.securityGroups && vpcConfig.securityGroups.length > 0) {
|
|
70
|
+
securityGroups = vpcConfig.securityGroups;
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
const securityGroup = new ec2.SecurityGroup(this.scope, 'SecurityGroup', {
|
|
74
|
+
vpc: vpcConfig.vpc,
|
|
75
|
+
allowAllOutbound: vpcConfig.allowAllOutbound ?? true,
|
|
76
|
+
});
|
|
77
|
+
securityGroups = [securityGroup];
|
|
78
|
+
}
|
|
79
|
+
const vpcSubnets = vpcConfig.vpcSubnets ? vpcConfig.vpc.selectSubnets(vpcConfig.vpcSubnets) : vpcConfig.vpc.selectSubnets();
|
|
80
|
+
return {
|
|
81
|
+
connections: new ec2.Connections({ securityGroups: securityGroups }),
|
|
82
|
+
vpcSubnets: vpcSubnets,
|
|
83
|
+
};
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
exports.NetworkConfiguration = NetworkConfiguration;
|
|
87
|
+
/**
|
|
88
|
+
* Network configuration for the Browser tool.
|
|
89
|
+
*/
|
|
90
|
+
class BrowserNetworkConfiguration extends NetworkConfiguration {
|
|
91
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.BrowserNetworkConfiguration", version: "2.221.0-alpha.0" };
|
|
92
|
+
/**
|
|
93
|
+
* Creates a public network configuration. PUBLIC is the default network mode.
|
|
94
|
+
* @returns A BrowserNetworkConfiguration.
|
|
95
|
+
* Run this tool to operate in a public environment with internet access, suitable for less sensitive or open-use scenarios.
|
|
96
|
+
*/
|
|
97
|
+
static usingPublicNetwork() {
|
|
98
|
+
return new BrowserNetworkConfiguration('PUBLIC');
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Creates a network configuration from a VPC configuration.
|
|
102
|
+
* @param vpcConfig - The VPC configuration.
|
|
103
|
+
* @returns A BrowserNetworkConfiguration.
|
|
104
|
+
*/
|
|
105
|
+
static usingVpc(scope, vpcConfig) {
|
|
106
|
+
try {
|
|
107
|
+
jsiiDeprecationWarnings._aws_cdk_aws_bedrock_agentcore_alpha_VpcConfigProps(vpcConfig);
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
111
|
+
Error.captureStackTrace(error, this.usingVpc);
|
|
112
|
+
}
|
|
113
|
+
throw error;
|
|
114
|
+
}
|
|
115
|
+
return new BrowserNetworkConfiguration('VPC', scope, vpcConfig);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Renders the network configuration as a CloudFormation property.
|
|
119
|
+
* @param browserConnections - The connections object to the browser.
|
|
120
|
+
* @internal This is an internal core function and should not be called directly.
|
|
121
|
+
*/
|
|
122
|
+
_render(browserConnections) {
|
|
123
|
+
return {
|
|
124
|
+
networkMode: this.networkMode,
|
|
125
|
+
vpcConfig: (this.networkMode === 'VPC' && browserConnections) ? {
|
|
126
|
+
subnets: this.vpcSubnets?.subnets?.map(subnet => subnet.subnetId) ?? [],
|
|
127
|
+
securityGroups: browserConnections?.securityGroups?.map(s => s.securityGroupId) ?? [],
|
|
128
|
+
} : undefined,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
exports.BrowserNetworkConfiguration = BrowserNetworkConfiguration;
|
|
133
|
+
/**
|
|
134
|
+
* Network configuration for the Code Interpreter tool.
|
|
135
|
+
*/
|
|
136
|
+
class CodeInterpreterNetworkConfiguration extends NetworkConfiguration {
|
|
137
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.CodeInterpreterNetworkConfiguration", version: "2.221.0-alpha.0" };
|
|
138
|
+
/**
|
|
139
|
+
* Creates a public network configuration.
|
|
140
|
+
* @returns A CodeInterpreterNetworkConfiguration.
|
|
141
|
+
* Run this tool to operate in a public environment with internet access, suitable for less sensitive or open-use scenarios.
|
|
142
|
+
*/
|
|
143
|
+
static usingPublicNetwork() {
|
|
144
|
+
return new CodeInterpreterNetworkConfiguration('PUBLIC');
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Creates a sandbox network configuration.
|
|
148
|
+
* @returns A CodeInterpreterNetworkConfiguration.
|
|
149
|
+
* Run this tool in a restricted environment with limited Permissions and Encryption to enhance safety and reduce potential risks.
|
|
150
|
+
*/
|
|
151
|
+
static usingSandboxNetwork() {
|
|
152
|
+
return new CodeInterpreterNetworkConfiguration('SANDBOX');
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Creates a network configuration from a VPC configuration.
|
|
156
|
+
* @param vpcConfig - The VPC configuration.
|
|
157
|
+
* @returns A CodeInterpreterNetworkConfiguration.
|
|
158
|
+
*/
|
|
159
|
+
static usingVpc(scope, vpcConfig) {
|
|
160
|
+
try {
|
|
161
|
+
jsiiDeprecationWarnings._aws_cdk_aws_bedrock_agentcore_alpha_VpcConfigProps(vpcConfig);
|
|
162
|
+
}
|
|
163
|
+
catch (error) {
|
|
164
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
165
|
+
Error.captureStackTrace(error, this.usingVpc);
|
|
166
|
+
}
|
|
167
|
+
throw error;
|
|
168
|
+
}
|
|
169
|
+
return new CodeInterpreterNetworkConfiguration('VPC', scope, vpcConfig);
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Renders the network configuration as a CloudFormation property.
|
|
173
|
+
* @param codeInterpreterConnections - The connections object to the code interpreter.
|
|
174
|
+
* @internal This is an internal core function and should not be called directly.
|
|
175
|
+
*/
|
|
176
|
+
_render(codeInterpreterConnections) {
|
|
177
|
+
return {
|
|
178
|
+
networkMode: this.networkMode,
|
|
179
|
+
vpcConfig: (this.networkMode === 'VPC' && codeInterpreterConnections) ? {
|
|
180
|
+
subnets: this.vpcSubnets?.subnets?.map(subnet => subnet.subnetId) ?? [],
|
|
181
|
+
securityGroups: codeInterpreterConnections?.securityGroups?.map(s => s.securityGroupId) ?? [],
|
|
182
|
+
} : undefined,
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
exports.CodeInterpreterNetworkConfiguration = CodeInterpreterNetworkConfiguration;
|
|
187
|
+
/**
|
|
188
|
+
* Network configuration for the Runtime.
|
|
189
|
+
*/
|
|
190
|
+
class RuntimeNetworkConfiguration extends NetworkConfiguration {
|
|
191
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.RuntimeNetworkConfiguration", version: "2.221.0-alpha.0" };
|
|
192
|
+
/**
|
|
193
|
+
* Creates a public network configuration. PUBLIC is the default network mode.
|
|
194
|
+
* @returns A RuntimeNetworkConfiguration.
|
|
195
|
+
* Run the runtime in a public environment with internet access, suitable for less sensitive or open-use scenarios.
|
|
196
|
+
*/
|
|
197
|
+
static usingPublicNetwork() {
|
|
198
|
+
return new RuntimeNetworkConfiguration('PUBLIC');
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Creates a network configuration from a VPC configuration.
|
|
202
|
+
* @param scope - The construct scope for creating resources.
|
|
203
|
+
* @param vpcConfig - The VPC configuration.
|
|
204
|
+
* @returns A RuntimeNetworkConfiguration.
|
|
205
|
+
*/
|
|
206
|
+
static usingVpc(scope, vpcConfig) {
|
|
207
|
+
try {
|
|
208
|
+
jsiiDeprecationWarnings._aws_cdk_aws_bedrock_agentcore_alpha_VpcConfigProps(vpcConfig);
|
|
209
|
+
}
|
|
210
|
+
catch (error) {
|
|
211
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
212
|
+
Error.captureStackTrace(error, this.usingVpc);
|
|
213
|
+
}
|
|
214
|
+
throw error;
|
|
215
|
+
}
|
|
216
|
+
return new RuntimeNetworkConfiguration('VPC', scope, vpcConfig);
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Renders the network configuration as a CloudFormation property.
|
|
220
|
+
* @param runtimeConnections - The connections object to the runtime.
|
|
221
|
+
* @internal This is an internal core function and should not be called directly.
|
|
222
|
+
*/
|
|
223
|
+
_render(_runtimeConnections) {
|
|
224
|
+
return {
|
|
225
|
+
networkMode: this.networkMode,
|
|
226
|
+
networkModeConfig: (this.networkMode == 'VPC' && _runtimeConnections) ? {
|
|
227
|
+
subnets: this.vpcSubnets?.subnets?.map(subnet => subnet.subnetId) ?? [],
|
|
228
|
+
securityGroups: _runtimeConnections?.securityGroups?.map(s => s.securityGroupId) ?? [],
|
|
229
|
+
} : undefined,
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
exports.RuntimeNetworkConfiguration = RuntimeNetworkConfiguration;
|
|
234
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay1jb25maWd1cmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibmV0d29yay1jb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0RBQW9EO0FBQ3BELDJDQUEyQztBQStEM0M7O0dBRUc7QUFDSCxNQUFzQixvQkFBb0I7O0lBQ3hDOzs7O09BSUc7SUFDTSxXQUFXLENBQVM7SUFDN0I7O09BRUc7SUFDTSxXQUFXLENBQThCO0lBQ2xEOztPQUVHO0lBQ00sS0FBSyxDQUF5QjtJQUN2Qzs7T0FFRztJQUNNLFVBQVUsQ0FBdUI7SUFDMUM7OztPQUdHO0lBQ0gsWUFBdUIsSUFBWSxFQUFFLEtBQWlCLEVBQUUsU0FBMEI7Ozs7OzsrQ0F2QjlELG9CQUFvQjs7OztRQXdCdEMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFFeEIsZ0RBQWdEO1FBQ2hELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMsV0FBVyxHQUFHLGFBQWEsRUFBRSxXQUFXLENBQUM7UUFDOUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxhQUFhLEVBQUUsVUFBVSxDQUFDO0tBQzdDO0lBRUQ7O09BRUc7SUFDSyw4QkFBOEIsR0FBRyxDQUFDLFNBQTBCLEVBQTZCLEVBQUU7UUFDakcsSUFBSSxDQUFDLFNBQVMsRUFBRSxjQUFjLElBQUksU0FBUyxFQUFFLGdCQUFnQixLQUFLLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDO1lBQ2hHLE1BQU0sSUFBSSxLQUFLLENBQUMsdUZBQXVGLENBQUMsQ0FBQztRQUMzRyxDQUFDO1FBRUQsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQztZQUNwQixPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBRUQs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QixFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxLQUFLLElBQUksbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RFLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRTtnQkFDdkUsY0FBYyxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFBLEVBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRTthQUN0RixDQUFBLENBQUMsQ0FBQyxTQUFTO1NBQ2IsQ0FBQztLQUNIOztBQWpDSCxrRUFrQ0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAY2RrbGFicy9uby10aHJvdy1kZWZhdWx0LWVycm9yICovXG5pbXBvcnQgKiBhcyBlYzIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG4vLyBJbnRlcm5hbCBMaWJzXG5pbXBvcnQgeyBDZm5Ccm93c2VyQ3VzdG9tLCBDZm5Db2RlSW50ZXJwcmV0ZXJDdXN0b20sIENmblJ1bnRpbWUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtYmVkcm9ja2FnZW50Y29yZSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuLyoqXG4gKiBWUEMgY29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzLlxuICogT25seSB1c2VkIHdoZW4gbmV0d29yayBtb2RlIGlzIFZQQy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWcGNDb25maWdQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgVlBDIHRvIGRlcGxveSB0aGUgcmVzb3VyY2UgdG8uXG4gICAqL1xuICByZWFkb25seSB2cGM6IGVjMi5JVnBjO1xuICAvKipcbiAgICogV2hlcmUgdG8gcGxhY2UgdGhlIG5ldHdvcmsgaW50ZXJmYWNlcyB3aXRoaW4gdGhlIFZQQy5cbiAgICpcbiAgICogVGhpcyByZXF1aXJlcyBgdnBjYCB0byBiZSBzcGVjaWZpZWQgaW4gb3JkZXIgZm9yIGludGVyZmFjZXMgdG8gYWN0dWFsbHkgYmVcbiAgICogcGxhY2VkIGluIHRoZSBzdWJuZXRzLiBJZiBgdnBjYCBpcyBub3Qgc3BlY2lmeSwgdGhpcyB3aWxsIHJhaXNlIGFuIGVycm9yLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoZSBWcGMgZGVmYXVsdCBzdHJhdGVneSBpZiBub3Qgc3BlY2lmaWVkXG4gICAqL1xuICByZWFkb25seSB2cGNTdWJuZXRzPzogZWMyLlN1Ym5ldFNlbGVjdGlvbjtcbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIHNlY3VyaXR5IGdyb3VwcyB0byBhc3NvY2lhdGUgd2l0aCB0aGUgcmVzb3VyY2UncyBuZXR3b3JrIGludGVyZmFjZXMuXG4gICAqXG4gICAqIE9ubHkgdXNlZCBpZiAndnBjJyBpcyBzdXBwbGllZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBJZiB0aGUgcmVzb3VyY2UgaXMgcGxhY2VkIHdpdGhpbiBhIFZQQyBhbmQgYSBzZWN1cml0eSBncm91cCBpc1xuICAgKiBub3Qgc3BlY2lmaWVkIGJ5IHRoaXMgcHJvcCwgYSBkZWRpY2F0ZWQgc2VjdXJpdHlcbiAgICogZ3JvdXAgd2lsbCBiZSBjcmVhdGVkIGZvciB0aGlzIHJlc291cmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cHM/OiBlYzIuSVNlY3VyaXR5R3JvdXBbXTtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gYWxsb3cgdGhlIHJlc291cmNlIHRvIHNlbmQgYWxsIG5ldHdvcmsgdHJhZmZpYyAoZXhjZXB0IGlwdjYpXG4gICAqXG4gICAqIElmIHNldCB0byBmYWxzZSwgeW91IG11c3QgaW5kaXZpZHVhbGx5IGFkZCB0cmFmZmljIHJ1bGVzIHRvIGFsbG93IHRoZVxuICAgKiByZXNvdXJjZSB0byBjb25uZWN0IHRvIG5ldHdvcmsgdGFyZ2V0cy5cbiAgICpcbiAgICogRG8gbm90IHNwZWNpZnkgdGhpcyBwcm9wZXJ0eSBpZiB0aGUgYHNlY3VyaXR5R3JvdXBzYCBwcm9wZXJ0eSBpcyBzZXQuXG4gICAqIEluc3RlYWQsIGNvbmZpZ3VyZSBgYWxsb3dBbGxPdXRib3VuZGAgZGlyZWN0bHkgb24gdGhlIHNlY3VyaXR5IGdyb3VwLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBhbGxvd0FsbE91dGJvdW5kPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBWUEMgY29uZmlndXJhdGlvbi5cbiAqIE9ubHkgdXNlZCB3aGVuIG5ldHdvcmsgbW9kZSBpcyBWUEMuXG4gKiBAaW50ZXJuYWxcbiAqL1xuaW50ZXJmYWNlIE5ldHdvcmtDb25maWcge1xuICAvKipcbiAgICogVGhlIGNvbm5lY3Rpb25zIHRvIHRoZSBuZXR3b3JrLlxuICAgKi9cbiAgcmVhZG9ubHkgY29ubmVjdGlvbnM6IGVjMi5Db25uZWN0aW9ucyB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIFRoZSBWUEMgc3VibmV0cyB0byB1c2UuXG4gICAqL1xuICByZWFkb25seSB2cGNTdWJuZXRzOiBlYzIuU2VsZWN0ZWRTdWJuZXRzIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEFic3RyYWN0IGJhc2UgY2xhc3MgZm9yIG5ldHdvcmsgY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE5ldHdvcmtDb25maWd1cmF0aW9uIHtcbiAgLyoqXG4gICAqIFRoZSBuZXR3b3JrIG1vZGUgdG8gdXNlLlxuICAgKiBDb25maWd1cmUgdGhlIHNlY3VyaXR5IGxldmVsIGZvciBhZ2VudFxuICAgKiBleGVjdXRpb24gdG8gY29udHJvbCBhY2Nlc3MsIGlzb2xhdGUgcmVzb3VyY2VzLCBhbmQgcHJvdGVjdCBzZW5zaXRpdmUgZGF0YS5cbiAgICovXG4gIHJlYWRvbmx5IG5ldHdvcmtNb2RlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgY29ubmVjdGlvbnMgb2JqZWN0IHRvIHRoZSBuZXR3b3JrLlxuICAgKi9cbiAgcmVhZG9ubHkgY29ubmVjdGlvbnM6IGVjMi5Db25uZWN0aW9ucyB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIFRoZSBzY29wZSB0byBjcmVhdGUgdGhlIHJlc291cmNlIGluLlxuICAgKi9cbiAgcmVhZG9ubHkgc2NvcGU/OiBDb25zdHJ1Y3QgfCB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBUaGUgVlBDIHN1Ym5ldHMgdG8gdXNlLlxuICAgKi9cbiAgcmVhZG9ubHkgdnBjU3VibmV0cz86IGVjMi5TdWJuZXRTZWxlY3Rpb247XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IG5ldHdvcmsgY29uZmlndXJhdGlvbi5cbiAgICogQHBhcmFtIG1vZGUgLSB0aGUgbmV0d29yayBtb2RlIHRvIHVzZSBmb3IgdGhlIHRvb2wuXG4gICAqL1xuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IgKG1vZGU6IHN0cmluZywgc2NvcGU/OiBDb25zdHJ1Y3QsIHZwY0NvbmZpZz86IFZwY0NvbmZpZ1Byb3BzKSB7XG4gICAgdGhpcy5zY29wZSA9IHNjb3BlO1xuICAgIHRoaXMubmV0d29ya01vZGUgPSBtb2RlO1xuXG4gICAgLy8gVmFsaWRhdGUgdnBjIGNvbmZpZyBhbmQgY29uZmlndXJlIGNvbm5lY3Rpb25zXG4gICAgY29uc3QgbmV0d29ya0NvbmZpZyA9IHRoaXMuX3ZhbGlkYXRlQW5kQ29uZmlndXJlVnBjQ29uZmlnKHZwY0NvbmZpZyk7XG4gICAgdGhpcy5jb25uZWN0aW9ucyA9IG5ldHdvcmtDb25maWc/LmNvbm5lY3Rpb25zO1xuICAgIHRoaXMudnBjU3VibmV0cyA9IG5ldHdvcmtDb25maWc/LnZwY1N1Ym5ldHM7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoZSB2cGMgY29uZmlnLlxuICAgKi9cbiAgcHJpdmF0ZSBfdmFsaWRhdGVBbmRDb25maWd1cmVWcGNDb25maWcgPSAodnBjQ29uZmlnPzogVnBjQ29uZmlnUHJvcHMpOiBOZXR3b3JrQ29uZmlnIHwgdW5kZWZpbmVkID0+IHtcbiAgICBpZiAoKHZwY0NvbmZpZz8uc2VjdXJpdHlHcm91cHMgfHwgdnBjQ29uZmlnPy5hbGxvd0FsbE91dGJvdW5kICE9PSB1bmRlZmluZWQpICYmICF2cGNDb25maWc/LnZwYykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgY29uZmlndXJlIFxcJ3NlY3VyaXR5R3JvdXBzXFwnIG9yIFxcJ2FsbG93QWxsT3V0Ym91bmRcXCcgd2l0aG91dCBjb25maWd1cmluZyBhIFZQQycpO1xuICAgIH1cblxuICAgIGlmICghdnBjQ29uZmlnPy52cGMpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKCh2cGNDb25maWc/LnNlY3VyaXR5R3JvdXBzICYmIHZwY0NvbmZpZz8uc2VjdXJpdHlHcm91cHMubGVuZ3RoID4gMCkgJiYgdnBjQ29uZmlnPy5hbGxvd0FsbE91dGJvdW5kICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ29uZmlndXJlIFxcJ2FsbG93QWxsT3V0Ym91bmRcXCcgZGlyZWN0bHkgb24gdGhlIHN1cHBsaWVkIFNlY3VyaXR5R3JvdXBzJyk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnNjb3BlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Njb3BlIGlzIHJlcXVpcmVkIHRvIGNyZWF0ZSB0aGUgc2VjdXJpdHkgZ3JvdXAnKTtcbiAgICB9XG5cbiAgICBsZXQgc2VjdXJpdHlHcm91cHM6IGVjMi5JU2VjdXJpdHlHcm91cFtdO1xuICAgIGlmICh2cGNDb25maWcuc2VjdXJpdHlHcm91cHMgJiYgdnBjQ29uZmlnLnNlY3VyaXR5R3JvdXBzLmxlbmd0aCA+IDApIHtcbiAgICAgIHNlY3VyaXR5R3JvdXBzID0gdnBjQ29uZmlnLnNlY3VyaXR5R3JvdXBzO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBzZWN1cml0eUdyb3VwID0gbmV3IGVjMi5TZWN1cml0eUdyb3VwKHRoaXMuc2NvcGUhLCAnU2VjdXJpdHlHcm91cCcsIHtcbiAgICAgICAgdnBjOiB2cGNDb25maWcudnBjLFxuICAgICAgICBhbGxvd0FsbE91dGJvdW5kOiB2cGNDb25maWcuYWxsb3dBbGxPdXRib3VuZCA/PyB0cnVlLFxuICAgICAgfSk7XG4gICAgICBzZWN1cml0eUdyb3VwcyA9IFtzZWN1cml0eUdyb3VwXTtcbiAgICB9XG5cbiAgICBjb25zdCB2cGNTdWJuZXRzID0gdnBjQ29uZmlnLnZwY1N1Ym5ldHMgPyB2cGNDb25maWcudnBjLnNlbGVjdFN1Ym5ldHModnBjQ29uZmlnLnZwY1N1Ym5ldHMpIDogdnBjQ29uZmlnLnZwYy5zZWxlY3RTdWJuZXRzKCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgY29ubmVjdGlvbnM6IG5ldyBlYzIuQ29ubmVjdGlvbnMoeyBzZWN1cml0eUdyb3Vwczogc2VjdXJpdHlHcm91cHMgfSksXG4gICAgICB2cGNTdWJuZXRzOiB2cGNTdWJuZXRzLFxuICAgIH07XG4gIH07XG59XG5cbi8qKlxuICogTmV0d29yayBjb25maWd1cmF0aW9uIGZvciB0aGUgQnJvd3NlciB0b29sLlxuICovXG5leHBvcnQgY2xhc3MgQnJvd3Nlck5ldHdvcmtDb25maWd1cmF0aW9uIGV4dGVuZHMgTmV0d29ya0NvbmZpZ3VyYXRpb24ge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIHB1YmxpYyBuZXR3b3JrIGNvbmZpZ3VyYXRpb24uIFBVQkxJQyBpcyB0aGUgZGVmYXVsdCBuZXR3b3JrIG1vZGUuXG4gICAqIEByZXR1cm5zIEEgQnJvd3Nlck5ldHdvcmtDb25maWd1cmF0aW9uLlxuICAgKiBSdW4gdGhpcyB0b29sIHRvIG9wZXJhdGUgaW4gYSBwdWJsaWMgZW52aXJvbm1lbnQgd2l0aCBpbnRlcm5ldCBhY2Nlc3MsIHN1aXRhYmxlIGZvciBsZXNzIHNlbnNpdGl2ZSBvciBvcGVuLXVzZSBzY2VuYXJpb3MuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHVzaW5nUHVibGljTmV0d29yaygpOiBCcm93c2VyTmV0d29ya0NvbmZpZ3VyYXRpb24ge1xuICAgIHJldHVybiBuZXcgQnJvd3Nlck5ldHdvcmtDb25maWd1cmF0aW9uKCdQVUJMSUMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV0d29yayBjb25maWd1cmF0aW9uIGZyb20gYSBWUEMgY29uZmlndXJhdGlvbi5cbiAgICogQHBhcmFtIHZwY0NvbmZpZyAtIFRoZSBWUEMgY29uZmlndXJhdGlvbi5cbiAgICogQHJldHVybnMgQSBCcm93c2VyTmV0d29ya0NvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHVzaW5nVnBjKHNjb3BlOiBDb25zdHJ1Y3QsIHZwY0NvbmZpZzogVnBjQ29uZmlnUHJvcHMpOiBCcm93c2VyTmV0d29ya0NvbmZpZ3VyYXRpb24ge1xuICAgIHJldHVybiBuZXcgQnJvd3Nlck5ldHdvcmtDb25maWd1cmF0aW9uKCdWUEMnLCBzY29wZSwgdnBjQ29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXJzIHRoZSBuZXR3b3JrIGNvbmZpZ3VyYXRpb24gYXMgYSBDbG91ZEZvcm1hdGlvbiBwcm9wZXJ0eS5cbiAgICogQHBhcmFtIGJyb3dzZXJDb25uZWN0aW9ucyAtIFRoZSBjb25uZWN0aW9ucyBvYmplY3QgdG8gdGhlIGJyb3dzZXIuXG4gICAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5LlxuICAgKi9cbiAgcHVibGljIF9yZW5kZXIoYnJvd3NlckNvbm5lY3Rpb25zPzogZWMyLkNvbm5lY3Rpb25zKTogQ2ZuQnJvd3NlckN1c3RvbS5Ccm93c2VyTmV0d29ya0NvbmZpZ3VyYXRpb25Qcm9wZXJ0eSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5ldHdvcmtNb2RlOiB0aGlzLm5ldHdvcmtNb2RlLFxuICAgICAgdnBjQ29uZmlnOiAodGhpcy5uZXR3b3JrTW9kZSA9PT0gJ1ZQQycgJiYgYnJvd3NlckNvbm5lY3Rpb25zKSA/IHtcbiAgICAgICAgc3VibmV0czogdGhpcy52cGNTdWJuZXRzPy5zdWJuZXRzPy5tYXAoc3VibmV0ID0+IHN1Ym5ldC5zdWJuZXRJZCkgPz8gW10sXG4gICAgICAgIHNlY3VyaXR5R3JvdXBzOiBicm93c2VyQ29ubmVjdGlvbnM/LnNlY3VyaXR5R3JvdXBzPy5tYXAocyA9PiBzLnNlY3VyaXR5R3JvdXBJZCkgPz8gW10sXG4gICAgICB9IDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBOZXR3b3JrIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBDb2RlIEludGVycHJldGVyIHRvb2wuXG4gKi9cbmV4cG9ydCBjbGFzcyBDb2RlSW50ZXJwcmV0ZXJOZXR3b3JrQ29uZmlndXJhdGlvbiBleHRlbmRzIE5ldHdvcmtDb25maWd1cmF0aW9uIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBwdWJsaWMgbmV0d29yayBjb25maWd1cmF0aW9uLlxuICAgKiBAcmV0dXJucyBBIENvZGVJbnRlcnByZXRlck5ldHdvcmtDb25maWd1cmF0aW9uLlxuICAgKiBSdW4gdGhpcyB0b29sIHRvIG9wZXJhdGUgaW4gYSBwdWJsaWMgZW52aXJvbm1lbnQgd2l0aCBpbnRlcm5ldCBhY2Nlc3MsIHN1aXRhYmxlIGZvciBsZXNzIHNlbnNpdGl2ZSBvciBvcGVuLXVzZSBzY2VuYXJpb3MuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHVzaW5nUHVibGljTmV0d29yaygpOiBDb2RlSW50ZXJwcmV0ZXJOZXR3b3JrQ29uZmlndXJhdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBDb2RlSW50ZXJwcmV0ZXJOZXR3b3JrQ29uZmlndXJhdGlvbignUFVCTElDJyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHNhbmRib3ggbmV0d29yayBjb25maWd1cmF0aW9uLlxuICAgKiBAcmV0dXJucyBBIENvZGVJbnRlcnByZXRlck5ldHdvcmtDb25maWd1cmF0aW9uLlxuICAgKiBSdW4gdGhpcyB0b29sIGluIGEgcmVzdHJpY3RlZCBlbnZpcm9ubWVudCB3aXRoIGxpbWl0ZWQgUGVybWlzc2lvbnMgYW5kIEVuY3J5cHRpb24gdG8gZW5oYW5jZSBzYWZldHkgYW5kIHJlZHVjZSBwb3RlbnRpYWwgcmlza3MuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHVzaW5nU2FuZGJveE5ldHdvcmsoKTogQ29kZUludGVycHJldGVyTmV0d29ya0NvbmZpZ3VyYXRpb24ge1xuICAgIHJldHVybiBuZXcgQ29kZUludGVycHJldGVyTmV0d29ya0NvbmZpZ3VyYXRpb24oJ1NBTkRCT1gnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV0d29yayBjb25maWd1cmF0aW9uIGZyb20gYSBWUEMgY29uZmlndXJhdGlvbi5cbiAgICogQHBhcmFtIHZwY0NvbmZpZyAtIFRoZSBWUEMgY29uZmlndXJhdGlvbi5cbiAgICogQHJldHVybnMgQSBDb2RlSW50ZXJwcmV0ZXJOZXR3b3JrQ29uZmlndXJhdGlvbi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdXNpbmdWcGMoc2NvcGU6IENvbnN0cnVjdCwgdnBjQ29uZmlnOiBWcGNDb25maWdQcm9wcyk6IENvZGVJbnRlcnByZXRlck5ldHdvcmtDb25maWd1cmF0aW9uIHtcbiAgICByZXR1cm4gbmV3IENvZGVJbnRlcnByZXRlck5ldHdvcmtDb25maWd1cmF0aW9uKCdWUEMnLCBzY29wZSwgdnBjQ29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXJzIHRoZSBuZXR3b3JrIGNvbmZpZ3VyYXRpb24gYXMgYSBDbG91ZEZvcm1hdGlvbiBwcm9wZXJ0eS5cbiAgICogQHBhcmFtIGNvZGVJbnRlcnByZXRlckNvbm5lY3Rpb25zIC0gVGhlIGNvbm5lY3Rpb25zIG9iamVjdCB0byB0aGUgY29kZSBpbnRlcnByZXRlci5cbiAgICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkuXG4gICAqL1xuICBwdWJsaWMgX3JlbmRlcihjb2RlSW50ZXJwcmV0ZXJDb25uZWN0aW9ucz86IGVjMi5Db25uZWN0aW9ucyk6IENmbkNvZGVJbnRlcnByZXRlckN1c3RvbS5Db2RlSW50ZXJwcmV0ZXJOZXR3b3JrQ29uZmlndXJhdGlvblByb3BlcnR5IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmV0d29ya01vZGU6IHRoaXMubmV0d29ya01vZGUsXG4gICAgICB2cGNDb25maWc6ICh0aGlzLm5ldHdvcmtNb2RlID09PSAnVlBDJyAmJiBjb2RlSW50ZXJwcmV0ZXJDb25uZWN0aW9ucykgPyB7XG4gICAgICAgIHN1Ym5ldHM6IHRoaXMudnBjU3VibmV0cz8uc3VibmV0cz8ubWFwKHN1Ym5ldCA9PiBzdWJuZXQuc3VibmV0SWQpID8/IFtdLFxuICAgICAgICBzZWN1cml0eUdyb3VwczogY29kZUludGVycHJldGVyQ29ubmVjdGlvbnM/LnNlY3VyaXR5R3JvdXBzPy5tYXAocyA9PiBzLnNlY3VyaXR5R3JvdXBJZCkgPz8gW10sXG4gICAgICB9IDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBOZXR3b3JrIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBSdW50aW1lLlxuICovXG5leHBvcnQgY2xhc3MgUnVudGltZU5ldHdvcmtDb25maWd1cmF0aW9uIGV4dGVuZHMgTmV0d29ya0NvbmZpZ3VyYXRpb24ge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIHB1YmxpYyBuZXR3b3JrIGNvbmZpZ3VyYXRpb24uIFBVQkxJQyBpcyB0aGUgZGVmYXVsdCBuZXR3b3JrIG1vZGUuXG4gICAqIEByZXR1cm5zIEEgUnVudGltZU5ldHdvcmtDb25maWd1cmF0aW9uLlxuICAgKiBSdW4gdGhlIHJ1bnRpbWUgaW4gYSBwdWJsaWMgZW52aXJvbm1lbnQgd2l0aCBpbnRlcm5ldCBhY2Nlc3MsIHN1aXRhYmxlIGZvciBsZXNzIHNlbnNpdGl2ZSBvciBvcGVuLXVzZSBzY2VuYXJpb3MuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHVzaW5nUHVibGljTmV0d29yaygpOiBSdW50aW1lTmV0d29ya0NvbmZpZ3VyYXRpb24ge1xuICAgIHJldHVybiBuZXcgUnVudGltZU5ldHdvcmtDb25maWd1cmF0aW9uKCdQVUJMSUMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV0d29yayBjb25maWd1cmF0aW9uIGZyb20gYSBWUEMgY29uZmlndXJhdGlvbi5cbiAgICogQHBhcmFtIHNjb3BlIC0gVGhlIGNvbnN0cnVjdCBzY29wZSBmb3IgY3JlYXRpbmcgcmVzb3VyY2VzLlxuICAgKiBAcGFyYW0gdnBjQ29uZmlnIC0gVGhlIFZQQyBjb25maWd1cmF0aW9uLlxuICAgKiBAcmV0dXJucyBBIFJ1bnRpbWVOZXR3b3JrQ29uZmlndXJhdGlvbi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdXNpbmdWcGMoc2NvcGU6IENvbnN0cnVjdCwgdnBjQ29uZmlnOiBWcGNDb25maWdQcm9wcyk6IFJ1bnRpbWVOZXR3b3JrQ29uZmlndXJhdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBSdW50aW1lTmV0d29ya0NvbmZpZ3VyYXRpb24oJ1ZQQycsIHNjb3BlLCB2cGNDb25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgdGhlIG5ldHdvcmsgY29uZmlndXJhdGlvbiBhcyBhIENsb3VkRm9ybWF0aW9uIHByb3BlcnR5LlxuICAgKiBAcGFyYW0gcnVudGltZUNvbm5lY3Rpb25zIC0gVGhlIGNvbm5lY3Rpb25zIG9iamVjdCB0byB0aGUgcnVudGltZS5cbiAgICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkuXG4gICAqL1xuICBwdWJsaWMgX3JlbmRlcihfcnVudGltZUNvbm5lY3Rpb25zPzogZWMyLkNvbm5lY3Rpb25zKTogQ2ZuUnVudGltZS5OZXR3b3JrQ29uZmlndXJhdGlvblByb3BlcnR5IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmV0d29ya01vZGU6IHRoaXMubmV0d29ya01vZGUsXG4gICAgICBuZXR3b3JrTW9kZUNvbmZpZzogKHRoaXMubmV0d29ya01vZGUgPT0gJ1ZQQycgJiYgX3J1bnRpbWVDb25uZWN0aW9ucykgPyB7XG4gICAgICAgIHN1Ym5ldHM6IHRoaXMudnBjU3VibmV0cz8uc3VibmV0cz8ubWFwKHN1Ym5ldCA9PiBzdWJuZXQuc3VibmV0SWQpID8/IFtdLFxuICAgICAgICBzZWN1cml0eUdyb3VwczogX3J1bnRpbWVDb25uZWN0aW9ucz8uc2VjdXJpdHlHcm91cHM/Lm1hcChzPT4gcy5zZWN1cml0eUdyb3VwSWQpID8/IFtdLFxuICAgICAgfTogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/******************************************************************************
|
|
2
|
+
* Data Plane Permissions
|
|
3
|
+
*****************************************************************************/
|
|
4
|
+
/**
|
|
5
|
+
* Permissions to invoke the agent runtime
|
|
6
|
+
*/
|
|
7
|
+
export declare const RUNTIME_INVOKE_PERMS: string[];
|
|
8
|
+
/**
|
|
9
|
+
* Permissions to invoke the agent runtime on behalf of a user
|
|
10
|
+
* Required when using the X-Amzn-Bedrock-AgentCore-Runtime-User-Id header
|
|
11
|
+
*/
|
|
12
|
+
export declare const RUNTIME_INVOKE_USER_PERMS: string[];
|
|
13
|
+
/******************************************************************************
|
|
14
|
+
* Control Plane Permissions
|
|
15
|
+
*****************************************************************************/
|
|
16
|
+
/**
|
|
17
|
+
* Grants control plane operations to manage the runtime (CRUD)
|
|
18
|
+
*/
|
|
19
|
+
export declare const RUNTIME_ADMIN_PERMS: string[];
|
|
20
|
+
/******************************************************************************
|
|
21
|
+
* Execution Role Permissions
|
|
22
|
+
*****************************************************************************/
|
|
23
|
+
/**
|
|
24
|
+
* ECR permissions for pulling container images
|
|
25
|
+
* Used to download container images from ECR repositories
|
|
26
|
+
*/
|
|
27
|
+
export declare const RUNTIME_ECR_IMAGE_ACTIONS: string[];
|
|
28
|
+
/**
|
|
29
|
+
* ECR authorization token permissions
|
|
30
|
+
* Required to authenticate with ECR (must use * resource)
|
|
31
|
+
*/
|
|
32
|
+
export declare const RUNTIME_ECR_TOKEN_ACTIONS: string[];
|
|
33
|
+
/**
|
|
34
|
+
* CloudWatch Logs permissions for log group operations
|
|
35
|
+
* Used to create and describe log groups for runtime logs
|
|
36
|
+
*/
|
|
37
|
+
export declare const RUNTIME_LOGS_GROUP_ACTIONS: string[];
|
|
38
|
+
/**
|
|
39
|
+
* CloudWatch Logs describe permissions
|
|
40
|
+
* Used to list and describe all log groups
|
|
41
|
+
*/
|
|
42
|
+
export declare const RUNTIME_LOGS_DESCRIBE_ACTIONS: string[];
|
|
43
|
+
/**
|
|
44
|
+
* CloudWatch Logs permissions for log stream operations
|
|
45
|
+
* Used to create log streams and write log events
|
|
46
|
+
*/
|
|
47
|
+
export declare const RUNTIME_LOGS_STREAM_ACTIONS: string[];
|
|
48
|
+
/**
|
|
49
|
+
* X-Ray tracing permissions
|
|
50
|
+
* Required for distributed tracing (must use * resource)
|
|
51
|
+
*/
|
|
52
|
+
export declare const RUNTIME_XRAY_ACTIONS: string[];
|
|
53
|
+
/**
|
|
54
|
+
* CloudWatch metrics permissions
|
|
55
|
+
* Used to publish custom metrics
|
|
56
|
+
*/
|
|
57
|
+
export declare const RUNTIME_CLOUDWATCH_METRICS_ACTIONS: string[];
|
|
58
|
+
/**
|
|
59
|
+
* Bedrock AgentCore workload identity permissions
|
|
60
|
+
* Used to obtain access tokens for workload identity
|
|
61
|
+
*/
|
|
62
|
+
export declare const RUNTIME_WORKLOAD_IDENTITY_ACTIONS: string[];
|
|
63
|
+
/**
|
|
64
|
+
* CloudWatch namespace for metrics
|
|
65
|
+
* Used as a condition for CloudWatch metrics permissions
|
|
66
|
+
*/
|
|
67
|
+
export declare const RUNTIME_CLOUDWATCH_NAMESPACE = "bedrock-agentcore";
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RUNTIME_CLOUDWATCH_NAMESPACE = exports.RUNTIME_WORKLOAD_IDENTITY_ACTIONS = exports.RUNTIME_CLOUDWATCH_METRICS_ACTIONS = exports.RUNTIME_XRAY_ACTIONS = exports.RUNTIME_LOGS_STREAM_ACTIONS = exports.RUNTIME_LOGS_DESCRIBE_ACTIONS = exports.RUNTIME_LOGS_GROUP_ACTIONS = exports.RUNTIME_ECR_TOKEN_ACTIONS = exports.RUNTIME_ECR_IMAGE_ACTIONS = exports.RUNTIME_ADMIN_PERMS = exports.RUNTIME_INVOKE_USER_PERMS = exports.RUNTIME_INVOKE_PERMS = void 0;
|
|
4
|
+
/******************************************************************************
|
|
5
|
+
* Data Plane Permissions
|
|
6
|
+
*****************************************************************************/
|
|
7
|
+
/**
|
|
8
|
+
* Permissions to invoke the agent runtime
|
|
9
|
+
*/
|
|
10
|
+
exports.RUNTIME_INVOKE_PERMS = ['bedrock-agentcore:InvokeAgentRuntime'];
|
|
11
|
+
/**
|
|
12
|
+
* Permissions to invoke the agent runtime on behalf of a user
|
|
13
|
+
* Required when using the X-Amzn-Bedrock-AgentCore-Runtime-User-Id header
|
|
14
|
+
*/
|
|
15
|
+
exports.RUNTIME_INVOKE_USER_PERMS = ['bedrock-agentcore:InvokeAgentRuntimeForUser'];
|
|
16
|
+
/******************************************************************************
|
|
17
|
+
* Control Plane Permissions
|
|
18
|
+
*****************************************************************************/
|
|
19
|
+
/**
|
|
20
|
+
* Grants control plane operations to manage the runtime (CRUD)
|
|
21
|
+
*/
|
|
22
|
+
exports.RUNTIME_ADMIN_PERMS = [
|
|
23
|
+
'bedrock-agentcore:CreateAgentRuntime',
|
|
24
|
+
'bedrock-agentcore:CreateAgentRuntimeEndpoint',
|
|
25
|
+
'bedrock-agentcore:DeleteAgentRuntime',
|
|
26
|
+
'bedrock-agentcore:DeleteAgentRuntimeEndpoint',
|
|
27
|
+
'bedrock-agentcore:GetAgentRuntime',
|
|
28
|
+
'bedrock-agentcore:GetAgentRuntimeEndpoint',
|
|
29
|
+
'bedrock-agentcore:ListAgentRuntimes',
|
|
30
|
+
'bedrock-agentcore:ListAgentRuntimeVersions',
|
|
31
|
+
'bedrock-agentcore:ListAgentRuntimeEndpoints',
|
|
32
|
+
'bedrock-agentcore:UpdateAgentRuntime',
|
|
33
|
+
'bedrock-agentcore:UpdateAgentRuntimeEndpoint',
|
|
34
|
+
];
|
|
35
|
+
/******************************************************************************
|
|
36
|
+
* Execution Role Permissions
|
|
37
|
+
*****************************************************************************/
|
|
38
|
+
/**
|
|
39
|
+
* ECR permissions for pulling container images
|
|
40
|
+
* Used to download container images from ECR repositories
|
|
41
|
+
*/
|
|
42
|
+
exports.RUNTIME_ECR_IMAGE_ACTIONS = [
|
|
43
|
+
'ecr:BatchGetImage',
|
|
44
|
+
'ecr:GetDownloadUrlForLayer',
|
|
45
|
+
];
|
|
46
|
+
/**
|
|
47
|
+
* ECR authorization token permissions
|
|
48
|
+
* Required to authenticate with ECR (must use * resource)
|
|
49
|
+
*/
|
|
50
|
+
exports.RUNTIME_ECR_TOKEN_ACTIONS = ['ecr:GetAuthorizationToken'];
|
|
51
|
+
/**
|
|
52
|
+
* CloudWatch Logs permissions for log group operations
|
|
53
|
+
* Used to create and describe log groups for runtime logs
|
|
54
|
+
*/
|
|
55
|
+
exports.RUNTIME_LOGS_GROUP_ACTIONS = [
|
|
56
|
+
'logs:DescribeLogStreams',
|
|
57
|
+
'logs:CreateLogGroup',
|
|
58
|
+
];
|
|
59
|
+
/**
|
|
60
|
+
* CloudWatch Logs describe permissions
|
|
61
|
+
* Used to list and describe all log groups
|
|
62
|
+
*/
|
|
63
|
+
exports.RUNTIME_LOGS_DESCRIBE_ACTIONS = ['logs:DescribeLogGroups'];
|
|
64
|
+
/**
|
|
65
|
+
* CloudWatch Logs permissions for log stream operations
|
|
66
|
+
* Used to create log streams and write log events
|
|
67
|
+
*/
|
|
68
|
+
exports.RUNTIME_LOGS_STREAM_ACTIONS = [
|
|
69
|
+
'logs:CreateLogStream',
|
|
70
|
+
'logs:PutLogEvents',
|
|
71
|
+
];
|
|
72
|
+
/**
|
|
73
|
+
* X-Ray tracing permissions
|
|
74
|
+
* Required for distributed tracing (must use * resource)
|
|
75
|
+
*/
|
|
76
|
+
exports.RUNTIME_XRAY_ACTIONS = [
|
|
77
|
+
'xray:PutTraceSegments',
|
|
78
|
+
'xray:PutTelemetryRecords',
|
|
79
|
+
'xray:GetSamplingRules',
|
|
80
|
+
'xray:GetSamplingTargets',
|
|
81
|
+
];
|
|
82
|
+
/**
|
|
83
|
+
* CloudWatch metrics permissions
|
|
84
|
+
* Used to publish custom metrics
|
|
85
|
+
*/
|
|
86
|
+
exports.RUNTIME_CLOUDWATCH_METRICS_ACTIONS = ['cloudwatch:PutMetricData'];
|
|
87
|
+
/**
|
|
88
|
+
* Bedrock AgentCore workload identity permissions
|
|
89
|
+
* Used to obtain access tokens for workload identity
|
|
90
|
+
*/
|
|
91
|
+
exports.RUNTIME_WORKLOAD_IDENTITY_ACTIONS = [
|
|
92
|
+
'bedrock-agentcore:GetWorkloadAccessToken',
|
|
93
|
+
'bedrock-agentcore:GetWorkloadAccessTokenForJWT',
|
|
94
|
+
'bedrock-agentcore:GetWorkloadAccessTokenForUserId',
|
|
95
|
+
];
|
|
96
|
+
/**
|
|
97
|
+
* CloudWatch namespace for metrics
|
|
98
|
+
* Used as a condition for CloudWatch metrics permissions
|
|
99
|
+
*/
|
|
100
|
+
exports.RUNTIME_CLOUDWATCH_NAMESPACE = 'bedrock-agentcore';
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwZXJtcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7K0VBRStFO0FBQy9FOztHQUVHO0FBQ1UsUUFBQSxvQkFBb0IsR0FBRyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7QUFFN0U7OztHQUdHO0FBQ1UsUUFBQSx5QkFBeUIsR0FBRyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7QUFFekY7OytFQUUrRTtBQUMvRTs7R0FFRztBQUNVLFFBQUEsbUJBQW1CLEdBQUc7SUFDakMsc0NBQXNDO0lBQ3RDLDhDQUE4QztJQUM5QyxzQ0FBc0M7SUFDdEMsOENBQThDO0lBQzlDLG1DQUFtQztJQUNuQywyQ0FBMkM7SUFDM0MscUNBQXFDO0lBQ3JDLDRDQUE0QztJQUM1Qyw2Q0FBNkM7SUFDN0Msc0NBQXNDO0lBQ3RDLDhDQUE4QztDQUMvQyxDQUFDO0FBRUY7OytFQUUrRTtBQUUvRTs7O0dBR0c7QUFDVSxRQUFBLHlCQUF5QixHQUFHO0lBQ3ZDLG1CQUFtQjtJQUNuQiw0QkFBNEI7Q0FDN0IsQ0FBQztBQUVGOzs7R0FHRztBQUNVLFFBQUEseUJBQXlCLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0FBRXZFOzs7R0FHRztBQUNVLFFBQUEsMEJBQTBCLEdBQUc7SUFDeEMseUJBQXlCO0lBQ3pCLHFCQUFxQjtDQUN0QixDQUFDO0FBRUY7OztHQUdHO0FBQ1UsUUFBQSw2QkFBNkIsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUM7QUFFeEU7OztHQUdHO0FBQ1UsUUFBQSwyQkFBMkIsR0FBRztJQUN6QyxzQkFBc0I7SUFDdEIsbUJBQW1CO0NBQ3BCLENBQUM7QUFFRjs7O0dBR0c7QUFDVSxRQUFBLG9CQUFvQixHQUFHO0lBQ2xDLHVCQUF1QjtJQUN2QiwwQkFBMEI7SUFDMUIsdUJBQXVCO0lBQ3ZCLHlCQUF5QjtDQUMxQixDQUFDO0FBRUY7OztHQUdHO0FBQ1UsUUFBQSxrQ0FBa0MsR0FBRyxDQUFDLDBCQUEwQixDQUFDLENBQUM7QUFFL0U7OztHQUdHO0FBQ1UsUUFBQSxpQ0FBaUMsR0FBRztJQUMvQywwQ0FBMEM7SUFDMUMsZ0RBQWdEO0lBQ2hELG1EQUFtRDtDQUNwRCxDQUFDO0FBQ0Y7OztHQUdHO0FBQ1UsUUFBQSw0QkFBNEIsR0FBRyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqICAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgUGxhbmUgUGVybWlzc2lvbnNcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKlxuICogUGVybWlzc2lvbnMgdG8gaW52b2tlIHRoZSBhZ2VudCBydW50aW1lXG4gKi9cbmV4cG9ydCBjb25zdCBSVU5USU1FX0lOVk9LRV9QRVJNUyA9IFsnYmVkcm9jay1hZ2VudGNvcmU6SW52b2tlQWdlbnRSdW50aW1lJ107XG5cbi8qKlxuICogUGVybWlzc2lvbnMgdG8gaW52b2tlIHRoZSBhZ2VudCBydW50aW1lIG9uIGJlaGFsZiBvZiBhIHVzZXJcbiAqIFJlcXVpcmVkIHdoZW4gdXNpbmcgdGhlIFgtQW16bi1CZWRyb2NrLUFnZW50Q29yZS1SdW50aW1lLVVzZXItSWQgaGVhZGVyXG4gKi9cbmV4cG9ydCBjb25zdCBSVU5USU1FX0lOVk9LRV9VU0VSX1BFUk1TID0gWydiZWRyb2NrLWFnZW50Y29yZTpJbnZva2VBZ2VudFJ1bnRpbWVGb3JVc2VyJ107XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRyb2wgUGxhbmUgUGVybWlzc2lvbnNcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKlxuICogR3JhbnRzIGNvbnRyb2wgcGxhbmUgb3BlcmF0aW9ucyB0byBtYW5hZ2UgdGhlIHJ1bnRpbWUgKENSVUQpXG4gKi9cbmV4cG9ydCBjb25zdCBSVU5USU1FX0FETUlOX1BFUk1TID0gW1xuICAnYmVkcm9jay1hZ2VudGNvcmU6Q3JlYXRlQWdlbnRSdW50aW1lJyxcbiAgJ2JlZHJvY2stYWdlbnRjb3JlOkNyZWF0ZUFnZW50UnVudGltZUVuZHBvaW50JyxcbiAgJ2JlZHJvY2stYWdlbnRjb3JlOkRlbGV0ZUFnZW50UnVudGltZScsXG4gICdiZWRyb2NrLWFnZW50Y29yZTpEZWxldGVBZ2VudFJ1bnRpbWVFbmRwb2ludCcsXG4gICdiZWRyb2NrLWFnZW50Y29yZTpHZXRBZ2VudFJ1bnRpbWUnLFxuICAnYmVkcm9jay1hZ2VudGNvcmU6R2V0QWdlbnRSdW50aW1lRW5kcG9pbnQnLFxuICAnYmVkcm9jay1hZ2VudGNvcmU6TGlzdEFnZW50UnVudGltZXMnLFxuICAnYmVkcm9jay1hZ2VudGNvcmU6TGlzdEFnZW50UnVudGltZVZlcnNpb25zJyxcbiAgJ2JlZHJvY2stYWdlbnRjb3JlOkxpc3RBZ2VudFJ1bnRpbWVFbmRwb2ludHMnLFxuICAnYmVkcm9jay1hZ2VudGNvcmU6VXBkYXRlQWdlbnRSdW50aW1lJyxcbiAgJ2JlZHJvY2stYWdlbnRjb3JlOlVwZGF0ZUFnZW50UnVudGltZUVuZHBvaW50Jyxcbl07XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqICAgICAgICAgICAgICAgICAgICBFeGVjdXRpb24gUm9sZSBQZXJtaXNzaW9uc1xuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKipcbiAqIEVDUiBwZXJtaXNzaW9ucyBmb3IgcHVsbGluZyBjb250YWluZXIgaW1hZ2VzXG4gKiBVc2VkIHRvIGRvd25sb2FkIGNvbnRhaW5lciBpbWFnZXMgZnJvbSBFQ1IgcmVwb3NpdG9yaWVzXG4gKi9cbmV4cG9ydCBjb25zdCBSVU5USU1FX0VDUl9JTUFHRV9BQ1RJT05TID0gW1xuICAnZWNyOkJhdGNoR2V0SW1hZ2UnLFxuICAnZWNyOkdldERvd25sb2FkVXJsRm9yTGF5ZXInLFxuXTtcblxuLyoqXG4gKiBFQ1IgYXV0aG9yaXphdGlvbiB0b2tlbiBwZXJtaXNzaW9uc1xuICogUmVxdWlyZWQgdG8gYXV0aGVudGljYXRlIHdpdGggRUNSIChtdXN0IHVzZSAqIHJlc291cmNlKVxuICovXG5leHBvcnQgY29uc3QgUlVOVElNRV9FQ1JfVE9LRU5fQUNUSU9OUyA9IFsnZWNyOkdldEF1dGhvcml6YXRpb25Ub2tlbiddO1xuXG4vKipcbiAqIENsb3VkV2F0Y2ggTG9ncyBwZXJtaXNzaW9ucyBmb3IgbG9nIGdyb3VwIG9wZXJhdGlvbnNcbiAqIFVzZWQgdG8gY3JlYXRlIGFuZCBkZXNjcmliZSBsb2cgZ3JvdXBzIGZvciBydW50aW1lIGxvZ3NcbiAqL1xuZXhwb3J0IGNvbnN0IFJVTlRJTUVfTE9HU19HUk9VUF9BQ1RJT05TID0gW1xuICAnbG9nczpEZXNjcmliZUxvZ1N0cmVhbXMnLFxuICAnbG9nczpDcmVhdGVMb2dHcm91cCcsXG5dO1xuXG4vKipcbiAqIENsb3VkV2F0Y2ggTG9ncyBkZXNjcmliZSBwZXJtaXNzaW9uc1xuICogVXNlZCB0byBsaXN0IGFuZCBkZXNjcmliZSBhbGwgbG9nIGdyb3Vwc1xuICovXG5leHBvcnQgY29uc3QgUlVOVElNRV9MT0dTX0RFU0NSSUJFX0FDVElPTlMgPSBbJ2xvZ3M6RGVzY3JpYmVMb2dHcm91cHMnXTtcblxuLyoqXG4gKiBDbG91ZFdhdGNoIExvZ3MgcGVybWlzc2lvbnMgZm9yIGxvZyBzdHJlYW0gb3BlcmF0aW9uc1xuICogVXNlZCB0byBjcmVhdGUgbG9nIHN0cmVhbXMgYW5kIHdyaXRlIGxvZyBldmVudHNcbiAqL1xuZXhwb3J0IGNvbnN0IFJVTlRJTUVfTE9HU19TVFJFQU1fQUNUSU9OUyA9IFtcbiAgJ2xvZ3M6Q3JlYXRlTG9nU3RyZWFtJyxcbiAgJ2xvZ3M6UHV0TG9nRXZlbnRzJyxcbl07XG5cbi8qKlxuICogWC1SYXkgdHJhY2luZyBwZXJtaXNzaW9uc1xuICogUmVxdWlyZWQgZm9yIGRpc3RyaWJ1dGVkIHRyYWNpbmcgKG11c3QgdXNlICogcmVzb3VyY2UpXG4gKi9cbmV4cG9ydCBjb25zdCBSVU5USU1FX1hSQVlfQUNUSU9OUyA9IFtcbiAgJ3hyYXk6UHV0VHJhY2VTZWdtZW50cycsXG4gICd4cmF5OlB1dFRlbGVtZXRyeVJlY29yZHMnLFxuICAneHJheTpHZXRTYW1wbGluZ1J1bGVzJyxcbiAgJ3hyYXk6R2V0U2FtcGxpbmdUYXJnZXRzJyxcbl07XG5cbi8qKlxuICogQ2xvdWRXYXRjaCBtZXRyaWNzIHBlcm1pc3Npb25zXG4gKiBVc2VkIHRvIHB1Ymxpc2ggY3VzdG9tIG1ldHJpY3NcbiAqL1xuZXhwb3J0IGNvbnN0IFJVTlRJTUVfQ0xPVURXQVRDSF9NRVRSSUNTX0FDVElPTlMgPSBbJ2Nsb3Vkd2F0Y2g6UHV0TWV0cmljRGF0YSddO1xuXG4vKipcbiAqIEJlZHJvY2sgQWdlbnRDb3JlIHdvcmtsb2FkIGlkZW50aXR5IHBlcm1pc3Npb25zXG4gKiBVc2VkIHRvIG9idGFpbiBhY2Nlc3MgdG9rZW5zIGZvciB3b3JrbG9hZCBpZGVudGl0eVxuICovXG5leHBvcnQgY29uc3QgUlVOVElNRV9XT1JLTE9BRF9JREVOVElUWV9BQ1RJT05TID0gW1xuICAnYmVkcm9jay1hZ2VudGNvcmU6R2V0V29ya2xvYWRBY2Nlc3NUb2tlbicsXG4gICdiZWRyb2NrLWFnZW50Y29yZTpHZXRXb3JrbG9hZEFjY2Vzc1Rva2VuRm9ySldUJyxcbiAgJ2JlZHJvY2stYWdlbnRjb3JlOkdldFdvcmtsb2FkQWNjZXNzVG9rZW5Gb3JVc2VySWQnLFxuXTtcbi8qKlxuICogQ2xvdWRXYXRjaCBuYW1lc3BhY2UgZm9yIG1ldHJpY3NcbiAqIFVzZWQgYXMgYSBjb25kaXRpb24gZm9yIENsb3VkV2F0Y2ggbWV0cmljcyBwZXJtaXNzaW9uc1xuICovXG5leHBvcnQgY29uc3QgUlVOVElNRV9DTE9VRFdBVENIX05BTUVTUEFDRSA9ICdiZWRyb2NrLWFnZW50Y29yZSc7XG4iXX0=
|