@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,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GatewayCredentialProvider = exports.CredentialProviderType = void 0;
|
|
4
|
+
const jsiiDeprecationWarnings = require("../../../.warnings.jsii.js");
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const api_key_1 = require("./api-key");
|
|
7
|
+
const iam_role_1 = require("./iam-role");
|
|
8
|
+
const oauth_1 = require("./oauth");
|
|
9
|
+
/******************************************************************************
|
|
10
|
+
* Enums
|
|
11
|
+
*****************************************************************************/
|
|
12
|
+
/**
|
|
13
|
+
* Credential provider types supported by gateway target
|
|
14
|
+
*/
|
|
15
|
+
var CredentialProviderType;
|
|
16
|
+
(function (CredentialProviderType) {
|
|
17
|
+
/**
|
|
18
|
+
* API Key authentication
|
|
19
|
+
*/
|
|
20
|
+
CredentialProviderType["API_KEY"] = "API_KEY";
|
|
21
|
+
/**
|
|
22
|
+
* OAuth authentication
|
|
23
|
+
*/
|
|
24
|
+
CredentialProviderType["OAUTH"] = "OAUTH";
|
|
25
|
+
/**
|
|
26
|
+
* IAM role authentication
|
|
27
|
+
*/
|
|
28
|
+
CredentialProviderType["GATEWAY_IAM_ROLE"] = "GATEWAY_IAM_ROLE";
|
|
29
|
+
})(CredentialProviderType || (exports.CredentialProviderType = CredentialProviderType = {}));
|
|
30
|
+
/**
|
|
31
|
+
* Factory class for creating different Gateway Credential Providers
|
|
32
|
+
*/
|
|
33
|
+
class GatewayCredentialProvider {
|
|
34
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayCredentialProvider", version: "2.227.0-alpha.0" };
|
|
35
|
+
/**
|
|
36
|
+
* Create an API key credential provider from Identity ARN
|
|
37
|
+
* Use this method when you have the Identity ARN as a string
|
|
38
|
+
* @param props - The configuration properties for the API key credential provider
|
|
39
|
+
* @returns ICredentialProviderConfig configured for API key authentication
|
|
40
|
+
*/
|
|
41
|
+
static fromApiKeyIdentityArn(props) {
|
|
42
|
+
try {
|
|
43
|
+
jsiiDeprecationWarnings._aws_cdk_aws_bedrock_agentcore_alpha_ApiKeyCredentialProviderProps(props);
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
47
|
+
Error.captureStackTrace(error, this.fromApiKeyIdentityArn);
|
|
48
|
+
}
|
|
49
|
+
throw error;
|
|
50
|
+
}
|
|
51
|
+
return new api_key_1.ApiKeyCredentialProviderConfiguration(props);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Create an OAuth credential provider from Identity ARN
|
|
55
|
+
* Use this method when you have the Identity ARN as a string
|
|
56
|
+
* @param props - The configuration properties for the OAuth credential provider
|
|
57
|
+
* @returns ICredentialProviderConfig configured for OAuth authentication
|
|
58
|
+
*/
|
|
59
|
+
static fromOauthIdentityArn(props) {
|
|
60
|
+
try {
|
|
61
|
+
jsiiDeprecationWarnings._aws_cdk_aws_bedrock_agentcore_alpha_OAuthConfiguration(props);
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
65
|
+
Error.captureStackTrace(error, this.fromOauthIdentityArn);
|
|
66
|
+
}
|
|
67
|
+
throw error;
|
|
68
|
+
}
|
|
69
|
+
return new oauth_1.OAuthCredentialProviderConfiguration(props);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Create an IAM role credential provider
|
|
73
|
+
* @returns IIamRoleCredentialProvider configured for IAM role authentication
|
|
74
|
+
*/
|
|
75
|
+
static fromIamRole() {
|
|
76
|
+
return new iam_role_1.GatewayIamRoleCredentialProviderConfig();
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
exports.GatewayCredentialProvider = GatewayCredentialProvider;
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGVudGlhbC1wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNyZWRlbnRpYWwtcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSx1Q0FBaUc7QUFDakcseUNBQW9FO0FBQ3BFLG1DQUFtRjtBQUduRjs7K0VBRStFO0FBQy9FOztHQUVHO0FBQ0gsSUFBWSxzQkFlWDtBQWZELFdBQVksc0JBQXNCO0lBQ2hDOztPQUVHO0lBQ0gsNkNBQW1CLENBQUE7SUFFbkI7O09BRUc7SUFDSCx5Q0FBZSxDQUFBO0lBRWY7O09BRUc7SUFDSCwrREFBcUMsQ0FBQTtBQUN2QyxDQUFDLEVBZlcsc0JBQXNCLHNDQUF0QixzQkFBc0IsUUFlakM7QUEyQkQ7O0dBRUc7QUFDSCxNQUFzQix5QkFBeUI7O0lBQzdDOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLHFCQUFxQixDQUFDLEtBQW9DOzs7Ozs7Ozs7O1FBQ3RFLE9BQU8sSUFBSSwrQ0FBcUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUN6RDtJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLG9CQUFvQixDQUFDLEtBQXlCOzs7Ozs7Ozs7O1FBQzFELE9BQU8sSUFBSSw0Q0FBb0MsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUN4RDtJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxXQUFXO1FBQ3ZCLE9BQU8sSUFBSSxpREFBc0MsRUFBRSxDQUFDO0tBQ3JEOztBQTNCSCw4REE0QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJUmVzb2x2YWJsZSB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENmbkdhdGV3YXlUYXJnZXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtYmVkcm9ja2FnZW50Y29yZSc7XG5pbXBvcnQgeyBBcGlLZXlDcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9uLCBBcGlLZXlDcmVkZW50aWFsUHJvdmlkZXJQcm9wcyB9IGZyb20gJy4vYXBpLWtleSc7XG5pbXBvcnQgeyBHYXRld2F5SWFtUm9sZUNyZWRlbnRpYWxQcm92aWRlckNvbmZpZyB9IGZyb20gJy4vaWFtLXJvbGUnO1xuaW1wb3J0IHsgT0F1dGhDb25maWd1cmF0aW9uLCBPQXV0aENyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb24gfSBmcm9tICcuL29hdXRoJztcbmltcG9ydCB7IEdyYW50LCBJUm9sZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVudW1zXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKipcbiAqIENyZWRlbnRpYWwgcHJvdmlkZXIgdHlwZXMgc3VwcG9ydGVkIGJ5IGdhdGV3YXkgdGFyZ2V0XG4gKi9cbmV4cG9ydCBlbnVtIENyZWRlbnRpYWxQcm92aWRlclR5cGUge1xuICAvKipcbiAgICogQVBJIEtleSBhdXRoZW50aWNhdGlvblxuICAgKi9cbiAgQVBJX0tFWSA9ICdBUElfS0VZJyxcblxuICAvKipcbiAgICogT0F1dGggYXV0aGVudGljYXRpb25cbiAgICovXG4gIE9BVVRIID0gJ09BVVRIJyxcblxuICAvKipcbiAgICogSUFNIHJvbGUgYXV0aGVudGljYXRpb25cbiAgICovXG4gIEdBVEVXQVlfSUFNX1JPTEUgPSAnR0FURVdBWV9JQU1fUk9MRScsXG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqICAgICAgICAgICAgICAgICAgICAgICBDcmVkZW50aWFsIFByb3ZpZGVyXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qKlxuICogQWJzdHJhY3QgaW50ZXJmYWNlIGZvciBnYXRld2F5IGNyZWRlbnRpYWwgcHJvdmlkZXIgY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIElDcmVkZW50aWFsUHJvdmlkZXJDb25maWcge1xuICAvKipcbiAgICogVGhlIGNyZWRlbnRpYWwgcHJvdmlkZXIgdHlwZVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlZGVudGlhbFByb3ZpZGVyVHlwZTogQ3JlZGVudGlhbFByb3ZpZGVyVHlwZTtcblxuICAvKipcbiAgICogUmVuZGVycyBhcyBDRk4gUHJvcGVydHlcbiAgICogIEBpbnRlcm5hbFxuICAgKi9cbiAgX3JlbmRlcigpOiBDZm5HYXRld2F5VGFyZ2V0LkNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25Qcm9wZXJ0eSB8IElSZXNvbHZhYmxlO1xuXG4gIC8qKlxuICAgKiBHcmFudCB0aGUgcm9sZSB0aGUgcGVybWlzc2lvbnNcbiAgICovXG4gIGdyYW50TmVlZGVkUGVybWlzc2lvbnNUb1JvbGUocm9sZTogSVJvbGUpOiBHcmFudCB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBGYWN0b3J5IGNsYXNzIGZvciBjcmVhdGluZyBkaWZmZXJlbnQgR2F0ZXdheSBDcmVkZW50aWFsIFByb3ZpZGVyc1xuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgR2F0ZXdheUNyZWRlbnRpYWxQcm92aWRlciB7XG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gQVBJIGtleSBjcmVkZW50aWFsIHByb3ZpZGVyIGZyb20gSWRlbnRpdHkgQVJOXG4gICAqIFVzZSB0aGlzIG1ldGhvZCB3aGVuIHlvdSBoYXZlIHRoZSBJZGVudGl0eSBBUk4gYXMgYSBzdHJpbmdcbiAgICogQHBhcmFtIHByb3BzIC0gVGhlIGNvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBmb3IgdGhlIEFQSSBrZXkgY3JlZGVudGlhbCBwcm92aWRlclxuICAgKiBAcmV0dXJucyBJQ3JlZGVudGlhbFByb3ZpZGVyQ29uZmlnIGNvbmZpZ3VyZWQgZm9yIEFQSSBrZXkgYXV0aGVudGljYXRpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUFwaUtleUlkZW50aXR5QXJuKHByb3BzOiBBcGlLZXlDcmVkZW50aWFsUHJvdmlkZXJQcm9wcyk6IElDcmVkZW50aWFsUHJvdmlkZXJDb25maWcge1xuICAgIHJldHVybiBuZXcgQXBpS2V5Q3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbihwcm9wcyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIE9BdXRoIGNyZWRlbnRpYWwgcHJvdmlkZXIgZnJvbSBJZGVudGl0eSBBUk5cbiAgICogVXNlIHRoaXMgbWV0aG9kIHdoZW4geW91IGhhdmUgdGhlIElkZW50aXR5IEFSTiBhcyBhIHN0cmluZ1xuICAgKiBAcGFyYW0gcHJvcHMgLSBUaGUgY29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzIGZvciB0aGUgT0F1dGggY3JlZGVudGlhbCBwcm92aWRlclxuICAgKiBAcmV0dXJucyBJQ3JlZGVudGlhbFByb3ZpZGVyQ29uZmlnIGNvbmZpZ3VyZWQgZm9yIE9BdXRoIGF1dGhlbnRpY2F0aW9uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21PYXV0aElkZW50aXR5QXJuKHByb3BzOiBPQXV0aENvbmZpZ3VyYXRpb24pOiBJQ3JlZGVudGlhbFByb3ZpZGVyQ29uZmlnIHtcbiAgICByZXR1cm4gbmV3IE9BdXRoQ3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbihwcm9wcyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIElBTSByb2xlIGNyZWRlbnRpYWwgcHJvdmlkZXJcbiAgICogQHJldHVybnMgSUlhbVJvbGVDcmVkZW50aWFsUHJvdmlkZXIgY29uZmlndXJlZCBmb3IgSUFNIHJvbGUgYXV0aGVudGljYXRpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUlhbVJvbGUoKTogSUNyZWRlbnRpYWxQcm92aWRlckNvbmZpZyB7XG4gICAgcmV0dXJuIG5ldyBHYXRld2F5SWFtUm9sZUNyZWRlbnRpYWxQcm92aWRlckNvbmZpZygpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/******************************************************************************
|
|
2
|
+
* IAM Role
|
|
3
|
+
*****************************************************************************/
|
|
4
|
+
import { Grant, IRole } from 'aws-cdk-lib/aws-iam';
|
|
5
|
+
import { CredentialProviderType, ICredentialProviderConfig } from './credential-provider';
|
|
6
|
+
/**
|
|
7
|
+
* Gateway IAM Role credential provider configuration implementation
|
|
8
|
+
* Can be used with Lambda and Smithy targets
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
export declare class GatewayIamRoleCredentialProviderConfig implements ICredentialProviderConfig {
|
|
12
|
+
readonly credentialProviderType = CredentialProviderType.GATEWAY_IAM_ROLE;
|
|
13
|
+
constructor();
|
|
14
|
+
/**
|
|
15
|
+
* @internal
|
|
16
|
+
*/
|
|
17
|
+
_render(): any;
|
|
18
|
+
/**
|
|
19
|
+
* No-op for IAM role authentication - no additional permissions are required.
|
|
20
|
+
* When using IAM role authentication for outbound calls, the gateway uses its own execution
|
|
21
|
+
* role to authenticate with the target endpoint. Unlike API Key and OAuth credential providers
|
|
22
|
+
* which require permissions to access external credential stores (Secrets Manager, Token Vault),
|
|
23
|
+
* IAM role authentication leverages AWS IAM's native authentication without additional resources.
|
|
24
|
+
* @param role The gateway's execution role (unused - no credential provider permissions needed)
|
|
25
|
+
* @returns undefined - no additional credential provider permissions to grant
|
|
26
|
+
*/
|
|
27
|
+
grantNeededPermissionsToRole(role: IRole): Grant | undefined;
|
|
28
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/******************************************************************************
|
|
3
|
+
* IAM Role
|
|
4
|
+
*****************************************************************************/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.GatewayIamRoleCredentialProviderConfig = void 0;
|
|
7
|
+
const credential_provider_1 = require("./credential-provider");
|
|
8
|
+
/**
|
|
9
|
+
* Gateway IAM Role credential provider configuration implementation
|
|
10
|
+
* Can be used with Lambda and Smithy targets
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
class GatewayIamRoleCredentialProviderConfig {
|
|
14
|
+
credentialProviderType = credential_provider_1.CredentialProviderType.GATEWAY_IAM_ROLE;
|
|
15
|
+
constructor() { }
|
|
16
|
+
/**
|
|
17
|
+
* @internal
|
|
18
|
+
*/
|
|
19
|
+
_render() {
|
|
20
|
+
return {
|
|
21
|
+
credentialProviderType: this.credentialProviderType,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* No-op for IAM role authentication - no additional permissions are required.
|
|
26
|
+
* When using IAM role authentication for outbound calls, the gateway uses its own execution
|
|
27
|
+
* role to authenticate with the target endpoint. Unlike API Key and OAuth credential providers
|
|
28
|
+
* which require permissions to access external credential stores (Secrets Manager, Token Vault),
|
|
29
|
+
* IAM role authentication leverages AWS IAM's native authentication without additional resources.
|
|
30
|
+
* @param role The gateway's execution role (unused - no credential provider permissions needed)
|
|
31
|
+
* @returns undefined - no additional credential provider permissions to grant
|
|
32
|
+
*/
|
|
33
|
+
grantNeededPermissionsToRole(role) {
|
|
34
|
+
if (role) {
|
|
35
|
+
}
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.GatewayIamRoleCredentialProviderConfig = GatewayIamRoleCredentialProviderConfig;
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWFtLXJvbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpYW0tcm9sZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7OytFQUUrRTs7O0FBRy9FLCtEQUEwRjtBQUUxRjs7OztHQUlHO0FBQ0gsTUFBYSxzQ0FBc0M7SUFDakMsc0JBQXNCLEdBQUcsNENBQXNCLENBQUMsZ0JBQWdCLENBQUM7SUFFakYsaUJBQWdCO0lBRWhCOztPQUVHO0lBQ0gsT0FBTztRQUNMLE9BQU87WUFDTCxzQkFBc0IsRUFBRSxJQUFJLENBQUMsc0JBQXNCO1NBQ3BELENBQUM7S0FDSDtJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsNEJBQTRCLENBQUMsSUFBVztRQUN0QyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ1gsQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDO0tBQ2xCO0NBQ0Y7QUE1QkQsd0ZBNEJDIiwic291cmNlc0NvbnRlbnQiOlsiXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElBTSBSb2xlXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbmltcG9ydCB7IEdyYW50LCBJUm9sZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgQ3JlZGVudGlhbFByb3ZpZGVyVHlwZSwgSUNyZWRlbnRpYWxQcm92aWRlckNvbmZpZyB9IGZyb20gJy4vY3JlZGVudGlhbC1wcm92aWRlcic7XG5cbi8qKlxuICogR2F0ZXdheSBJQU0gUm9sZSBjcmVkZW50aWFsIHByb3ZpZGVyIGNvbmZpZ3VyYXRpb24gaW1wbGVtZW50YXRpb25cbiAqIENhbiBiZSB1c2VkIHdpdGggTGFtYmRhIGFuZCBTbWl0aHkgdGFyZ2V0c1xuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjbGFzcyBHYXRld2F5SWFtUm9sZUNyZWRlbnRpYWxQcm92aWRlckNvbmZpZyBpbXBsZW1lbnRzIElDcmVkZW50aWFsUHJvdmlkZXJDb25maWcge1xuICBwdWJsaWMgcmVhZG9ubHkgY3JlZGVudGlhbFByb3ZpZGVyVHlwZSA9IENyZWRlbnRpYWxQcm92aWRlclR5cGUuR0FURVdBWV9JQU1fUk9MRTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgX3JlbmRlcigpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICBjcmVkZW50aWFsUHJvdmlkZXJUeXBlOiB0aGlzLmNyZWRlbnRpYWxQcm92aWRlclR5cGUsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBOby1vcCBmb3IgSUFNIHJvbGUgYXV0aGVudGljYXRpb24gLSBubyBhZGRpdGlvbmFsIHBlcm1pc3Npb25zIGFyZSByZXF1aXJlZC5cbiAgICogV2hlbiB1c2luZyBJQU0gcm9sZSBhdXRoZW50aWNhdGlvbiBmb3Igb3V0Ym91bmQgY2FsbHMsIHRoZSBnYXRld2F5IHVzZXMgaXRzIG93biBleGVjdXRpb25cbiAgICogcm9sZSB0byBhdXRoZW50aWNhdGUgd2l0aCB0aGUgdGFyZ2V0IGVuZHBvaW50LiBVbmxpa2UgQVBJIEtleSBhbmQgT0F1dGggY3JlZGVudGlhbCBwcm92aWRlcnNcbiAgICogd2hpY2ggcmVxdWlyZSBwZXJtaXNzaW9ucyB0byBhY2Nlc3MgZXh0ZXJuYWwgY3JlZGVudGlhbCBzdG9yZXMgKFNlY3JldHMgTWFuYWdlciwgVG9rZW4gVmF1bHQpLFxuICAgKiBJQU0gcm9sZSBhdXRoZW50aWNhdGlvbiBsZXZlcmFnZXMgQVdTIElBTSdzIG5hdGl2ZSBhdXRoZW50aWNhdGlvbiB3aXRob3V0IGFkZGl0aW9uYWwgcmVzb3VyY2VzLlxuICAgKiBAcGFyYW0gcm9sZSBUaGUgZ2F0ZXdheSdzIGV4ZWN1dGlvbiByb2xlICh1bnVzZWQgLSBubyBjcmVkZW50aWFsIHByb3ZpZGVyIHBlcm1pc3Npb25zIG5lZWRlZClcbiAgICogQHJldHVybnMgdW5kZWZpbmVkIC0gbm8gYWRkaXRpb25hbCBjcmVkZW50aWFsIHByb3ZpZGVyIHBlcm1pc3Npb25zIHRvIGdyYW50XG4gICAqL1xuICBncmFudE5lZWRlZFBlcm1pc3Npb25zVG9Sb2xlKHJvbGU6IElSb2xlKTogR3JhbnQgfCB1bmRlZmluZWQge1xuICAgIGlmIChyb2xlKSB7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { Grant, IRole } from 'aws-cdk-lib/aws-iam';
|
|
2
|
+
import { CredentialProviderType, ICredentialProviderConfig } from './credential-provider';
|
|
3
|
+
/******************************************************************************
|
|
4
|
+
* OAuth
|
|
5
|
+
*****************************************************************************/
|
|
6
|
+
/**
|
|
7
|
+
* OAuth configuration
|
|
8
|
+
*/
|
|
9
|
+
export interface OAuthConfiguration {
|
|
10
|
+
/**
|
|
11
|
+
* The OAuth credential provider ARN.
|
|
12
|
+
* This is returned when creating the OAuth credential provider via Console or API.
|
|
13
|
+
* Format: arn:aws:bedrock-agentcore:region:account:token-vault/id/oauth2credentialprovider/name
|
|
14
|
+
* Required: Yes
|
|
15
|
+
*/
|
|
16
|
+
readonly providerArn: string;
|
|
17
|
+
/**
|
|
18
|
+
* The ARN of the Secrets Manager secret containing OAuth credentials (client ID and secret).
|
|
19
|
+
* This is returned when creating the OAuth credential provider via Console or API.
|
|
20
|
+
* Format: arn:aws:secretsmanager:region:account:secret:name
|
|
21
|
+
* Required: Yes
|
|
22
|
+
*/
|
|
23
|
+
readonly secretArn: string;
|
|
24
|
+
/**
|
|
25
|
+
* The OAuth scopes for the credential provider.
|
|
26
|
+
* These scopes define the level of access requested from the OAuth provider.
|
|
27
|
+
*
|
|
28
|
+
* Array Members: Minimum number of 0 items. Maximum number of 100 items.
|
|
29
|
+
* Length Constraints: Minimum length of 1. Maximum length of 64.
|
|
30
|
+
* Required: Yes
|
|
31
|
+
*/
|
|
32
|
+
readonly scopes: string[];
|
|
33
|
+
/**
|
|
34
|
+
* The custom parameters for the OAuth credential provider.
|
|
35
|
+
* These parameters provide additional configuration for the OAuth authentication process.
|
|
36
|
+
*
|
|
37
|
+
* Map Entries: Maximum number of 10 items.
|
|
38
|
+
* Key Length Constraints: Minimum length of 1. Maximum length of 256.
|
|
39
|
+
* Value Length Constraints: Minimum length of 1. Maximum length of 2048.
|
|
40
|
+
* Required: No
|
|
41
|
+
*/
|
|
42
|
+
/**
|
|
43
|
+
* Custom parameters for the OAuth flow
|
|
44
|
+
* @default - No custom parameters
|
|
45
|
+
*/
|
|
46
|
+
readonly customParameters?: Record<string, string>;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* OAuth credential provider configuration implementation
|
|
50
|
+
* Can be used with OpenAPI targets
|
|
51
|
+
* @internal
|
|
52
|
+
*/
|
|
53
|
+
export declare class OAuthCredentialProviderConfiguration implements ICredentialProviderConfig {
|
|
54
|
+
readonly credentialProviderType = CredentialProviderType.OAUTH;
|
|
55
|
+
/**
|
|
56
|
+
* The ARN of the OAuth provider
|
|
57
|
+
*/
|
|
58
|
+
readonly providerArn: string;
|
|
59
|
+
/**
|
|
60
|
+
* The ARN of the Secrets Manager secret
|
|
61
|
+
*/
|
|
62
|
+
readonly secretArn: string;
|
|
63
|
+
/**
|
|
64
|
+
* The OAuth scopes to request
|
|
65
|
+
*/
|
|
66
|
+
readonly scopes: string[];
|
|
67
|
+
/**
|
|
68
|
+
* Custom parameters for the OAuth flow
|
|
69
|
+
*/
|
|
70
|
+
readonly customParameters?: Record<string, string>;
|
|
71
|
+
constructor(configuration: OAuthConfiguration);
|
|
72
|
+
/**
|
|
73
|
+
* Grant the needed permissions to the role for OAuth authentication
|
|
74
|
+
*/
|
|
75
|
+
grantNeededPermissionsToRole(role: IRole): Grant | undefined;
|
|
76
|
+
/**
|
|
77
|
+
* @internal
|
|
78
|
+
*/
|
|
79
|
+
_render(): any;
|
|
80
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OAuthCredentialProviderConfiguration = void 0;
|
|
4
|
+
const aws_iam_1 = require("aws-cdk-lib/aws-iam");
|
|
5
|
+
const credential_provider_1 = require("./credential-provider");
|
|
6
|
+
const perms_1 = require("../perms");
|
|
7
|
+
/**
|
|
8
|
+
* OAuth credential provider configuration implementation
|
|
9
|
+
* Can be used with OpenAPI targets
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
class OAuthCredentialProviderConfiguration {
|
|
13
|
+
credentialProviderType = credential_provider_1.CredentialProviderType.OAUTH;
|
|
14
|
+
/**
|
|
15
|
+
* The ARN of the OAuth provider
|
|
16
|
+
*/
|
|
17
|
+
providerArn;
|
|
18
|
+
/**
|
|
19
|
+
* The ARN of the Secrets Manager secret
|
|
20
|
+
*/
|
|
21
|
+
secretArn;
|
|
22
|
+
/**
|
|
23
|
+
* The OAuth scopes to request
|
|
24
|
+
*/
|
|
25
|
+
scopes;
|
|
26
|
+
/**
|
|
27
|
+
* Custom parameters for the OAuth flow
|
|
28
|
+
*/
|
|
29
|
+
customParameters;
|
|
30
|
+
constructor(configuration) {
|
|
31
|
+
this.providerArn = configuration.providerArn;
|
|
32
|
+
this.secretArn = configuration.secretArn;
|
|
33
|
+
this.scopes = configuration.scopes;
|
|
34
|
+
this.customParameters = configuration.customParameters;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Grant the needed permissions to the role for OAuth authentication
|
|
38
|
+
*/
|
|
39
|
+
grantNeededPermissionsToRole(role) {
|
|
40
|
+
const statements = [
|
|
41
|
+
new aws_iam_1.PolicyStatement({
|
|
42
|
+
actions: [
|
|
43
|
+
...perms_1.GatewayPerms.GATEWAY_OAUTH_PERMS,
|
|
44
|
+
...perms_1.GatewayPerms.GATEWAY_WORKLOAD_IDENTITY_PERMS,
|
|
45
|
+
],
|
|
46
|
+
resources: [this.providerArn],
|
|
47
|
+
}),
|
|
48
|
+
new aws_iam_1.PolicyStatement({
|
|
49
|
+
actions: perms_1.GatewayPerms.SECRETS_PERMS,
|
|
50
|
+
resources: [this.secretArn],
|
|
51
|
+
}),
|
|
52
|
+
];
|
|
53
|
+
return aws_iam_1.Grant.addToPrincipal({
|
|
54
|
+
grantee: role,
|
|
55
|
+
actions: statements.flatMap(s => s.actions),
|
|
56
|
+
resourceArns: statements.flatMap(s => s.resources),
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* @internal
|
|
61
|
+
*/
|
|
62
|
+
_render() {
|
|
63
|
+
return {
|
|
64
|
+
credentialProviderType: this.credentialProviderType,
|
|
65
|
+
credentialProvider: {
|
|
66
|
+
oauthCredentialProvider: {
|
|
67
|
+
providerArn: this.providerArn,
|
|
68
|
+
scopes: this.scopes,
|
|
69
|
+
customParameters: this.customParameters,
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
exports.OAuthCredentialProviderConfiguration = OAuthCredentialProviderConfiguration;
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJvYXV0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpREFBb0U7QUFDcEUsK0RBQTBGO0FBQzFGLG9DQUF3QztBQW9EeEM7Ozs7R0FJRztBQUNILE1BQWEsb0NBQW9DO0lBQy9CLHNCQUFzQixHQUFHLDRDQUFzQixDQUFDLEtBQUssQ0FBQztJQUN0RTs7T0FFRztJQUNhLFdBQVcsQ0FBUztJQUNwQzs7T0FFRztJQUNhLFNBQVMsQ0FBUztJQUNsQzs7T0FFRztJQUNhLE1BQU0sQ0FBVztJQUNqQzs7T0FFRztJQUNhLGdCQUFnQixDQUEwQjtJQUUxRCxZQUFZLGFBQWlDO1FBQzNDLElBQUksQ0FBQyxXQUFXLEdBQUcsYUFBYSxDQUFDLFdBQVcsQ0FBQztRQUM3QyxJQUFJLENBQUMsU0FBUyxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUM7UUFDekMsSUFBSSxDQUFDLE1BQU0sR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDO1FBQ25DLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxhQUFhLENBQUMsZ0JBQWdCLENBQUM7S0FDeEQ7SUFFRDs7T0FFRztJQUNILDRCQUE0QixDQUFDLElBQVc7UUFDdEMsTUFBTSxVQUFVLEdBQUc7WUFDakIsSUFBSSx5QkFBZSxDQUFDO2dCQUNsQixPQUFPLEVBQUU7b0JBQ1AsR0FBRyxvQkFBWSxDQUFDLG1CQUFtQjtvQkFDbkMsR0FBRyxvQkFBWSxDQUFDLCtCQUErQjtpQkFDaEQ7Z0JBQ0QsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQzthQUM5QixDQUFDO1lBQ0YsSUFBSSx5QkFBZSxDQUFDO2dCQUNsQixPQUFPLEVBQUUsb0JBQVksQ0FBQyxhQUFhO2dCQUNuQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO2FBQzVCLENBQUM7U0FDSCxDQUFDO1FBRUYsT0FBTyxlQUFLLENBQUMsY0FBYyxDQUFDO1lBQzFCLE9BQU8sRUFBRSxJQUFJO1lBQ2IsT0FBTyxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1lBQzNDLFlBQVksRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztTQUNuRCxDQUFDLENBQUM7S0FDSjtJQUVEOztPQUVHO0lBQ0gsT0FBTztRQUNMLE9BQU87WUFDTCxzQkFBc0IsRUFBRSxJQUFJLENBQUMsc0JBQXNCO1lBQ25ELGtCQUFrQixFQUFFO2dCQUNsQix1QkFBdUIsRUFBRTtvQkFDdkIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO29CQUM3QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07b0JBQ25CLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7aUJBQ3hDO2FBQ0Y7U0FDRixDQUFDO0tBQ0g7Q0FDRjtBQWxFRCxvRkFrRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHcmFudCwgSVJvbGUsIFBvbGljeVN0YXRlbWVudCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgQ3JlZGVudGlhbFByb3ZpZGVyVHlwZSwgSUNyZWRlbnRpYWxQcm92aWRlckNvbmZpZyB9IGZyb20gJy4vY3JlZGVudGlhbC1wcm92aWRlcic7XG5pbXBvcnQgeyBHYXRld2F5UGVybXMgfSBmcm9tICcuLi9wZXJtcyc7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQXV0aFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKipcbiAqIE9BdXRoIGNvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPQXV0aENvbmZpZ3VyYXRpb24ge1xuICAvKipcbiAgICogVGhlIE9BdXRoIGNyZWRlbnRpYWwgcHJvdmlkZXIgQVJOLlxuICAgKiBUaGlzIGlzIHJldHVybmVkIHdoZW4gY3JlYXRpbmcgdGhlIE9BdXRoIGNyZWRlbnRpYWwgcHJvdmlkZXIgdmlhIENvbnNvbGUgb3IgQVBJLlxuICAgKiBGb3JtYXQ6IGFybjphd3M6YmVkcm9jay1hZ2VudGNvcmU6cmVnaW9uOmFjY291bnQ6dG9rZW4tdmF1bHQvaWQvb2F1dGgyY3JlZGVudGlhbHByb3ZpZGVyL25hbWVcbiAgICogUmVxdWlyZWQ6IFllc1xuICAgKi9cbiAgcmVhZG9ubHkgcHJvdmlkZXJBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgU2VjcmV0cyBNYW5hZ2VyIHNlY3JldCBjb250YWluaW5nIE9BdXRoIGNyZWRlbnRpYWxzIChjbGllbnQgSUQgYW5kIHNlY3JldCkuXG4gICAqIFRoaXMgaXMgcmV0dXJuZWQgd2hlbiBjcmVhdGluZyB0aGUgT0F1dGggY3JlZGVudGlhbCBwcm92aWRlciB2aWEgQ29uc29sZSBvciBBUEkuXG4gICAqIEZvcm1hdDogYXJuOmF3czpzZWNyZXRzbWFuYWdlcjpyZWdpb246YWNjb3VudDpzZWNyZXQ6bmFtZVxuICAgKiBSZXF1aXJlZDogWWVzXG4gICAqL1xuICByZWFkb25seSBzZWNyZXRBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIE9BdXRoIHNjb3BlcyBmb3IgdGhlIGNyZWRlbnRpYWwgcHJvdmlkZXIuXG4gICAqIFRoZXNlIHNjb3BlcyBkZWZpbmUgdGhlIGxldmVsIG9mIGFjY2VzcyByZXF1ZXN0ZWQgZnJvbSB0aGUgT0F1dGggcHJvdmlkZXIuXG4gICAqXG4gICAqIEFycmF5IE1lbWJlcnM6IE1pbmltdW0gbnVtYmVyIG9mIDAgaXRlbXMuIE1heGltdW0gbnVtYmVyIG9mIDEwMCBpdGVtcy5cbiAgICogTGVuZ3RoIENvbnN0cmFpbnRzOiBNaW5pbXVtIGxlbmd0aCBvZiAxLiBNYXhpbXVtIGxlbmd0aCBvZiA2NC5cbiAgICogUmVxdWlyZWQ6IFllc1xuICAgKi9cbiAgcmVhZG9ubHkgc2NvcGVzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIGN1c3RvbSBwYXJhbWV0ZXJzIGZvciB0aGUgT0F1dGggY3JlZGVudGlhbCBwcm92aWRlci5cbiAgICogVGhlc2UgcGFyYW1ldGVycyBwcm92aWRlIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbiBmb3IgdGhlIE9BdXRoIGF1dGhlbnRpY2F0aW9uIHByb2Nlc3MuXG4gICAqXG4gICAqIE1hcCBFbnRyaWVzOiBNYXhpbXVtIG51bWJlciBvZiAxMCBpdGVtcy5cbiAgICogS2V5IExlbmd0aCBDb25zdHJhaW50czogTWluaW11bSBsZW5ndGggb2YgMS4gTWF4aW11bSBsZW5ndGggb2YgMjU2LlxuICAgKiBWYWx1ZSBMZW5ndGggQ29uc3RyYWludHM6IE1pbmltdW0gbGVuZ3RoIG9mIDEuIE1heGltdW0gbGVuZ3RoIG9mIDIwNDguXG4gICAqIFJlcXVpcmVkOiBOb1xuICAgKi9cbiAgLyoqXG4gICAqIEN1c3RvbSBwYXJhbWV0ZXJzIGZvciB0aGUgT0F1dGggZmxvd1xuICAgKiBAZGVmYXVsdCAtIE5vIGN1c3RvbSBwYXJhbWV0ZXJzXG4gICAqL1xuICByZWFkb25seSBjdXN0b21QYXJhbWV0ZXJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn1cblxuLyoqXG4gKiBPQXV0aCBjcmVkZW50aWFsIHByb3ZpZGVyIGNvbmZpZ3VyYXRpb24gaW1wbGVtZW50YXRpb25cbiAqIENhbiBiZSB1c2VkIHdpdGggT3BlbkFQSSB0YXJnZXRzXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNsYXNzIE9BdXRoQ3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbiBpbXBsZW1lbnRzIElDcmVkZW50aWFsUHJvdmlkZXJDb25maWcge1xuICBwdWJsaWMgcmVhZG9ubHkgY3JlZGVudGlhbFByb3ZpZGVyVHlwZSA9IENyZWRlbnRpYWxQcm92aWRlclR5cGUuT0FVVEg7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBPQXV0aCBwcm92aWRlclxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHByb3ZpZGVyQXJuOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBTZWNyZXRzIE1hbmFnZXIgc2VjcmV0XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2VjcmV0QXJuOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgT0F1dGggc2NvcGVzIHRvIHJlcXVlc3RcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzY29wZXM6IHN0cmluZ1tdO1xuICAvKipcbiAgICogQ3VzdG9tIHBhcmFtZXRlcnMgZm9yIHRoZSBPQXV0aCBmbG93XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY3VzdG9tUGFyYW1ldGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbiAgY29uc3RydWN0b3IoY29uZmlndXJhdGlvbjogT0F1dGhDb25maWd1cmF0aW9uKSB7XG4gICAgdGhpcy5wcm92aWRlckFybiA9IGNvbmZpZ3VyYXRpb24ucHJvdmlkZXJBcm47XG4gICAgdGhpcy5zZWNyZXRBcm4gPSBjb25maWd1cmF0aW9uLnNlY3JldEFybjtcbiAgICB0aGlzLnNjb3BlcyA9IGNvbmZpZ3VyYXRpb24uc2NvcGVzO1xuICAgIHRoaXMuY3VzdG9tUGFyYW1ldGVycyA9IGNvbmZpZ3VyYXRpb24uY3VzdG9tUGFyYW1ldGVycztcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCB0aGUgbmVlZGVkIHBlcm1pc3Npb25zIHRvIHRoZSByb2xlIGZvciBPQXV0aCBhdXRoZW50aWNhdGlvblxuICAgKi9cbiAgZ3JhbnROZWVkZWRQZXJtaXNzaW9uc1RvUm9sZShyb2xlOiBJUm9sZSk6IEdyYW50IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRzID0gW1xuICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAuLi5HYXRld2F5UGVybXMuR0FURVdBWV9PQVVUSF9QRVJNUyxcbiAgICAgICAgICAuLi5HYXRld2F5UGVybXMuR0FURVdBWV9XT1JLTE9BRF9JREVOVElUWV9QRVJNUyxcbiAgICAgICAgXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbdGhpcy5wcm92aWRlckFybl0sXG4gICAgICB9KSxcbiAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBhY3Rpb25zOiBHYXRld2F5UGVybXMuU0VDUkVUU19QRVJNUyxcbiAgICAgICAgcmVzb3VyY2VzOiBbdGhpcy5zZWNyZXRBcm5dLFxuICAgICAgfSksXG4gICAgXTtcblxuICAgIHJldHVybiBHcmFudC5hZGRUb1ByaW5jaXBhbCh7XG4gICAgICBncmFudGVlOiByb2xlLFxuICAgICAgYWN0aW9uczogc3RhdGVtZW50cy5mbGF0TWFwKHMgPT4gcy5hY3Rpb25zKSxcbiAgICAgIHJlc291cmNlQXJuczogc3RhdGVtZW50cy5mbGF0TWFwKHMgPT4gcy5yZXNvdXJjZXMpLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgX3JlbmRlcigpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICBjcmVkZW50aWFsUHJvdmlkZXJUeXBlOiB0aGlzLmNyZWRlbnRpYWxQcm92aWRlclR5cGUsXG4gICAgICBjcmVkZW50aWFsUHJvdmlkZXI6IHtcbiAgICAgICAgb2F1dGhDcmVkZW50aWFsUHJvdmlkZXI6IHtcbiAgICAgICAgICBwcm92aWRlckFybjogdGhpcy5wcm92aWRlckFybixcbiAgICAgICAgICBzY29wZXM6IHRoaXMuc2NvcGVzLFxuICAgICAgICAgIGN1c3RvbVBhcmFtZXRlcnM6IHRoaXMuY3VzdG9tUGFyYW1ldGVycyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
export declare namespace GatewayPerms {
|
|
2
|
+
/******************************************************************************
|
|
3
|
+
* Data Plane Permissions
|
|
4
|
+
*****************************************************************************/
|
|
5
|
+
/**
|
|
6
|
+
* Permissions to invoke the gateway
|
|
7
|
+
* Used by agents or other services that need to call the gateway
|
|
8
|
+
*/
|
|
9
|
+
const INVOKE_PERMS: string[];
|
|
10
|
+
/******************************************************************************
|
|
11
|
+
* Execution Role Permissions
|
|
12
|
+
*****************************************************************************/
|
|
13
|
+
/**
|
|
14
|
+
* KMS permissions for encryption
|
|
15
|
+
* Required when using KMS keys for encryption
|
|
16
|
+
*/
|
|
17
|
+
const KMS_KEY_PERMS: string[];
|
|
18
|
+
/**
|
|
19
|
+
* Assume role permission
|
|
20
|
+
* Required for the gateway service to assume the execution role
|
|
21
|
+
*/
|
|
22
|
+
const ASSUME_ROLE: string[];
|
|
23
|
+
/**
|
|
24
|
+
* Outbound auth - Workload identity permissions
|
|
25
|
+
* Used to obtain access tokens for workload identity
|
|
26
|
+
*/
|
|
27
|
+
const GATEWAY_WORKLOAD_IDENTITY_PERMS: string[];
|
|
28
|
+
/**
|
|
29
|
+
* Outbound auth - OAuth permissions
|
|
30
|
+
* Used to obtain OAuth tokens for target authentication
|
|
31
|
+
*/
|
|
32
|
+
const GATEWAY_OAUTH_PERMS: string[];
|
|
33
|
+
/**
|
|
34
|
+
* Outbound auth - API Key permissions
|
|
35
|
+
* Used to retrieve API keys for target authentication
|
|
36
|
+
*/
|
|
37
|
+
const GATEWAY_API_KEY_PERMS: string[];
|
|
38
|
+
/**
|
|
39
|
+
* Secrets Manager permissions
|
|
40
|
+
* Required for storing and retrieving API keys and OAuth credentials
|
|
41
|
+
*/
|
|
42
|
+
const SECRETS_PERMS: string[];
|
|
43
|
+
/******************************************************************************
|
|
44
|
+
* Control Plane Permissions
|
|
45
|
+
*****************************************************************************/
|
|
46
|
+
/**
|
|
47
|
+
* Get permissions for gateway resources
|
|
48
|
+
*/
|
|
49
|
+
const GET_PERMS: string[];
|
|
50
|
+
/**
|
|
51
|
+
* List permissions for gateway resources
|
|
52
|
+
*/
|
|
53
|
+
const LIST_PERMS: string[];
|
|
54
|
+
/**
|
|
55
|
+
* Create permissions for gateway resources
|
|
56
|
+
*/
|
|
57
|
+
const CREATE_PERMS: string[];
|
|
58
|
+
/**
|
|
59
|
+
* Update permissions for gateway resources
|
|
60
|
+
*/
|
|
61
|
+
const UPDATE_PERMS: string[];
|
|
62
|
+
/**
|
|
63
|
+
* Delete permissions for gateway resources
|
|
64
|
+
*/
|
|
65
|
+
const DELETE_PERMS: string[];
|
|
66
|
+
/**
|
|
67
|
+
* Combined manage permissions (create, update, delete)
|
|
68
|
+
*/
|
|
69
|
+
const MANAGE_PERMS: string[];
|
|
70
|
+
/**
|
|
71
|
+
* Synchronization permissions for MCP server targets
|
|
72
|
+
* Used to refresh tool catalogs when MCP server tools change
|
|
73
|
+
*/
|
|
74
|
+
const SYNC_PERMS: string[];
|
|
75
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GatewayPerms = void 0;
|
|
4
|
+
var GatewayPerms;
|
|
5
|
+
(function (GatewayPerms) {
|
|
6
|
+
/******************************************************************************
|
|
7
|
+
* Data Plane Permissions
|
|
8
|
+
*****************************************************************************/
|
|
9
|
+
/**
|
|
10
|
+
* Permissions to invoke the gateway
|
|
11
|
+
* Used by agents or other services that need to call the gateway
|
|
12
|
+
*/
|
|
13
|
+
GatewayPerms.INVOKE_PERMS = ['bedrock-agentcore:InvokeGateway'];
|
|
14
|
+
/******************************************************************************
|
|
15
|
+
* Execution Role Permissions
|
|
16
|
+
*****************************************************************************/
|
|
17
|
+
/**
|
|
18
|
+
* KMS permissions for encryption
|
|
19
|
+
* Required when using KMS keys for encryption
|
|
20
|
+
*/
|
|
21
|
+
GatewayPerms.KMS_KEY_PERMS = [
|
|
22
|
+
'kms:GenerateDataKey',
|
|
23
|
+
'kms:GenerateDataKeyWithoutPlaintext',
|
|
24
|
+
'kms:GenerateDataKeyPair',
|
|
25
|
+
'kms:GenerateDataKeyPairWithoutPlaintext',
|
|
26
|
+
'kms:Decrypt',
|
|
27
|
+
'kms:Encrypt',
|
|
28
|
+
'kms:ReEncryptFrom',
|
|
29
|
+
'kms:ReEncryptTo',
|
|
30
|
+
'kms:CreateGrant',
|
|
31
|
+
'kms:DescribeKey',
|
|
32
|
+
];
|
|
33
|
+
/**
|
|
34
|
+
* Assume role permission
|
|
35
|
+
* Required for the gateway service to assume the execution role
|
|
36
|
+
*/
|
|
37
|
+
GatewayPerms.ASSUME_ROLE = ['sts:AssumeRole'];
|
|
38
|
+
/**
|
|
39
|
+
* Outbound auth - Workload identity permissions
|
|
40
|
+
* Used to obtain access tokens for workload identity
|
|
41
|
+
*/
|
|
42
|
+
GatewayPerms.GATEWAY_WORKLOAD_IDENTITY_PERMS = [
|
|
43
|
+
'bedrock-agentcore:GetWorkloadAccessToken',
|
|
44
|
+
];
|
|
45
|
+
/**
|
|
46
|
+
* Outbound auth - OAuth permissions
|
|
47
|
+
* Used to obtain OAuth tokens for target authentication
|
|
48
|
+
*/
|
|
49
|
+
GatewayPerms.GATEWAY_OAUTH_PERMS = [
|
|
50
|
+
'bedrock-agentcore:GetResourceOauth2Token',
|
|
51
|
+
];
|
|
52
|
+
/**
|
|
53
|
+
* Outbound auth - API Key permissions
|
|
54
|
+
* Used to retrieve API keys for target authentication
|
|
55
|
+
*/
|
|
56
|
+
GatewayPerms.GATEWAY_API_KEY_PERMS = [
|
|
57
|
+
'bedrock-agentcore:GetResourceApiKey',
|
|
58
|
+
];
|
|
59
|
+
/**
|
|
60
|
+
* Secrets Manager permissions
|
|
61
|
+
* Required for storing and retrieving API keys and OAuth credentials
|
|
62
|
+
*/
|
|
63
|
+
GatewayPerms.SECRETS_PERMS = [
|
|
64
|
+
'secretsmanager:GetSecretValue',
|
|
65
|
+
'secretsmanager:DescribeSecret',
|
|
66
|
+
];
|
|
67
|
+
/******************************************************************************
|
|
68
|
+
* Control Plane Permissions
|
|
69
|
+
*****************************************************************************/
|
|
70
|
+
/**
|
|
71
|
+
* Get permissions for gateway resources
|
|
72
|
+
*/
|
|
73
|
+
GatewayPerms.GET_PERMS = ['bedrock-agentcore:GetGatewayTarget', 'bedrock-agentcore:GetGateway'];
|
|
74
|
+
/**
|
|
75
|
+
* List permissions for gateway resources
|
|
76
|
+
*/
|
|
77
|
+
GatewayPerms.LIST_PERMS = [
|
|
78
|
+
'bedrock-agentcore:ListGateways',
|
|
79
|
+
'bedrock-agentcore:ListGatewayTargets',
|
|
80
|
+
];
|
|
81
|
+
/**
|
|
82
|
+
* Create permissions for gateway resources
|
|
83
|
+
*/
|
|
84
|
+
GatewayPerms.CREATE_PERMS = [
|
|
85
|
+
'bedrock-agentcore:CreateGateway',
|
|
86
|
+
'bedrock-agentcore:CreateGatewayTarget',
|
|
87
|
+
];
|
|
88
|
+
/**
|
|
89
|
+
* Update permissions for gateway resources
|
|
90
|
+
*/
|
|
91
|
+
GatewayPerms.UPDATE_PERMS = [
|
|
92
|
+
'bedrock-agentcore:UpdateGateway',
|
|
93
|
+
'bedrock-agentcore:UpdateGatewayTarget',
|
|
94
|
+
];
|
|
95
|
+
/**
|
|
96
|
+
* Delete permissions for gateway resources
|
|
97
|
+
*/
|
|
98
|
+
GatewayPerms.DELETE_PERMS = [
|
|
99
|
+
'bedrock-agentcore:DeleteGateway',
|
|
100
|
+
'bedrock-agentcore:DeleteGatewayTarget',
|
|
101
|
+
];
|
|
102
|
+
/**
|
|
103
|
+
* Combined manage permissions (create, update, delete)
|
|
104
|
+
*/
|
|
105
|
+
GatewayPerms.MANAGE_PERMS = [...new Set([...GatewayPerms.CREATE_PERMS, ...GatewayPerms.UPDATE_PERMS, ...GatewayPerms.DELETE_PERMS])];
|
|
106
|
+
/**
|
|
107
|
+
* Synchronization permissions for MCP server targets
|
|
108
|
+
* Used to refresh tool catalogs when MCP server tools change
|
|
109
|
+
*/
|
|
110
|
+
GatewayPerms.SYNC_PERMS = ['bedrock-agentcore:SynchronizeGatewayTargets'];
|
|
111
|
+
})(GatewayPerms || (exports.GatewayPerms = GatewayPerms = {}));
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwZXJtcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFpQixZQUFZLENBMkg1QjtBQTNIRCxXQUFpQixZQUFZO0lBRTNCOzttRkFFK0U7SUFFL0U7OztPQUdHO0lBQ1UseUJBQVksR0FBRyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7SUFFaEU7O21GQUUrRTtJQUUvRTs7O09BR0c7SUFDVSwwQkFBYSxHQUFHO1FBQzNCLHFCQUFxQjtRQUNyQixxQ0FBcUM7UUFDckMseUJBQXlCO1FBQ3pCLHlDQUF5QztRQUN6QyxhQUFhO1FBQ2IsYUFBYTtRQUNiLG1CQUFtQjtRQUNuQixpQkFBaUI7UUFDakIsaUJBQWlCO1FBQ2pCLGlCQUFpQjtLQUNsQixDQUFDO0lBRUY7OztPQUdHO0lBQ1Usd0JBQVcsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFOUM7OztPQUdHO0lBQ1UsNENBQStCLEdBQUc7UUFDN0MsMENBQTBDO0tBQzNDLENBQUM7SUFFRjs7O09BR0c7SUFDVSxnQ0FBbUIsR0FBRztRQUNqQywwQ0FBMEM7S0FDM0MsQ0FBQztJQUVGOzs7T0FHRztJQUNVLGtDQUFxQixHQUFHO1FBQ25DLHFDQUFxQztLQUN0QyxDQUFDO0lBRUY7OztPQUdHO0lBQ1UsMEJBQWEsR0FBRztRQUMzQiwrQkFBK0I7UUFDL0IsK0JBQStCO0tBQ2hDLENBQUM7SUFFRjs7bUZBRStFO0lBRS9FOztPQUVHO0lBQ1Usc0JBQVMsR0FBRyxDQUFDLG9DQUFvQyxFQUFFLDhCQUE4QixDQUFDLENBQUM7SUFFaEc7O09BRUc7SUFDVSx1QkFBVSxHQUFHO1FBQ3hCLGdDQUFnQztRQUNoQyxzQ0FBc0M7S0FDdkMsQ0FBQztJQUVGOztPQUVHO0lBQ1UseUJBQVksR0FBRztRQUMxQixpQ0FBaUM7UUFDakMsdUNBQXVDO0tBQ3hDLENBQUM7SUFFRjs7T0FFRztJQUNVLHlCQUFZLEdBQUc7UUFDMUIsaUNBQWlDO1FBQ2pDLHVDQUF1QztLQUN4QyxDQUFDO0lBRUY7O09BRUc7SUFDVSx5QkFBWSxHQUFHO1FBQzFCLGlDQUFpQztRQUNqQyx1Q0FBdUM7S0FDeEMsQ0FBQztJQUVGOztPQUVHO0lBQ1UseUJBQVksR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLGFBQUEsWUFBWSxFQUFFLEdBQUcsYUFBQSxZQUFZLEVBQUUsR0FBRyxhQUFBLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUU5Rjs7O09BR0c7SUFDVSx1QkFBVSxHQUFHLENBQUMsNkNBQTZDLENBQUMsQ0FBQztBQUM1RSxDQUFDLEVBM0hnQixZQUFZLDRCQUFaLFlBQVksUUEySDVCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IG5hbWVzcGFjZSBHYXRld2F5UGVybXMge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogRGF0YSBQbGFuZSBQZXJtaXNzaW9uc1xuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIFBlcm1pc3Npb25zIHRvIGludm9rZSB0aGUgZ2F0ZXdheVxuICAgKiBVc2VkIGJ5IGFnZW50cyBvciBvdGhlciBzZXJ2aWNlcyB0aGF0IG5lZWQgdG8gY2FsbCB0aGUgZ2F0ZXdheVxuICAgKi9cbiAgZXhwb3J0IGNvbnN0IElOVk9LRV9QRVJNUyA9IFsnYmVkcm9jay1hZ2VudGNvcmU6SW52b2tlR2F0ZXdheSddO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogRXhlY3V0aW9uIFJvbGUgUGVybWlzc2lvbnNcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBLTVMgcGVybWlzc2lvbnMgZm9yIGVuY3J5cHRpb25cbiAgICogUmVxdWlyZWQgd2hlbiB1c2luZyBLTVMga2V5cyBmb3IgZW5jcnlwdGlvblxuICAgKi9cbiAgZXhwb3J0IGNvbnN0IEtNU19LRVlfUEVSTVMgPSBbXG4gICAgJ2ttczpHZW5lcmF0ZURhdGFLZXknLFxuICAgICdrbXM6R2VuZXJhdGVEYXRhS2V5V2l0aG91dFBsYWludGV4dCcsXG4gICAgJ2ttczpHZW5lcmF0ZURhdGFLZXlQYWlyJyxcbiAgICAna21zOkdlbmVyYXRlRGF0YUtleVBhaXJXaXRob3V0UGxhaW50ZXh0JyxcbiAgICAna21zOkRlY3J5cHQnLFxuICAgICdrbXM6RW5jcnlwdCcsXG4gICAgJ2ttczpSZUVuY3J5cHRGcm9tJyxcbiAgICAna21zOlJlRW5jcnlwdFRvJyxcbiAgICAna21zOkNyZWF0ZUdyYW50JyxcbiAgICAna21zOkRlc2NyaWJlS2V5JyxcbiAgXTtcblxuICAvKipcbiAgICogQXNzdW1lIHJvbGUgcGVybWlzc2lvblxuICAgKiBSZXF1aXJlZCBmb3IgdGhlIGdhdGV3YXkgc2VydmljZSB0byBhc3N1bWUgdGhlIGV4ZWN1dGlvbiByb2xlXG4gICAqL1xuICBleHBvcnQgY29uc3QgQVNTVU1FX1JPTEUgPSBbJ3N0czpBc3N1bWVSb2xlJ107XG5cbiAgLyoqXG4gICAqIE91dGJvdW5kIGF1dGggLSBXb3JrbG9hZCBpZGVudGl0eSBwZXJtaXNzaW9uc1xuICAgKiBVc2VkIHRvIG9idGFpbiBhY2Nlc3MgdG9rZW5zIGZvciB3b3JrbG9hZCBpZGVudGl0eVxuICAgKi9cbiAgZXhwb3J0IGNvbnN0IEdBVEVXQVlfV09SS0xPQURfSURFTlRJVFlfUEVSTVMgPSBbXG4gICAgJ2JlZHJvY2stYWdlbnRjb3JlOkdldFdvcmtsb2FkQWNjZXNzVG9rZW4nLFxuICBdO1xuXG4gIC8qKlxuICAgKiBPdXRib3VuZCBhdXRoIC0gT0F1dGggcGVybWlzc2lvbnNcbiAgICogVXNlZCB0byBvYnRhaW4gT0F1dGggdG9rZW5zIGZvciB0YXJnZXQgYXV0aGVudGljYXRpb25cbiAgICovXG4gIGV4cG9ydCBjb25zdCBHQVRFV0FZX09BVVRIX1BFUk1TID0gW1xuICAgICdiZWRyb2NrLWFnZW50Y29yZTpHZXRSZXNvdXJjZU9hdXRoMlRva2VuJyxcbiAgXTtcblxuICAvKipcbiAgICogT3V0Ym91bmQgYXV0aCAtIEFQSSBLZXkgcGVybWlzc2lvbnNcbiAgICogVXNlZCB0byByZXRyaWV2ZSBBUEkga2V5cyBmb3IgdGFyZ2V0IGF1dGhlbnRpY2F0aW9uXG4gICAqL1xuICBleHBvcnQgY29uc3QgR0FURVdBWV9BUElfS0VZX1BFUk1TID0gW1xuICAgICdiZWRyb2NrLWFnZW50Y29yZTpHZXRSZXNvdXJjZUFwaUtleScsXG4gIF07XG5cbiAgLyoqXG4gICAqIFNlY3JldHMgTWFuYWdlciBwZXJtaXNzaW9uc1xuICAgKiBSZXF1aXJlZCBmb3Igc3RvcmluZyBhbmQgcmV0cmlldmluZyBBUEkga2V5cyBhbmQgT0F1dGggY3JlZGVudGlhbHNcbiAgICovXG4gIGV4cG9ydCBjb25zdCBTRUNSRVRTX1BFUk1TID0gW1xuICAgICdzZWNyZXRzbWFuYWdlcjpHZXRTZWNyZXRWYWx1ZScsXG4gICAgJ3NlY3JldHNtYW5hZ2VyOkRlc2NyaWJlU2VjcmV0JyxcbiAgXTtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqIENvbnRyb2wgUGxhbmUgUGVybWlzc2lvbnNcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBHZXQgcGVybWlzc2lvbnMgZm9yIGdhdGV3YXkgcmVzb3VyY2VzXG4gICAqL1xuICBleHBvcnQgY29uc3QgR0VUX1BFUk1TID0gWydiZWRyb2NrLWFnZW50Y29yZTpHZXRHYXRld2F5VGFyZ2V0JywgJ2JlZHJvY2stYWdlbnRjb3JlOkdldEdhdGV3YXknXTtcblxuICAvKipcbiAgICogTGlzdCBwZXJtaXNzaW9ucyBmb3IgZ2F0ZXdheSByZXNvdXJjZXNcbiAgICovXG4gIGV4cG9ydCBjb25zdCBMSVNUX1BFUk1TID0gW1xuICAgICdiZWRyb2NrLWFnZW50Y29yZTpMaXN0R2F0ZXdheXMnLFxuICAgICdiZWRyb2NrLWFnZW50Y29yZTpMaXN0R2F0ZXdheVRhcmdldHMnLFxuICBdO1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgcGVybWlzc2lvbnMgZm9yIGdhdGV3YXkgcmVzb3VyY2VzXG4gICAqL1xuICBleHBvcnQgY29uc3QgQ1JFQVRFX1BFUk1TID0gW1xuICAgICdiZWRyb2NrLWFnZW50Y29yZTpDcmVhdGVHYXRld2F5JyxcbiAgICAnYmVkcm9jay1hZ2VudGNvcmU6Q3JlYXRlR2F0ZXdheVRhcmdldCcsXG4gIF07XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBwZXJtaXNzaW9ucyBmb3IgZ2F0ZXdheSByZXNvdXJjZXNcbiAgICovXG4gIGV4cG9ydCBjb25zdCBVUERBVEVfUEVSTVMgPSBbXG4gICAgJ2JlZHJvY2stYWdlbnRjb3JlOlVwZGF0ZUdhdGV3YXknLFxuICAgICdiZWRyb2NrLWFnZW50Y29yZTpVcGRhdGVHYXRld2F5VGFyZ2V0JyxcbiAgXTtcblxuICAvKipcbiAgICogRGVsZXRlIHBlcm1pc3Npb25zIGZvciBnYXRld2F5IHJlc291cmNlc1xuICAgKi9cbiAgZXhwb3J0IGNvbnN0IERFTEVURV9QRVJNUyA9IFtcbiAgICAnYmVkcm9jay1hZ2VudGNvcmU6RGVsZXRlR2F0ZXdheScsXG4gICAgJ2JlZHJvY2stYWdlbnRjb3JlOkRlbGV0ZUdhdGV3YXlUYXJnZXQnLFxuICBdO1xuXG4gIC8qKlxuICAgKiBDb21iaW5lZCBtYW5hZ2UgcGVybWlzc2lvbnMgKGNyZWF0ZSwgdXBkYXRlLCBkZWxldGUpXG4gICAqL1xuICBleHBvcnQgY29uc3QgTUFOQUdFX1BFUk1TID0gWy4uLm5ldyBTZXQoWy4uLkNSRUFURV9QRVJNUywgLi4uVVBEQVRFX1BFUk1TLCAuLi5ERUxFVEVfUEVSTVNdKV07XG5cbiAgLyoqXG4gICAqIFN5bmNocm9uaXphdGlvbiBwZXJtaXNzaW9ucyBmb3IgTUNQIHNlcnZlciB0YXJnZXRzXG4gICAqIFVzZWQgdG8gcmVmcmVzaCB0b29sIGNhdGFsb2dzIHdoZW4gTUNQIHNlcnZlciB0b29scyBjaGFuZ2VcbiAgICovXG4gIGV4cG9ydCBjb25zdCBTWU5DX1BFUk1TID0gWydiZWRyb2NrLWFnZW50Y29yZTpTeW5jaHJvbml6ZUdhdGV3YXlUYXJnZXRzJ107XG59XG4iXX0=
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { CfnGateway } from 'aws-cdk-lib/aws-bedrockagentcore';
|
|
2
|
+
/******************************************************************************
|
|
3
|
+
* Enums
|
|
4
|
+
*****************************************************************************/
|
|
5
|
+
/**
|
|
6
|
+
* The type of protocols
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
export declare enum GatewayProtocolType {
|
|
10
|
+
/**
|
|
11
|
+
* MCP (Model Context Protocol) protocol type.
|
|
12
|
+
*/
|
|
13
|
+
MCP = "MCP"
|
|
14
|
+
}
|
|
15
|
+
/******************************************************************************
|
|
16
|
+
* Protocol Configuration
|
|
17
|
+
*****************************************************************************/
|
|
18
|
+
/**
|
|
19
|
+
* Abstract interface for gateway protocol configuration
|
|
20
|
+
*/
|
|
21
|
+
export interface IGatewayProtocolConfig {
|
|
22
|
+
/**
|
|
23
|
+
* The protocol type
|
|
24
|
+
*/
|
|
25
|
+
readonly protocolType: string;
|
|
26
|
+
/**
|
|
27
|
+
* Returns internal info as the CFN protocol configuration object
|
|
28
|
+
* @internal
|
|
29
|
+
*/
|
|
30
|
+
_render(): any;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Factory class for instantiating Gateway Protocols
|
|
34
|
+
*/
|
|
35
|
+
export declare abstract class GatewayProtocol {
|
|
36
|
+
/**
|
|
37
|
+
* Create an MCP protocol configuration
|
|
38
|
+
* @param props - Optional MCP configuration properties
|
|
39
|
+
* @returns IGatewayProtocolConfig configured for MCP
|
|
40
|
+
*/
|
|
41
|
+
static mcp(props?: McpConfiguration): IGatewayProtocolConfig;
|
|
42
|
+
}
|
|
43
|
+
/******************************************************************************
|
|
44
|
+
* MCP Protocol Configuration
|
|
45
|
+
*****************************************************************************/
|
|
46
|
+
/**
|
|
47
|
+
* MCP protocol versions.
|
|
48
|
+
* The Model Context Protocol uses string-based version identifiers following the format YYYY-MM-DD,
|
|
49
|
+
* to indicate the last date backwards incompatible changes were made.
|
|
50
|
+
* Versions are available at https://github.com/modelcontextprotocol/modelcontextprotocol/releases
|
|
51
|
+
*/
|
|
52
|
+
export declare enum MCPProtocolVersion {
|
|
53
|
+
/**
|
|
54
|
+
* The latest version of the MCP protocol.
|
|
55
|
+
*/
|
|
56
|
+
MCP_2025_06_18 = "2025-06-18",
|
|
57
|
+
/** MCP version 2025-03-26 */
|
|
58
|
+
MCP_2025_03_26 = "2025-03-26"
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Search types supported by MCP gateway
|
|
62
|
+
*/
|
|
63
|
+
export declare enum McpGatewaySearchType {
|
|
64
|
+
/**
|
|
65
|
+
* Semantic search type.
|
|
66
|
+
* When semantic search is enabled, your gateway can search the tools via
|
|
67
|
+
* the gateway SDK based off of a natural language phrase.
|
|
68
|
+
*/
|
|
69
|
+
SEMANTIC = "SEMANTIC"
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* MCP protocol configuration
|
|
73
|
+
* The configuration for the Model Context Protocol (MCP).
|
|
74
|
+
* This protocol enables communication between Amazon Bedrock Agent and external tools.
|
|
75
|
+
*/
|
|
76
|
+
export interface McpConfiguration {
|
|
77
|
+
/**
|
|
78
|
+
* The instructions for using the Model Context Protocol gateway.
|
|
79
|
+
* These instructions provide guidance on how to interact with the gateway.
|
|
80
|
+
*
|
|
81
|
+
* @default - No instructions provided
|
|
82
|
+
*/
|
|
83
|
+
readonly instructions?: string;
|
|
84
|
+
/**
|
|
85
|
+
* The search type for the Model Context Protocol gateway.
|
|
86
|
+
* This field specifies how the gateway handles search operations.
|
|
87
|
+
*
|
|
88
|
+
* @default - No search type specified
|
|
89
|
+
*/
|
|
90
|
+
readonly searchType?: McpGatewaySearchType;
|
|
91
|
+
/**
|
|
92
|
+
* The supported versions of the Model Context Protocol.
|
|
93
|
+
* This field specifies which versions of the protocol the gateway can use.
|
|
94
|
+
*
|
|
95
|
+
* @default - No specific versions specified
|
|
96
|
+
*/
|
|
97
|
+
readonly supportedVersions?: MCPProtocolVersion[];
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* MCP (Model Context Protocol) configuration implementation
|
|
101
|
+
*/
|
|
102
|
+
export declare class McpProtocolConfiguration implements IGatewayProtocolConfig {
|
|
103
|
+
readonly protocolType: string;
|
|
104
|
+
/**
|
|
105
|
+
* The supported MCP protocol versions
|
|
106
|
+
*/
|
|
107
|
+
readonly supportedVersions?: MCPProtocolVersion[];
|
|
108
|
+
/**
|
|
109
|
+
* The search type for the MCP gateway
|
|
110
|
+
*/
|
|
111
|
+
readonly searchType?: string;
|
|
112
|
+
/**
|
|
113
|
+
* Instructions for using the MCP gateway
|
|
114
|
+
*/
|
|
115
|
+
readonly instructions?: string;
|
|
116
|
+
constructor(props?: McpConfiguration);
|
|
117
|
+
/**
|
|
118
|
+
* @internal
|
|
119
|
+
*/
|
|
120
|
+
_render(): CfnGateway.GatewayProtocolConfigurationProperty;
|
|
121
|
+
}
|