@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,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
|