@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,120 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.McpProtocolConfiguration = exports.McpGatewaySearchType = exports.MCPProtocolVersion = exports.GatewayProtocol = exports.GatewayProtocolType = void 0;
4
+ const jsiiDeprecationWarnings = require("../../.warnings.jsii.js");
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ /******************************************************************************
7
+ * Enums
8
+ *****************************************************************************/
9
+ /**
10
+ * The type of protocols
11
+ * @internal
12
+ */
13
+ var GatewayProtocolType;
14
+ (function (GatewayProtocolType) {
15
+ /**
16
+ * MCP (Model Context Protocol) protocol type.
17
+ */
18
+ GatewayProtocolType["MCP"] = "MCP";
19
+ })(GatewayProtocolType || (exports.GatewayProtocolType = GatewayProtocolType = {}));
20
+ /**
21
+ * Factory class for instantiating Gateway Protocols
22
+ */
23
+ class GatewayProtocol {
24
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayProtocol", version: "2.227.0-alpha.0" };
25
+ /**
26
+ * Create an MCP protocol configuration
27
+ * @param props - Optional MCP configuration properties
28
+ * @returns IGatewayProtocolConfig configured for MCP
29
+ */
30
+ static mcp(props) {
31
+ try {
32
+ jsiiDeprecationWarnings._aws_cdk_aws_bedrock_agentcore_alpha_McpConfiguration(props);
33
+ }
34
+ catch (error) {
35
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
36
+ Error.captureStackTrace(error, this.mcp);
37
+ }
38
+ throw error;
39
+ }
40
+ return new McpProtocolConfiguration(props);
41
+ }
42
+ }
43
+ exports.GatewayProtocol = GatewayProtocol;
44
+ /******************************************************************************
45
+ * MCP Protocol Configuration
46
+ *****************************************************************************/
47
+ /**
48
+ * MCP protocol versions.
49
+ * The Model Context Protocol uses string-based version identifiers following the format YYYY-MM-DD,
50
+ * to indicate the last date backwards incompatible changes were made.
51
+ * Versions are available at https://github.com/modelcontextprotocol/modelcontextprotocol/releases
52
+ */
53
+ var MCPProtocolVersion;
54
+ (function (MCPProtocolVersion) {
55
+ /**
56
+ * The latest version of the MCP protocol.
57
+ */
58
+ MCPProtocolVersion["MCP_2025_06_18"] = "2025-06-18";
59
+ /** MCP version 2025-03-26 */
60
+ MCPProtocolVersion["MCP_2025_03_26"] = "2025-03-26";
61
+ })(MCPProtocolVersion || (exports.MCPProtocolVersion = MCPProtocolVersion = {}));
62
+ /**
63
+ * Search types supported by MCP gateway
64
+ */
65
+ var McpGatewaySearchType;
66
+ (function (McpGatewaySearchType) {
67
+ /**
68
+ * Semantic search type.
69
+ * When semantic search is enabled, your gateway can search the tools via
70
+ * the gateway SDK based off of a natural language phrase.
71
+ */
72
+ McpGatewaySearchType["SEMANTIC"] = "SEMANTIC";
73
+ })(McpGatewaySearchType || (exports.McpGatewaySearchType = McpGatewaySearchType = {}));
74
+ /**
75
+ * MCP (Model Context Protocol) configuration implementation
76
+ */
77
+ class McpProtocolConfiguration {
78
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.McpProtocolConfiguration", version: "2.227.0-alpha.0" };
79
+ protocolType;
80
+ /**
81
+ * The supported MCP protocol versions
82
+ */
83
+ supportedVersions;
84
+ /**
85
+ * The search type for the MCP gateway
86
+ */
87
+ searchType;
88
+ /**
89
+ * Instructions for using the MCP gateway
90
+ */
91
+ instructions;
92
+ constructor(props) {
93
+ try {
94
+ jsiiDeprecationWarnings._aws_cdk_aws_bedrock_agentcore_alpha_McpConfiguration(props);
95
+ }
96
+ catch (error) {
97
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
98
+ Error.captureStackTrace(error, McpProtocolConfiguration);
99
+ }
100
+ throw error;
101
+ }
102
+ this.searchType = props?.searchType;
103
+ this.supportedVersions = props?.supportedVersions;
104
+ this.instructions = props?.instructions;
105
+ this.protocolType = GatewayProtocolType.MCP;
106
+ }
107
+ /**
108
+ * @internal
109
+ */
110
+ _render() {
111
+ const mcpConfig = {
112
+ ...(this.instructions && { instructions: this.instructions }),
113
+ ...(this.searchType && { searchType: this.searchType }),
114
+ ...(this.supportedVersions && { supportedVersions: this.supportedVersions }),
115
+ };
116
+ return { mcp: mcpConfig };
117
+ }
118
+ }
119
+ exports.McpProtocolConfiguration = McpProtocolConfiguration;
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdG9jb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwcm90b2NvbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVBOzsrRUFFK0U7QUFDL0U7OztHQUdHO0FBQ0gsSUFBWSxtQkFLWDtBQUxELFdBQVksbUJBQW1CO0lBQzdCOztPQUVHO0lBQ0gsa0NBQVcsQ0FBQTtBQUNiLENBQUMsRUFMVyxtQkFBbUIsbUNBQW5CLG1CQUFtQixRQUs5QjtBQXNCRDs7R0FFRztBQUNILE1BQXNCLGVBQWU7O0lBQ25DOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQXdCOzs7Ozs7Ozs7O1FBQ3hDLE9BQU8sSUFBSSx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUM1Qzs7QUFSSCwwQ0FTQztBQUVEOzsrRUFFK0U7QUFDL0U7Ozs7O0dBS0c7QUFDSCxJQUFZLGtCQU9YO0FBUEQsV0FBWSxrQkFBa0I7SUFDNUI7O09BRUc7SUFDSCxtREFBNkIsQ0FBQTtJQUM3Qiw2QkFBNkI7SUFDN0IsbURBQTZCLENBQUE7QUFDL0IsQ0FBQyxFQVBXLGtCQUFrQixrQ0FBbEIsa0JBQWtCLFFBTzdCO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLG9CQU9YO0FBUEQsV0FBWSxvQkFBb0I7SUFDOUI7Ozs7T0FJRztJQUNILDZDQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFQVyxvQkFBb0Isb0NBQXBCLG9CQUFvQixRQU8vQjtBQWlDRDs7R0FFRztBQUNILE1BQWEsd0JBQXdCOztJQUNuQixZQUFZLENBQVM7SUFDckM7O09BRUc7SUFDYSxpQkFBaUIsQ0FBd0I7SUFDekQ7O09BRUc7SUFDYSxVQUFVLENBQVU7SUFDcEM7O09BRUc7SUFDYSxZQUFZLENBQVU7SUFFdEMsWUFBWSxLQUF3Qjs7Ozs7OytDQWZ6Qix3QkFBd0I7Ozs7UUFnQmpDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxFQUFFLFVBQVUsQ0FBQztRQUNwQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxFQUFFLGlCQUFpQixDQUFDO1FBQ2xELElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxFQUFFLFlBQVksQ0FBQztRQUN4QyxJQUFJLENBQUMsWUFBWSxHQUFHLG1CQUFtQixDQUFDLEdBQUcsQ0FBQztLQUM3QztJQUVEOztPQUVHO0lBQ0ksT0FBTztRQUNaLE1BQU0sU0FBUyxHQUErQztZQUM1RCxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDN0QsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3ZELEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLElBQUksRUFBRSxpQkFBaUIsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztTQUM3RSxDQUFDO1FBQ0YsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsQ0FBQztLQUMzQjs7QUFoQ0gsNERBaUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2ZuR2F0ZXdheSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1iZWRyb2NrYWdlbnRjb3JlJztcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbnVtc1xuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqXG4gKiBUaGUgdHlwZSBvZiBwcm90b2NvbHNcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZW51bSBHYXRld2F5UHJvdG9jb2xUeXBlIHtcbiAgLyoqXG4gICAqIE1DUCAoTW9kZWwgQ29udGV4dCBQcm90b2NvbCkgcHJvdG9jb2wgdHlwZS5cbiAgICovXG4gIE1DUCA9ICdNQ1AnLFxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJvdG9jb2wgQ29uZmlndXJhdGlvblxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKipcbiAqIEFic3RyYWN0IGludGVyZmFjZSBmb3IgZ2F0ZXdheSBwcm90b2NvbCBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUdhdGV3YXlQcm90b2NvbENvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgcHJvdG9jb2wgdHlwZVxuICAgKi9cbiAgcmVhZG9ubHkgcHJvdG9jb2xUeXBlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgaW50ZXJuYWwgaW5mbyBhcyB0aGUgQ0ZOIHByb3RvY29sIGNvbmZpZ3VyYXRpb24gb2JqZWN0XG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgX3JlbmRlcigpOiBhbnk7XG59XG5cbi8qKlxuICogRmFjdG9yeSBjbGFzcyBmb3IgaW5zdGFudGlhdGluZyBHYXRld2F5IFByb3RvY29sc1xuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgR2F0ZXdheVByb3RvY29sIHtcbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBNQ1AgcHJvdG9jb2wgY29uZmlndXJhdGlvblxuICAgKiBAcGFyYW0gcHJvcHMgLSBPcHRpb25hbCBNQ1AgY29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzXG4gICAqIEByZXR1cm5zIElHYXRld2F5UHJvdG9jb2xDb25maWcgY29uZmlndXJlZCBmb3IgTUNQXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG1jcChwcm9wcz86IE1jcENvbmZpZ3VyYXRpb24pOiBJR2F0ZXdheVByb3RvY29sQ29uZmlnIHtcbiAgICByZXR1cm4gbmV3IE1jcFByb3RvY29sQ29uZmlndXJhdGlvbihwcm9wcyk7XG4gIH1cbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogICAgICAgICAgICAgICAgICAgICAgICAgIE1DUCBQcm90b2NvbCBDb25maWd1cmF0aW9uXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKipcbiAqIE1DUCBwcm90b2NvbCB2ZXJzaW9ucy5cbiAqIFRoZSBNb2RlbCBDb250ZXh0IFByb3RvY29sIHVzZXMgc3RyaW5nLWJhc2VkIHZlcnNpb24gaWRlbnRpZmllcnMgZm9sbG93aW5nIHRoZSBmb3JtYXQgWVlZWS1NTS1ERCxcbiAqIHRvIGluZGljYXRlIHRoZSBsYXN0IGRhdGUgYmFja3dhcmRzIGluY29tcGF0aWJsZSBjaGFuZ2VzIHdlcmUgbWFkZS5cbiAqIFZlcnNpb25zIGFyZSBhdmFpbGFibGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL21vZGVsY29udGV4dHByb3RvY29sL21vZGVsY29udGV4dHByb3RvY29sL3JlbGVhc2VzXG4gKi9cbmV4cG9ydCBlbnVtIE1DUFByb3RvY29sVmVyc2lvbiB7XG4gIC8qKlxuICAgKiBUaGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhlIE1DUCBwcm90b2NvbC5cbiAgICovXG4gIE1DUF8yMDI1XzA2XzE4ID0gJzIwMjUtMDYtMTgnLFxuICAvKiogTUNQIHZlcnNpb24gMjAyNS0wMy0yNiAqL1xuICBNQ1BfMjAyNV8wM18yNiA9ICcyMDI1LTAzLTI2Jyxcbn1cblxuLyoqXG4gKiBTZWFyY2ggdHlwZXMgc3VwcG9ydGVkIGJ5IE1DUCBnYXRld2F5XG4gKi9cbmV4cG9ydCBlbnVtIE1jcEdhdGV3YXlTZWFyY2hUeXBlIHtcbiAgLyoqXG4gICAqIFNlbWFudGljIHNlYXJjaCB0eXBlLlxuICAgKiBXaGVuIHNlbWFudGljIHNlYXJjaCBpcyBlbmFibGVkLCB5b3VyIGdhdGV3YXkgY2FuIHNlYXJjaCB0aGUgdG9vbHMgdmlhXG4gICAqIHRoZSBnYXRld2F5IFNESyBiYXNlZCBvZmYgb2YgYSBuYXR1cmFsIGxhbmd1YWdlIHBocmFzZS5cbiAgICovXG4gIFNFTUFOVElDID0gJ1NFTUFOVElDJyxcbn1cblxuLyoqXG4gKiBNQ1AgcHJvdG9jb2wgY29uZmlndXJhdGlvblxuICogVGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBNb2RlbCBDb250ZXh0IFByb3RvY29sIChNQ1ApLlxuICogVGhpcyBwcm90b2NvbCBlbmFibGVzIGNvbW11bmljYXRpb24gYmV0d2VlbiBBbWF6b24gQmVkcm9jayBBZ2VudCBhbmQgZXh0ZXJuYWwgdG9vbHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWNwQ29uZmlndXJhdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgaW5zdHJ1Y3Rpb25zIGZvciB1c2luZyB0aGUgTW9kZWwgQ29udGV4dCBQcm90b2NvbCBnYXRld2F5LlxuICAgKiBUaGVzZSBpbnN0cnVjdGlvbnMgcHJvdmlkZSBndWlkYW5jZSBvbiBob3cgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgZ2F0ZXdheS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBpbnN0cnVjdGlvbnMgcHJvdmlkZWRcbiAgICovXG4gIHJlYWRvbmx5IGluc3RydWN0aW9ucz86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHNlYXJjaCB0eXBlIGZvciB0aGUgTW9kZWwgQ29udGV4dCBQcm90b2NvbCBnYXRld2F5LlxuICAgKiBUaGlzIGZpZWxkIHNwZWNpZmllcyBob3cgdGhlIGdhdGV3YXkgaGFuZGxlcyBzZWFyY2ggb3BlcmF0aW9ucy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBzZWFyY2ggdHlwZSBzcGVjaWZpZWRcbiAgICovXG4gIHJlYWRvbmx5IHNlYXJjaFR5cGU/OiBNY3BHYXRld2F5U2VhcmNoVHlwZTtcblxuICAvKipcbiAgICogVGhlIHN1cHBvcnRlZCB2ZXJzaW9ucyBvZiB0aGUgTW9kZWwgQ29udGV4dCBQcm90b2NvbC5cbiAgICogVGhpcyBmaWVsZCBzcGVjaWZpZXMgd2hpY2ggdmVyc2lvbnMgb2YgdGhlIHByb3RvY29sIHRoZSBnYXRld2F5IGNhbiB1c2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gc3BlY2lmaWMgdmVyc2lvbnMgc3BlY2lmaWVkXG4gICAqL1xuICByZWFkb25seSBzdXBwb3J0ZWRWZXJzaW9ucz86IE1DUFByb3RvY29sVmVyc2lvbltdO1xufVxuXG4vKipcbiAqIE1DUCAoTW9kZWwgQ29udGV4dCBQcm90b2NvbCkgY29uZmlndXJhdGlvbiBpbXBsZW1lbnRhdGlvblxuICovXG5leHBvcnQgY2xhc3MgTWNwUHJvdG9jb2xDb25maWd1cmF0aW9uIGltcGxlbWVudHMgSUdhdGV3YXlQcm90b2NvbENvbmZpZyB7XG4gIHB1YmxpYyByZWFkb25seSBwcm90b2NvbFR5cGU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBzdXBwb3J0ZWQgTUNQIHByb3RvY29sIHZlcnNpb25zXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc3VwcG9ydGVkVmVyc2lvbnM/OiBNQ1BQcm90b2NvbFZlcnNpb25bXTtcbiAgLyoqXG4gICAqIFRoZSBzZWFyY2ggdHlwZSBmb3IgdGhlIE1DUCBnYXRld2F5XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2VhcmNoVHlwZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEluc3RydWN0aW9ucyBmb3IgdXNpbmcgdGhlIE1DUCBnYXRld2F5XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaW5zdHJ1Y3Rpb25zPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzPzogTWNwQ29uZmlndXJhdGlvbikge1xuICAgIHRoaXMuc2VhcmNoVHlwZSA9IHByb3BzPy5zZWFyY2hUeXBlO1xuICAgIHRoaXMuc3VwcG9ydGVkVmVyc2lvbnMgPSBwcm9wcz8uc3VwcG9ydGVkVmVyc2lvbnM7XG4gICAgdGhpcy5pbnN0cnVjdGlvbnMgPSBwcm9wcz8uaW5zdHJ1Y3Rpb25zO1xuICAgIHRoaXMucHJvdG9jb2xUeXBlID0gR2F0ZXdheVByb3RvY29sVHlwZS5NQ1A7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX3JlbmRlcigpOiBDZm5HYXRld2F5LkdhdGV3YXlQcm90b2NvbENvbmZpZ3VyYXRpb25Qcm9wZXJ0eSB7XG4gICAgY29uc3QgbWNwQ29uZmlnOiBDZm5HYXRld2F5Lk1DUEdhdGV3YXlDb25maWd1cmF0aW9uUHJvcGVydHkgPSB7XG4gICAgICAuLi4odGhpcy5pbnN0cnVjdGlvbnMgJiYgeyBpbnN0cnVjdGlvbnM6IHRoaXMuaW5zdHJ1Y3Rpb25zIH0pLFxuICAgICAgLi4uKHRoaXMuc2VhcmNoVHlwZSAmJiB7IHNlYXJjaFR5cGU6IHRoaXMuc2VhcmNoVHlwZSB9KSxcbiAgICAgIC4uLih0aGlzLnN1cHBvcnRlZFZlcnNpb25zICYmIHsgc3VwcG9ydGVkVmVyc2lvbnM6IHRoaXMuc3VwcG9ydGVkVmVyc2lvbnMgfSksXG4gICAgfTtcbiAgICByZXR1cm4geyBtY3A6IG1jcENvbmZpZyB9O1xuICB9XG59XG4iXX0=
@@ -0,0 +1,110 @@
1
+ import { IRole } from 'aws-cdk-lib/aws-iam';
2
+ import { IBucket, Location } from 'aws-cdk-lib/aws-s3';
3
+ import * as s3_assets from 'aws-cdk-lib/aws-s3-assets';
4
+ import { Construct } from 'constructs';
5
+ import { TargetSchema } from './base-schema';
6
+ /******************************************************************************
7
+ * API SCHEMA CLASS
8
+ *****************************************************************************/
9
+ /**
10
+ * Represents the concept of an API Schema for a Gateway Target.
11
+ */
12
+ export declare abstract class ApiSchema extends TargetSchema {
13
+ /**
14
+ * Creates an API Schema from a local file.
15
+ * @param path - the path to the local file containing the OpenAPI schema for the action group
16
+ */
17
+ static fromLocalAsset(path: string): AssetApiSchema;
18
+ /**
19
+ * Creates an API Schema from an inline string.
20
+ * @param schema - the JSON or YAML payload defining the schema (OpenAPI or Smithy)
21
+ */
22
+ static fromInline(schema: string): InlineApiSchema;
23
+ /**
24
+ * Creates an API Schema from an S3 File
25
+ * @param bucket - the bucket containing the local file containing the OpenAPI schema for the action group
26
+ * @param objectKey - object key in the bucket
27
+ * @param bucketOwnerAccountId - optional The account ID of the Amazon S3 bucket owner. This ID is used for cross-account access to the bucket.
28
+ */
29
+ static fromS3File(bucket: IBucket, objectKey: string, bucketOwnerAccountId?: string): S3ApiSchema;
30
+ /**
31
+ * The S3 location of the API schema file, if using an S3-based schema.
32
+ * Contains the bucket name and object key information.
33
+ */
34
+ readonly s3File?: Location;
35
+ /**
36
+ * The inline OpenAPI schema definition as a string, if using an inline schema.
37
+ * Can be in JSON or YAML format.
38
+ */
39
+ readonly inlineSchema?: string;
40
+ /**
41
+ * The account ID of the S3 bucket owner for cross-account access
42
+ */
43
+ readonly bucketOwnerAccountId?: string;
44
+ protected constructor(s3File?: Location, bucketOwnerAccountId?: string, inlineSchema?: string);
45
+ /**
46
+ * Format as CFN properties
47
+ * @internal This is an internal core function and should not be called directly.
48
+ */
49
+ abstract _render(): any;
50
+ }
51
+ /**
52
+ * API Schema from a local asset.
53
+ *
54
+ * The asset is uploaded to an S3 staging bucket, then moved to its final location
55
+ * by CloudFormation during deployment.
56
+ */
57
+ export declare class AssetApiSchema extends ApiSchema {
58
+ private readonly path;
59
+ private readonly options;
60
+ private asset?;
61
+ constructor(path: string, options?: s3_assets.AssetOptions);
62
+ /**
63
+ * Gets the file path for internal validation purposes
64
+ * @internal
65
+ */
66
+ _getFilePath(): string;
67
+ /**
68
+ * Binds this API schema to a construct scope.
69
+ * This method initializes the S3 asset if it hasn't been initialized yet.
70
+ * Must be called before rendering the schema as CFN properties.
71
+ *
72
+ * @param scope - The construct scope to bind to
73
+ */
74
+ bind(scope: Construct): void;
75
+ /**
76
+ * Format as CFN properties
77
+ * @internal This is an internal core function and should not be called directly.
78
+ */
79
+ _render(): any;
80
+ grantPermissionsToRole(role: IRole): void;
81
+ }
82
+ /**
83
+ * Class to define an API Schema from an inline string.
84
+ * The schema can be provided directly as a string.
85
+ * Validation is performed at the target configuration level where the schema type is known.
86
+ */
87
+ export declare class InlineApiSchema extends ApiSchema {
88
+ private readonly schema;
89
+ constructor(schema: string);
90
+ /**
91
+ * @internal This is an internal core function and should not be called directly.
92
+ */
93
+ _render(): any;
94
+ grantPermissionsToRole(_role: IRole): void;
95
+ bind(scope: Construct): void;
96
+ }
97
+ /**
98
+ * Class to define an API Schema from an S3 object.
99
+ */
100
+ export declare class S3ApiSchema extends ApiSchema {
101
+ private readonly location;
102
+ readonly bucketOwnerAccountId?: string | undefined;
103
+ constructor(location: Location, bucketOwnerAccountId?: string | undefined);
104
+ /**
105
+ * @internal This is an internal core function and should not be called directly.
106
+ */
107
+ _render(): any;
108
+ bind(scope: Construct): void;
109
+ grantPermissionsToRole(role: IRole): void;
110
+ }
@@ -0,0 +1,207 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.S3ApiSchema = exports.InlineApiSchema = exports.AssetApiSchema = exports.ApiSchema = void 0;
4
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
5
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
6
+ const aws_iam_1 = require("aws-cdk-lib/aws-iam");
7
+ const s3_assets = require("aws-cdk-lib/aws-s3-assets");
8
+ const base_schema_1 = require("./base-schema");
9
+ /**
10
+ * Error thrown when an ApiSchema is not properly initialized.
11
+ */
12
+ class ApiSchemaError extends Error {
13
+ cause;
14
+ constructor(message, cause) {
15
+ super(message);
16
+ this.cause = cause;
17
+ this.name = 'ApiSchemaError';
18
+ }
19
+ }
20
+ /******************************************************************************
21
+ * API SCHEMA CLASS
22
+ *****************************************************************************/
23
+ /**
24
+ * Represents the concept of an API Schema for a Gateway Target.
25
+ */
26
+ class ApiSchema extends base_schema_1.TargetSchema {
27
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.ApiSchema", version: "2.227.0-alpha.0" };
28
+ /**
29
+ * Creates an API Schema from a local file.
30
+ * @param path - the path to the local file containing the OpenAPI schema for the action group
31
+ */
32
+ static fromLocalAsset(path) {
33
+ return new AssetApiSchema(path);
34
+ }
35
+ /**
36
+ * Creates an API Schema from an inline string.
37
+ * @param schema - the JSON or YAML payload defining the schema (OpenAPI or Smithy)
38
+ */
39
+ static fromInline(schema) {
40
+ return new InlineApiSchema(schema);
41
+ }
42
+ /**
43
+ * Creates an API Schema from an S3 File
44
+ * @param bucket - the bucket containing the local file containing the OpenAPI schema for the action group
45
+ * @param objectKey - object key in the bucket
46
+ * @param bucketOwnerAccountId - optional The account ID of the Amazon S3 bucket owner. This ID is used for cross-account access to the bucket.
47
+ */
48
+ static fromS3File(bucket, objectKey, bucketOwnerAccountId) {
49
+ return new S3ApiSchema({
50
+ bucketName: bucket.bucketName,
51
+ objectKey: objectKey,
52
+ }, bucketOwnerAccountId);
53
+ }
54
+ /**
55
+ * The S3 location of the API schema file, if using an S3-based schema.
56
+ * Contains the bucket name and object key information.
57
+ */
58
+ s3File;
59
+ /**
60
+ * The inline OpenAPI schema definition as a string, if using an inline schema.
61
+ * Can be in JSON or YAML format.
62
+ */
63
+ inlineSchema;
64
+ /**
65
+ * The account ID of the S3 bucket owner for cross-account access
66
+ */
67
+ bucketOwnerAccountId;
68
+ constructor(s3File, bucketOwnerAccountId, inlineSchema) {
69
+ super();
70
+ this.s3File = s3File;
71
+ this.inlineSchema = inlineSchema;
72
+ this.bucketOwnerAccountId = bucketOwnerAccountId;
73
+ }
74
+ }
75
+ exports.ApiSchema = ApiSchema;
76
+ /**
77
+ * API Schema from a local asset.
78
+ *
79
+ * The asset is uploaded to an S3 staging bucket, then moved to its final location
80
+ * by CloudFormation during deployment.
81
+ */
82
+ class AssetApiSchema extends ApiSchema {
83
+ path;
84
+ options;
85
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.AssetApiSchema", version: "2.227.0-alpha.0" };
86
+ asset;
87
+ constructor(path, options = {}) {
88
+ super();
89
+ this.path = path;
90
+ this.options = options;
91
+ }
92
+ /**
93
+ * Gets the file path for internal validation purposes
94
+ * @internal
95
+ */
96
+ _getFilePath() {
97
+ return this.path;
98
+ }
99
+ /**
100
+ * Binds this API schema to a construct scope.
101
+ * This method initializes the S3 asset if it hasn't been initialized yet.
102
+ * Must be called before rendering the schema as CFN properties.
103
+ *
104
+ * @param scope - The construct scope to bind to
105
+ */
106
+ bind(scope) {
107
+ // If the same AssetApiSchema is used multiple times, retain only the first instantiation
108
+ if (!this.asset) {
109
+ // Note: Validation is handled at the target configuration level where we know the schema type
110
+ // and whether validation is enabled
111
+ this.asset = new s3_assets.Asset(scope, 'Schema', {
112
+ path: this.path,
113
+ ...this.options,
114
+ });
115
+ // Note: Permissions will be granted by the Gateway target construct when adding the target
116
+ }
117
+ }
118
+ /**
119
+ * Format as CFN properties
120
+ * @internal This is an internal core function and should not be called directly.
121
+ */
122
+ _render() {
123
+ if (!this.asset) {
124
+ throw new ApiSchemaError('ApiSchema must be bound to a scope before rendering. Call bind() first.', 'Asset not initialized');
125
+ }
126
+ return {
127
+ s3: {
128
+ uri: `s3://${this.asset.s3BucketName}/${this.asset.s3ObjectKey}`,
129
+ },
130
+ };
131
+ }
132
+ grantPermissionsToRole(role) {
133
+ if (this.asset) {
134
+ this.asset.grantRead(role);
135
+ }
136
+ }
137
+ }
138
+ exports.AssetApiSchema = AssetApiSchema;
139
+ // ------------------------------------------------------
140
+ /**
141
+ * Class to define an API Schema from an inline string.
142
+ * The schema can be provided directly as a string.
143
+ * Validation is performed at the target configuration level where the schema type is known.
144
+ */
145
+ class InlineApiSchema extends ApiSchema {
146
+ schema;
147
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.InlineApiSchema", version: "2.227.0-alpha.0" };
148
+ constructor(schema) {
149
+ super(undefined, undefined, schema);
150
+ this.schema = schema;
151
+ }
152
+ /**
153
+ * @internal This is an internal core function and should not be called directly.
154
+ */
155
+ _render() {
156
+ return {
157
+ inlinePayload: this.schema,
158
+ };
159
+ }
160
+ grantPermissionsToRole(_role) {
161
+ }
162
+ bind(scope) {
163
+ if (scope) {
164
+ }
165
+ }
166
+ }
167
+ exports.InlineApiSchema = InlineApiSchema;
168
+ // ------------------------------------------------------
169
+ // S3 File
170
+ // ------------------------------------------------------
171
+ /**
172
+ * Class to define an API Schema from an S3 object.
173
+ */
174
+ class S3ApiSchema extends ApiSchema {
175
+ location;
176
+ bucketOwnerAccountId;
177
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.S3ApiSchema", version: "2.227.0-alpha.0" };
178
+ constructor(location, bucketOwnerAccountId) {
179
+ super(location, bucketOwnerAccountId, undefined);
180
+ this.location = location;
181
+ this.bucketOwnerAccountId = bucketOwnerAccountId;
182
+ }
183
+ /**
184
+ * @internal This is an internal core function and should not be called directly.
185
+ */
186
+ _render() {
187
+ return {
188
+ s3: {
189
+ uri: `s3://${this.location.bucketName}/${this.location.objectKey}`,
190
+ ...(this.bucketOwnerAccountId && { bucketOwnerAccountId: this.bucketOwnerAccountId }),
191
+ },
192
+ };
193
+ }
194
+ bind(scope) {
195
+ if (scope) {
196
+ }
197
+ }
198
+ grantPermissionsToRole(role) {
199
+ aws_iam_1.Grant.addToPrincipal({
200
+ grantee: role,
201
+ actions: ['s3:GetObject'],
202
+ resourceArns: [`arn:${aws_cdk_lib_1.Aws.PARTITION}:s3:::${this.location.bucketName}/${this.location.objectKey}`],
203
+ });
204
+ }
205
+ }
206
+ exports.S3ApiSchema = S3ApiSchema;
207
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLXNjaGVtYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFwaS1zY2hlbWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLDZDQUFrQztBQUNsQyxpREFBbUQ7QUFFbkQsdURBQXVEO0FBRXZELCtDQUE2QztBQUU3Qzs7R0FFRztBQUNILE1BQU0sY0FBZSxTQUFRLEtBQUs7SUFDYTtJQUE3QyxZQUFZLE9BQWUsRUFBa0IsS0FBYztRQUN6RCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFENEIsVUFBSyxHQUFMLEtBQUssQ0FBUztRQUV6RCxJQUFJLENBQUMsSUFBSSxHQUFHLGdCQUFnQixDQUFDO0tBQzlCO0NBQ0Y7QUFFRDs7K0VBRStFO0FBQy9FOztHQUVHO0FBQ0gsTUFBc0IsU0FBVSxTQUFRLDBCQUFZOztJQUNsRDs7O09BR0c7SUFDSSxNQUFNLENBQUMsY0FBYyxDQUFDLElBQVk7UUFDdkMsT0FBTyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUNqQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBYztRQUNyQyxPQUFPLElBQUksZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQ3BDO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQWUsRUFBRSxTQUFpQixFQUFFLG9CQUE2QjtRQUN4RixPQUFPLElBQUksV0FBVyxDQUNwQjtZQUNFLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVTtZQUM3QixTQUFTLEVBQUUsU0FBUztTQUNyQixFQUNELG9CQUFvQixDQUNyQixDQUFDO0tBQ0g7SUFFRDs7O09BR0c7SUFDYSxNQUFNLENBQVk7SUFFbEM7OztPQUdHO0lBQ2EsWUFBWSxDQUFVO0lBRXRDOztPQUVHO0lBQ2Esb0JBQW9CLENBQVU7SUFFOUMsWUFBc0IsTUFBaUIsRUFBRSxvQkFBNkIsRUFBRSxZQUFxQjtRQUMzRixLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUks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QUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO2FBQ3RGO1NBQ0YsQ0FBQztLQUNIO0lBRU0sSUFBSSxDQUFDLEtBQWdCO1FBQzFCLElBQUksS0FBSyxFQUFFLENBQUM7UUFDWixDQUFDO0tBRUY7SUFFTSxzQkFBc0IsQ0FBQyxJQUFXO1FBQ3ZDLGVBQUssQ0FBQyxjQUFjLENBQUM7WUFDbkIsT0FBTyxFQUFFLElBQUk7WUFDYixPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7WUFDekIsWUFBWSxFQUFFLENBQUMsT0FBTyxpQkFBRyxDQUFDLFNBQVMsU0FBUyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ25HLENBQUMsQ0FBQztLQUNKOztBQTVCSCxrQ0E2QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBd3MgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBHcmFudCwgSVJvbGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IElCdWNrZXQsIExvY2F0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCAqIGFzIHMzX2Fzc2V0cyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMtYXNzZXRzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgVGFyZ2V0U2NoZW1hIH0gZnJvbSAnLi9iYXNlLXNjaGVtYSc7XG5cbi8qKlxuICogRXJyb3IgdGhyb3duIHdoZW4gYW4gQXBpU2NoZW1hIGlzIG5vdCBwcm9wZXJseSBpbml0aWFsaXplZC5cbiAqL1xuY2xhc3MgQXBpU2NoZW1hRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgcHVibGljIHJlYWRvbmx5IGNhdXNlPzogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gJ0FwaVNjaGVtYUVycm9yJztcbiAgfVxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiAgICAgICAgICAgICAgICAgICAgICAgQVBJIFNDSEVNQSBDTEFTU1xuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBjb25jZXB0IG9mIGFuIEFQSSBTY2hlbWEgZm9yIGEgR2F0ZXdheSBUYXJnZXQuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBcGlTY2hlbWEgZXh0ZW5kcyBUYXJnZXRTY2hlbWEge1xuICAvKipcbiAgICogQ3JlYXRlcyBhbiBBUEkgU2NoZW1hIGZyb20gYSBsb2NhbCBmaWxlLlxuICAgKiBAcGFyYW0gcGF0aCAtIHRoZSBwYXRoIHRvIHRoZSBsb2NhbCBmaWxlIGNvbnRhaW5pbmcgdGhlIE9wZW5BUEkgc2NoZW1hIGZvciB0aGUgYWN0aW9uIGdyb3VwXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Mb2NhbEFzc2V0KHBhdGg6IHN0cmluZyk6IEFzc2V0QXBpU2NoZW1hIHtcbiAgICByZXR1cm4gbmV3IEFzc2V0QXBpU2NoZW1hKHBhdGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gQVBJIFNjaGVtYSBmcm9tIGFuIGlubGluZSBzdHJpbmcuXG4gICAqIEBwYXJhbSBzY2hlbWEgLSB0aGUgSlNPTiBvciBZQU1MIHBheWxvYWQgZGVmaW5pbmcgdGhlIHNjaGVtYSAoT3BlbkFQSSBvciBTbWl0aHkpXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21JbmxpbmUoc2NoZW1hOiBzdHJpbmcpOiBJbmxpbmVBcGlTY2hlbWEge1xuICAgIHJldHVybiBuZXcgSW5saW5lQXBpU2NoZW1hKHNjaGVtYSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBBUEkgU2NoZW1hIGZyb20gYW4gUzMgRmlsZVxuICAgKiBAcGFyYW0gYnVja2V0IC0gdGhlIGJ1Y2tldCBjb250YWluaW5nIHRoZSBsb2NhbCBmaWxlIGNvbnRhaW5pbmcgdGhlIE9wZW5BUEkgc2NoZW1hIGZvciB0aGUgYWN0aW9uIGdyb3VwXG4gICAqIEBwYXJhbSBvYmplY3RLZXkgLSBvYmplY3Qga2V5IGluIHRoZSBidWNrZXRcbiAgICogQHBhcmFtIGJ1Y2tldE93bmVyQWNjb3VudElkIC0gb3B0aW9uYWwgVGhlIGFjY291bnQgSUQgb2YgdGhlIEFtYXpvbiBTMyBidWNrZXQgb3duZXIuIFRoaXMgSUQgaXMgdXNlZCBmb3IgY3Jvc3MtYWNjb3VudCBhY2Nlc3MgdG8gdGhlIGJ1Y2tldC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVMzRmlsZShidWNrZXQ6IElCdWNrZXQsIG9iamVjdEtleTogc3RyaW5nLCBidWNrZXRPd25lckFjY291bnRJZD86IHN0cmluZyk6IFMzQXBpU2NoZW1hIHtcbiAgICByZXR1cm4gbmV3IFMzQXBpU2NoZW1hKFxuICAgICAge1xuICAgICAgICBidWNrZXROYW1lOiBidWNrZXQuYnVja2V0TmFtZSxcbiAgICAgICAgb2JqZWN0S2V5OiBvYmplY3RLZXksXG4gICAgICB9LFxuICAgICAgYnVja2V0T3duZXJBY2NvdW50SWQsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgUzMgbG9jYXRpb24gb2YgdGhlIEFQSSBzY2hlbWEgZmlsZSwgaWYgdXNpbmcgYW4gUzMtYmFzZWQgc2NoZW1hLlxuICAgKiBDb250YWlucyB0aGUgYnVja2V0IG5hbWUgYW5kIG9iamVjdCBrZXkgaW5mb3JtYXRpb24uXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgczNGaWxlPzogTG9jYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBpbmxpbmUgT3BlbkFQSSBzY2hlbWEgZGVmaW5pdGlvbiBhcyBhIHN0cmluZywgaWYgdXNpbmcgYW4gaW5saW5lIHNjaGVtYS5cbiAgICogQ2FuIGJlIGluIEpTT04gb3IgWUFNTCBmb3JtYXQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaW5saW5lU2NoZW1hPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYWNjb3VudCBJRCBvZiB0aGUgUzMgYnVja2V0IG93bmVyIGZvciBjcm9zcy1hY2NvdW50IGFjY2Vzc1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGJ1Y2tldE93bmVyQWNjb3VudElkPzogc3RyaW5nO1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihzM0ZpbGU/OiBMb2NhdGlvbiwgYnVja2V0T3duZXJBY2NvdW50SWQ/OiBzdHJpbmcsIGlubGluZVNjaGVtYT86IHN0cmluZykge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5zM0ZpbGUgPSBzM0ZpbGU7XG4gICAgdGhpcy5pbmxpbmVTY2hlbWEgPSBpbmxpbmVTY2hlbWE7XG4gICAgdGhpcy5idWNrZXRPd25lckFjY291bnRJZCA9IGJ1Y2tldE93bmVyQWNjb3VudElkO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcm1hdCBhcyBDRk4gcHJvcGVydGllc1xuICAgKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseS5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBfcmVuZGVyKCk6IGFueTtcbn1cblxuLyoqXG4gKiBBUEkgU2NoZW1hIGZyb20gYSBsb2NhbCBhc3NldC5cbiAqXG4gKiBUaGUgYXNzZXQgaXMgdXBsb2FkZWQgdG8gYW4gUzMgc3RhZ2luZyBidWNrZXQsIHRoZW4gbW92ZWQgdG8gaXRzIGZpbmFsIGxvY2F0aW9uXG4gKiBieSBDbG91ZEZvcm1hdGlvbiBkdXJpbmcgZGVwbG95bWVudC5cbiAqL1xuZXhwb3J0IGNsYXNzIEFzc2V0QXBpU2NoZW1hIGV4dGVuZHMgQXBpU2NoZW1hIHtcbiAgcHJpdmF0ZSBhc3NldD86IHMzX2Fzc2V0cy5Bc3NldDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHBhdGg6IHN0cmluZywgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBzM19hc3NldHMuQXNzZXRPcHRpb25zID0ge30pIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGZpbGUgcGF0aCBmb3IgaW50ZXJuYWwgdmFsaWRhdGlvbiBwdXJwb3Nlc1xuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBfZ2V0RmlsZVBhdGgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wYXRoO1xuICB9XG5cbiAgLyoqXG4gICAqIEJpbmRzIHRoaXMgQVBJIHNjaGVtYSB0byBhIGNvbnN0cnVjdCBzY29wZS5cbiAgICogVGhpcyBtZXRob2QgaW5pdGlhbGl6ZXMgdGhlIFMzIGFzc2V0IGlmIGl0IGhhc24ndCBiZWVuIGluaXRpYWxpemVkIHlldC5cbiAgICogTXVzdCBiZSBjYWxsZWQgYmVmb3JlIHJlbmRlcmluZyB0aGUgc2NoZW1hIGFzIENGTiBwcm9wZXJ0aWVzLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgLSBUaGUgY29uc3RydWN0IHNjb3BlIHRvIGJpbmQgdG9cbiAgICovXG4gIHB1YmxpYyBiaW5kKHNjb3BlOiBDb25zdHJ1Y3QpOiB2b2lkIHtcbiAgICAvLyBJZiB0aGUgc2FtZSBBc3NldEFwaVNjaGVtYSBpcyB1c2VkIG11bHRpcGxlIHRpbWVzLCByZXRhaW4gb25seSB0aGUgZmlyc3QgaW5zdGFudGlhdGlvblxuICAgIGlmICghdGhpcy5hc3NldCkge1xuICAgICAgLy8gTm90ZTogVmFsaWRhdGlvbiBpcyBoYW5kbGVkIGF0IHRoZSB0YXJnZXQgY29uZmlndXJhdGlvbiBsZXZlbCB3aGVyZSB3ZSBrbm93IHRoZSBzY2hlbWEgdHlwZVxuICAgICAgLy8gYW5kIHdoZXRoZXIgdmFsaWRhdGlvbiBpcyBlbmFibGVkXG4gICAgICB0aGlzLmFzc2V0ID0gbmV3IHMzX2Fzc2V0cy5Bc3NldChzY29wZSwgJ1NjaGVtYScsIHtcbiAgICAgICAgcGF0aDogdGhpcy5wYXRoLFxuICAgICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICB9KTtcbiAgICAgIC8vIE5vdGU6IFBlcm1pc3Npb25zIHdpbGwgYmUgZ3JhbnRlZCBieSB0aGUgR2F0ZXdheSB0YXJnZXQgY29uc3RydWN0IHdoZW4gYWRkaW5nIHRoZSB0YXJnZXRcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRm9ybWF0IGFzIENGTiBwcm9wZXJ0aWVzXG4gICAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5LlxuICAgKi9cbiAgcHVibGljIF9yZW5kZXIoKTogYW55IHtcbiAgICBpZiAoIXRoaXMuYXNzZXQpIHtcbiAgICAgIHRocm93IG5ldyBBcGlTY2hlbWFFcnJvcihcbiAgICAgICAgJ0FwaVNjaGVtYSBtdXN0IGJlIGJvdW5kIHRvIGEgc2NvcGUgYmVmb3JlIHJlbmRlcmluZy4gQ2FsbCBiaW5kKCkgZmlyc3QuJyxcbiAgICAgICAgJ0Fzc2V0IG5vdCBpbml0aWFsaXplZCcsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBzMzoge1xuICAgICAgICB1cmk6IGBzMzovLyR7dGhpcy5hc3NldC5zM0J1Y2tldE5hbWV9LyR7dGhpcy5hc3NldC5zM09iamVjdEtleX1gLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGdyYW50UGVybWlzc2lvbnNUb1JvbGUocm9sZTogSVJvbGUpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hc3NldCkge1xuICAgICAgdGhpcy5hc3NldC5ncmFudFJlYWQocm9sZSk7XG4gICAgfVxuICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLyoqXG4gKiBDbGFzcyB0byBkZWZpbmUgYW4gQVBJIFNjaGVtYSBmcm9tIGFuIGlubGluZSBzdHJpbmcuXG4gKiBUaGUgc2NoZW1hIGNhbiBiZSBwcm92aWRlZCBkaXJlY3RseSBhcyBhIHN0cmluZy5cbiAqIFZhbGlkYXRpb24gaXMgcGVyZm9ybWVkIGF0IHRoZSB0YXJnZXQgY29uZmlndXJhdGlvbiBsZXZlbCB3aGVyZSB0aGUgc2NoZW1hIHR5cGUgaXMga25vd24uXG4gKi9cbmV4cG9ydCBjbGFzcyBJbmxpbmVBcGlTY2hlbWEgZXh0ZW5kcyBBcGlTY2hlbWEge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHNjaGVtYTogc3RyaW5nKSB7XG4gICAgc3VwZXIodW5kZWZpbmVkLCB1bmRlZmluZWQsIHNjaGVtYSk7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkuXG4gICAqL1xuICBwdWJsaWMgX3JlbmRlcigpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICBpbmxpbmVQYXlsb2FkOiB0aGlzLnNjaGVtYSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGdyYW50UGVybWlzc2lvbnNUb1JvbGUoX3JvbGU6IElSb2xlKTogdm9pZCB7XG4gICAgLy8gTm8tb3AgLSBJbmxpbmVBcGlTY2hlbWEgZG9lc24ndCBuZWVkIHBlcm1pc3Npb25zXG4gIH1cblxuICBwdWJsaWMgYmluZChzY29wZTogQ29uc3RydWN0KTogdm9pZCB7XG4gICAgaWYgKHNjb3BlKSB7XG4gICAgfVxuICAgIC8vIE5vLW9wIC0gdmFsaWRhdGlvbiBpcyBoYW5kbGVkIGF0IHRoZSB0YXJnZXQgY29uZmlndXJhdGlvbiBsZXZlbFxuICAgIC8vIHdoZXJlIHdlIGtub3cgd2hldGhlciB0aGlzIGlzIE9wZW5BUEkgb3IgU21pdGh5XG4gIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBTMyBGaWxlXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8qKlxuICogQ2xhc3MgdG8gZGVmaW5lIGFuIEFQSSBTY2hlbWEgZnJvbSBhbiBTMyBvYmplY3QuXG4gKi9cbmV4cG9ydCBjbGFzcyBTM0FwaVNjaGVtYSBleHRlbmRzIEFwaVNjaGVtYSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgbG9jYXRpb246IExvY2F0aW9uLCBwdWJsaWMgcmVhZG9ubHkgYnVja2V0T3duZXJBY2NvdW50SWQ/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihsb2NhdGlvbiwgYnVja2V0T3duZXJBY2NvdW50SWQsIHVuZGVmaW5lZCk7XG4gIH1cbiAgLyoqXG4gICAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5LlxuICAgKi9cbiAgcHVibGljIF9yZW5kZXIoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgczM6IHtcbiAgICAgICAgdXJpOiBgczM6Ly8ke3RoaXMubG9jYXRpb24uYnVja2V0TmFtZX0vJHt0aGlzLmxvY2F0aW9uLm9iamVjdEtleX1gLFxuICAgICAgICAuLi4odGhpcy5idWNrZXRPd25lckFjY291bnRJZCAmJiB7IGJ1Y2tldE93bmVyQWNjb3VudElkOiB0aGlzLmJ1Y2tldE93bmVyQWNjb3VudElkIH0pLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGJpbmQoc2NvcGU6IENvbnN0cnVjdCk6IHZvaWQge1xuICAgIGlmIChzY29wZSkge1xuICAgIH1cbiAgICAvLyBOby1vcFxuICB9XG5cbiAgcHVibGljIGdyYW50UGVybWlzc2lvbnNUb1JvbGUocm9sZTogSVJvbGUpOiB2b2lkIHtcbiAgICBHcmFudC5hZGRUb1ByaW5jaXBhbCh7XG4gICAgICBncmFudGVlOiByb2xlLFxuICAgICAgYWN0aW9uczogWydzMzpHZXRPYmplY3QnXSxcbiAgICAgIHJlc291cmNlQXJuczogW2Bhcm46JHtBd3MuUEFSVElUSU9OfTpzMzo6OiR7dGhpcy5sb2NhdGlvbi5idWNrZXROYW1lfS8ke3RoaXMubG9jYXRpb24ub2JqZWN0S2V5fWBdLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,24 @@
1
+ import { IRole } from 'aws-cdk-lib/aws-iam';
2
+ import { Construct } from 'constructs';
3
+ /**
4
+ * Base abstract class for all schema types used in Bedrock AgentCore Gateway Targets.
5
+ * This provides a common interface for both API schemas and tool schemas.
6
+ * @internal
7
+ */
8
+ export declare abstract class TargetSchema {
9
+ /**
10
+ * Format as CFN properties
11
+ *
12
+ * @internal This is an internal core function and should not be called directly.
13
+ */
14
+ abstract _render(): any;
15
+ /**
16
+ * Bind the schema to a construct
17
+ */
18
+ abstract bind(scope: Construct): void;
19
+ /**
20
+ * Grant permissions to the role
21
+ *
22
+ */
23
+ abstract grantPermissionsToRole(role: IRole): void;
24
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TargetSchema = void 0;
4
+ /**
5
+ * Base abstract class for all schema types used in Bedrock AgentCore Gateway Targets.
6
+ * This provides a common interface for both API schemas and tool schemas.
7
+ * @internal
8
+ */
9
+ class TargetSchema {
10
+ }
11
+ exports.TargetSchema = TargetSchema;
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1zY2hlbWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJiYXNlLXNjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQTs7OztHQUlHO0FBQ0gsTUFBc0IsWUFBWTtDQWtCakM7QUFsQkQsb0NBa0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVJvbGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG4vKipcbiAqIEJhc2UgYWJzdHJhY3QgY2xhc3MgZm9yIGFsbCBzY2hlbWEgdHlwZXMgdXNlZCBpbiBCZWRyb2NrIEFnZW50Q29yZSBHYXRld2F5IFRhcmdldHMuXG4gKiBUaGlzIHByb3ZpZGVzIGEgY29tbW9uIGludGVyZmFjZSBmb3IgYm90aCBBUEkgc2NoZW1hcyBhbmQgdG9vbCBzY2hlbWFzLlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUYXJnZXRTY2hlbWEge1xuICAvKipcbiAgICogRm9ybWF0IGFzIENGTiBwcm9wZXJ0aWVzXG4gICAqXG4gICAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5LlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IF9yZW5kZXIoKTogYW55O1xuXG4gIC8qKlxuICAgKiBCaW5kIHRoZSBzY2hlbWEgdG8gYSBjb25zdHJ1Y3RcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBiaW5kKHNjb3BlOiBDb25zdHJ1Y3QpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBHcmFudCBwZXJtaXNzaW9ucyB0byB0aGUgcm9sZVxuICAgKlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdyYW50UGVybWlzc2lvbnNUb1JvbGUocm9sZTogSVJvbGUpOiB2b2lkO1xufVxuIl19