@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.
Files changed (54) hide show
  1. package/.jsii +14021 -5792
  2. package/.jsii.tabl.json.gz +0 -0
  3. package/.warnings.jsii.js +343 -1
  4. package/README.md +880 -19
  5. package/agentcore/gateway/gateway-base.d.ts +292 -0
  6. package/agentcore/gateway/gateway-base.js +171 -0
  7. package/agentcore/gateway/gateway.d.ts +383 -0
  8. package/agentcore/gateway/gateway.js +521 -0
  9. package/agentcore/gateway/inbound-auth/authorizer.d.ts +121 -0
  10. package/agentcore/gateway/inbound-auth/authorizer.js +133 -0
  11. package/agentcore/gateway/outbound-auth/api-key.d.ts +117 -0
  12. package/agentcore/gateway/outbound-auth/api-key.js +141 -0
  13. package/agentcore/gateway/outbound-auth/credential-provider.d.ts +70 -0
  14. package/agentcore/gateway/outbound-auth/credential-provider.js +80 -0
  15. package/agentcore/gateway/outbound-auth/iam-role.d.ts +28 -0
  16. package/agentcore/gateway/outbound-auth/iam-role.js +40 -0
  17. package/agentcore/gateway/outbound-auth/oauth.d.ts +80 -0
  18. package/agentcore/gateway/outbound-auth/oauth.js +76 -0
  19. package/agentcore/gateway/perms.d.ts +75 -0
  20. package/agentcore/gateway/perms.js +112 -0
  21. package/agentcore/gateway/protocol.d.ts +121 -0
  22. package/agentcore/gateway/protocol.js +120 -0
  23. package/agentcore/gateway/targets/schema/api-schema.d.ts +110 -0
  24. package/agentcore/gateway/targets/schema/api-schema.js +207 -0
  25. package/agentcore/gateway/targets/schema/base-schema.d.ts +24 -0
  26. package/agentcore/gateway/targets/schema/base-schema.js +12 -0
  27. package/agentcore/gateway/targets/schema/tool-schema.d.ts +198 -0
  28. package/agentcore/gateway/targets/schema/tool-schema.js +213 -0
  29. package/agentcore/gateway/targets/target-base.d.ts +153 -0
  30. package/agentcore/gateway/targets/target-base.js +81 -0
  31. package/agentcore/gateway/targets/target-configuration.d.ts +230 -0
  32. package/agentcore/gateway/targets/target-configuration.js +407 -0
  33. package/agentcore/gateway/targets/target.d.ts +345 -0
  34. package/agentcore/gateway/targets/target.js +444 -0
  35. package/agentcore/gateway/validation-helpers.d.ts +65 -0
  36. package/agentcore/gateway/validation-helpers.js +333 -0
  37. package/agentcore/index.d.ts +15 -0
  38. package/agentcore/index.js +32 -1
  39. package/agentcore/memory/memory-strategy.js +1 -1
  40. package/agentcore/memory/memory.js +6 -3
  41. package/agentcore/memory/strategies/managed-strategy.js +1 -1
  42. package/agentcore/memory/strategies/self-managed-strategy.js +1 -1
  43. package/agentcore/network/network-configuration.js +4 -4
  44. package/agentcore/runtime/runtime-artifact.js +1 -1
  45. package/agentcore/runtime/runtime-authorizer-configuration.d.ts +1 -1
  46. package/agentcore/runtime/runtime-authorizer-configuration.js +6 -5
  47. package/agentcore/runtime/runtime-base.js +1 -1
  48. package/agentcore/runtime/runtime-endpoint-base.js +1 -1
  49. package/agentcore/runtime/runtime-endpoint.js +1 -1
  50. package/agentcore/runtime/runtime.js +1 -1
  51. package/agentcore/tools/browser.js +2 -2
  52. package/agentcore/tools/code-interpreter.js +2 -2
  53. package/package.json +9 -9
  54. 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
+ }